Gurobi stopping criteria

Comments

7 comments

  • Yuriy Zinchenko

    Hello Dominique,

    1. I believe the residual values are unscaled, and

    2. the norm is simply the max (or \(\ell_{\infty}\)) norm.

    You can find a bit more info here,

    https://www.gurobi.com/documentation/9.1/refman/barrier_logging.html

    https://www.gurobi.com/documentation/9.1/refman/tolerances_and_user_scalin.html

     

    Hope this helps & you are doing well:)

    0
    Comment actions Permalink
  • Dominique Orban

    Thanks Yuriy! I'm well, thank you. I hope the same goes for you!

    Also, do we understand correctly from [4] that Gurobi doesn't scale the problem before solving? We're just trying to run fair benchmarks.

    Thanks again!

    [4] https://www.gurobi.com/documentation/9.1/refman/grb_tolerances_and_the_lim.html

    0
    Comment actions Permalink
  • Jaromił Najman

    Hi Dominique,

    Gurobi scales the problem before solving. The article [4] describes how to properly scale the problem before providing it to Gurobi to make the solver's life easier. You can turn off scaling with the ScaleFlag parameter. The objective scaling can be controlled with the ObjScale parameter.

    Best regards,
    Jaromił

    0
    Comment actions Permalink
  • Yuriy Zinchenko

    Hi Dominique,

    sorry I have somehow missed your Q:( and thank you Jarek! (yes, we do scale)

    Wish you stay well in 2021!! (we are fine in Calgary, it is a bit cold now, about -30C, but no complains otherwise:))

    0
    Comment actions Permalink
  • Geoffroy Leconte

    Hello,

    Following Dominique's question, I tried to solve problems without scaling. I set ScaleFlag to 0 and ObjScale to 1. However, when I access the DualResidual and ConstrResidual, I do not find the same values as the latest displayed by the Barrier Logging. Is this normal, or am I doing something wrong? (the crossover is deactivated)

    Best regards,

    Geoffroy

    0
    Comment actions Permalink
  • Yuriy Zinchenko

    Hi Geoffroy,

    could you please elaborate on

    > I do not find the same values as the latest displayed by the Barrier Logging

    perhaps with the snapshot of the log, and a brief explanation on how check those internally?

     

    Thank you,

    0
    Comment actions Permalink
  • Geoffroy Leconte

    Hi Yuriy,

    Thank you for your answer. Here is a snapshot of the log.

    Then, I check the ConstrResidual and DualResidual with GRBgetdblattr. The ConstrResidual value is 1.87e-12, and the DualResidual value is 1.43e-10, which are different than the latest values displayed by the Barrier logger.

    I deactivated Presolve, ScaleFlag, Crossover, and I set Objscale to 1 for this test.

    Best regards,

    Geoffroy

    0
    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk