Violated lazy constraints (based on out-of-date variable values?)

35 views
Skip to first unread message

Matthias Rost

unread,
Nov 23, 2015, 9:45:53 AM11/23/15
to Gurobi Optimization
Hi,

I am currently trying out different formulations for a research problem. Some of these models I consider replace (sets of constraints) by equivalent formulations using Lazy Cuts.

Similar to this question, I experience some unwanted behavior, as some solutions are accepted even though the solution violates certain lazy inequalities.
Specifically, my callback handler does not find any violations as (seemingly) the values obtained by calling cbGetSolution() seem out of date.
My model contains binary as well as continuous variables. Nearly all of the continuous variables are implicitly binary as these are set via logical connectives (implications, conjunctions etc.).
While the explicit binary variables attain values in {0,1}, some other variables are fractional, which should not be possible.

To rule out some mistakes on my side, I tried the following:
- Recreate the model and fix all binary variables according to the (wrongly found) solution. In this case my callback handler directly determines that this solution is not feasible.
- Recreate the model from scratch and use the values of the (wrongly found) solution as a start vector for the solution. Also in this case the callback handler determines the infeasibility and gurobi reports that "MIP start did not produce a new incumbent solution".

It seems that this behavior is triggered by Gurobi trying to fix infeasibilities. I experienced this behavior only after a solution is cut off by the callback handler after which a new solution with questionable variable values is proposed.

I have experienced this behavior both with Gurobi 6.0.5 and with 6.5.
I can provide the source code by mail, if necessary.

Best,
Matthias Rost

Renan Garcia

unread,
Nov 23, 2015, 1:51:43 PM11/23/15
to gur...@googlegroups.com
As stated in the documentation, your callback should be prepared to cut off solutions that violate any of your lazy constraints, including those that have already been added. That is, you might have to add the same lazy constraint more than once.

--

---
You received this message because you are subscribed to the Google Groups "Gurobi Optimization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gurobi+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages