Content deleted Content added
→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.
{| 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>
|-▼
|[[Python (programming language)|Python]]▼
!{{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" />▼
|-▼
|MATLAB▼
!{{No}}
|<ref name=":3" />
|-
▲|MATLAB,
|▼
Octave▼
|Modeling system for polynomial optimization.▼
!{{Yes}}
|<ref name=":3" />
|-
|JuMP.jl
|Supports many solvers. Also supports integer and nonlinear optimization, and some nonconvex optimization.
!{{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>
|-▼
|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}}▼
|-
|ROME
|
|Modeling system for robust optimization. Supports distributionally robust optimization and [[uncertainty set]]s.
▲|GloptiPoly 3
▲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}}
▲|GAMS
▲|Modeling system for linear, nonlinear, mixed integer linear/nonlinear, and second-order cone programming problems.
|<ref name=":3" />
|}
|