Convex optimization

From HandWiki
Short description: Subfield of mathematical optimization

Convex optimization is a subfield of mathematical optimization that studies the problem of minimizing convex functions over convex sets (or, equivalently, maximizing concave functions over convex sets). Many classes of convex optimization problems admit polynomial-time algorithms,[1] whereas mathematical optimization is in general NP-hard.[2][3][4]

Convex optimization has applications in a wide range of disciplines, such as automatic control systems, estimation and signal processing, communications and networks, electronic circuit design,[5] data analysis and modeling, finance, statistics (optimal experimental design),[6] and structural optimization, where the approximation concept has proven to be efficient.[7][8] With recent advancements in computing and optimization algorithms, convex programming is nearly as straightforward as linear programming.[9]


A convex optimization problem is an optimization problem in which the objective function is a convex function and the feasible set is a convex set. A function [math]\displaystyle{ f }[/math] mapping some subset of [math]\displaystyle{ \mathbb{R}^n }[/math]into [math]\displaystyle{ \mathbb{R} \cup \{\pm \infty\} }[/math] is convex if its domain is convex and for all [math]\displaystyle{ \theta \in [0, 1] }[/math] and all [math]\displaystyle{ x, y }[/math] in its domain, the following condition holds: [math]\displaystyle{ f(\theta x + (1 - \theta)y) \leq \theta f(x) + (1 - \theta) f(y) }[/math]. A set S is convex if for all members [math]\displaystyle{ x, y \in S }[/math] and all [math]\displaystyle{ \theta \in [0, 1] }[/math], we have that [math]\displaystyle{ \theta x + (1 - \theta) y \in S }[/math].

Concretely, a convex optimization problem is the problem of finding some [math]\displaystyle{ \mathbf{x^\ast} \in C }[/math] attaining

[math]\displaystyle{ \inf \{ f(\mathbf{x}) : \mathbf{x} \in C \} }[/math],

where the objective function [math]\displaystyle{ f :\mathcal D \subseteq \mathbb{R}^n \to \mathbb{R} }[/math] is convex, as is the feasible set [math]\displaystyle{ C }[/math].[10] [11] If such a point exists, it is referred to as an optimal point or solution; the set of all optimal points is called the optimal set. If [math]\displaystyle{ f }[/math] is unbounded below over [math]\displaystyle{ C }[/math] or the infimum is not attained, then the optimization problem is said to be unbounded. Otherwise, if [math]\displaystyle{ C }[/math] is the empty set, then the problem is said to be infeasible.[12]

Standard form

A convex optimization problem is in standard form if it is written as

[math]\displaystyle{ \begin{align} &\underset{\mathbf{x}}{\operatorname{minimize}}& & f(\mathbf{x}) \\ &\operatorname{subject\ to} & &g_i(\mathbf{x}) \leq 0, \quad i = 1, \dots, m \\ &&&h_i(\mathbf{x}) = 0, \quad i = 1, \dots, p, \end{align} }[/math]


  • [math]\displaystyle{ \mathbf{x} \in \mathbb{R}^n }[/math] is the optimization variable;
  • The objective function [math]\displaystyle{ f: \mathcal D \subseteq \mathbb{R}^n \to \mathbb{R} }[/math] is a convex function;
  • The inequality constraint functions [math]\displaystyle{ g_i : \mathbb{R}^n \to \mathbb{R} }[/math], [math]\displaystyle{ i=1, \ldots, m }[/math], are convex functions;
  • The equality constraint functions [math]\displaystyle{ h_i : \mathbb{R}^n \to \mathbb{R} }[/math], [math]\displaystyle{ i=1, \ldots, p }[/math], are affine transformations, that is, of the form: [math]\displaystyle{ h_i(\mathbf{x}) = \mathbf{a_i}\cdot \mathbf{x} - b_i }[/math], where [math]\displaystyle{ \mathbf{a_i} }[/math] is a vector and [math]\displaystyle{ b_i }[/math] is a scalar.

