How to express sum_{i,j} x[i][j]^(a+1)/w[i]^a?

Uncategorized
Mar 23, 2020
S

I have a problem to express sum_{i,j} {x[i][j]^(a+1)/w[i]^a} where x and w are non-negative variables, and a is a non-negative rational number. I checked that this is convex.

If a = 1, I can express it using a Quadratic_over_lin function. I cannot generalize it.
I tried to express it using Power cone, however, it does not work because w[i] is inter-related to all x[i][j]. Is there any way to express this function?

Thank you.

M
  • This is not a forum for CVXPY (Python) but for CVX (Matlab)…
  • … but since you ask a general question about conic optimization: your summands are expressible with the power cone, see 8th entry in the “Simple bounds” section of http://docs.mosek.com/cheatsheets/conic.pdf
  • If a is natural then a chain of quadratic cones (equivalently a chain of quad_over_lin) can be used as hinted in How can I write this kind of constraint in cvx where a=2 is done
S
Replying to #2

I have already checked it. However, there is a problem between power cone constraints
For example, my constraint can be formulated as power cone as follows:
t[i][j] >= x[i][j]^(a+1)/w[i]^a -> (t[i][j],w[i],x[i][j]) \in Power cone

If j \in {1,2}, we need two constraints for all i.
(t[i][1],w[i],x[i][1]) \in Power cone
(t[i][2],w[i],x[i][2]) \in Power cone
The problem is that w[i] is involved in both constraints. It makes an error.

MSK_RES_ERR_CONE_OVERLAP_APPEND (1307)
The cone to be appended has one variable which is already member of another cone.

M
Replying to #3

So apparently you are using neither CVX, nor CVXPY but the native Mosek interface? As you can see in the manual, in the low-level Mosek interface every variable can appear in only one cone. The solution is to add a new variable w'[i]=w[i] and then use w'[i] in one cone and w[i] in the other. https://groups.google.com/forum/#!forum/mosek is a better forum for pure Mosek questions.

S
Replying to #4

Thank you very much. I solve the problem!