What do the following things mean in Gurobi output?
AnsweredHello, I am using Gurobi in Julia to solve a large MIP. When I run my program, Gurobi starts printing out some information shown in the two images attached to this question. I would very much like to understand each thing it is doing. I have taken courses in linear and integer programming, but I am still confused about several of the things it is outputting. Clarification on even just some of the things would be much appreciated if there are too many questions.
It first does the stuff in the first image shown here:
My questions regarding this first image are circled in red. Namely, could someone please tell me what the following mean (listed in order of the circles):
- Presolving (I am guessing this means just getting rid of redundant constraints?)
- Root barrier logs
- Ordering time
- Barrier statistics
- Residual
- Compl
- Root simplex log
- Primal Inf
- Dual Inf
Later on, the program then Gurobi then prints out the following:
Again, the stuff I am confused about are circled in red. Namely, could someone please tell me what the following mean:
- Concurrent spin time
- Solved with dual simplex (I guess this just means it solved the linear relaxation with the dual simplex method? If someone can confirm this that would be great though)
- Work units
- All the things in the header of the table it prints out
- What the H's mean on the side of the table
I realize there are many questions included in this post, but if someone could answer them or even just some of them that would be very much appreciated! Thank you!
-
Hi Bobak,
There is a detailed section named Logging in Gurobi Reference Manual that explains the information contained in the log in detail. You should be able to find the answers to your questions in:
Please have a look at the sections referenced above and then let us know of any remaining questions you might have.
Best regards,
Maliheh
0 -
Hi Maliheh,
Thank you for the response. The links cleared up most things. I still however have one question. In the "Objective Bounds" section in the second image, does the incumbent value represent the value of the best feasible solution to the original MIP obtained? Or does it means the objective value of a relaxation of the original MIP that has been obtained? Furthermore, does any node in the region the branch-and-cut algorithm has cut the solution space down to have an objective value between the Incumbent and Best Bound values?
Thank you!
0 -
Hi Bobak,
The incumbent is the best feasible solution found so far for the original MIP problem. In a minimization problem, the incumbent and the best bound at any time during the search represent, in respective terms, the upper bound and the lower bound on the optimal objective value. For example, if the incumbent is \(y\) and the best bound is \(x\), this implies that the optimal objective value cannot be greater than \(y\) and cannot be lower than \(x\).
Best regards,
Maliheh
0 -
Thank you Maliheh! I have one further question. In the output of the second image, we see that there is sometimes an H on the left-hand side. From the links you sent me, I gather that means a heuristic was applied in that step. Is it possible to program it so that Gurobi tells me what heuristic it used? It could be quite helpful.
Thanks,
Bobak
0 -
Hi Maliheh,
I don't know if you saw my latest question, but if you could answer it that would be very helpful! Thanks :)
-Bobak
0 -
Hi Bobak,
Sorry, I missed this.
No, Gurobi does not provide information in the log on which heuristic is used with one exception. If you set the parameter NoRelHeurTime to a non-zero value, the Gurobi Optimizer utilizes a heuristic named NoRel (no relaxation) before solving the root node. This heuristic is effective in finding high-quality feasible solutions especially on large MIPs where the root relaxation is computationally expensive.
Best regards,
Maliheh
0
Please sign in to leave a comment.
Comments
6 comments