Linear Programming - Solvers and Scripting (programming) Languages

Solvers and Scripting (programming) Languages

Free open-source permissive licenses:

Name License Brief info
OpenOpt BSD Universal cross-platform numerical optimization framework,
see its LP page and other problems involved

Free open-source copyleft (reciprocal) licenses:

Name License Brief info
Cassowary constraint solver LGPL an incremental constraint solving toolkit that efficiently solves systems of linear equalities and inequalities.
glpk GPL GNU Linear Programming Kit, a free LP/MILP solver. Uses GNU MathProg modelling language.
Qoca GPL a library for incrementally solving systems of linear equations with various goal functions
CLP CPL an LP solver from COIN-OR
R-Project GPL a programming language and software environment for statistical computing and graphics

MINTO (Mixed Integer Optimizer, an integer programming solver which uses branch and bound algorithm) has publicly available source code but not open source.

Proprietary:

Name Brief info
APMonitor
AIMMS
AMPL A popular modeling language for large-scale linear, mixed integer and nonlinear optimisation with a free student version available.
CPLEX Popular solver with an API for several programming languages, and also has a modelling language and works with AIMMS, AMPL, GAMS, MPL, OpenOpt, OPL Development Studio, and TOMLAB
EXCEL Solver Function
FortMP
GAMS
Gurobi Solver with parallel algorithms for large-scale linear programs, quadratic programs and mixed-integer programs. Free for academic use.
IMSL Numerical Libraries Collections of math and statistical algorithms available in C/C++, Fortran, Java and C#/.NET. Optimization routines in the IMSL Libraries include unconstrained, linearly and nonlinearly constrained minimizations, and linear programming algorithms.
MATLAB A general-purpose and matrix-oriented programming-language for numerical computing. Linear programming in MATLAB requires the Optimization Toolbox in addition to the base MATLAB product; available routines include BINTPROG and LINPROG
Mathematica A general-purpose programming-language for mathematics, including symbolic and numerical capabilities.
MOSEK A solver for large scale optimization with API for several languages (C++,java,.net, Matlab and python).
NAG Numerical Library A collection of mathematical and statistical routines developed by the Numerical Algorithms Group for multiple programming languages (C, C++, Fortran, Visual Basic, Java and C#) and packages (MATLAB, Excel, R, LabVIEW). The Optimization chapter of the NAG Library includes routines for linear programming problems with both sparse and non-sparse linear constraint matrices, together with routines for the optimization of quadratic, nonlinear, sums of squares of linear or nonlinear functions with nonlinear, bounded or no constraints. The NAG Library has routines for both local and global optimization, and for continuous or integer problems.
NMath Stats A general-purpose .NET statistical library containing a simplex solver.
OptimJ A Java-based modeling language for optimization with a free version available.
SAS/OR A suite of solvers for Linear, Integer, Nonlinear, Derivative-Free, Network, Combinatorial and Constraint Optimization; the Algebraic modeling language OPTMODEL; and a variety of vertical solutions aimed at specific problems/markets, all of which are fully integrated with the SAS System.
SCIP A general-purpose constraint integer programming solver with an emphasis on MIP. Compatible with Zimpl modelling language. Free for academic use and available in source code.
SuanShu A Java-based math library that supports linear programming and other kinds of numerical optimization.
VisSim A visual block diagram language for simulation of dynamical systems.

Read more about this topic:  Linear Programming

Famous quotes containing the word languages:

    No doubt, to a man of sense, travel offers advantages. As many languages as he has, as many friends, as many arts and trades, so many times is he a man. A foreign country is a point of comparison, wherefrom to judge his own.
    Ralph Waldo Emerson (1803–1882)