Ich bin ein Anfänger in CPLEX und C++ Programmierung, und ich versuche, ein mittelgroßes MIP Problem zu lösen.CPLEX Zeit bis zur ersten durchführbaren Lösung
Mein Problem ist, dass ich wissen muss, wie viel Zeit CPLEX gebraucht hat, um die erste machbare Lösung zu bekommen und die bestmögliche Lösung zu finden (nicht notwendig die globalen Optima).
Ich weiß bereits, wie man ein Zeitlimit konfiguriert und ich habe den Lösungspool von CPLEX benutzt, um alle möglichen Lösungen zu bekommen, aber nicht seine Zeiten.
Gibt es einen direkten Code in CPLEX, um die Zeitwerte für jede mögliche Lösung zu erhalten?
Dank
EDIT1: der Code für das Problem folgend wäre:
IloEnv env;
IloModel model(env);
IloCplex cplex(model);
IloCplex::Param::TimeLimit;
IloExpr term2(env);
IloExpr term3(env);
IloExpr objetivo(env);
IloInt i,j;
double CP;
IloNumVarArray z(env, columnas-1, 0, INFTY,ILOBOOL);
IloNumVarArray a(env, columnas, -1*INFTY, INFTY, ILOFLOAT);
for (i = 0; i < filas; i++){
IloExpr term1(env);
for(j = 0; j < columnas-1; j++){
term1 += a[j]*(A[i+1][j+2]);
}
term2 += ((b[i+1])-(term1+a[columnas-1]))*((b[i+1])-(term1+a[columnas-1]));
term1.end();
}
for(j = 0; j < columnas-1; j++){
term3 += z[j];
}
objetivo=term2/(sigmasq)+2*(term3+1)-(filas);
model.add(IloMinimize(env, objetivo));
for (j = 0; j < columnas-1; j++) {
IloExpr restr(env);
restr = a[j] + (bigM)*z[j];
model.add(0 <= restr <= IloInfinity);
restr.end();
}
for (j = 0; j < columnas-1; j++) {
IloExpr restr(env);
restr = (bigM)*z[j] - a[j];
model.add(0 <= restr <= IloInfinity);
restr.end();
}
cplex.setParam(IloCplex::Param::ClockType, 2);
cplex.setParam(IloCplex::Param::TimeLimit, 3600);
cplex.solve();
PD: Sorry, dass einige Parameter in Spanischen sind, aber das ist meine Muttersprache.
Können Sie Code für das, was Sie ausprobiert haben und wo Sie gerade aufhängen? – DVK
Sicher, es ist bearbeitet! – Javier
Ich bin eigentlich nicht irgendwo in den Code, ich weiß nicht, was ich tun kann, um diese Zeitwerte zu erhalten ... – Javier