Variables in multiple quadratic cones?

107 views
Skip to first unread message

Seth P

unread,
Oct 25, 2017, 7:12:23 AM10/25/17
to mosek
Is it indeed/still the case that a variable can belong to only one conic constraint?

In particular, if I have a variables x (which may be positive or negative), and I'd like variables y such that y >= |x|^1.5, then am I correct in observing, following the recipe in http://docs.mosek.com/modeling-cookbook/cqo.html#simple-sets-involving-power-functions Lemma 1 (iii), that I need to introduce five dummy variables, for a total of seven variables, and two disjoint 3-dimensional rotated quadratic cone constraints (involving all variables other than x)?

Seth P

unread,
Oct 25, 2017, 7:12:23 AM10/25/17
to mosek

[Apologies if this gets posted twice. I'm having browser problems.]

I have a variable x (which may be positive or negative), and I'd like to add a variable y >= |x|^1.5. Following the recipe in http://docs.mosek.com/modeling-cookbook/cqo.html Lemma 1 (iii), I can do this by introducing an additional five dummy variables -- for a total of seven variables -- and using two disjoint three-dimensional rotated quadratic cones (involving all variables other than x). Is there a way to do this with fewer variables? In practice I have thousands of x variables, so this leads to 7 x thousands of variables.

Erling D. Andersen

unread,
Oct 25, 2017, 7:31:46 AM10/25/17
to mosek
Yes, you have to introduce the additional variables and constraints. You can use modelling tools such as MOSEK Fusion, Yalmip or Cvx that will do it for you.

However, the optimizer deep down below will always need the problem on the disjoint form so either you add the additional stuff or something does it for you.

It is normal to assume only the number constraints and variables dictates the solution time for a high performance optimizer like MOSEK but in practice there is only weak relation. [Do not use 10 million variables if 100 is sufficient though.]

For instance the stuff you add is sparse and easy stuff. Also the additional constraints and variables makes the dual problem simpler so there are good reasons to why we require the problem on the disjoint form. 

See also



PS. We are working on adding the powercone to MOSEK.  Using a powercone you can express the stuff without the additional stuff. But is very unlikely to make things any faster.

Seth P

unread,
Oct 25, 2017, 1:24:09 PM10/25/17
to mosek
Related question: If I have 1,000 three-dimensional cones (x_i, y_i, z_i), does it matter for performance purposes (e.g. improved cache performance) whether I arrange my variables:
 x_1, x_2, ..., x_1000, y_1, y_2, .., y_1000, z_1, z_2, ... z_1000
or:
 x_1, y_1, z_1, x_2, y_2, z_2, ..., x_1000, y_1000, z_1000
?

Seth P

unread,
Oct 25, 2017, 1:24:09 PM10/25/17
to mosek
Thanks for the reply. Power cones (as I understand them) would be great, even if they just simplify how the problem is expressed and don't actually speed things up.

edadk

unread,
Oct 25, 2017, 1:42:21 PM10/25/17
to mosek
Internally mosek order variables in a cone sequentially.

I would do what is easiest for you.

edadk

unread,
Oct 25, 2017, 1:42:36 PM10/25/17
to mosek
Yes.
Reply all
Reply to author
Forward
0 new messages