Originally posted by: MarioRuthmair
Here is a zipped model.sav of a problematic instance. I aborted optimization when I recognized variable values outside their bounds, and then exported the model. However, at least the lp-file does not contain the 1635 cuts added until then, so I'm not sure if the file is of use for you.
To say at least something about the structure of the added inequalities: a sum of binary variables (yl-variables in the file) with coefficient 1 is less or equal than 1.
What I further noticed when studying detailed CPLEX output (MIPDisplay=5, SimDisplay=1) was a kind of simplex degeneracy just before the wrong variable values are detected. Since the cuts are added deterministically the behaviour is reproducable. Here is a hopefully helpful shortened log:
... Iteration log . . . Iteration: 1 Dual objective = 696.138249 Iteration: 212 Dual objective = 696.220864 Iteration: 442 Dual objective = 696.286783 Iteration: 655 Dual objective = 696.333333 Perturbation started. Iteration: 809 Dual objective = 696.333333 Iteration: 1028 Dual objective = 696.460222 Iteration: 1252 Dual objective = 696.576576 Removing perturbation. ... <16 cuts added in callback> Reinitializing dual norms . . . Computed 16
new norms. Iteration log . . . Iteration: 1 Dual objective = 696.593750 Iteration: 216 Dual objective = 696.689721 Iteration: 424 Dual objective = 696.791531 Iteration: 633 Dual objective = 696.917965 Iteration: 848 Dual objective = 697.157095 Iteration: 1098 Dual objective = 697.504470 Iteration: 1337 Dual objective = 697.728128 Iteration: 1551 Dual objective = 698.043241 Iteration: 1775 Dual objective = 698.327752 Iteration: 2011 Dual objective = 698.761905 Perturbation started. Iteration: 2202 Dual objective = 699.000000 ... Iteration: 11732 Dual objective = 722.777786 Markowitz threshold set to 0.1 Iteration: 11944 Dual objective = 723.666674 Elapsed time = 50.53 sec. (12000 iterations). Iteration: 12145 Dual objective = 723.777782 ... Iteration: 48175 Dual objective = 739.809609 Repairing basis singularity. Added to superbasic list. Markowitz threshold set to 0.2 Iteration: 48220 Scaled dual infeas = 68.319373 Iteration: 48226 Dual objective = 733.334436 ... Iteration: 51982 Dual objective = 744.153979 Removing perturbation. Iteration: 51984 Dual objective = 744.160000 ... Iteration: 52482 Dual objective = 744.466665 Repairing basis singularity. Added to superbasic list. Markowitz threshold set to 0.3 Iteration: 52519 Scaled dual infeas = 47518664513537024.000000 Iteration: 52605 Scaled dual infeas = 836030228782.795288 Elapsed time = 425.85 sec. (53000 iterations). Iteration: 54011 Scaled dual infeas = 1791850.222266 Reperturbation started. Iteration: 54438 Scaled dual infeas = 3421990.739275 Iteration: 54784 Scaled dual infeas = 3284496.774933 Elapsed time = 442.46 sec. (55000 iterations). Iteration: 55583 Scaled dual infeas = 1534933.567751 ... Iteration: 198735 Scaled dual infeas = 0.371629 Iteration: 199040 Scaled dual infeas = 0.371585 Iteration: 199454 Scaled dual infeas = 0.371578 Iteration: 199819 Scaled dual infeas = 0.371577 Iteration: 200135 Scaled dual infeas = 0.000001 Iteration: 200402 Scaled dual infeas = 0.000001 Iteration: 200627 Scaled dual infeas = 0.000000 Iteration: 200875 Scaled dual infeas = 0.000000 Elapsed time = 1057.96 sec. (201000 iterations). Iteration: 201149 Dual objective = -106245.358142 Iteration: 201337 Dual objective = -72836.843117 Iteration: 201627 Dual objective = -63729.692440 ... Iteration: 694989 Dual objective = 743.000237 Iteration: 695000 Dual objective = 743.000237 Elapsed time = 4483.68 sec. (695000 iterations). Iteration: 695003 Dual objective = 743.000235 Iteration: 695019 Dual objective = 743.000236 Iteration: 695025 Dual objective = 743.000236 Iteration: 695057 Dual objective = 743.000236 Iteration: 695071 Dual objective = 743.000238 Iteration: 695077 Dual objective = 743.018755 Iteration: 695122 Dual objective = 743.018756 Iteration: 695123 Dual objective = 743.018756 Iteration: 695142 Dual objective = 743.041901 Iteration: 695144 Dual objective = 743.041901 Iteration: 695156 Dual objective = 743.041899 Iteration: 695159 Dual objective = 743.041900 Iteration: 695160 Dual objective = 743.041900 Iteration: 695164 Dual objective = 743.041900 Removing perturbation. ... <now the cut callback is called and the following variables are negative:> xl(14705) = -0.0416667, LB = 0, UB = 1 xl(15053) = -0.0416667, LB = 0, UB = 1 xl(15687) = -0.0833333, LB = 0, UB = 1 xl(16475) = -0.0833333, LB = 0, UB = 1 xl(16514) = -0.0833333, LB = 0, UB = 1 xl(16707) = -0.145833, LB = 0, UB = 1 xl(17025) = -0.0625, LB = 0, UB = 1 xl(17081) = -0.145833, LB = 0, UB = 1 xl(17177) = -0.0625, LB = 0, UB = 1 xl(17194) = -0.125, LB = 0, UB = 1 xl(17274) = -0.0416667, LB = 0, UB = 1 xl(17402) = -0.0416667, LB = 0, UB = 1 xl(17428) = -0.0833333, LB = 0, UB = 1 xl(17525) = -0.0833333, LB = 0, UB = 1 xl(17529) = -0.0833333, LB = 0, UB = 1 xl(17738) = -0.0833333, LB = 0, UB = 1 xl(17757) = -0.104167, LB = 0, UB = 1 xl(17761) = -0.145833, LB = 0, UB = 1 xl(17783) = -0.0416667, LB = 0, UB = 1 xl(18021) = -0.0833333, LB = 0, UB = 1 xl(18131) = -0.0416667, LB = 0, UB = 1 xl(18229) = -0.0833333, LB = 0, UB = 1 xl(18230) = -0.0833333, LB = 0, UB = 1 xl(18232) = -0.0833333, LB = 0, UB = 1 xl(18233) = -0.0833333, LB = 0, UB = 1 xl(18310) = -0.0625, LB = 0, UB = 1 xl(18311) = -0.0625, LB = 0, UB = 1 xl(18453) = -0.0416667, LB = 0, UB = 1 xl(18464) = -0.145833, LB = 0, UB = 1 xl(18658) = -0.0833333, LB = 0, UB = 1 xl(18659) = -0.0833333, LB = 0, UB = 1 xl(18741) = -0.145833, LB = 0, UB = 1 xl(18744) = -0.145833, LB = 0, UB = 1 xl(18858) = -0.0833333, LB = 0, UB = 1 xl(18889) = -0.104167, LB = 0, UB = 1 xl(18890) = -0.104167, LB = 0, UB = 1 xl(18912) = -0.0416667, LB = 0, UB = 1 xl(19088) = -0.145833, LB = 0, UB = 1 xl(19269) = -0.145833, LB = 0, UB = 1 xl(19270) = -0.145833, LB = 0, UB = 1 xl(19271) = -0.145833, LB = 0, UB = 1 xl(19273) = -0.145833, LB = 0, UB = 1 xl(19559) = -0.0416667, LB = 0, UB = 1 xl(19560) = -0.0416667, LB = 0, UB = 1 xl(19575) = -0.0833333, LB = 0, UB = 1 xl(19868) = -0.145833, LB = 0, UB = 1 xl(20102) = -0.0625, LB = 0, UB = 1 xl(20447) = -0.0833333, LB = 0, UB = 1 yl(3203) = -0.0833333, LB = 0, UB = 1 yl(3386) = -0.0833333, LB = 0, UB = 1 yl(3426) = -0.104167, LB = 0, UB = 1 yl(3459) = -0.0416667, LB = 0, UB = 1 yl(3519) = -0.0416667, LB = 0, UB = 1 yl(3559) = -0.0833333, LB = 0, UB = 1 yl(3565) = -0.0833333, LB = 0, UB = 1 yl(3575) = -0.145833, LB = 0, UB = 1 yl(3595) = -0.0833333, LB = 0, UB = 1 yl(3600) = -0.0625, LB = 0, UB = 1 yl(3635) = -0.145833, LB = 0, UB = 1 yl(3637) = -0.0833333, LB = 0, UB = 1 yl(3660) = -0.0833333, LB = 0, UB = 1 yl(3700) = -0.104167, LB = 0, UB = 1 yl(3745) = -0.145833, LB = 0, UB = 1 yl(3774) = -0.0625, LB = 0, UB = 1 yl(3819) = -0.0416667, LB = 0, UB = 1 yl(3820) = -0.0416667, LB = 0, UB = 1 yl(3846) = -0.145833, LB = 0, UB = 1 yl(3911) = -0.0625, LB = 0, UB = 1 yl(3922) = -0.104167, LB = 0, UB = 1 yl(3971) = -0.0833333, LB = 0, UB = 1 yl(4004) = -0.0833333, LB = 0, UB = 1 yl(4011) = -0.104167, LB = 0, UB = 1 yl(4044) = -0.145833, LB = 0, UB = 1 yl(4069) = -0.0833333, LB = 0, UB = 1 yl(4082) = -0.0625, LB = 0, UB = 1 yl(4116) = -0.145833, LB = 0, UB = 1 yl(4157) = -0.0625, LB = 0, UB = 1 yl(4182) = -0.104167, LB = 0, UB = 1 yl(4249) = -0.145833, LB = 0, UB = 1 yl(4310) = -0.145833, LB = 0, UB = 1 ...
#CPLEXOptimizers#DecisionOptimization