Closed mlubin closed 7 years ago
(y,z,x) in RSOC <=> (y+z,-y+z,sqrt2*x) in SOC, y >= 0, z >= 0
becomes
(y,z,x) in RSOC <=> (1/sqrt2*(y+z),1/sqrt2*w,x) in SOC, y >= 0, z >= 0, w >= -y+z, w >= -z+y
actually, I vote this:
(y,z,x) in RSOC <=> (1/sqrt2*(y+z),1/2*(-y+z),1/2*(y-z),x) in SOC, y >= 0, z >= 0
no need for extra variables. don't lose the symmetry information. get extra cuts for free.
How do these all relate? It'd be nice to see a plot in the y >= x^2 space.
The transformation you just proposed is potentially problematic for the conic solvers because it would take a problem with a strict interior and turn it into a problem without one where the cone implicitly lies in some subspace. The reformulation with the extra variable doesn't have this issue.
many problems of interest will have cones in subspaces, right?
Yes, but I'd say it's a good idea to avoid transformations that can take a potentially well posed problem and turn it into one that is less easy for the conic solvers to handle, given that we know that the conic solvers are the least reliable part of the algorithm.
but for SOCs, conic solvers are very reliable
I'd rather have an extra variable than an extra SOC dimension.
get extra cuts for free.
What extra cuts do you get for free? Can you give a concrete example?
you get the cut if you had chosen -y+z
and the cut if you had chosen z-y
.
and OK, then I'll code the extra variable
closed by #316
We should probably use the norm-preserving transformation described at: http://docs.mosek.com/modeling-cookbook/cqo.html#rotated-quadratic-cones
Our transformation as implemented makes it harder to compare violations in the SOC and RSOC space.