How does the "ScaleFlag" option work?
AnsweredUsing grbtune to analyze my problem, it suggested using the option ScaleFlag=1. This significantly reduced the execution time for solving it.
Looking at the documentation on Gurobi site, it was not clear to me what exactly this option does, nor the difference when setting other values different from 1.
Where can I find more detailed documentation?
Thanks in advance,
Fabio
-
Hi Fabio,
The available settings of the ScaleFlag parameter briefly means:
- -1: Auto
- 0: No scaling
- 1: equilibrium scaling (First scale each row to make its largest nonzero entry to be magnitude one, then scale each column to max-norm 1)
- 2: geometric scaling
- 3: multi-pass equilibrium scaling
You can learn more about different strategies for scaling linear optimization problems in the paper titled "Scaling linear optimization problems priori to application of the simplex method".
We intentionally do not include extensive details in the documentation because it may confuse a general user or it may be hard to explain the effect of each option precisely on the solver performance.
Best regards,
Maliheh
0 -
Hi Maliheh,
Thank you for your quick response. I had checked out this option on https://www.gurobi.com/documentation/9.5/refman/scaleflag.html. However, the reference documentation for version 10.0 is much more complete.
Thanks again, I will read the suggested article.
Regards,
Fabio0 -
Thanks for the detail on how the `equilibrium scaling` option works! Are you able to share a high-level overview of the geometric mean scaling (option = 2)?
--Jake
0 -
In J.A. Tomlin, "On Scaling Linear Programming Problems," Mathematical Programming Study 4 (1975) 146-166, geometric mean scaling is defined as follows:
Gurobi may be doing something of this sort. Computing the actual geometric mean of all the magnitudes in a row or column would introduce some time-consuming complications.
0
Please sign in to leave a comment.
Comments
4 comments