I am solving a convex QP via ALM and am using Gurobi.jl
for benchmarking. I noticed that Gurobi implements some problem scaling techniques (slightly more detail here: https://support.gurobi.com/hc/en-us/community/posts/15330309039633/comments/15341224273681) for improved numerical stability. To make the comparisons more fair, I would like to implement versions of the scaling techniques for a QP of the form
I think that I understand the previous Gurobi post for equilibrium scaling, but I am wondering what is meant by “geometric mean scaling” and (roughly) how to implement it. Is it related to considering new variables x'\gets \frac{x}{\sqrt{\|x^\nu\|\|y^\nu\|}} and y'\gets \frac{y}{\sqrt{\|x^\nu\|\|y^\nu\|}} for given data x^\nu and y^\nu at iteration \nu?
Or are there any Julia
solvers that implement some form of scaling where the scaling is documented? It seems that OSQP.jl
does some scaling, but I didn’t see an explanation in the docs.
Crosslinked here.