This notation describes the problem of finding [math]\displaystyle{ \mathbf{x} \in \mathbb{R}^n }[/math] that minimizes [math]\displaystyle{ f(\mathbf{x}) }[/math] among all [math]\displaystyle{ \mathbf{x} }[/math] satisfying [math]\displaystyle{ g_i(\mathbf{x}) \leq 0 }[/math], [math]\displaystyle{ i=1, \ldots, m }[/math] and [math]\displaystyle{ h_i(\mathbf{x}) = 0 }[/math], [math]\displaystyle{ i=1, \ldots, p }[/math]. The function [math]\displaystyle{ f }[/math] is the objective function of the problem, and the functions [math]\displaystyle{ g_i }[/math] and [math]\displaystyle{ h_i }[/math] are the constraint functions.

The feasible set [math]\displaystyle{ C }[/math] of the optimization problem consists of all points [math]\displaystyle{ \mathbf{x} \in \mathcal{D} }[/math] satisfying the constraints. This set is convex because [math]\displaystyle{ \mathcal{D} }[/math] is convex, the sublevel sets of convex functions are convex, affine sets are convex, and the intersection of convex sets is convex.[13]

A solution to a convex optimization problem is any point [math]\displaystyle{ \mathbf{x} \in C }[/math] attaining [math]\displaystyle{ \inf \{ f(\mathbf{x}) : \mathbf{x} \in C \} }[/math]. In general, a convex optimization problem may have zero, one, or many solutions.[14]

Many optimization problems can be equivalently formulated in this standard form. For example, the problem of maximizing a concave function [math]\displaystyle{ f }[/math] can be re-formulated equivalently as the problem of minimizing the convex function [math]\displaystyle{ -f }[/math]. The problem of maximizing a concave function over a convex set is commonly called a convex optimization problem.[15]


The following are useful properties of convex optimization problems:[16][12]

  • every local minimum is a global minimum;
  • the optimal set is convex;
  • if the objective function is strictly convex, then the problem has at most one optimal point.

These results are used by the theory of convex minimization along with geometric notions from functional analysis (in Hilbert spaces) such as the Hilbert projection theorem, the separating hyperplane theorem, and Farkas' lemma.


The following problem classes are all convex optimization problems, or can be reduced to convex optimization problems via simple transformations:[12][17]

A hierarchy of convex optimization problems. (LP: linear program, QP: quadratic program, SOCP second-order cone program, SDP: semidefinite program, CP: cone program.)

Convex optimization has practical applications for the following.

Lagrange multipliers

Consider a convex minimization problem given in standard form by a cost function [math]\displaystyle{ f(x) }[/math] and inequality constraints [math]\displaystyle{ g_i(x)\leq 0 }[/math] for [math]\displaystyle{ 1 \leq i \leq m }[/math]. Then the domain [math]\displaystyle{ \mathcal{X} }[/math] is:

[math]\displaystyle{ \mathcal{X} = \left\{x\in X \vert g_1(x), \ldots, g_m(x)\leq 0\right\}. }[/math]

The Lagrangian function for the problem is

[math]\displaystyle{ L(x,\lambda_{0},\lambda_1, \ldots ,\lambda_{m})=\lambda_{0} f(x) + \lambda_{1} g_{1} (x)+\cdots + \lambda_{m} g_{m} (x). }[/math]

For each point [math]\displaystyle{ x }[/math] in [math]\displaystyle{ X }[/math] that minimizes [math]\displaystyle{ f }[/math] over [math]\displaystyle{ X }[/math], there exist real numbers [math]\displaystyle{ \lambda_{0},\lambda_1, \ldots, \lambda_{m}, }[/math] called Lagrange multipliers, that satisfy these conditions simultaneously:

  1. [math]\displaystyle{ x }[/math] minimizes [math]\displaystyle{ L(y,\lambda_{0},\lambda_{1},\ldots ,\lambda_{m}) }[/math] over all [math]\displaystyle{ y \in X, }[/math]
  2. [math]\displaystyle{ \lambda_{0},\lambda_{1},\ldots ,\lambda_{m} \geq 0, }[/math] with at least one [math]\displaystyle{ \lambda_{k} \gt 0, }[/math]
  3. [math]\displaystyle{ \lambda_{1}g_{1}(x)=\cdots = \lambda_{m}g_{m}(x) = 0 }[/math] (complementary slackness).

