Originally posted by: UserCplex
I have an MIP that gets solved in multiple stages.
Stage 1: Create LP [This is attached as file ProblemLP.txt (lp format) ]
Stage 2: Convert LP to MIP by changing some variables to integer [This is attached as ProblemIP.txt (lp format) ]
Stage 3: Submit MIP of Stage 2 to cplex (Version 12.7.1) to solve with default parameters.
Now, as Stage 3 progresses CPLEX adds its own cuts to this problem and gets an integer feasible (and hence optimal) solution at the root node itself.
The final root node LP after CPLEX has added cuts to it is attached as nodelp18_0.lp file. I have extracted this lp file using the callback procedure provided in http://www-01.ibm.com/support/docview.wss?uid=swg21400065
One of the cuts that CPLEX seems to have imposed in nodelp18_0 is _e1#1 = 0
This cut is cutting off a valid feasible solution that can be obtained by setting _e1#1 = 1. I know that setting _e1#1 = 1 results in a feasible solution because when I impose this constraint in ProblemIP.txt file (this changed problem is provided as ProblemIP_changed.txt (lp format) file), CPLEX solves this modified problem and gives me a feasible solution.
Can it be clarified why this cut was added? I was under the impression that cuts added at the root node of a Branch and Bound tree do not cut off feasible integer solutions.
Thanks for your time.
ETA: I looked at this thread on a similar topic:
https://www.ibm.com/developerworks/community/forums/html/topic?id=3cb830c4-fe71-4a4d-ab2d-c7e630bcc5a1&ps=25
The same problem of the cuts cutting of integer feasible solutions occur even after setting CPX_PARAM_REDUCE to 0 as suggested there.
#CPLEXOptimizers#DecisionOptimization