我希望在Barrier算法迭代后访问当前的QP解决方案。每次迭代后都会触发一个回调 ContinuousCallbackI 。 我修改了回调代码示例:
static ILOBARRIERCALLBACK2(MyCallback, IloCplex, cplex, IloNumVarArray, x) {
cout << "Iteration " << getNiterations() << ": ";
if (isFeasible()) {
cout << "Objective = " << getObjValue() << endl;
//cout << "x[0] = " << (float)cplex.getValue(x[0]) << endl;
//CPLEX Error 1217: No solution exists.
}
else {
cout << "Infeasibility measure = " << getInfeasibility() << endl;
}
}
但是cplex没有解决方案(错误)。迭代后有没有办法访问当前的解决方案?
答案 0 :(得分:0)
无法访问当前解决方案。
从回调内部,仅应调用回调类的成员函数。这些成员函数列在https://www.ibm.com/support/knowledgecenter/SSSA5P_12.9.0/ilog.odms.ide.help/refcppopl/html/classes/IloCplex_BarrierCallbackI.html上,没有一个函数可以查询当前解决方案。