If there exists a "strictly feasible point", that is, a point [math]\displaystyle{ z }[/math] satisfying

[math]\displaystyle{ g_{1}(z), \ldots, g_{m}(z)\lt 0, }[/math]

then the statement above can be strengthened to require that [math]\displaystyle{ \lambda_{0}=1 }[/math].

Conversely, if some [math]\displaystyle{ x }[/math] in [math]\displaystyle{ X }[/math] satisfies (1)–(3) for scalars [math]\displaystyle{ \lambda_{0},\ldots,\lambda_{m} }[/math] with [math]\displaystyle{ \lambda_{0}=1 }[/math] then [math]\displaystyle{ x }[/math] is certain to minimize [math]\displaystyle{ f }[/math] over [math]\displaystyle{ X }[/math].


Unconstrained convex optimization can be easily solved with gradient descent (a special case of steepest descent) or Newton's method, combined with line search for an appropriate step size; these can be mathematically proven to converge quickly, especially the latter method.[22] Convex optimization with linear equality constraints can also be solved using KKT matrix techniques if the objective function is a quadratic function (which generalizes to a variation of Newton's method, which works even if the point of initialization does not satisfy the constraints), but can also generally be solved by eliminating the equality constraints with linear algebra or solving the dual problem.[22] Finally, convex optimization with both linear equality constraints and convex inequality constraints can be solved by applying an unconstrained convex optimization technique to the objective function plus logarithmic barrier terms.[22] (When the starting point is not feasible - that is, satisfying the constraints - this is preceded by so-called phase I methods, which either find a feasible point or show that none exist. Phase I methods generally consist of reducing the search in question to yet another convex optimization problem.[22])

Convex optimization problems can also be solved by the following contemporary methods:[23]

Subgradient methods can be implemented simply and so are widely used.[26] Dual subgradient methods are subgradient methods applied to a dual problem. The drift-plus-penalty method is similar to the dual subgradient method, but takes a time average of the primal variables.


Convex optimization and related algorithms have been implemented in the following software programs:

Program Language Description FOSS? Ref
CVX MATLAB Interfaces with SeDuMi and SDPT3 solvers; designed to only express convex optimization problems. Yes [27]
CVXMOD Python Interfaces with the CVXOPT solver. Yes [27]
CVXPY Python [28]
Convex.jl Julia Disciplined convex programming, supports many solvers. Yes [29]
CVXR R Yes [30]
YALMIP MATLAB, Octave Interfaces with CPLEX, GUROBI, MOSEK, SDPT3, SEDUMI, CSDP, SDPA, PENNON solvers; also supports integer and nonlinear optimization, and some nonconvex optimization. Can perform robust optimization with uncertainty in LP/SOCP/SDP constraints. Yes [27]
LMI lab MATLAB Expresses and solves semidefinite programming problems (called "linear matrix inequalities") No [27]
LMIlab translator Transforms LMI lab problems into SDP problems. Yes [27]
xLMI MATLAB Similar to LMI lab, but uses the SeDuMi solver. Yes [27]
AIMMS Can do robust optimization on linear programming (with MOSEK to solve second-order cone programming) and mixed integer linear programming. Modeling package for LP + SDP and robust versions. No [27]
ROME Modeling system for robust optimization. Supports distributionally robust optimization and uncertainty sets. Yes [27]
GloptiPoly 3 MATLAB,


