In Stephen Boyd’s Convex Optimization book, an example of a quasiconcave problem is provided in Example 3.34 and is known as the internal rate of return. Does anyone know how to formulate the convex set mentioned using CVX?
I understand that this problem is quasiconcave and not directly handled by CVX. However, I am aware of techniques to handle quasiconvex/quasiconcave problems (i.e. Algorithm 4.1 in the aforementioned book). My question is focused on representing the convex set mentioned in the problem.
The problem says that \text{IRR}(x) \ge R \Longleftrightarrow \text{PV}(x,r)>0 \; \text{for} \; 0\le r<R represents a convex set. Is there a way to represent this set in CVX?
Would it make sense to use the bisection method where f_0(x) := -\text{IRR}(x), t:=r to follow the approach in equation (4.26) of the aforementioned book? Therefore, starting with l=0,u=R, we could use the bisection algorithm (keeping the l=0 to ensure we find the minimum r) to find the optimal x at the minimum r?
PV(x,r) > 0 for 0 ≤ r < R are individually (for each r) linear (affine) constraints, but collectively an infinite (dimensional) set of constraints, so not directly representable in CVX as far as I know.
As for finding the optimal vector x at the minimum r, I have no idea what optimization problem you are trying to solve. What is the objective, i.e., what is your criterion for what constitutes the optimal value of the vector x for a given r? And the minimum r means what? It is determined for a given value of the vector x. Don’t propose an algorithm to solve an optimization problem you have not specified.
@Mark_L_Stone thanks for the reply. Regarding the definition of the problem, you are right that what I provided here is partial information. However, since the problem is mostly defined in the aforementioned book example, I felt it unnecessary to duplicate the information here. Essentially, \text{IRR}(x) is quasiconcave (restricted to x_0<0, x_1 + ... + x_n >0) so the problem would be \max \; \text{IRR}(x) with \lbrace x \; \vert \; \text{PV}(x,r)>0 \; \text{for} \; 0 \le r < R \rbrace where \text{IRR}(x) = \inf \lbrace r \ge 0 \; \vert \; \text{PV}(x,r) = 0 \rbrace.
PV(x,r) > 0 for 0 ≤ r < R are individually (for each r ) linear (affine) constraints, but collectively an infinite (dimensional) set of constraints, so not directly representable in CVX as far as I know.
So there is no straightforward way for CVX to handle the whole problem of successive convex feasibility problems? This goes back to why I thought maybe the user would need to write a bisection algorithm