Overview
Second-Order Cone Programming (SOCP) is a convex nonlinear optimization class built around affine constraints and second-order cone constraints. It captures norm bounds, many convex quadratic constraints, and robust linear constraints in a solver-friendly form.
SOCP sits inside conic optimization, alongside LP and SDP. It is especially useful in portfolio risk, control, power systems, robust optimization, and engineering models where convex quadratic structure should be preserved rather than treated as a general nonlinear program.
Core ideas
Second-order cones
Second-order cones represent constraints of the form a norm bounded by an affine expression, which covers many convex quadratic relationships.
Conic programming
Conic programming expresses feasibility through cone membership, giving a common language for LP, SOCP, and SDP.
Convex quadratic constraints
Many convex quadratic constraints can be written as second-order cone constraints, making them easier to solve reliably.
Dual cones
Dual cones support certificates, sensitivity analysis, and robust counterparts in conic models.
Interior-point methods
Interior-point methods are the standard high-accuracy approach for many SOCP and broader conic models.
SDP relaxations
Semidefinite relaxations can bound harder quadratic models, especially when QCQP structure is nonconvex.
How to use it
- 1Start with Portfolio: write the decision, time horizon, actors, and objective in operational language.
- 2Identify norm bounds, robust linear constraints, and convex quadratic constraints that can be represented as second-order cones.
- 3Build a small SOCP instance and verify the conic form before using full production data.
- 4Compare the recommendation against a baseline policy, not just against mathematical optimality.
- 5Document assumptions, sensitivity results, and the conditions under which the recommendation should be revisited.
Applications
- Portfolio: compare feasible policies, quantify the operating tradeoffs, and make the assumptions behind the recommendation visible.
- Control: compare feasible policies, quantify the operating tradeoffs, and make the assumptions behind the recommendation visible.
- Power systems: compare feasible policies, quantify the operating tradeoffs, and make the assumptions behind the recommendation visible.
- Robust optimization: compare feasible policies, quantify the operating tradeoffs, and make the assumptions behind the recommendation visible.
Common pitfalls
- Treating every quadratic constraint as SOCP-representable without checking convexity and cone form.
- Hiding a simple LP or QP inside unnecessary conic notation.
- Reporting one answer without showing sensitivity to demand, capacity, costs, or behavioral assumptions.
- Ignoring implementation details such as data quality, explainability, ownership, and how users will override bad recommendations.
Resources
- MOSEK Modeling Cookbook
Topic-specific source curated for Conic & Semidefinite Optimization.
- Convex Optimization — Boyd & Vandenberghe
Topic-specific source curated for Conic & Semidefinite Optimization.
- Stanford EE364A — Convex Optimization
Convex analysis, duality, least squares, quadratic programs, and conic optimization.
- JuMP Documentation
Julia modeling language documentation for linear, integer, conic, and nonlinear optimization.
- NVIDIA cuOpt Documentation
cuOpt documents beta SOCP support alongside LP, QP, VRP, MILP, and QCQP capabilities.