Modeling system for polynomial optimization. Yes [27]
SOSTOOLS Modeling system for polynomial optimization. Uses SDPT3 and SeDuMi. Requires Symbolic Computation Toolbox. Yes [27]
SparsePOP Modeling system for polynomial optimization. Uses the SDPA or SeDuMi solvers. Yes [27]
CPLEX Supports primal-dual methods for LP + SOCP. Can solve LP, QP, SOCP, and mixed integer linear programming problems. No [27]
CSDP C Supports primal-dual methods for LP + SDP. Interfaces available for MATLAB, R, and Python. Parallel version available. SDP solver. Yes [27]
CVXOPT Python Supports primal-dual methods for LP + SOCP + SDP. Uses Nesterov-Todd scaling. Interfaces to MOSEK and DSDP. Yes [27]
MOSEK Supports primal-dual methods for LP + SOCP. No [27]
SeDuMi MATLAB, Octave, MEX Solves LP + SOCP + SDP. Supports primal-dual methods for LP + SOCP + SDP. Yes [27]
SDPA C++ Solves LP + SDP. Supports primal-dual methods for LP + SDP. Parallelized and extended precision versions are available. Yes [27]
SDPT3 MATLAB, Octave, MEX Solves LP + SOCP + SDP. Supports primal-dual methods for LP + SOCP + SDP. Yes [27]
ConicBundle Supports general-purpose codes for LP + SOCP + SDP. Uses a bundle method. Special support for SDP and SOCP constraints. Yes [27]
DSDP Supports general-purpose codes for LP + SDP. Uses a dual interior point method. Yes [27]
LOQO Supports general-purpose codes for SOCP, which it treats as a nonlinear programming problem. No [27]
PENNON Supports general-purpose codes. Uses an augmented Lagrangian method, especially for problems with SDP constraints. No [27]
SDPLR Supports general-purpose codes. Uses low-rank factorization with an augmented Lagrangian method. Yes [27]
GAMS Modeling system for linear, nonlinear, mixed integer linear/nonlinear, and second-order cone programming problems. No [27]
Optimization Services XML standard for encoding optimization problems and solutions. [27]


Extensions of convex optimization include the optimization of biconvex, pseudo-convex, and quasiconvex functions. Extensions of the theory of convex analysis and iterative methods for approximately solving non-convex minimization problems occur in the field of generalized convexity, also known as abstract convex analysis.

