Skip to main content

turning off presolve after "max constraint violation (1.0000e+00) exceeds tolerance" still produces an incorrect solution

Comments

3 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?.
  • Eli Towle
    • Gurobi Staff Gurobi Staff

    Hi Shunji,

    Presolve assumes that a model is feasible and bounded. Because this model is infeasible, some presolve reductions can have unexpected behavior that results in constraint violations. For this reason, Gurobi prints the following warning:

    Warning: max constraint violation (1.0000e+00) exceeds tolerance
             (model may be infeasible or unbounded - try turning presolve off)

    Note that after setting Presolve=0, you should reset the model before re-solving it to discard the existing solution information.

    In general, such a warning can be avoided by completely disabling presolve. For this model, it appears that it is sufficient to set Aggregate=0.

    I hope this helps. Thanks!

    Eli

    0
  • Shunji Tanaka
    • Gurobi-versary
    • First Comment
    • First Question

    Dear Eli,

    Thank you very much for your helpful advice.  The function "reset()" is exactly what I was searching for.  "Aggregate=0" seems to work fine as well.  I should have noticed Section 24.5 in the reference manual!

    Since my model has a lot of rows and columns, and hence I can expect presolve to considerably eliminate them, I will stick to the two-level infeasibility check instead of completely disabling presolve.

    Best regards,

    Shunji

     

     

     

    0

Post is closed for comments.