Alternatively we can rewrite the constraint as x y4 x

This preview shows page 34 - 36 out of 632 pages.

Alternatively, we can rewrite the constraint as (x + y)^4 <= x - y (c) 1 /x isn’t convex, unless you restrict the domain to R ++ . We can write this one as inv_pos(x) + inv_pos(y) The inv_pos function has domain R ++ so the constraints x > 0, y > 0 are (implicitly) in- cluded. (d) The problem is that norm() can only accept affine argument since it is convex but not increas- ing. One way to correct this is to introduce new variables u and v : norm([u, v]) <= 3*x + y max(x,1) <= u max(y,2) <= v Decomposing the objective by introducing new variables works here because norm is convex and monotonic over R 2 + , and in particular over [1 , ) × [2 , ). (e) xy isn’t concave, so this isn’t going to work as stated. But we can express the constraint as x >= inv_pos(y) . (You can switch around x and y here.) Another solution is to write the constraint as geo_mean([x, y]) >= 1 . We can also give an LMI representation: [x 1; 1 y] == semidefinite(2) (f) This fails when we attempt to divide a convex function by a concave one. We can write this as quad_over_lin(x + y, sqrt(y)) <= x - y + 5 This works because quad_over_lin is monotone decreasing in the second argument, so it can accept a concave function here, and sqrt is concave. (g) The function x 3 + y 3 is convex for x 0, y 0. But x 3 isn’t convex for x < 0, so CVX is going to reject this statement. One way to rewrite this constraint is quad_pos_over_lin(square(x),x) + quad_pos_over_lin(square(y),y) <= 1 This works because quad_pos_over_lin is convex and increasing in its first argument, hence accepts a convex function in its first argument. (The function quad_over_lin , however, is not increasing in its first argument, and so won’t work.) Alternatively, and more simply, we can rewrite the constraint as pow_pos(x,3) + pow_pos(y,3) <= 1 (h) The problem here is that xy isn’t concave, which causes CVX to reject the statement. To correct this, notice that q xy - z 2 = q y ( x - z 2 /y ) , so we can reformulate the constraint as x + z <= 1 + geo_mean([x - quad_over_lin(z,y), y]) 34
This works, since geo_mean is concave and nondecreasing in each argument. It therefore accepts a concave function in its first argument. We can check our reformulations by writing the following feasibility problem in CVX (which is obviously infeasible) cvx_begin variables x y u v z x == 0; y == 0; (x + y)^4 <= x - y; inv_pos(x) + inv_pos(y) <= 1; norm([u; v]) <= 3*x + y; max(x,1) <= u; max(y,2) <= v; x >= inv_pos(y); x >= 0; y >= 0; quad_over_lin(x + y, sqrt(y)) <= x - y + 5; pow_pos(x,3) + pow_pos(y,3) <= 1; x+z <= 1+geo_mean([x-quad_over_lin(z,y), y]) cvx_end 3.4 Optimal activity levels. Solve the optimal activity level problem described in exercise 4.17 in Convex Optimization , for the instance with problem data A = 1 2 0 1 0 0 3 1 0 3 1 1 2 1 2 5 1 0 3 2 , c max = 100 100 100 100 100 , p = 3 2 7 6 , p disc = 2 1 4 2 , q = 4 10 5 10 .

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture