Second-order cone programming
This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (October 2011) (Learn how and when to remove this template message) |
A second-order cone program (SOCP) is a convex optimization problem of the form
- minimize
- subject to
where the problem parameters are , and . is the optimization variable. is the Euclidean norm and indicates transpose.[1]
The name "second-order cone programming" comes from the nature of the individual constraints, which are each of the form:
These each define a subspace that is bounded by an inequality based on a second-order polynomial function defined on the optimization variable ; this can be shown to define a convex cone, hence the name "second-order cone".[2] By the definition of convex cones, their intersection can also be shown to be a convex cone, although not necessarily one that can be defined by a single second-order inequality. See below for a more detailed treatment.
SOCPs can be solved by interior point methods[3] and in general, can be solved more efficiently than semidefinite programming (SDP) problems.[4] Some engineering applications of SOCP include filter design, antenna array weight design, truss design, and grasping force optimization in robotics.[5] Applications in quantitative finance include portfolio optimization; some market impact constraints, because they are not linear, cannot be solved by quadratic programming but can be formulated as SOCP problems.[6][7][8]
Second-order cones
The standard or unit second-order cone of dimension is defined as
- .
The second-order cone is also known by the names quadratic cone or ice-cream cone or Lorentz cone. For example, the standard second-order cone in is
- .
The set of points satisfying a second-order cone constraint is the inverse image of the unit second-order cone under an affine mapping:
and hence is convex.
The second-order cone can be embedded in the cone of the positive semidefinite matrices since
i.e., a second-order cone constraint is equivalent to a linear matrix inequality. The nomenclature here can be confusing; here means is a semidefinite matrix: that is to say
which is not a linear inequality in the conventional sense.
Similarly, we also have,
- .
Relation with other optimization problems

When for , the SOCP reduces to a linear program. When for , the SOCP is equivalent to a convex quadratically constrained linear program.
Convex quadratically constrained quadratic programs can also be formulated as SOCPs by reformulating the objective function as a constraint.[5] Semidefinite programming subsumes SOCPs as the SOCP constraints can be written as linear matrix inequalities (LMI) and can be reformulated as an instance of semidefinite program.[5] The converse, however, is not valid: there are positive semidefinite cones that do not admit any second-order cone representation.[4]
Any closed convex semialgebraic set in the plane can be written as a feasible region of a SOCP,.[9] However, it is known that there exist convex semialgebraic sets of higher dimension that are not representable by SDPs; that is, there exist convex semialgebraic sets that can not be written as the feasible region of a SDP (nor, a fortiori, as the feasible region of a SOCP).[10]
Examples
Quadratic constraint
Consider a convex quadratic constraint of the form
This is equivalent to the SOCP constraint
Stochastic linear programming
Consider a stochastic linear program in inequality form
- minimize
- subject to
where the parameters are independent Gaussian random vectors with mean and covariance and . This problem can be expressed as the SOCP
- minimize
- subject to
where is the inverse normal cumulative distribution function.[1]
Stochastic second-order cone programming
We refer to second-order cone programs as deterministic second-order cone programs since data defining them are deterministic. Stochastic second-order cone programs are a class of optimization problems that are defined to handle uncertainty in data defining deterministic second-order cone programs.[11]
Other examples
Other modeling examples are available at the MOSEK modeling cookbook.[12]
Solvers and scripting (programming) languages
| Name | License | Brief info |
|---|---|---|
| ALGLIB | free/commercial | A dual-licensed C++/C#/Java/Python numerical analysis library with parallel SOCP solver. |
| AMPL | commercial | An algebraic modeling language with SOCP support |
| Artelys Knitro | commercial | |
| CPLEX | commercial | |
| FICO Xpress | commercial | |
| Gurobi Optimizer | commercial | |
| MATLAB | commercial | The coneprog function solves SOCP problems[13] using an interior-point algorithm[14]
|
| MOSEK | commercial | parallel interior-point algorithm |
| NAG Numerical Library | commercial | General purpose numerical library with SOCP solver |
See also
- Power cones are generalizations of quadratic cones to powers other than 2.[15]
References
- ↑ 1.0 1.1 Boyd, Stephen; Vandenberghe, Lieven (2004). Convex Optimization. Cambridge University Press. ISBN 978-0-521-83378-3. https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf. Retrieved July 15, 2019.
- ↑ Jibrin, Shafiu; Swift, James W. (2024). "On Second-Order Cone Functions" (in en). Journal of Optimization 2024 (1). doi:10.1155/2024/7090058. ISSN 2314-6486.
- ↑ Potra, lorian A.; Wright, Stephen J. (1 December 2000). "Interior-point methods". Journal of Computational and Applied Mathematics 124 (1–2): 281–302. doi:10.1016/S0377-0427(00)00433-7. Bibcode: 2000JCoAM.124..281P.
- ↑ 4.0 4.1 Fawzi, Hamza (2019). "On representing the positive semidefinite cone using the second-order cone" (in en). Mathematical Programming 175 (1–2): 109–118. doi:10.1007/s10107-018-1233-0. ISSN 0025-5610.
- ↑ 5.0 5.1 5.2 Lobo, Miguel Sousa; Vandenberghe, Lieven; Boyd, Stephen; Lebret, Hervé (1998). "Applications of second-order cone programming" (in en). Linear Algebra and Its Applications 284 (1–3): 193–228. doi:10.1016/S0024-3795(98)10032-0.
- ↑ "Solving SOCP". https://docs.mosek.com/slides/2017/shanghai/talk.pdf.
- ↑ "portfolio optimization". https://nmfin.tech/wp-content/uploads/2020/06/new-technologies-in-portfolio-optimization.20200612.pdf.
- ↑ Li, Haksun (16 January 2022). Numerical Methods Using Java: For Data Science, Analysis, and Engineering. APress. pp. Chapter 10. ISBN 978-1-4842-6796-7.
- ↑ Scheiderer, Claus (2020-04-08). "Second-order cone representation for convex subsets of the plane". arXiv:2004.04196 [math.OC].
- ↑ Scheiderer, Claus (2018). "Spectrahedral Shadows" (in en). SIAM Journal on Applied Algebra and Geometry 2 (1): 26–44. doi:10.1137/17M1118981. ISSN 2470-6566.
- ↑ Alzalg, Baha M. (2012-10-01). "Stochastic second-order cone programming: Applications models" (in en). Applied Mathematical Modelling 36 (10): 5122–5134. doi:10.1016/j.apm.2011.12.053. ISSN 0307-904X. https://www.sciencedirect.com/science/article/pii/S0307904X11008547.
- ↑ "MOSEK Modeling Cookbook - Conic Quadratic Optimization". https://docs.mosek.com/modeling-cookbook/cqo.html.
- ↑ "Second-order cone programming solver - MATLAB coneprog". 2021-03-01. https://www.mathworks.com/help/optim/ug/coneprog.html.
- ↑ "Second-Order Cone Programming Algorithm - MATLAB & Simulink". 2021-03-01. https://www.mathworks.com/help/optim/ug/cone-programming-algorithm.html.
- ↑ "MOSEK Modeling Cookbook - the Power Cones". https://docs.mosek.com/modeling-cookbook/powo.html.
