Numerical Stability: Impact of large bounds on auxiliary vs. explicit variables.
進行中Hi Gurobi Community,
I am currently working on an optimization model and evaluating its numerical stability. I understand from the documentation that Gurobi strongly recommends keeping variable bounds within a reasonable range (ideally [-10^4, 10^4]) and warns against values exceeding 10^6 to prevent numerical issues.
My question is: Does this numerical warning apply equally to auxiliary variables (e.g., variables automatically introduced by the solver for nonlinear formulations, bilinear terms, min/max functions, etc.), or does it primarily affect the explicit variables defined by the user? Will an auxiliary variable with a bound exceeding 10^6 cause the same level of numerical instability and degradation in performance?
If there are any official Gurobi guidelines, documentation, or previous threads that address this specific distinction, I would greatly appreciate it if you could share the links.
Thank you in advance for your time and insights!
-
Hi Nguyen,
The numerical stability of your model is mostly affected by the conditioning of matrices involved in linear systems of equations, e.g., basis matrices in the simplex algorithm. In case of nonlinear, or bilinear terms Gurobi uses a dynamic outer approximation approach that constructs convex envelopes around these nonconvex constraints, i.e., they are replaced by a set of linear inequalities. The bounds of the variables involved in the nonconvex constraints then appear as coefficients within these inequalities and thus implicitly become coefficients in the coefficient matrix. Therefore, you should treat bound ranges and their magnitudes in a similar manner to coefficients in the constraint matrix.
I hope this explanation helps. Feel free to let me know if you have any further questions.
Best regards,
Vassilios
0
サインインしてコメントを残してください。
コメント
1件のコメント