Analysis of Benders Decomposition Cuts over Gurobi Logs
Hi scientists,
While I was trying to understand the internal logic of using the callback method to generate cuts for a Facility Location Problem—without relying on Gomory cuts or heuristic methods in Gurobi—I noticed that during node exploration, Gurobi sometimes refrains from accepting a feasible solution as an incumbent, even when the conditions for acceptance appear to be satisfied. For example, based on the log, although the current feasible solution of the RMP was 144.451486..., which could have been accepted, Gurobi did not update the incumbent accordingly.
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 144.45148664181824 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.2849998474121094 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.13096011223374 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: -0.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 0.999999999999998, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.3189997673034668 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 131.11761438499602 on node 32.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 125.96328569333687
{0: 1.0, 1: -0.0, 2: -9.43689570931383e-16, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.3519999980926514 seconds
As it appears above, the log shows on node 32, the previously found 144.45 did not approve as a incumbent and the OBJBST is still 1e+10! Please also note that, Gurobi suddenly approves the 135.67 as the incumbent, on node 35 as log below:
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 135.67117281466514 on node 35.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 125.96328569333687
{0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.3829998970031738 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
* 35 18 9 135.6711728 125.96329 7.16% 1.8 1s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 135.6682045471666 on node 40.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 126.59926389502029
{0: 1.0, 1: 0.9999999999999969, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.437999963760376 seconds
My question is why, Gurobi did not approve the incumbent from earlier! the whole log is also embedded for your review.
Set parameter LazyConstraints to value 1
Set parameter Presolve to value 0
Set parameter Heuristics to value 0
Set parameter Cuts to value 0
Set parameter MIPFocus to value 1
Set parameter PrePasses to value 0
Set parameter Method to value 1
Set parameter Threads to value 1
Gurobi Optimizer version 12.0.0 build v12.0.0rc1 (win64 - Windows 11.0 (26100.2))
CPU model: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, instruction set [SSE2|AVX|AVX2|AVX512]
Thread count: 4 physical cores, 8 logical processors, using up to 1 threads
Non-default parameters:
Method 1
Heuristics 0
MIPFocus 1
Cuts 0
PrePasses 0
Presolve 0
Threads 1
LazyConstraints 1
Optimize a model with 0 rows, 11 columns and 0 nonzeros
Model fingerprint: 0xce252195
Variable types: 1 continuous, 10 integer (10 binary)
Coefficient statistics:
Matrix range [0e+00, 0e+00]
Objective range [1e+00, 1e+00]
Bounds range [1e+00, 1e+00]
RHS range [0e+00, 0e+00]
Variable types: 1 continuous, 10 integer (10 binary)
Root relaxation: objective 0.000000e+00, 0 iterations, 0.00 seconds (0.00 work units)
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 0.0 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 0.0
{0: -0.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: -0.0, 5: -0.0, 6: -0.0, 7: -0.0, 8: -0.0, 9: -0.0}
Dual is Unbounded
Runtime so far is 0.08799982070922852 seconds
------------------------------------------------------------------------------------------------------------------
Feasibility Cut added...run
Nodes | Current Node | Objective Bounds | Work
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
0 0 0.00000 0 - - 0.00000 - - 0s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 0.0 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 0.0
{0: 1.0, 1: 1.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: -0.0, 6: 0.999999999999999, 7: 1.0, 8: -0.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.14599990844726562 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
0 0 0.00000 0 - - 0.00000 - - 0s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 120.12547464337797 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 120.12547464337797
{0: 1.0, 1: -0.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 0.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.19299983978271484 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
0 0 120.12547 0 - - 120.12547 - - 0s
0 0 122.04001 0 2 - 122.04001 - - 0s
0 0 122.04001 0 2 - 122.04001 - - 0s
0 2 122.08996 0 2 - 122.08996 - - 0s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 125.34559662247369 on node 6.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.37393421562635
{0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -1.0269562977782698e-15}
Dual is Optimal
Runtime so far is 0.24199986457824707 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 127.2356433585708 on node 6.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.37393421562635
{0: 1.0, 1: -9.575673587391975e-16, 2: 1.0, 3: 1.0, 4: 1.0, 5: -0.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.29199981689453125 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 136.4504441285112 on node 6.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.37393421562635
{0: 1.0, 1: -9.992007221626409e-16, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: -0.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.3379998207092285 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 124.08471180455483 on node 8.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 0.9999999999999989, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.3879997730255127 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 129.39404203485572 on node 10.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: -0.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: -8.881784197001252e-16, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.437999963760376 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 131.11903031876014 on node 11.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 0.9999999999999991, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.5339999198913574 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 132.14745109425 on node 12.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: -0.0, 7: 1.0, 8: 0.9999999999999989, 9: 1.0}
Dual is Optimal
Runtime so far is 0.5869998931884766 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 137.76606345409004 on node 13.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: -0.0, 6: -0.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.6399998664855957 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.3958845147267 on node 13.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -9.992007221626409e-16, 5: -0.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.6909999847412109 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 145.68691424480718 on node 14.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.742999792098999 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 147.6106852846671 on node 14.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 123.88188441795023
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: -0.0, 9: 1.0}
Dual is Optimal
Runtime so far is 0.8179998397827148 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 129.22621566639398 on node 20.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.8979997634887695 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.0218599286999 on node 21.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.9499998092651367 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 139.1368940330248 on node 21.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: -0.0, 9: -0.0}
Dual is Optimal
Runtime so far is 0.9829998016357422 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 136.9117641426832 on node 23.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: 1.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.0329999923706055 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 137.87719177831107 on node 23.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: 0.999999999999999, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.0689997673034668 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 150.81158320672756 on node 23.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.08471180455483
{0: 1.0, 1: 1.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: 1.0, 8: -0.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.122999906539917 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 134.45148664181824 on node 28.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: 0.9999999999999988, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: -0.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.1719999313354492 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 137.22127795507953 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: -0.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.2159998416900635 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.05964176767526 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: 0.9999999999999991, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: -0.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.248999834060669 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 144.45148664181824 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.2849998474121094 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.13096011223374 on node 30.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 124.88857844897038
{0: -0.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 0.999999999999998, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.3189997673034668 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 131.11761438499602 on node 32.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 125.96328569333687
{0: 1.0, 1: -0.0, 2: -9.43689570931383e-16, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.3519999980926514 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 135.67117281466514 on node 35.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 125.96328569333687
{0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.3829998970031738 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
* 35 18 9 135.6711728 125.96329 7.16% 1.8 1s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 135.6682045471666 on node 40.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 126.59926389502029
{0: 1.0, 1: 0.9999999999999969, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.437999963760376 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 132.117614384996 on node 41.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 126.59926389502029
{0: 1.0, 1: -1.1102230246251565e-15, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.4759998321533203 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 134.85765787012588 on node 42.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 126.59926389502029
{0: 1.0, 1: 0.9999999999999996, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.5079998970031738 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 132.74545459452352 on node 42.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 126.59926389502029
{0: 1.0, 1: -9.992007221626409e-16, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.5489997863769531 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 130.25640703676345 on node 44.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 127.23564135857079
{0: 1.0, 1: -0.0, 2: 0.9999999999999989, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.5829999446868896 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 132.60024249779602 on node 44.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 127.23564135857079
{0: 1.0, 1: -0.0, 2: -9.992007221626409e-16, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.5999999046325684 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 133.7145251974103 on node 45.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 127.23564135857079
{0: 1.0, 1: 1.0, 2: -0.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 0.9999999999999986, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.6359999179840088 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 134.34762766341845 on node 47.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 127.23564135857079
{0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: -0.0, 5: 0.9999999999999988, 6: -0.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.676999807357788 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 134.70015512241656 on node 50.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 129.22621566639398
{0: 1.0, 1: 0.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: -0.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 1.0}
Dual is Optimal
Runtime so far is 1.7089998722076416 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 133.85765787012593 on node 50.0 with incumbent[OBJBST] 135.67117281466514 and best Lower bound [OBJBND] (Relaxed from integer) of 129.22621566639398
{0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.748999834060669 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
* 50 11 8 133.8576579 129.39404 3.33% 2.0 1s
RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 132.111434090557 on node 52.0 with incumbent[OBJBST] 133.85765787012593 and best Lower bound [OBJBND] (Relaxed from integer) of 130.25640703676348
{0: 1.0, 1: -0.0, 2: 0.999999999999999, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0}
Dual is Optimal
Runtime so far is 1.7879998683929443 seconds
------------------------------------------------------------------------------------------------------------------
Optimality Cut added...run
* 52 3 5 132.1114341 130.95039 0.88% 2.0 1s
Cutting planes:
Lazy constraints: 36
Explored 56 nodes (118 simplex iterations) in 1.79 seconds (0.00 work units)
Thread count was 1 (of 8 available processors)
Solution count 3: 132.111 133.858 135.671
Optimal solution found (tolerance 1.00e-04)
Best objective 1.321114340906e+02, best bound 1.321114340906e+02, gap 0.0000%
User-callback calls 253, time in user-callback 1.76 sec
132.111434090557
-
Additionally, there is another issue: for mid-sized instances, the callback-based Benders implementation tends to produce the same optimal solution as Gurobi's default solver. However, as the problem size increases, the solution obtained via the Benders decomposition approach no longer appears to be optimal.
Gurobi Default Optimizer:
Gurobi Optimizer version 12.0.0 build v12.0.0rc1 (win64 - Windows 11.0 (26100.2)) CPU model: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, instruction set [SSE2|AVX|AVX2|AVX512] Thread count: 4 physical cores, 8 logical processors, using up to 8 threads Optimize a model with 32 rows, 260 columns and 500 nonzeros Model fingerprint: 0x69f6e745 Variable types: 240 continuous, 20 integer (20 binary) Coefficient statistics: Matrix range [1e+00, 8e+02] Objective range [1e-02, 2e+01] Bounds range [1e+00, 1e+00] RHS range [3e+02, 4e+02] Found heuristic solution: objective 299.9173715 Presolve time: 0.00s Presolved: 32 rows, 260 columns, 500 nonzeros Variable types: 240 continuous, 20 integer (20 binary) Root relaxation: objective 1.231916e+02, 39 iterations, 0.00 seconds (0.00 work units) Nodes | Current Node | Objective Bounds | Work Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time 0 0 123.19164 0 11 299.91737 123.19164 58.9% - 0s H 0 0 186.7327207 123.19164 34.0% - 0s H 0 0 179.2435777 123.19164 31.3% - 0s H 0 0 178.9115514 123.19164 31.1% - 0s H 0 0 175.8441384 123.19164 29.9% - 0s H 0 0 154.3892051 123.19164 20.2% - 0s 0 0 130.64139 0 8 154.38921 130.64139 15.4% - 0s H 0 0 145.9739407 131.23080 10.1% - 0s H 0 0 143.9586052 131.23080 8.84% - 0s 0 0 131.23080 0 8 143.95861 131.23080 8.84% - 0s H 0 0 143.3796032 131.23080 8.47% - 0s 0 0 132.48633 0 9 143.37960 132.48633 7.60% - 0s 0 0 132.81519 0 8 143.37960 132.81519 7.37% - 0s 0 0 132.81519 0 8 143.37960 132.81519 7.37% - 0s H 0 0 143.0090443 133.39731 6.72% - 0s H 0 0 142.2598476 133.39731 6.23% - 0s H 0 0 141.3734652 133.39731 5.64% - 0s 0 0 133.39731 0 10 141.37347 133.39731 5.64% - 0s H 0 0 139.0271809 133.47309 3.99% - 0s 0 0 133.47309 0 10 139.02718 133.47309 3.99% - 0s H 0 0 138.5481719 133.47309 3.66% - 0s H 0 0 138.3930492 133.47309 3.56% - 0s 0 0 133.96601 0 6 138.39305 133.96601 3.20% - 0s H 0 0 136.7862064 133.97754 2.05% - 0s 0 0 133.97754 0 7 136.78621 133.97754 2.05% - 0s 0 0 134.19759 0 8 136.78621 134.19759 1.89% - 0s H 0 0 135.8489614 134.19759 1.22% - 0s 0 0 134.26327 0 5 135.84896 134.26327 1.17% - 0s 0 0 134.26335 0 5 135.84896 134.26335 1.17% - 0s 0 0 134.26714 0 4 135.84896 134.26714 1.16% - 0s 0 0 134.26842 0 5 135.84896 134.26842 1.16% - 0s 0 0 134.27552 0 9 135.84896 134.27552 1.16% - 0s 0 0 134.27701 0 10 135.84896 134.27701 1.16% - 0s 0 0 134.27986 0 5 135.84896 134.27986 1.16% - 0s 0 0 134.27986 0 5 135.84896 134.27986 1.16% - 0s H 0 0 135.6422071 134.27986 1.00% - 0s 0 0 134.27986 0 10 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 9 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 10 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 9 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 7 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 9 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 10 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 4 135.64221 134.27986 1.00% - 0s 0 0 134.27986 0 5 135.64221 134.27986 1.00% - 0s 0 0 134.28242 0 5 135.64221 134.28242 1.00% - 0s 0 0 134.28280 0 5 135.64221 134.28280 1.00% - 0s 0 0 134.28984 0 5 135.64221 134.28984 1.00% - 0s 0 0 134.29399 0 5 135.64221 134.29399 0.99% - 0s 0 2 134.29399 0 5 135.64221 134.29399 0.99% - 0s Cutting planes: Implied bound: 21 MIR: 12 Flow cover: 1 Explored 81 nodes (957 simplex iterations) in 0.15 seconds (0.03 work units) Thread count was 8 (of 8 available processors) Solution count 10: 135.642 135.849 136.786 ... 143.959 Optimal solution found (tolerance 1.00e-04) Best objective 1.356422071188e+02, best bound 1.356422071188e+02, gap 0.0000% Objective Value: 135.64220711876513 x[0,1]: 74.0 x[0,3]: 295.0 x[0,4]: 362.0 x[5,5]: 400.0 x[5,6]: 391.0 x[6,2]: 362.0 x[6,8]: 361.0 x[8,0]: 150.0 x[8,1]: 241.0 x[8,10]: 309.0 x[14,2]: 7.0 x[14,3]: 19.0 x[14,9]: 367.0 x[14,11]: 366.0 x[18,0]: 189.0 x[18,7]: 376.0 y[0]: 1.0 y[5]: 1.0 y[6]: 1.0 y[8]: 1.0 y[14]: 1.0 y[18]: 1.0 Utilization of 0 is 1.0 Utilization of 5 is 0.9912280701754386 Utilization of 6 is 1.0 Utilization of 8 is 1.0 Utilization of 14 is 1.0 Utilization of 18 is 0.7395287958115184
Objective Value by Gurobi default solver:
135.64220711876513
Benders Solution below:
Objective Value found by decompistion :142.47939808089987
Set parameter LazyConstraints to value 1 Set parameter Presolve to value 0 Set parameter Heuristics to value 0 Set parameter Cuts to value 0 Set parameter MIPFocus to value 1 Set parameter PrePasses to value 0 Set parameter Method to value 1 Set parameter Threads to value 1 Gurobi Optimizer version 12.0.0 build v12.0.0rc1 (win64 - Windows 11.0 (26100.2)) CPU model: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz, instruction set [SSE2|AVX|AVX2|AVX512] Thread count: 4 physical cores, 8 logical processors, using up to 1 threads Non-default parameters: Method 1 Heuristics 0 MIPFocus 1 Cuts 0 PrePasses 0 Presolve 0 Threads 1 LazyConstraints 1 Optimize a model with 0 rows, 21 columns and 0 nonzeros Model fingerprint: 0x229a61d0 Variable types: 1 continuous, 20 integer (20 binary) Coefficient statistics: Matrix range [0e+00, 0e+00] Objective range [1e+00, 1e+00] Bounds range [1e+00, 1e+00] RHS range [0e+00, 0e+00] Variable types: 1 continuous, 20 integer (20 binary) Root relaxation: objective 0.000000e+00, 0 iterations, 0.00 seconds (0.00 work units) RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 0.0 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 0.0 {0: -0.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: -0.0, 5: -0.0, 6: -0.0, 7: -0.0, 8: -0.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Unbounded Runtime so far is 0.0839998722076416 seconds ------------------------------------------------------------------------------------------------------------------ Feasibility Cut added...run Nodes | Current Node | Objective Bounds | Work Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time 0 0 0.00000 0 - - 0.00000 - - 0s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 0.0 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 0.0 {0: 1.0, 1: 1.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: -0.0, 6: 1.0, 7: 1.0, 8: -0.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.17699980735778809 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run 0 0 0.00000 0 - - 0.00000 - - 0s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 130.48460278915033 on node 0.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.48460278915033 {0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.25099992752075195 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run 0 0 130.48460 0 - - 130.48460 - - 0s 0 0 130.56208 0 2 - 130.56208 - - 0s 0 0 130.56208 0 2 - 130.56208 - - 0s 0 2 130.59101 0 2 - 130.59101 - - 0s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 130.80390567619747 on node 7.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.80390567619747 {0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.3509998321533203 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 141.03986767585235 on node 10.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.80390567619747 {0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.434999942779541 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 144.32926615224528 on node 10.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.80390567619747 {0: 1.0, 1: 1.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.5189998149871826 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 144.92151187856174 on node 10.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.80390567619747 {0: 1.0, 1: -0.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: -0.0, 8: 1.0, 9: 0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.6029999256134033 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 161.060421428577 on node 10.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 130.80390567619747 {0: 1.0, 1: 1.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: -0.0, 7: 1.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.6840000152587891 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 145.4146384151513 on node 12.0 with incumbent[OBJBST] 1e+100 and best Lower bound [OBJBND] (Relaxed from integer) of 131.0897745172293 {0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.7699999809265137 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run * 12 11 9 145.4146384 131.08977 9.85% 1.4 0s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 139.37289017331398 on node 21.0 with incumbent[OBJBST] 145.4146384151513 and best Lower bound [OBJBND] (Relaxed from integer) of 133.91648730156294 {0: 1.0, 1: -0.0, 2: 2.220446049250313e-16, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.8499999046325684 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 144.7109999923649 on node 22.0 with incumbent[OBJBST] 145.4146384151513 and best Lower bound [OBJBND] (Relaxed from integer) of 133.91648730156294 {0: 1.0, 1: 1.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 0.9399998188018799 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.9583166572272 on node 22.0 with incumbent[OBJBST] 145.4146384151513 and best Lower bound [OBJBND] (Relaxed from integer) of 133.91648730156294 {0: 1.0, 1: -1.1102230246251565e-16, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.0439999103546143 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run * 22 10 7 143.9583167 133.91649 6.98% 1.4 1s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 142.36374662184602 on node 30.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 135.05149387715755 {0: -0.0, 1: -0.0, 2: 1.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.119999885559082 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.23199818960248 on node 33.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 135.05149387715755 {0: -0.0, 1: 1.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.2170000076293945 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 140.94770317064837 on node 35.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 135.21916937474504 {0: -0.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.3009998798370361 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 137.6129976055489 on node 37.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 136.20189387551085 {0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.3859999179840088 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.77058077400562 on node 39.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 136.716115599972 {0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: 1.0, 5: -0.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.4789998531341553 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 138.2000270952038 on node 39.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 136.716115599972 {0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -8.326672684688674e-17, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.5719997882843018 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 140.74086132050925 on node 39.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 136.716115599972 {0: 1.0, 1: -0.0, 2: 0.0, 3: -0.0, 4: 1.0, 5: -0.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.6509997844696045 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 137.84300144273635 on node 42.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.6129976055489 {0: 1.0, 1: -0.0, 2: 1.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 3.885780586188048e-16, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.7359998226165771 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 142.82010573497587 on node 43.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.6129976055489 {0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0000000000000107, 7: 1.0, 8: 1.0, 9: -1.071365218763276e-14, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.819000005722046 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 139.9231229125307 on node 45.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.6129976055489 {0: 1.0, 1: -0.0, 2: -0.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 1.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 1.9169998168945312 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.88946615495615 on node 48.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.6129976055489 {0: 1.0, 1: 1.0, 2: -0.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.0119998455047607 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 139.2000270952038 on node 49.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.84300144273635 {0: 1.0, 1: 1.0, 2: -0.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.0859999656677246 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 139.61719900865603 on node 50.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.84300144273635 {0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 1.0000000000000038, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.178999900817871 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.82519920515358 on node 50.0 with incumbent[OBJBST] 143.9583166572272 and best Lower bound [OBJBND] (Relaxed from integer) of 137.84300144273635 {0: 1.0, 1: -0.0, 2: 1.0, 3: -0.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: -0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.251999855041504 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run * 50 16 6 143.8251992 137.84300 4.16% 2.2 2s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 143.15334072318177 on node 51.0 with incumbent[OBJBST] 143.82519920515358 and best Lower bound [OBJBND] (Relaxed from integer) of 137.84300144273635 {0: 1.0, 1: -0.0, 2: 1.0, 3: 1.0, 4: -0.0, 5: 1.0, 6: 1.0, 7: -0.0, 8: 1.0, 9: 0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.3469998836517334 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run * 51 14 6 143.1533407 138.05552 3.56% 2.2 2s RMP is CalledBack with FEASIBLE (FOR MASTER) objective value of 142.47939808089987 on node 53.0 with incumbent[OBJBST] 143.15334072318177 and best Lower bound [OBJBND] (Relaxed from integer) of 138.2000270952038 {0: 1.0, 1: -0.0, 2: -0.0, 3: -0.0, 4: 1.0, 5: 1.0, 6: 1.0, 7: 1.0, 8: 1.0, 9: 0.0, 10: -0.0, 11: -0.0, 12: -0.0, 13: -0.0, 14: -0.0, 15: -0.0, 16: -0.0, 17: -0.0, 18: -0.0, 19: -0.0} Dual is Optimal Runtime so far is 2.442999839782715 seconds ------------------------------------------------------------------------------------------------------------------ Optimality Cut added...run * 53 11 5 142.4793981 138.72768 2.63% 2.3 2s Cutting planes: Lazy constraints: 25 Explored 65 nodes (133 simplex iterations) in 2.44 seconds (0.00 work units) Thread count was 1 (of 8 available processors) Solution count 5: 142.479 143.153 143.825 ... 145.415 Optimal solution found (tolerance 1.00e-04) Best objective 1.424793980809e+02, best bound 1.424793980809e+02, gap 0.0000% User-callback calls 248, time in user-callback 2.43 sec 142.47939808089987
0
Please sign in to leave a comment.
Comments
1 comment