Methods for Reaching DCP Rules


(Ali) #1

Hello,
I have the following code, which resulted from turning a GP problem into convex, similar to 4.44 in Boyd book.

cvx_begin gp                
variables eta phi gama rho     
maximize(-log(exp(phi+eta+r)+exp(gama+c)-exp(gama+eta+c)))
subject to
(log(exp(phi+eta+r)+exp(gama+c)-exp(gama+eta+c)))>=log(lmin); 
(log(exp(eta+w)-exp(phi+eta+w)+exp(rho+w)-exp(rho+eta+runlicw)))>=log(wmin);
gama>=0;
gama<=(log(rlmax)-rlicl);
rho<=log(1/nw);
rho>=-log(1/(nw+nl));
eta<=0;
cvx_end

MATLAB is giving a DCP error, objecting on:1) the negative sign before an exponential function, and 2) a constrain with convex/concave><real constant.
Is there another representation to avoid the above two errors.

Many thanks for your help,

Ali


(Mark L. Stone) #2

Did you really start from a geometric program? If so, how did you get a negative sign before an exponential term inside the log?

I believe you either didn’t start from a geometric program, or you made a mistake in the transformation. BTW, that’s a non-exclusive or. I don’t see any negative signs on exponentials inside a log in (4.44).

If your only interest is in solving a GP rather than for educational purposes, then just enter the problem in GP form using CVX’s gp mode.


(Michael C. Grant) #3

I’ve got to agree with Mark; this is not convex as written, and I strongly doubt it was a valid geometric program in its original form (because if it had been, it would be convex after conversion).


(Ali) #4

Thank you so much for responding…
I could remove the negatives. There is one major difference between this problem and 4.44, which is mine is a maximization problem while 4.44 is a minimization one.