Does "MIP start did not produce a new incumbent solution" mean Gurobi found a better solution or that my given starting solutoin is infeasible?

2,453 views
Skip to first unread message

Oliver S

unread,
Jul 6, 2016, 8:58:52 AM7/6/16
to Gurobi Optimization
Hello,

I am trying to pass some (valid in my opinion) initial solution to Gurobi
and get the message "MIP start did not produce a new incumbent solution".
I am wondering what that means.
I think that it just means that Gurobi internally found an already better starting solution,
since when I pass a wrong starting solution I get the additional error "Constraint XY violated".
Is that correct?
What bothers me though, is that Gurobi does not start with a Gap, meaning it is - in the first iterations.
I was assuming since I am passing an integer solution I directly would have a gap to measure and see
some value here?

Thanks a lot!
Oliver

Renan Garcia

unread,
Jul 6, 2016, 11:30:32 AM7/6/16
to gur...@googlegroups.com
If this is a partial solution, try setting the SubMIPNodes parameter to something larger (see http://www.gurobi.com/documentation/6.5/refman/start.html#attr:Start for more details).

--

---
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.

Amin hosseini nasab

unread,
Jul 7, 2016, 1:57:49 AM7/7/16
to Gurobi Optimization
It means that the solution is infeasible to the constraints passed onto Gurobi. In my experience, in cases where violated constraints are few, Gurobi provides the "Constraint XY violated" error too. But when the number of violated constraints are high this error is not displayed.

c28686

unread,
Aug 20, 2018, 5:16:58 AM8/20/18
to Gurobi Optimization
I am facing the same issu. Can I somehow force Gurobi to state at least some of the infeasibilites (or even better what types of constraints are unsatisfied)?

Tobias Achterberg

unread,
Aug 22, 2018, 6:22:48 AM8/22/18
to gur...@googlegroups.com
The message means that either the MIP start produced a solution that is not better than
the best that Gurobi already knows, that the MIP start was infeasible, or that a partial
MIP start could not be extended within the working limits to a feasible solution.

There is no message about which constraints are violated by the MIP start, not even if
this is just a single constraint or just a few constraints.

If you want to find out why your MIP start is infeasible, you can do this
programmatically: instead of setting the "Start" attribute of the variables, set the "LB"
and "UB" attributes of the variables to the corresponding values. In other words, you fix
the variables to the values in your MIP start. Then, solve the resulting MIP. If your MIP
start is infeasible, this modified MIP should be infeasible as well. Afterwards, call
model.computeIIS()
(http://www.gurobi.com/documentation/8.0/refman/py_model_computeiis.html) to calculate an
irreducible infeasible subsystem of your modified MIP. If you set the "IISMethod"
parameter (http://www.gurobi.com/documentation/8.0/refman/iismethod.html) to 2, this may
be a bit faster.

In any case, you will then be able to identify the constraints that, together with the
bound fixings, make the model infeasible. You can query this info either through the
"IISConstr" attribute of the constraints, or by calling model.write("myprob.ilp") and
inspecting the resulting "myprob.ilp" file in a text viewer.


Best regards,

Tobias

Tobias Achterberg

unread,
Aug 22, 2018, 3:52:38 PM8/22/18
to gur...@googlegroups.com
I have to correct myself:

There *is* a message about constraints being violated by a MIP start:

If a MIP start directly violates some constraints, then you will see a message "MIP start
violates constraint <name> by <amount>". Gurobi just prints this for the first constraint
that is violated.

With "directly violate" I mean that after fixing the variables for which a MIP start is
given to the corresponding value, the constraint cannot be feasible anymore within the
bounds of the remaining variables.

This means in particular that if you provide a complete MIP start (all variables have a
defined MIP start value) and you see the message "MIP start did not produce a new
incumbent solution" without seeing the message about a constraint being violated, then the
MIP start was not accepted due to its objective value. Thus, there already exists some
other solution with an objective value that is at least as good.


Regards,

Tobias
Reply all
Reply to author
Forward
0 new messages