Log file does not show the gap
AnsweredHello guys you can ignore my previous post, the time was for parameter setting. My question is now on this run why don't I get the percentile gap per time on the log? I see the below
Is there anything wrong so far? how could i get the percentile gap on the log file?
Kind regards
Iason
-
Another log that I get sometimes is
Iteration Objective Primal Inf. Dual Inf. Time
12317 9.4324848e+06 5.097459e+02 5.788624e+08 5s
16557 1.1036289e+07 4.582912e+02 4.533750e+08 11sHow could I get the gap in this case? could I still use the log file or apply callbacks?
Kind regards
Iason0 -
Hi Iason,
Your screenshot shows the part of the log where the root LP relaxation of your model is solved. The MIP gap calculations will become visible once the solver reaches the Branch and Cut phase. Please see the MIP Logging section of our reference manual for more details.
As noted in the log, the solver encountered numerical issues while solving the root relaxation. Please try using the BarHomogeneous parameter. Please see our Guidelines for Numerical Issues to read more about the causes of numerical instability in MIP models.
Regarding the log lines with "Waiting for other threads to finish...": At the default setting of the Method parameter, Gurobi will use the concurrent LP optimizer to solve the root relaxation of the model. In this mode, multiple algorithms are run on multiple threads simultaneously. To ensure deterministic behaviour, the optimizer will try to synchronize the work of these threads, which can sometimes lead to a waiting time. You can try avoiding this by setting the Method parameter to 0,1,2, or 3.
Cheers,
Simran0 -
Thank you Simran, so on the above cases to get the solution gap can I apply callbacks or the gap is not available before a specific point of the solution? I do not know if I can get the solution gap as time evolves from the moment that the solver starts working. This is what I would Ideally aim for.
Kind regards
Iason0 -
My ultimate goal is to produce a graph like that. Is this possible through the log file or callbacks? or that is not something that we can always obtain?
Kind regards
Iason0 -
The easiest way to plot a graph like that would be by using Gurobi's open source Python package gurobi-logtools. This package can be used to analyze multiple Gurobi log files easily. There is a Gurobi TechTalk demonstrating how to use it (YouTube) (scroll to at 22:05 minute mark to see how you can use "timelines" to plot the MIP gap over time).
0 -
Thank you Simran.
0 -
Hello Simranjit,
I have a similar situation. My model has been running for more than three days, and the log file below has not shown any Gap. Do you have any suggestions? How can I obtain feasible solutions more quickly? Thank you.
Best
Tzu-Wen Lin
Set parameter MIPGap to value 0.05
Gurobi Optimizer version 11.0.3 build v11.0.3rc0 (linux64)
CPU model: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz, instruction set [SSE2|AVX|AVX2]
Thread count: 44 physical cores, 88 logical processors, using up to 32 threads
Optimize a model with 990 rows, 5499 columns and 2934 nonzeros
Model has 2484 quadratic constraints
Model has 1467 general constraints
Variable types: 5499 continuous, 0 integer (0 binary)
Coefficient statistics:
Matrix range [1e+00, 5e+01]
QMatrix range [1e+00, 1e+00]
QLMatrix range [1e+00, 1e+00]
Objective range [1e+00, 5e+02]
Bounds range [1e-02, 1e+00]
RHS range [1e+00, 1e+00]
Presolve added 2793 rows and 24373 columns
Presolve time: 0.17s
Presolved: 22305 rows, 33274 columns, 136368 nonzeros
Presolved model has 1258 SOS constraint(s)
Presolved model has 4860 bilinear constraint(s)
Solving non-convex MIQCP
Variable types: 33274 continuous, 0 integer (0 binary)
Deterministic concurrent LP optimizer: primal and dual simplex
Showing primal log only...
Root simplex log...
Iteration Objective Primal Inf. Dual Inf. Time
24066 -8.4808753e+03 0.000000e+00 1.855195e+06 5s
31430 -8.2293042e+03 0.000000e+00 1.409889e+06 10s
39074 -8.1780585e+03 0.000000e+00 8.592917e+05 15s
42237 -8.1757029e+03 0.000000e+00 0.000000e+00 17s
Concurrent spin time: 3.94s (can be avoided by choosing Method=3)
Solved with dual simplex
Root simplex log...
Iteration Objective Primal Inf. Dual Inf. Time
38397 -8.1757029e+03 0.000000e+00 0.000000e+00 21s
Root relaxation: objective -8.175703e+03, 38397 iterations, 20.83 seconds (26.51 work units)
Nodes | Current Node | Objective Bounds | Work
Expl Unexpl | Obj Depth IntInf | Incumbent BestBd Gap | It/Node Time
0 0 -8175.7029 0 3618 - -8175.7029 - - 21s
0 0 -8175.7750 0 3634 - -8175.7750 - - 21s
0 0 -8175.7752 0 3634 - -8175.7752 - - 21s
0 0 -8259.0805 0 3666 - -8259.0805 - - 32s
0 0 -8334.0886 0 3866 - -8334.0886 - - 52s
0 0 -8338.4864 0 3827 - -8338.4864 - - 54s
0 0 -8338.4961 0 3829 - -8338.4961 - - 54s
0 0 -8342.8537 0 3768 - -8342.8537 - - 56s
0 0 -8358.9287 0 3807 - -8358.9287 - - 66s
0 0 -8366.0413 0 3764 - -8366.0413 - - 71s
0 0 -8369.4634 0 3749 - -8369.4634 - - 73s
0 0 -8379.1872 0 3742 - -8379.1872 - - 82s
0 0 -8379.1953 0 3737 - -8379.1953 - - 84s
0 0 -8379.7866 0 3743 - -8379.7866 - - 84s
0 0 -8384.4331 0 3746 - -8384.4331 - - 107s
0 2 -8384.4331 0 3746 - -8384.4331 - - 123s
7 16 -8384.6188 3 3640 - -8384.4808 - 134 125s
159 192 -8384.7557 7 3737 - -8384.6138 - 133 130s
1144 1884 infeasible 25 - -8384.6294 - 120 155s
1979 2415 -8386.1080 34 3678 - -8384.6294 - 151 253s
2514 3551 -8387.3815 44 3640 - -8384.6294 - 214 282s
8821 10479 -8405.2294 140 3833 - -8384.6294 - 280 421s
11438 13284 -8410.0201 179 3731 - -8384.6294 - 270 457s
174484 155093 infeasible 1925 - -8444.2174 - 277 7576s
177976 157843 -8560.6230 1926 3860 - -8444.2242 - 279 7663s
180908 162097 -8449.1055 47 6100 - -8444.2242 - 280 7746s
350197 326336 -8541.9644 1219 4381 - -8444.2242 - 226 12037s
354463 330435 -8542.3650 1269 4335 - -8444.2242 - 225 12090s
358653 334292 -8542.9391 1346 4213 - -8444.2242 - 224 12133s
362600 337918 -8543.0621 1699 3867 - -8444.2242 - 223 12240s
366297 340218 infeasible 1787 - -8444.2242 - 222 12341s
368697 343967 infeasible 1845 - -8444.2242 - 222 12506s
372555 348451 infeasible 1839 - -8444.2242 - 222 12587s
377162 352545 infeasible 1841 - -8444.2242 - 221 12701s
381368 357407 infeasible 1842 - -8444.6008 - 220 12800s
386400 361281 -8452.1546 50 6111 - -8444.6023 - 218 12840s
564460 529652 -8548.1093 1127 4515 - -8444.6023 - 217 18528s
581254 542334 infeasible 1205 - -8444.6023 - 216 18897s
581539 542424 infeasible 1210 - -8444.6023 - 217 18989s
581765 542493 -8645.1576 1211 4565 - -8444.6023 - 219 19082s
581966 542527 infeasible 1212 - -8444.6023 - 221 19161s
582149 542569 infeasible 1213 - -8444.6023 - 222 19248s
640722 595686 infeasible 139 - -8445.4591 - 528 32928s
643918 598835 infeasible 182 - -8445.4591 - 544 33518s
647522 601839 -9784.2750 218 6470 - -8445.6937 - 559 34095s
679065 629752 infeasible 138 - -8446.0994 - 676 40102s
761192 703152 -8993.7225 83 5480 - -8446.4289 - 943 55580s
765203 706349 -9044.6359 101 5645 - -8446.4289 - 955 56221s
768656 709380 -9090.8193 123 5250 - -8446.4289 - 967 56863s
772105 712729 -9137.0216 149 5810 - -8446.4289 - 978 57506s
775910 715325 infeasible 153 - -8446.4289 - 989 58115s
779002 718354 -9218.6744 173 5490 - -8446.4289 - 1000 58759s
822173 756766 -8991.1340 75 5363 - -8446.6137 - 1124 66738s
836066 770320 -9039.3539 64 5803 - -8446.8607 - 1159 69096s
839992 773241 infeasible 133 - -8446.9457 - 1167 69660s
843493 775709 -8548.7845 38 6314 - -8446.9457 - 1174 70235s
846308 778374 -8747.7662 51 5702 - -8446.9457 - 1182 70798s
1706559 1556984 -9196.8677 97 5956 - -8450.0525 - 1944 203693s
1709886 1559680 -9235.9346 107 5976 - -8450.0525 - 1946 204207s
1766297 1609796 -9327.4563 192 5306 - -8450.1212 - 1971 213190s
1768940 1613335 -9360.2807 204 5389 - -8450.1212 - 1974 213755s
1772699 1617734 infeasible 256 - -8450.2332 - 1975 214289s
1805075 1644319 -9545.4296 359 4780 - -8450.2332 - 1987 218847s
1806891 1648567 infeasible 547 - -8450.2697 - 1987 219428s
1858745 1691641 -9083.0365 102 5490 - -8450.3632 - 2007 227017s
1858848 1694793 -9084.3455 102 5403 - -8450.3632 - 2007 227557s
1862262 1697980 -9189.5036 130 5196 - -8450.3632 - 2008 228078s
1922767 1753684 -9144.3969 119 5913 - -8450.5025 - 2027 236460s
1926905 1756994 infeasible 157 - -8450.5025 - 2028 237030s
1930554 1760003 -9280.2288 193 5842 - -8450.5025 - 2027 237550s
2033464 1852762 -9293.7797 131 6046 - -8450.7482 - 2067 254898s
2036577 1856304 -9457.0170 204 5814 - -8450.8139 - 2069 255533s
2040381 1859862 -8519.5536 43 6298 - -8450.8139 - 2071 256135s
2075022 1891002 -9128.2829 128 5469 - -8450.8139 - 2086 262173s
2079038 1894366 -9279.9902 136 5730 - -8450.8139 - 2087 262807s
2082866 1897360 infeasible 142 - -8450.9176 - 2089 263385s
2086150 1901538 -8510.6212 51 5959 - -8450.9176 - 2091 263989s
2090630 1905509 -8812.4816 63 5852 - -8450.9176 - 2092 264522s
2095015 1909730 -8921.5356 72 5520 - -8450.9176 - 2092 265054s
2153112 1962501 -9263.9758 155 5054 - -8451.0237 - 2106 274448s
2187831 1993545 -9227.3955 137 5534 - -8451.0341 - 2114 279285s
2191174 1996774 -9289.2116 158 5685 - -8451.0341 - 2115 279780s
2194652 2000418 infeasible 217 - -8451.0341 - 2116 280279s
2198522 2003356 -9534.8298 559 4355 - -8451.1273 - 2116 280777s
2201811 2007470 -8675.0219 41 5885 - -8451.1273 - 2116 281291s
2206255 2010479 -8826.6248 57 5607 - -8451.1273 - 2115 281805s
2209831 2012635 -9074.7331 64 5707 - -8451.1273 - 2114 282270s
2296946 2093938 -9124.9008 102 5384 - -8451.4006 - 2138 297084s
2301684 2097713 -9161.0713 117 5666 - -8451.4006 - 2138 297562s
2305866 2101430 -9220.9997 135 5324 - -8451.4006 - 2138 298038s
2309997 2104876 -9331.6925 156 5913 - -8451.4006 - 2138 298493s
2313943 2107042 infeasible 241 - -8451.4523 - 2139 298936s
2316535 2108968 -8720.8740 47 5783 - -8451.4523 - 2140 299435s
2328238 2117877 -9186.3613 135 5481 - -8451.4523 - 2145 301897s
2436383 2220548 -8777.7307 53 5708 - -8451.7329 - 2169 319054s
2440765 2223982 -8910.6156 64 5546 - -8451.7329 - 2169 319570s0 -
Hi Tzu-Wen Lin,
From the log, we can see that the solver could not find any feasible solutions for your model. Do you expect this model to have a feasible solution?
In general, you can use the parameters that let the solver focus on finding feasible solutions, such as MIPFocus=1, RINS and Heuristics. For more details, please see the parameter guidelines for MIP models.
You can also try running the No-relaxation heuristic (by setting the parameter NoRelHeurTime). This heuristic is usually quite good in finding feasible solutions.
Providing a feasible start solution to the model can also speed up the solution time. Please see How do I use MIP starts?. You can use your knowledge of the model or a custom heuristic to create a full or partial starting solution. To get a feasible solution, you can also try setting the parameter SolutionLimit=1 and solving the model after zeroing out the objective function (an easier model).
Other than the parameters, please ensure that you give tight bounds on variables participating in non-linear terms in your model.
Best regards,
Simran0
Please sign in to leave a comment.
Comments
8 comments