Zero solution of geometric programming


I got an answer with zero term for some x_i when I perform a geometric programming (GP) using CVX with code below

cvx_begin gp
variables t x(N)


Is that possible?? Since what i know is that the domain of GP might be positive real variable.

I don’t want the answer contains any zero term. How could I control this program to get a feasible solution with all x_i > 0 ? Thanks.

It is entirely possible for one or more variables in a GP to have zero values. An assumption is made that x_i\gt0 when converting the problem to solvable form via the substitution y_i = \log x_i. However, if the convex solver finds a very large, negative value for y_i, then the conversion back to GP form x_i = e^{y_i} is likely to return a very small or zero value.

You will have to add artificial constraints to your problem, or normalize the problem in some way, if you want to force x_i to be positive. Remember, strict inequalities are treated as non-strict in CVX, so you will have to do something like x_i \ge 10^{-6}.

Still, if you find yourself having to force certain variables to be non-zero, it may suggest a larger, conceptual problem with your model, or an opportunity to simplify it.

I got it! Thanks a lot!