The Problem:
min f(x) subject to h(x)=0, g(x)>=0,
n=dim(x), m=dim(g), p=dim(h).
The picture shows feasible domain and level sets for
f(x)=x1^2+x2^2,
g(x)=(x1^2-x2,x2^2-x1) .
Infeasible points are shown in dark brown and the levels of f are shown in the feasible domain.
You'll find several sections:
The LP-problem, also mixed integer and stochastic
The QP-problem, also mixed integer
Semidefinite and second-order cone programming
Geometric programming
Robust Optimization
The general nonlinear problem (dense, sparse, nonsmooth, SIP)
Mixed integer nonlinear programming
Network constraints
Special/constraint solvers
Control problems
other collections/problems
The LP-problem: f, g, h linear in x
The LP-problem is often very high-dimensional. Several tools are necessary to deal with such problems. Some are listed here:
plam | A free MILP modeling environment using lp_solve as MILP solver and SWI-Prolog |
MPS | The description of the most widely used LP input format |
MPSreader | An MPS reader for Windows |
QSreader | a utility to convert this LP format to (and from) MPS; Windows/Unix executables |
lp2mps | a utility (extracted from lp_solve) to convert the simple LP format to (and from) MPS |
ABACUS | A general branch&cut library with mixed integer capability (C++) |
The following simplex-based solvers allow some or all of the variables to be constrained to attain integer values; all allow input in MPS format:
SCIP | Framework for Constraint Integer Programming, links to CPLEX, SOPLEX, or CLP as LP solver (C) |
HiGHS | Simplex code for LP and MILP (C++) |
lp_solve | C source, various binaries, and interfaces |
PICO (part of ACRO) | B&C, using CPLEX, GLPK, or SOPLEX; AMPL interface |
MOSEK | Simplex/IPM, Matlab, AMPL, GAMS interfaces, student license |
GLPK | GNU LP library, B&B, dual/revised simplex, interior point, C, Windows-executables, Matlab interface, Java interface. R interface, Python interface |
CBC | Simple branch&cut solver, part of COIN-OR (C++) |
SYMPHONY | callable library for solving mixed-integer linear programs, uses Clp as default LP solver (C) |
MATLOG | (MATLAB) The milp.m solver (needs lp.m from Matlab optimization toolbox) |
SCIL | Symbolic Constraints in Integer Linear programming (C++) |
FEASPUMP | The Feasibility Pump for finding a feasible solution (python) |
MIPTS | Tabu search heuristic for MIP; MPS, AMPL, CPLEX-LP input (C) |
PURE LP SOLVERS: most allow input in MPS format:
CLP | the COIN LP code, simplex (C++) |
QSopt | Simplex based; executables, library for Windows/Unix, free for research&education, Concorde interface |
SOPLEX | Simplex based, C++ |
BPMPD | interior point method, Win32-version, Unix-binaries (version 2.21), Unix-libraries (version 2.21), BPMPD_MEX, netlib-source (version 2.11, f77), C-version (version 2.11, f2c), AMPL interface |
HOPDM | local version of code (interior point method using predictor-corrector-steps of higher order), HOPDM_C (f2c-converted version, includes f2c-library) |
PCx | interior point method, f77/C, binaries for major platforms |
LOQO | interior point method, C, student binaries, executables for major platforms, work for two months w/o license, AMPL interface, Matlab interface |
COPL-LP | interior point method, includes crossover, DOS executable, HP binary, Linux binary |
LIPSOL | interior point method, also MAT or LPP formats (Matlab) |
IPO/SIMPO | interior and simplex LP-solver published in conjunction with Vanderbei's book, C |
PCLP | predictor-corrector interior point code, SciLab or Matlab |
SPHSLFBF | homogeneous self-dual interior point code, Matlab |
MINOS | the long standing simplex based REFERENCE-implementation |
reducedLP | Constraint reduction for linear programs with many inequality constraints; paper and Matlab file |
rMPC | Matlab interior point code specifically for LPs with many inequality constraints such as from a fine discretization of a semi-infinite LP |
ML-enhanced Codes
MIPLearn | Using Machine Learning to enhance exact MIP solvers (Python) |
Polyhedral Codes
CDD | Polyhedral codes in C/C++ |
CDDMEX | Matlab interface to CDD |
LRS | Polyhedral codes in C |
More polyhedral codes | Avis's list |
Polyhedral FAQ | Komei Fukuda's explanations |
Exact LP Solvers
Soplex | Simplex solver using exact rational LU factorization and continued fraction approximations (C++) |
QSopt-Exact | Rational (exact) primal/dual simplex solver; libraries, executables (C) |
Stochastic LP Solvers
Most accept input in SMPS format
SD | Stochastic decomposition for two-stage stochastic LPs with recourse (C) |
BNBS | for multi-stage problems, uses CPLEX, SOPLEX, or GLPK as LP solver (C/C++) |
Stochastic MILP Solvers
DDSIP | Dual decomposition in two-stage stochastic mixed-integer programming, needs CPLEX lib (GPL, C) |
DSP | Dual and Benders decomposition, uses Julia, MPI parallel |
The QP problem: f quadratic, (non)convex, g, h linear
Only bound constraints:
MINQ | General definite and bound constrained indefinite quadratic programming (in Matlab) |
Only equality constraints ( m = 0):
toms/559 | also for nonconvex f, provided the projected Hessian is positive definite |
n not too large, strictly convex
FORCES-pro | a code generation tool for embedded convex QP (C, MATLAB, Simulink and Python interfaces available), free academic license |
qpOASES | online active set solver, works well for model predictive control (C++, Matlab/R/SciLab interfaces) |
HPMPC | Library for High-Performance implementation of solvers for MPC, highly optimized for common architectures; C, Octave interface |
quadprog | Python code for Goldfarb-Idnani dual QP |
QuadProg++ | C++ code for Goldfarb-Idnani dual QP |
QP_solver | exact QP solver, part of CGAL (C++) |
n not too large, not necessarily convex
NewtonKKTqp | indefinite QP solver, interior point (Matlab) |
IQP | indefinite QP package (in Port lib) |
SPSOLQP | indefinite QP solver, interior point (Matlab) |
QuadProgBB | indefinite QP solver, Matlab/MEX |
n large
QPS (ext. MPS format) | from BPMPD |
OSQP | Operator splitting ADMM-based first-order convex QP solver (C, C++, Python, Julia, Matlab interfaces) |
CONV_QP | various methods for sparse convex QP (f77) |
MSS | Matlab software for large-scale trust-region subproblems |
LSTRS | Matlab software for large-scale trust-region subproblems and regularization |
COPL_QP | interior point, convex problems, C, ext. MPS input, user's guide |
BPMPD | convex problems, ext. MPS input, Win-95 version, BPMPD_MEX, Unix-libraries, Unix-binaries |
MOSEK | interior point, Win, Linux binaries, ext. MPS input including quadratic constraints or through Matlab, student license |
OOQP | object oriented C++ package, interior point, convex problems, needs MA27/57 from HSL archive |
GALAHAD | QPA/QPB active set and IPM solvers, AMPL and ext. MPS(SIF) input |
HOPDM | extension of LP-code, convex problems, ext. MPS input |
LOQO | interior point method, C, executables for major platforms, work for several months w/o license, AMPL interface, Matlab interface |
Software for specific quadratic programming problems:
GPDT | Parallel Gradient Projection-based Decomposition Technique for SVM, also serial, Linux binary & C++ source |
Gravity | package to model and solve using machine learning |
OOQP | C++ package includes solver for SVM and Huber regression problems |
Mixed integer quadratic programming:
MIQPBB | branch&bound code |
PICOS | Python Interface for Conic Optimization Solvers |
YALMIP | Matlab toolbox for rapid prototyping of optimization problems, supports many solvers; B&B for mixed integer problems |
MIQP | 0-1 only, needs LP/QP solver, e.g. linprog/quadprog, part of MPT (Matlab) |
MIOSCP | MIQP solver based on OSCP (Python) |
MOSEK | ext. MPS input, Win, Linux, Solaris binaries, Matlab, quadratic constraints, student license |
SDP&SOCP (semidefinite and second-order cone programming)
Linear semidefinite programming (SDP) solvers
SparseCoLo | Matlab package for exploiting sparsity in linear and nonlinear matrix inequalities via positive semidefinite matrix completion |
SMCP | Python Extension for Sparse Matrix Cone Programs |
ConicBundle | A bundle method for minimizing the sum of convex functions given by oracles or from Lagrangian relaxation (C++, GPL) |
SDPHA | A Matlab package for a homogeneous primal-dual method |
CSDP | A library for semidefinite programming, predictor-corrector version of algorithm by Helmberg, Rendl, Vanderbei, and Wolkowicz (C) |
DSDP | Dual-scaling algorithm (C, Matlab interface, parallel version),python interface, Julia wrapper |
SDPA | Solves semidefinite programs utilizing a Mehrotra-type predictor-corrector step, uses sparse matrix structure, includes documentation (C++), Matlab and MPI parallel versions |
SDPNAL+ | MATLAB software for semidefinite programming with bound constraints |
PENSDP | Penalty/barrier method for linear semidefinite programming, SDPA format input, |
SDPLR | solves large-scale, low-rank SDP problems (C) |
MPRW | Boundary Point Method, Random SDP generators (Matlab) |
VSDP | Matlab package for verified SDP. Needs INTLAB and SDPT3 or SDPA. |
MAXDET | Software for Determinant Maximization Problems (C; Matlab interface) |
rmd | Rigorous MAXDET; wrapper for above code (C++) |
CUTSDP | A Toolbox for a Cutting-Plane Approach Based on Semidefinite Programming (C) |
Nonlinear semidefinite programming (SDP) solvers
PENLAB | Open source version of PENNON, also for NLP (Matlab) |
PENBMI | Program for problems with quadratic objective and bilinear matrix inequality constraints (C) |
SOCP solvers (second order cone problems, not SDP)
ECOS | Embedded Conic Solver (Ansi-C, interfaces to Matlab, CVX, Python, library-free) |
SOCP | software for second order cone programming (C and Matlab) |
LOQO | interior point method, C, student binaries, executables for major platforms, work for two months w/o license, AMPL interface, Matlab interface |
SQL solvers (semidefinite, quadratic, linear problems, includes SDP, SOCP)
DDS | Domain-Driven Solver, Matlab package for solving convex optimization problems, LP, SOCP, SDP etc |
SeDuMi | Matlab toolbox for solving optimization problems over symmetric cones |
SDPT3-4.0 | Matlab implementation of infeasible path-following algorithms with Mehrotra type predictor-corrector and two types of search directions. |
MOSEK | Interior point code for LP, QP, and conic programming. Extended MPS or Matlab input, student license |
CVX | Matlab package for disciplined convex optimization |
CVXOPT | Python Software for Convex Optimization |
PICOS | Python Interface to Conic Optimization Solvers |
SDPpack | Primal-dual Mehrotra type predictor-corrector scheme, test for degeneracy and other additions, of historical interest |
SDP solvers for discrete optimization problems
BBCPOP | Sparse Doubly Nonnegative Relaxation of Polynomial Optimization Problems with Binary, Box, and Complementarity Constraints (Matlab) |
BiqCrunch | A semidefinite branch-and-bound method for solving binary quadratic problems (C) |
SCIP-SDP | An SDP Plugin for SCIP; solves MISDP (C) |
COPL_SDP | solves various cut problems, uses dual scaling method(C) |
COPL_DSDP | mixed integer linear semidefinite problems, enhanced COPL_SDP, MPS-like input (C) |
Max-AO | solves SDP relaxations of maximum stable set and maximum clique problems, graph input (C) |
KYPD | solves special KYP SDP problems, needs Yalmip and SeDuMi (Matlab) |
Applications of SDP/SQL/SOCP
TFOCS | Templates for first order conic solvers (Matlab) |
MVU | Maximum Variance Unfolding and other machine learning codes (Matlab) |
DRTOOLBOX | Matlab toolbox for dimensionality reduction |
SFSDP | MATLAB software for sparse sensor network localization (needs SeDuMi) |
Sensor Location | M and P files for relaxed and full SDP approaches to network sensor location (needs SeDuMi), Matlab |
DSPCA | Matlab package for sparse principal component analysis |
PICOS | Python Interface for Conic Optimization Solvers |
YALMIP | Matlab toolbox for rapid prototyping of optimization problems, supports many solvers; B&B for mixed integer problems |
LMITOOL | LMI parser, part of Scilab |
LMIRANK | Matlab toolbox for solving rank-constrained LMI problems |
Matrix completions | Using SDP to solve the PSD and the Euclidean distance matrix completion problems (Matlab) |
FIR toolbox | Matlab toolbox to optimize FIR filters and similar structures; needs SeDuMi or LOQO or other |
SparsePOP | Sparse SDP Relaxation of Polynomial Optimization Problems (Matlab) |
GloptiPoly | Polynomial objective and constraints, integer variables, needs SeDuMi (Matlab, GPL) |
SOSTOOLS | Matlab toolbox to solve sum of squares polynomial problems; needs SeDuMi and Matlab's symbolic toolbox (GPL) |
Ncpol2sdpa | Sparse Semidefinite Programming Relaxations for Polynomial Optimization Problems of Noncommuting Variables, needs SDP solvers, Python paper |
Geometric programming
GGPLAB | Interior point method for GP and generalized GP (Matlab) |
MOSEK | Interior point method, AMPL, GAMS, Matlab, student license |
COPL_GP / binaries | Primal-dual interior point method, includes user's guide |
Robust Optimization
ROME | Robust Optimization Made Easy, modeling language and solver, needs CPLEX, or MOSEK, or SDPT3 (Matlab) |
YALMIP | Extensive tutorial with sample scripts; LP, SDP, SOCP, SoS etc (Matlab) |
The general nonlinear Problem
Using function values only
The functions f, g, h are not necessarily smooth. Only function values required.
DFO_survey | comprehensive paper on derivative-free optimizatioon methods |
PRIMA | Updated implementation of MJD Powell's DFO codes in several languages |
DirectSearch | for local/global minimization, multi-objective optimization, nonlinear systems, data fitting (Maple) |
GRANSO | for nonsmooth, nonconvex optimization subject to nonsmooth, nonconvex constraints, based on a BFGS-SQP method (Matlab) |
CONDOR | parallel, constrained version of Powell's UOBYQA; SIF, AMPL, XML interfaces (C++) |
CONDOR at Github | serial, unconstrained version of CONDOR (C++) |
DFO | derivative free method of Conn, Scheinberg, and Toint (Python) |
NOMAD | LGPL-licensed code to do generalized pattern search for nonlinear and mixed variable optimization (C++) |
NOMADm | research version of NOMAD (Matlab, part of OPTI Toolbox) |
EI-AL | hybrid EI-AL method part of the laGP package (R) |
GANSO | several methods for global&nonsmooth problems (C/C++) |
min_fc | single file derivative-free Matlab/Octave code |
In the following it is assumed that f, g, h, are differentiable.
f general, bound constraints only
LMBOPT | Limited Memory Method (Matlab) |
PRIMA | Updated implementation of MJD Powell's DFO codes in several languages |
SDBOX | derivative-free method (f90 and C) |
fminsearchbnd | bound-constrained version of fminsearch (Matlab) |
ASA_CG | bound-constrained version of CG_DESCENT (f77/C) |
tn, C-version | use tnbc from this package, truncated Newton method using the Lanczos-process, n should be not too large since identification of binding constraints works inefficiently (classical active set method) |
ve08 | for separable convex f , structured quasi Newton method (Toint-Griewank) |
LBFGS-B, f90, Java, Matlab | a limited memory quasi Newton (BFGS) method combined with gradient projection for bound constrained problems; directory contains software, drivers and a user's manual |
TRON | trust region Newton, preconditioned cg, projected search f90-version |
LBFGS, LM | Routines for LBFGS and Levenberg-Marquardt in 6 languages |
LimMem | Several limited memory f77-routines; also for least squares |
Matlab codes | Several codes (BFGS, CG), also nonnegativity constraints, applications |
General linear constraints
COPL_LC | f convex, interior point method, needs Hessian |
PDCO | f separable convex, primal-dual interior point method (Matlab) |
BlockIP | optimization package for large convex block-angular problems (C++) |
Most methods for general constraints use an exact nondifferentiable penalty function like the L1-penalty function. The following picture shows this function with weight 1 for h and weights 2 for g1 and g2 with f(x)=x1+x2, h(x)=x1^2+x2^2-1, g1(x)=x1, g2(x)=x2. It shows some of the intricacies involved in using these functions: not only the nondifferentiability, but also the possible occurrence of infeasible local minimizers. The problem has the two solutions (1,0) with multipliers (0.5,0,1) and (0,1) with multipliers (0.5,1,0). Hence the weights are large enough to make these strict local minima of the penalty function. But three more infeasible minima with the same function value 1 occur at (0,0), (-1,0) and (0,-1).
General nonlinear constraints, convex problems
JOptimizer | Java code for convex optimization |
CVX | Matlab package for disciplined convex optimization |
CVXOPT | Python Software for Convex Optimization |
SPG | Spectral Projected Gradient method, interfaces to AMPL, C/C++, Matlab, Python, Octave, R |
MOSEK | solves convex, twice differentiable problems, GAMS, Matlab, and AMPL interface, student license |
General nonlinear constraints, dense linear algebra
LIONsolver | reactive search, free for research |
SDPEN | derivative free sequential penalty method for inequality constrained problems (f90) |
SOLNP | Matlab-SQP solver, IP solver for QP's, includes manual |
pyFSQP | python version of old code FSQP |
CONMAX | uses ODE's to generate search direction followed by Newton to correct back to feasible region, authors claim it is very robust but somewhat slow. |
CONMIN | old code by Vanderplaats (f90) |
General nonlinear constraints, sparse linear algebra for high dimensional problems
Several codes have a CUTEst/SIF interface.
PENLAB | Open source version of PENNON (Matlab) |
LANCELOT-A | transforms a general problem into one with nonlinear equality constraints and bound constraints on (some) variables and solves this using a modification of the Hestenes-Powell multiplier method (book: Conn&Gould&Toint: LANCELOT . Springer Series in Comp. Math. 17) AMPL interface |
LANCELOT-B | part of GALAHAD, updated version, f2003 |
WORHP | SQP solver for very large problems, IP at QP level, exact or approximate second derivatives, various linear algebra options, varius interfaces |
HQP/OMUSES | motivated by discrete-time optimal control problems, solves general NLP using Powell's or Schittkowski's SQP with Newton-type barrier QP solver, needs Tcl; C++, SIF, or ASCEND input |
SNOPT | solves large-scale linear and nonlinear problems; especially recommended if some of the constraints are highly nonlinear, or constraints respectively their gradients are costly to evaluate and second derivative information is unavailable or hard to obtain; assumes that the number of "free" variables is modest. AMPL&Matlab interfaces |
MINOS | also capable of solving nonlinear problems, but not to be recommended for strong nonlinearities, AMPL interface |
KNITRO | trust region interior point method, efficient for NLPs of all sizes, various interfaces |
IPOPT | interior point method for large NLP, AMPL&Matlab&Python interfaces (C++) |
LOQO | interior point method, C, executables for major platforms, work for several months w/o license, AMPL interface, Matlab interface |
PENNON | Penalty-barrier code for large general NLPs, AMPL interface |
nlpy | Python package for LP/NLP utilizing Fortran sources and external software |
ALGENCAN | Augmented Lagrangian type method, interfaces to AMPL, C/C++, Matlab, Python, Octave, R |
SQPlab | Matlab package for general NLP; needs optimization toolbox or MOSEK |
Mathematical Problems with Equilibrium Constraints (MPECs)
IPOPT | interior point method for large NLP, AMPL interface (C++) |
KNITRO | trust region interior point method, efficient for NLP's of all sizes, various interfaces |
LOQO | interior point method, C, student binaries, executables for major platforms, work for two months w/o license, AMPL interface, Matlab interface |
Minimization of Nonsmooth Functions
SLQP-GS | Sequential Linear or Quadratic Programming with Gradient Sampling (Matlab) |
OBOE | Oracle-Based Optimization Engine for convex problems, uses Proximal-ACCPM interior point method, C++ |
SolvOpt | Solves nonsmooth unconstrained and constrained problems of moderate dimensions (python). |
NDA | Four different routines for Lipschitz continuous functions subject to linear constraints and for (small) minimax problems |
Semi-infinite Programming
NSIPS | Three different methods (discretization, interior point, SQP dual), uses author's special AMPL interface (C source and Win-binaries) |
CSIP | Matlab code for convex semi-infinite programming; AMPL interface |
Mixed Integer Nonlinear Programming
DFL | derivative-free codes for bound and inequality constrained problems (f90) |
Cyber-Infrastructure for MINLP | Meta site for MINLP |
BonMin | hybrid code from COIN-OR, local solver |
SHOT | Supporting Hyperplane Optimization Toolkit for Convex MINLP |
Couenne | Global solver for nonconvex problems, from COIN-OR |
Alpine | Global solver for nonconvex problems, JuMP-based in Julia |
SCIP | Global solver for nonconvex problems |
KNITRO | Local solver based on general NLP code |
MIDACO | Mixed Integer Distributed Ant Colony Optimization (Matlab, C/C++, Fortran) |
MINLP_BB | branch&bound and QP/SQP |
Minotaur | source and Linux/Mac binaries |
LaGO | B&C, Linux binary, binary variables only, GAMS interface |
BARON | Global Branch And Reduce Optimization Navigator (avail. from AIMMS, GAMS) |
BNB | B&B, Matlab, needs optimization toolbox |
FMINCONSET | B&B, variables may be restricted to discrete sets, Matlab, needs optimization toolbox |
MibS | Mixed integer bilevel linear program code |
MINLP | Matlab code for small number of integer variables |
OPBDP binaries |
0-1 variables, objective and constraints polynomial (C++) A Davis-Putnam Based Enumeration Algorithm for Linear Pseudo-Boolean Optimization |
Network Optimization
Linear objective function
MCF | C++,network simplex method |
Net_simplex | network simplex method, no source (binaries) |
GOBLIN | Tcl/Tk based for graph and network problems (LGPL, C++ source, binaries) |
IPM | interior point method, f77&C |
MCFClass | abstract C++ class for single commodity MCF problems incl 5 solvers: RelaxIV, MCFZIB, CS2, MCFCplex, SPTree |
RelaxIV | MCF solver by Bertsekas&Tseng plus other network and assignment solvers |
Netsoft | Andrew Goldberg's Network Optimization Library in C |
Nonlinear objective function
LSNNO | f77 code from netlib |
PPRN | library for various platforms |
Special/constraint Solvers/Languages
ROPTLIB | Riemannian Manifold Optimization Library (C++) |
Numberjack | A Python Constraint Programming platform (interface to many C/C++ solvers) |
Manopt | Optimization on Riemannian manifolds (Matlab) |
Rational | Exact solvers for sparse and dense rational linear systems (C, GMP) plus large set of test problems |
GloptLab | a configurable framework for the rigorous global solution of quadratic constraint satisfaction problems (Matlab) |
ECLiPSe | Constraint Programming System, source, binaries, public license |
RealPaver | Interval-based nonlinear constraint solver; source, binaries, documentation (C, BSD license) |
RSOLVER | Solver for qualified inequality constraints; source, linux binaries, Java GUI, remote access, other constraint solvers |
ICOS | Interval Constraints Solver, AMPL interface, Linux&Windows-Cygwin binaries |
WSAT(OIP) | domain independent local search method for linear integer constraints, Linux binary has AMPL/CPLEX interface |
Filtrane | part of Galahad, nonlinear constraints, filter method, f2003 |
MVE | Finding the largest ellipsoid inscribing a given polytope (GPL, Matlab) |
Miniball | Finding the smallest enclosing ball of points (GPL, C++) |
Miniball@sourceforge | Finding the smallest enclosing ball of balls, QPL-licensed, C++ |
Dynamic Programming
Open DP | general dynamic programming software to optimize discrete time processes, with continuous or discrete decisions; random processes (observable or not) allowed |
jsdp | Software for solving stochastic dynamic programming problems (Java) |
DP2PN2 | Java package for dynamic programming; needs javac |
ACADO | Toolkit for automatic control and dynamic optimization (C++, Matlab interface) |
ACADOS | Fast and embedded solvers for nonlinear optimal control (C; Python, Matlab, Octave interfaces) |
CompEcon Tb | Matlab toolbox for computational economics and finance incl general optimization, dynamic programming, stochastic control |
Control Problems
StOpt | Stochastic Control Library (C++, some python bindings) |
SD_SCIP | Scip Plug-In for Solving System Dynamics Optimization Problems (C) |
MOOSE | Model Based Optimal Input Signal Design Toolbox (Matlab) |
ACADO | Toolkit for control (C++, Matlab interface) |
ACADOS | Fast and embedded solvers for nonlinear optimal control (C; Python, Matlab, Octave interfaces) |
HPMPC | Library for High-Performance implementation of solvers for MPC, highly optimized for common architectures; C, Octave interface |
POCP | Package for Polynomial Optimal Control Problems, uses Gloptipoly or Yalmip (Matlab) |
SQPlab | Matlab solver for nonlinear optimization and optimal control |
OpenDDPT | Open Discrete Dynamic Programming Template (C/C++); includes unconstrained optimization package |
LAAS-DO | Links to various control-related software |
fast_mpc | implementation of Boyd's method using online optimization (C/Matlab) |
OptControlCentre | package for the optimization of dynamical systems in energy and chemical engineering |
HIFOO | A MATLAB package for fixed-order controller design and H-infinity optimization |
GPOPS | A MATLAB package for multiple phase optimal control; requires SNOPT |
RoMulOC | Robust Multi-Objective Control toolbox, uses YALMIP (Matlab) |
MPT | Multi-parametric toolbox for constrained linear and piecewise affine systems (Matlab) |
CompEcon Tb | Matlab toolbox for computational economics and finance incl general optimization, dynamic programming, stochastic control |
SLICOT | Control and Systems Library. Very comprehensive. |
DIRCOL | Direct collocation method. Optimal ODE control problems with control and state constraints are solved as NLPs with NPSOL or SNOPT |
PAREST | A direct multiple shooting method for the numerical solution of optimal control and parameter estimation problems |
Biomimikry | Matlab code for Optimization, Control, and Automation |
OCS | SciLab/Maple based to solve unconstrained ODE control problems |
DAE solvers | Suite of codes to solve optimal control and related problems |
HQP/OMUSES | ODE/DAE, automatic differentiation, own format or ASCEND or Simulink input, HQP to solve NLPs (C, C++, f77, Tcl) |
TRICE | Designed to solve discretized PDE-constrained optimization problems with trust region interior point SQP methods |
Other collections or problem types
IPO | Investigating Polyhedra by Oracles (C++) |
Optizelle | Open source software for general NLP problems; multilanguage support |
Compressive Sensing | software for compressive sensing (mostly Matlab) |
MCQueue | transient and steady-analysis of discrete-time and continuous-time Markov chains, performance measures or basic queueing models |
SVM software | Links to Gaussian Processes and SVM software |
IMMOPTIBOX | Matlab toolbox for Optimization and Data Fitting |
YALMIP | Matlab toolbox for rapid prototyping of optimization problems, supports 20 solvers |
HYSDEL | Hybrid Systems Description Language and other downloads |
Modulopt | Fortran 77 codes for smooth and nonsmooth unconstrained, bound-constrained, and general NLP; test problems |
TANGO | Collection of Fortran codes for NLP; applications, testproblems. |
CompEcon Tb | Matlab toolbox for computational economics and finance incl general optimization, dynamic programming, stochastic control |
DAKOTA | A Multilevel Parallel Object-Oriented Framework for Design Optimization, Parameter Estimation, Uncertainty Quantification, and Sensitivity Analysis |
OPT++ | An Object-Oriented Nonlinear Optimization Library |
UFO | Interactive System for Optimization, very comprehensive; f77 interface for various systems/compilers, library |
TOMLAB | commercial Matlab optimization package, comprehensive, with interfaces to many state-of-the-art optimization solvers |
PARAM | Klaus Schittkowski's software, especially parameter-identification |
KELLEY | Iterative Methods for Optimization by T. Kelley, codes in Matlab and f77 |
MATLOG | Facility location and logistics toolbox (Matlab) |
PLT | production/storage/transport, various solvers as Win binaries |
VRP Web | comprehensive information/links on VRP |
DistOpt | Solving large-scale problems through decomposition. Requires Ptolemy, works with various free for research or commercial solvers. Tcl/Tk graphics, C++. |
Cheddar | GPL-licensed real-time scheduling simulator, source, Win/Linux/Solaris binaries |
FIR toolbox | Matlab toolbox to optimize FIR filters and similar structures; needs SeDuMi or LOQO or other |
StarFLIP | A reusable iterative optimization library for combinatorial problems with fuzzy constraints (C++) |
MOZART | Advanced development platform based on Oz. Demos include constraint programming, multi-agent, and concurrent applications. |