Convex optimization: Difference between revisions

Content deleted Content added
Reverted 1 edit by Sargdub (talk): On review not a useful link
Software: split table into modellers and solvers. remove some obsolete software
Line 150:
Solvers implement the algorithms themselves and are usually written in C. They require users to specify optimization problems in very specific formats which may not be natural from a modeling perspective. Modeling tools are separate pieces of software that let the user specify an optimization in higher-level syntax. They manage all transformations to and from the user's high-level model and the solver's input/output format.
 
TheBelow tableare belowtwo showstables. aThe mixfirst ofshows shows modelingmodelling tools (such as CVXPY and ConvexJuMP.jl) and the second solvers (such as CVXOPTSCS and MOSEK). This tableThey isare by no means exhaustive.
{| class="wikitable sortable"
|+
Line 164:
!{{Yes}}
|<ref name=":3">{{Cite web|last=Borchers|first=Brian|title=An Overview Of Software For Convex Optimization|url=http://infohost.nmt.edu/~borchers/presentation.pdf|url-status=dead|archive-url=https://web.archive.org/web/20170918180026/http://infohost.nmt.edu/~borchers/presentation.pdf|archive-date=2017-09-18|access-date=12 Apr 2021}}</ref>
|-
|CVXMOD
|[[Python (programming language)|Python]]
|Interfaces with the [https://cvxopt.org/ CVXOPT] solver.
!{{Yes}}
|<ref name=":3" />
|-
|CVXPY
|Python
|
!{{Yes}}
|<ref>{{Cite web|title=Welcome to CVXPY 1.1 — CVXPY 1.1.11 documentation|url=https://www.cvxpy.org/|access-date=2021-04-12|website=www.cvxpy.org}}</ref>
|-
Line 189 ⟶ 183:
|<ref>{{Cite web|title=Disciplined Convex Optimiation - CVXR|url=https://www.cvxgrp.org/CVXR/|access-date=2021-06-17|website=www.cvxgrp.org}}</ref>
|-
|GAMS
|YALMIP
|MATLAB, Octave
|Modeling system for linear, nonlinear, mixed integer linear/nonlinear, and second-order cone programming problems.
|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}}
|<ref name=":3" />
|-
|LMI lab
|MATLAB
|Expresses and solves semidefinite programming problems (called "linear matrix inequalities")
!{{No}}
|<ref name=":3" />
|-
|GloptiPoly 3
|LMIlab translator
|MATLAB,
Octave
|Transforms LMI lab problems into SDP problems.
|Modeling system for polynomial optimization.
!{{Yes}}
|<ref name=":3" />
|-
|JuMP.jl
|xLMI
|[[PythonJulia (programming language)|PythonJulia]]
|MATLAB
|Supports many solvers. Also supports integer and nonlinear optimization, and some nonconvex optimization.
|Similar to LMI lab, but uses the SeDuMi solver.
!{{Yes}}
|<ref>{{cite journal |last1=Lubin |first1=Miles |last2=Dowson |first2=Oscar |last3=Dias Garcia |first3=Joaquim |last4=Huchette |first4=Joey |last5=Legat |first5=Benoît |last6=Vielma |first6=Juan Pablo |date=2023 |title=JuMP 1.0: Recent improvements to a modeling language for mathematical optimization | journal = Mathematical Programming Computation | doi = 10.1007/s12532-023-00239-3 |eprint=2206.03866 }}</ref>
|<ref name=":3" />
|-
|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}}
|<ref name=":3" />
|-
|ROME
|
|Modeling system for robust optimization. Supports distributionally robust optimization and [[uncertainty set]]s.
!{{Yes}}
|<ref name=":3" />
|-
|GloptiPoly 3
|MATLAB,
Octave
|Modeling system for polynomial optimization.
!{{Yes}}
|<ref name=":3" />
Line 242 ⟶ 218:
|Modeling system for polynomial optimization. Uses the SDPA or SeDuMi solvers.
!{{Yes}}
|<ref name=":3" />
|-
|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}}
|<ref name=":3" />
|-}
{| class="wikitable sortable"
|+
!Program
!Language
!Description
![[Free and open-source software|FOSS]]?
!Ref
|-
|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}}
|<ref name=":3" />
|-
Line 314 ⟶ 310:
|Supports general-purpose codes. Uses low-rank factorization with an augmented Lagrangian method.
!{{Yes}}
|<ref name=":3" />
|-
|GAMS
|
|Modeling system for linear, nonlinear, mixed integer linear/nonlinear, and second-order cone programming problems.
!{{No}}
|<ref name=":3" />
|-
|Optimization Services
|
|XML standard for encoding optimization problems and solutions.
|
|<ref name=":3" />
|}