私はCPLEXおよびC++プログラミングの初心者で、中規模のMIP問題を解決しようとしています。CPLEX時間最初の実行可能な解まで
私の問題は、CPLEXが最初の実現可能な解を得て、最良の実現可能な解を得るのにどれくらいの時間を要したかということです。
私はすでに時間制限を設定する方法を知っていますが、CPLEXのソリューションプールを使用して実現可能なすべてのソリューションを取得していますが、その時間はありませんでした。
実現可能な各ソリューションの時間値を取得するためのCPLEXに直接コードはありますか?
EDIT1
ありがとう:問題のコードは次のようになります。
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:いくつかのパラメータはスペイン語であるが、それは私の母国語だと申し訳ありません。
あなたが試したこと、特にあなたがハングアップしているところのコードを提供できますか? – DVK
もちろん、編集済みです! – Javier
私は実際にコードのどこかで狩りをしていませんが、私はそれらの時間値を得るために私が何ができるか分かりません... – Javier