See also


  1. 1.0 1.1 Nesterov & Nemirovskii 1994
  2. Murty, Katta; Kabadi, Santosh (1987). "Some NP-complete problems in quadratic and nonlinear programming". Mathematical Programming 39 (2): 117–129. doi:10.1007/BF02592948. 
  3. Sahni, S. "Computationally related problems," in SIAM Journal on Computing, 3, 262--279, 1974.
  4. Quadratic programming with one negative eigenvalue is NP-hard, Panos M. Pardalos and Stephen A. Vavasis in Journal of Global Optimization, Volume 1, Number 1, 1991, pg.15-22.
  5. Boyd & Vandenberghe 2004, p. 17
  6. Chritensen/Klarbring, chpt. 4.
  7. Boyd & Vandenberghe 2004
  8. Schmit, L.A.; Fleury, C. 1980: Structural synthesis by combining approximation concepts and dual methods. J. Amer. Inst. Aeronaut. Astronaut 18, 1252-1260
  9. Boyd & Vandenberghe 2004, p. 8
  10. Hiriart-Urruty, Jean-Baptiste; Lemaréchal, Claude (1996). Convex analysis and minimization algorithms: Fundamentals. p. 291. ISBN 9783540568506. 
  11. Ben-Tal, Aharon; Nemirovskiĭ, Arkadiĭ Semenovich (2001). Lectures on modern convex optimization: analysis, algorithms, and engineering applications. pp. 335–336. ISBN 9780898714913.,+Algorithms,. 
  12. 12.0 12.1 12.2 12.3 Boyd & Vandenberghe 2004, chpt. 4
  13. Boyd & Vandenberghe 2004, chpt. 2
  14. "Convex Problems". 
  15. "Optimization Problem Types - Convex Optimization". 9 January 2011. 
  16. Rockafellar, R. Tyrrell (1993). "Lagrange multipliers and optimality". SIAM Review 35 (2): 183–238. doi:10.1137/1035044. 
  17. Agrawal, Akshay; Verschueren, Robin; Diamond, Steven; Boyd, Stephen (2018). "A rewriting system for convex optimization problems". Control and Decision 5 (1): 42–60. doi:10.1080/23307706.2017.1397554. 
  18. 18.0 18.1 18.2 18.3 18.4 Boyd, Stephen; Diamond, Stephen; Zhang, Junzi; Agrawal, Akshay. "Convex Optimization Applications". 
  19. 19.0 19.1 19.2 Malick, Jérôme (2011-09-28). "Convex optimization: applications, formulations, relaxations". 
  20. Ben Haim Y. and Elishakoff I., Convex Models of Uncertainty in Applied Mechanics, Elsevier Science Publishers, Amsterdam, 1990
  21. Ahmad Bazzi, Dirk TM Slock, and Lisa Meilhac. "Online angle of arrival estimation in the presence of mutual coupling." 2016 IEEE Statistical Signal Processing Workshop (SSP). IEEE, 2016.
  22. 22.0 22.1 22.2 22.3 Boyd, Stephen; Vandenberghe, Lieven (2004). Convex Optimization. Cambridge University Press. ISBN 978-0-521-83378-3. Retrieved 12 Apr 2021. 
  23. For methods for convex minimization, see the volumes by Hiriart-Urruty and Lemaréchal (bundle) and the textbooks by Ruszczyński, Bertsekas, and Boyd and Vandenberghe (interior point).
  24. Nesterov, Yurii; Arkadii, Nemirovskii (1995). Interior-Point Polynomial Algorithms in Convex Programming. Society for Industrial and Applied Mathematics. ISBN 978-0898715156. 
  25. Peng, Jiming; Roos, Cornelis; Terlaky, Tamás (2002). "Self-regular functions and new search directions for linear and semidefinite optimization". Mathematical Programming 93 (1): 129–171. doi:10.1007/s101070200296. ISSN 0025-5610. 
  26. Bertsekas
  27. 27.00 27.01 27.02 27.03 27.04 27.05 27.06 27.07 27.08 27.09 27.10 27.11 27.12 27.13 27.14 27.15 27.16 27.17 27.18 27.19 27.20 27.21 27.22 27.23 27.24 Borchers, Brian. "An Overview Of Software For Convex Optimization". 
  28. "Welcome to CVXPY 1.1 — CVXPY 1.1.11 documentation". 
  29. Udell, Madeleine; Mohan, Karanveer; Zeng, David; Hong, Jenny; Diamond, Steven; Boyd, Stephen (2014-10-17). "Convex Optimization in Julia". arXiv:1410.4821 [math.OC].
  30. "Disciplined Convex Optimiation - CVXR". 


  • Hiriart-Urruty, Jean-Baptiste, and Lemaréchal, Claude. (2004). Fundamentals of Convex analysis. Berlin: Springer.
  • Hiriart-Urruty, Jean-Baptiste; Lemaréchal, Claude (1993). Convex analysis and minimization algorithms, Volume I: Fundamentals. Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences]. 305. Berlin: Springer-Verlag. pp. xviii+417. ISBN 978-3-540-56850-6. 
  • Hiriart-Urruty, Jean-Baptiste; Lemaréchal, Claude (1993). Convex analysis and minimization algorithms, Volume II: Advanced theory and bundle methods. Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of Mathematical Sciences]. 306. Berlin: Springer-Verlag. pp. xviii+346. ISBN 978-3-540-56852-0. 
  • Kiwiel, Krzysztof C. (1985). Methods of Descent for Nondifferentiable Optimization. Lecture Notes in Mathematics. New York: Springer-Verlag. ISBN 978-3-540-15642-0. 
  • Lemaréchal, Claude (2001). "Lagrangian relaxation". in Michael Jünger and Denis Naddef. Computational combinatorial optimization: Papers from the Spring School held in Schloß Dagstuhl, May 15–19, 2000. Lecture Notes in Computer Science. 2241. Berlin: Springer-Verlag. pp. 112–156. doi:10.1007/3-540-45586-8_4. ISBN 978-3-540-42877-0. 
  • Nesterov, Yurii; Nemirovskii, Arkadii (1994). Interior Point Polynomial Methods in Convex Programming. SIAM. 
  • Nesterov, Yurii. (2004). Introductory Lectures on Convex Optimization, Kluwer Academic Publishers
  • Rockafellar, R. T. (1970). Convex analysis. Princeton: Princeton University Press. 
  • Ruszczyński, Andrzej (2006). Nonlinear Optimization. Princeton University Press. 
  • Schmit, L.A.; Fleury, C. 1980: Structural synthesis by combining approximation concepts and dual methods. J. Amer. Inst. Aeronaut. Astronaut 18, 1252-1260

External links