I have a MIP which I know the solution almost for certain. I want to use gurobi to prove that the true solution (even if it is not the one I provide) shall not lie more than 0.5% deviated from the solution I gave. I believe that simply keeping the cutting without branching would possibly save much more time. Do you know a way that I could simply do cutting without branching in gurobi? Here's the code performance:
Changed value of parameter LogFile to Prev: gurobi.log Default: Changed value of parameter MIPFocus to 3 Prev: 0 Min: 0 Max: 3 Default: 0 Changed value of parameter Cuts to 3 Prev: -1 Min: -1 Max: 3 Default: -1 Optimize a model with 1794 rows, 673 columns and 4180 nonzeros Found heuristic solution: objective -22.8549 Presolve removed 18 rows and 17 columns Presolve time: 0.01s Presolved: 1776 rows, 656 columns, 4464 nonzeros
Loaded MIP start with objective -342.641
Variable types: 592 continuous, 64 integer (64 binary) Presolved: 1776 rows, 656 columns, 4464 nonzeros
Root relaxation: objective -6.775689e+02, 682 iterations, 0.02 seconds
Nodes | Current Node | Objective Bounds | Work
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
0 0 -677.56892 0 64 -342.64109 -677.56892 97.7% - 0s
0 0 -666.45290 0 72 -342.64109 -666.45290 94.5% - 0s
0 0 -658.68050 0 72 -342.64109 -658.68050 92.2% - 1s
0 0 -540.92023 0 72 -342.64109 -540.92023 57.9% - 3s
0 0 -503.36031 0 72 -342.64109 -503.36031 46.9% - 4s
0 0 -485.13025 0 72 -342.64109 -485.13025 41.6% - 6s
0 0 -472.73790 0 72 -342.64109 -472.73790 38.0% - 8s
0 0 -461.23185 0 72 -342.64109 -461.23185 34.6% - 9s
0 0 -453.99476 0 72 -342.64109 -453.99476 32.5% - 10s
0 0 -452.23014 0 72 -342.64109 -452.23014 32.0% - 10s
0 3 -452.23014 0 72 -342.64109 -452.23014 32.0% - 11s
642 586 -397.07656 12 54 -342.64109 -429.76289 25.4% 120 15s
1425 1290 -397.34606 11 60 -342.64109 -422.53417 23.3% 114 20s
1716 1553 -382.83438 18 72 -342.64109 -420.42709 22.7% 111 25s
1727 1560 -376.17473 16 72 -342.64109 -420.42709 22.7% 110 30s
1733 1564 -410.28764 10 72 -342.64109 -420.42709 22.7% 110 35s
1744 1571 -382.83438 18 72 -342.64109 -420.42709 22.7% 109 40s
1750 1577 -412.59771 12 69 -342.64109 -416.84728 21.7% 113 45s
1817 1602 -380.32997 19 60 -342.64109 -404.73090 18.1% 120 50s
2618 2045 -375.99924 18 62 -342.64109 -391.32863 14.2% 126 55s
3159 2315 -369.40052 22 59 -342.64109 -386.33088 12.8% 127 60s
3808 2595 -362.27693 20 60 -342.64109 -382.29310 11.6% 127 65s
4503 2903 -350.90325 24 54 -342.64109 -379.52932 10.8% 126 71s
4895 3078 -349.90847 23 55 -342.64109 -378.33598 10.4% 126 78s
5339 3242 -363.26836 21 59 -342.64109 -376.77299 10.0% 126 80s
....
To avoid branching in Gurobi (Cplex), you can set the parameter NodeLimit (NodLim in Cplex) to 1. To do what you ultimately want, simply verify that your solution is within 0.5% or optimal, you can load the known solution as an incument (mip start, as you are already doing) set the MIPFocus parameter to 3 (move bound) and set the MIPGap paramter to 0.005, which will make Gurobi (cplex) stop when the conditions you want are found.
If you are confident that your solution is better than anything the solver will find, then you might also turn off heuristics, with the Heuristics parameter. Gurobi will typically take around 5% of the time to look for better solutions, which won't help the bound unless any solution it finds is better than the incumbent you provided. In Cplex, the parameter is HeurFreq, which you set to -1 to turn off.
You might also turning up presolve which can improve the bound, especially at the root. Try turning up Presolve to 2, PreDual to 2. There's also a Symmetry paramter that does additional reductions at the root. Usually the default settings are best, but in your case, they are probably worth at least trying.
For CPLEX only, there is a Probing parameter, which you can set to 3. This will on average, slow solution time down, but might also improve your bound at the root.