ObjBound - Barrier with no crossover
AnsweredHi,
I'm solving an LP model with the following parameters:
m.Params.Method = 2 # barrier
m.Params.Crossover = 0 # no crossover
and I would like to get the objBound after a limited number of iterations. If I don't disable crossover, I can access the attribute. But if I do, I get
AttributeError: Unable to retrieve attribute 'objBound'
Is there a way to get the attribute in both cases?
In general, should I expect the objBound to be available for any kind of problem (LP, MIP, etc.)?
Thanks!
Felipe
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
Hi Felipe,
The ObjBound attribute is only available for MIPs and nonconvex (MI)QPs. Are you sure that you can access the ObjBound attribute when solving an LP? If yes, could you post the LP file? You can use the write() function to write an LP file. Uploading files in the Community Forum is explained in Posting to the Community Forum.
Best regards,
Jaromił0 -
Hi Jaromił, thanks for your answer.
It seems that for LP models, the ObjBound attribute is available when optimality is proven. Of course in this case it equals ObjVal, and is not very informative.
In my toy example (Gurobi diet problem), when I limited Barrier iterations, optimality was achieved by crossover. Then, ObjBound is available and equals ObjVal. On the other hand, when I turn off crossover, the solution is not optimal and I get the error when accessing the ObjBound attribute.
Curiously, if I turn off crossover and don't limit barrier iterations I get the optimal value, but I can't access ObjBound anyway. I guess it is only available when optimality is proven and the solution is basic (?).
Related to my original concern, is there any way to access any bound information when optimization of an LP is interrupted? For example, if I'm using Dual Simplex, where dual feasibility is maintained. In general, can Gurobi infer a lower bound on the LP (stated as a minimization problem)?
0 -
Hi Felipe,
I have to correct myself.
Currently, you can access the ObjBound attribute only for LPs solved by one of the Simplex methods or by Barrier+Crossover. It is not available for Barrier only or if the solution process has been interrupted. You can access the bound value via callbacks when using dual simplex through SPX_OBJVAL or via BARRIER_DUALOBJ when using the Barrier algorithm.
We will consider making the ObjBound attribute available for runs of LPs which have been interrupted or solved via Barrier without Crossover. Please note that I cannot guarantee that and when we will implement this feature.
Best regards,
Jaromił0 -
Hi Felipe,
I just wanted to inform you, that in the upcoming release of Gurobi (v. 12) it will be possible to query the ObjBound after an LP is solved with Barrier without Crossover, or if the solution was interrupted.
Best regards,
Vassilios
0
Post is closed for comments.
Comments
5 comments