Hi guys,
I met a problem while using cvxpy. My objective function is
max f(x,y) = (y1^x1)(y2^x2)…*(yi^xi)
0<xi<1,
sum(xi)=1,
y_min<yi<y_max,
variables: xi, yi.
yi may be complicated, I try to simplify it. I don’t know how to express which in cvxpy. Can you help me?
Thanks
The is not the cvxpy forum but the MATLAB cvx.
I don’t think the function is DCP representable when both the bases and the exponents are optimization variables.
However if x_i are independent of the y_i then it seems the maximum is obtained by taking x_i=1 for the biggest y_i. So your problem would be equivalent to
\mathrm{maximize} \max_i(y_i)
which is still not convex but representable with a mixed-integer model.
1 Like
Thanks a lot.
The function can be written as \mathrm{minimize} \sum_i -x_i*ln(y_i). I wonder whether the problem can be solved? In other words, how can I reformulate it and solve it?
Cvx is only useful if the function -y*ln(x) is convex.
Have you shown it is convex?