Originally posted by: JochemT
Hello Daniel,
So we have saved the model and mipstarts and used the interactive optimizer to load the model and mipstarts.
Below you can find the way we have stored and the way we tested to find the problem with the wrong objective value as starting point. Upfront of this code, all the searches were completed and improved feasible solutions are added as mipstarts.
System.
out.println(
"--- CONTINUE CPLEX SOLVE ---");
oldvalue =
objvalue;
cplex.writeMIPStarts(
"start.mst");SolveModel(
cplex, valx,
valalpha,
valomega, x, alpha, omega);
objvalue =
cplex.getObjValue();
InitialSolution(
cplex, valx,
valalpha,
valomega, valv, x, alpha, omega, v);
newvalue =
cplex.getObjValue();
if (
newvalue >
oldvalue) {
System.
out.println(
"Houston, Houston Help me!!");
cplex.exportModel(
"main.lp");
cplex.end();
}
The optimizer indicated that 16 out of the 17 mipstarts are feasible and that there are no conflicts.
Furthermore, is the following printed during a normal cplex.solve (not in the optimizer),
Objective function Value = 928.5999999999999
--- CONTINUE CPLEX SOLVE ---
CPXPARAM_Threads 1
CPXPARAM_MIP_Limits_Solutions 2
2 of 17 MIP starts provided solutions.
MIP start 'obj1438.1999999999998' defined initial solution with objective 1438.2000.
It can be seen that 15 MIP starts do not give a solution, where they are a solution during the local searches and in the optimizer.
Therefore, the problem cannot be found yet.
#CPLEXOptimizers#DecisionOptimization