Skip to main content

Bug report: infeasible with 1 thread

Answered

Comments

7 comments

  • Official comment
    Simranjit Kaur
    Gurobi Staff Gurobi Staff
    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?.
  • Daniel Espinoza

    Hi Gleb,

     

    I am guessing that the problems comes from the fact that you are using a tighter tolerance for integer feasibility than for primal feasibility.... I did run your model with a tighter primal feasibility (1e-9) and got solutions without problem. Note however that for this model it does not seem that you need tighter tolerances at al!

    0
  • Greg Glockner
    Gurobi Staff Gurobi Staff

    In general, whenever you get an infeasible model, it is useful to run IIS, to understand why it is infeasible.

    0
  • Gleb Belov
    Gurobi-versary
    Curious
    Conversationalist

    Hi Daniel and Greg,

    @Daniel: what do you mean by primal feasibility? Running IntFeasTol=1e-8 MIPGap=1e-9 Threads=1 gives infeasible as well, however IntFeasTol=1e-9 MIPGap=1e-8 Threads=1 finds solutions. I don't remember hearing about relation of absolute/relative objective gap to integrality tolerance. Would be grateful for an explanation and what parameters you recommend when using tighter IntFeasTol.

    @Greg: I stopped IIS after over 1h, it still had 20000 constraints and 30000 bounds. But if this result is due to (numerical?) instability, what can IIS tell us?

    @Daniel: this instance does need tighter tolerance because it has constraints like X = 200c + 1000000(1-c) where c is binary, meaning (c=1 -> X=200) /\ (c=0 -> X=1000000). Obviously not good modeling but the question is why the solver behaves differently depending on the number of threads. Just numerical problems?

    0
  • Daniel Espinoza

    Hi Gleb,

    I meant the relation between IntFeasTol and FeasibilityTol, and it should be that IntFeasTol >= FeasibilityTol.

    Also, regarding the large numbers.... did you test that if using default parameters you got solutions that could not be trusted?

    0
  • Gleb Belov
    Gurobi-versary
    Curious
    Conversationalist

    Hi Daniel,

    the advice that it should be that IntFeasTol >= FeasibilityTol appears more familiar to me but still I'd found it helpful to have it reminded in the descriptions of those parameters.

    Yes I tested several instances of this model, which is the "road-construction" from MiniZinc Challenge 2014. Solution checker rounds the value of c, see the example above. When you have c=0.999999, which is feasible with default tolerance, the MIP solution has X~201 but the MiniZinc solution checker recomputes it from X = 200c + 1000000(1-c)  with c=1 and obtains a contradiction.

    0
  • Daniel Espinoza

    Hi Gleb,

     

    Sure, we will update the docs in that regard.... now, numerics is a tricky area... and sometimes the numbers just don't add up, defining what truly is a wrong answer and a right one is not as easy as it might seem

     

    Best regards,

    Daniel

    0

Post is closed for comments.