Originally posted by: NingZhu
hi, guys
I want to solve a MIP problem by my own branch and cut. I use cplex 12.7.0 and python 2.7. the difference between my branch and cut and the classical branch and cut is shown as below.
First, when I get a "possible" feasible integer solution (the corresponding objective value is smaller than the upper bound, and the problem is minimum), I should use a "complex method" to judge if it is really feasible, otherwise this solution is infeasible and add a cut to delete this point.
Second, when this "possible" feasible integer solution is infeasible , I may use some heuristic method in order to get a feasible solution quickly (not ensure it is incumbent optimal). if the corresponding objective value is best than the upper bound, the upper bound and incumbent solution will be updated.
To design my algorithm, I see some topics and learn something about callback. I guess that I should define the "complex method" first and call it in the lazyconstraint callback. If the solution is infeasible, a cut is added. Then the heuristic callback will be invoked to set incumbent solution because I know this callback is the only way to set the incumbent solution by users. However, I know the heuristic callback is invoked only when the solution is not integer. It is not my need.
Therefore, how should I design my algorithm and what kinds of callbacks should I use?
Ning Zhu
#CPLEXOptimizers#DecisionOptimization