Infeasible Step
AnsweredHi guys,
how you can see from the attached image, during the optimization process, there are many steps in which the problem is 'infeasible'. Maybe this could be a problem for the computational time. Is there a way to see what happens when an infeasible step occurs?

Hi Gianmarco,
The "infeasible" in the third column of the log means that the corresponding node was pruned by infeasibility (the constraints imposed by the branching path of that node together with the problem constraints lead to an infeasibility). It is not possible to see exactly which constraints are imposed by a particular branching path. However, from the first and sixth columns of the log, it looks like Gurobi has to explore a large number of nodes and does not find a feasible solution. Exploring that many nodes makes it more likely to bump into infeasible nodes, which is what I think is happening here.
For this particular model, you could help Gurobi by providing a MIP Start if you know a feasible solution in advance, or by using parameters to help Gurobi find a first feasible solution. Such parameters are:
 NoRelHeurTime or NoRelHeurWork to activate the No Relaxation heuristic, or
 MinRelNodes, ZeroObjNodes, or PumpPasses to use other start heuristics
I would recommend testing the No Relaxation heuristic first, as it often proves to be very effective in such cases.
Best regards,
Elisabeth
0 
Hi Elizabeth,
thanks for the answer. I tried to apply your suggestion to my problem, but it still doesn't work.
I tried No relaxation heuristic, but from the documentation maybe i didn't understand very well which value i have to insert. The default value is 0 and the max is 2*10^9. In my case i need a number that is close as much as possible to 0, don't I? But if it's already 0 i don't see the point.
I found even the parameter 'MIPFocus', i set it up on 3, but it still doesn't work.
I wanted to try even the MIP start, but i have many variables. Using this parameters, i have to give a feasible solution for every variable? Is it sufficient to give a solution that is close to the real one?
Furthermore, the parameters you suggested me affects only MIP problem. I have a quadratic constrained problem, so maybe I need some other parameters to set up.
Sorry for all these questions, but these are my first optimization problems.
Thanks in advance!
Best regards,
Gianmarco
0 
Hi Gianmarco,
The NoRelHeurTime parameter defines a time limit during which the No Relaxation heuristic works. This heuristic runs before the actual branchandbound: first the heuristic runs during the time specified with the parameter, afterwards the solver switches to branchandbound. It's difficult to tell in advance during how much time you should run this heuristic, the best approach is to try out a few values (say 10 min, 20 min, 30 min...) and see what works best for your particular model.
You can define partial MIP Starts by setting the Start attribute only for the subset of variables for which you know the values.
As the article How do I use MIP Starts? describes, there are also some parameters to control during how much time the solver attempts to complete a partial MIP start.
Concerning the MIPFocus parameter, you should set it to 1 to focus on finding feasible solutions (setting it to 3 will make Gurobi focus on the bound).
Best regards,
Elisabeth
0
Please sign in to leave a comment.
Comments
3 comments