Disciplined convex programming error:Invalid computation: prod( {convex} )

Nonconvex
Jan 22, 2015
S

Hi,

The problem I am trying to solve in cvx is:

minimize \left(\frac{1-\tau_j}{\tau_j}\right)\sigma + \left[\frac{1}{\tau_j}\prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right)-\frac{1}{\tau_j}\right]\frac{L}{R_i}

subject to 0 \leq \tau_j \leq 1

where \tau_j is the variable of optimization.

\sigma, L and R_i, \forall i are constants.

I am facing two problems with the above formulation:

(a) CVX does not accept product of convex terms i.e. I am unable to write the expression i.e. \prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right) in cvx.

(b) Although the objective function is convex, the term in expressions i.e. \left[\frac{1}{\tau_j}\prod\limits_{k\neq j}^{N}\left(1+\frac{R_k}{R_j}\frac{\tau_j}{1-\tau_j}\right)-\frac{1}{\tau_j}\right]\frac{L}{R} consists of \left(-\frac{1}{\tau_j}\right) that is treated as concave and hence cvx gives me error Illegal operation: {convex} + {concave}.

This seems to be a standard convex optimization problem. How can it be formulated using cvx?

M

FAQ: Why doesn’t CVX accept my problem? [READ THIS FIRST]

M

What makes you think it is convex? How did you prove this to yourself?

M

What are the restrictions on (values of) your constants? For example, if sigma is negative and L = 0, then your objective is concave. Given suitable restrictions on the constants, which you need to state, have you then proven the objective is convex? Edit Didn’t see mcg’s comments before.

S

The constants have positive values and are greater than zero. I have proven the convexity by simply expanding and solving for N=2,3… For example: For N=2, the concave term gets cancelled, and the expression is clearly convex.

M

I’ll be honest, I remain skeptical. Nevertheless, the FAQ applies.