I wonder if there is any way to define Log(log(1+exp(x)) objective function for CVX, the function is concave but CVX does not accept it
Either @Michal_Adamaszek has a solution for this, or it is a xanddidate for @Erling 's convex modeling challenge.
The inverse of this function if log(exp(exp(x))-1). Something along these lines was discussed on the forum before, and I think at Mosek we don’t know how to do it.
If the objective function really is just
f(x)=log(log(1+exp(x)))
then there is a very simple approach that works. Note that
-
Maximizing log(log(1+exp(x))) is equivalent to maximizing log(1+exp(x)) because the log function is monotone.
-
Maximizing log(1+exp(x)) is equivalent to maximizing 1+exp(x) since log is monotone.
-
1+exp(x) is a convex function, so maximizing it would ordinarily be difficult. However, 1+exp(x) is monotone increasing in x, so maximizing 1+exp(x) is equivalent to maximizing x.
Thus you can solve your original problem by maximizing x subject to whatever additional convex constraints you might have.
Thanks for the reply. the actual objective function is maximize sum log(log2(1+exp(x_i))).
It looks like you’re out of luck unless someone else (or @Brian_Borchers) comes along with a solution. log2
presents no extra difficulty vs. log
, but having a sum involving a multivariate decision (CVX) variable renders @Brian_Borchers’s simplification inapplicable when the dimension exceeds one.