The convex-concave optimization algorithm Prof. Etienne de Klerk Subject The convex-concave algorithm is a particularly simple technique for nonlinear optimization. The basic idea is to write each nonlinear function as the sum of a convex and concave function, and then linearize the concave function at a fixed point. In this way one may solve a sequence of convex optimization problems to obtain an approximate solution of the original problem. An easy introduction to the topic is the paper: “Variations and Extension of the Convex-Concave Procedure”, available at http://web.stanford.edu/~boyd/papers/pdf/cvx_ccv.pdf Objective Implement and evaluate the convex-concave algorithm on practical nonlinear optimization problems, for example portfolio optimization problems and pooling problems (used in oil refinery and wastewater management). Procedure 1. 2. 3. 4. 5. Study the literature to understand the ideas behind the algorithm as well as the limitations. Implement the algorithm in Matlab or some other platform (like AIMMS). Test your implementation on an applied nonlinear optimization problem of your choice. Compare your results to results obtained from other methods. If time allows, consider different ways of decomposing the nonlinear functions, as detailed in the recent paper: “DC Decomposition of Nonconvex Polynomials with Algebraic Techniques”, available at http://arxiv.org/pdf/1510.01518.pdf Learning goals • • • Practice the computer implementation of algorithms. Learn about basic techniques for nonlinear optimization, particularly the convex-concave procedure. Learn to analyze results for your chosen test problems critically in terms of correctness and usefulness.