Skip to main content

Opportunity for lazy cut

Ongoing

Comments

3 comments

  • Matthias Miltenberger
    Gurobi Staff Gurobi Staff

    Hi Marco,

    There is a fundamental difference between (user) cuts and lazy constraints. This is explained here: What is the difference between user cuts and lazy constraints? Essentially, user cuts must never cut off feasible solutions, so there is no such thing as a "lazy cut".

    That being said, I believe that it's OK not to add all lazy constraints, but it may happen that Gurobi will falsely claim optimality in that case. You need to check all solutions in the MIPSOL callback to avoid missing any violated lazy constraints that were not added before. Generally, I do not think this approach will help performance because Gurobi cannot make use of important information as early as when adding all violated lazy constraints immediately.

    Cheers,
    Matthias

    0
  • Marco Correia
    First Comment
    Gurobi-versary
    First Question

    Hi Matthias,

    Thanks for the clarification, indeed I am talking about lazy constraints here.

    I am not sure I understood what you mean. If gurobi never gives me the chance to add the missing lazy constraint, how can it even declare feasibility (let alone optimality)?

    0
  • Marco Correia
    First Comment
    Gurobi-versary
    First Question

    Hi Matthias,

    Not sure if you don't have anything else to add, or if this thread was forgotten. I don't think I understand how this works yet (see post above). Thanks

    0

Please sign in to leave a comment.