Originally posted by: AJMaisse
Hi all,
I am interested in MIP optimization, and more particularly, to the problem of imposing CPLEX a new primal bound (=incumbent value) during the optimization. The idea is to cut out nodes that are suboptimal when compared to the externally computed primal bound and thus, speed up the process.
I am using CPLEX Optimization Studio 12.6.1 on Linux and the C Callable Library functions.
I have identified three ways of achieving my goal:
1) Using control callbacks, before branching, if the LP solution of a node is already suboptimal then we do not create sons.
2) We stop the optimization, add a constraint "obj <= C" where C is the new primal bound and run the optimization again.
3) We stop optimization, set the parameter CPXPARAM_MIP_Tolerances_UpperCutoff to the value of the primal bound (since I am minimizing) and run again.
I have two specific questions:
a) I am having trouble with the last solution. Especially as regards solution statuts. I sometimes have a statut corresponding to an optimal solution and then when I fetch the objective value of my solution I have a CPLEX error with no solution (and I indeed know that there is no solution). I also sometimes have the statut that the problem is unbounded and I know that it is bounded. So I was wondering if maybe this CPLEX parameter was not meant to be used in such a way.
b) Do you know any other method that might be proven more efficient time-wise?
Thank you,
Antoine
#CPLEXOptimizers#DecisionOptimization