Algorithms for mixed integer problems can be used for continuous and all-integer problems, too.
Mixed Integer Linear Programming (MILP)
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, procedural interface. Java wrapper |
BonsaiG | C, B&B, dynamic LP, partial arc consistency algorithm, Linux binary |
PICO (part of ACRO) | B&C, using CPLEX, GLPK, or SOPLEX; AMPL interface |
GLPK | GNU LP library, B&B, dual/revised simplex, interior point, C, Win32-version, Matlab interface, Java interface |
CBC | Simple branch&cut solver, part of COIN-OR (C++) |
COLIOP | IDE to solve LP and MILP; uses GLPK as solver; uses modeling language CMPL (C++) |
SYMPHONY | callable library for solving mixed-integer linear programs, uses Clp as default LP solver (C) |
Mixed Integer Quadratic Programming (MIQP)
MIQPBB | branch&bound code |
YALMIP | Matlab toolbox for rapid prototyping of optimization problems, supports many solvers; B&B for mixed integer problems |
MIQP | part of MPT (Matlab) |
SDP solvers for discrete optimization
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) |
YALMIP | Matlab toolbox for rapid prototyping of optimization problems, supports 20 solvers; B&B for mixed integer problems |
Max-AO | solves SDP relaxations of maximum stable set and maximum clique problems, graph input (C) |
SDPLR | solves SDP relaxations of the maximum cut, minimum bisection, and Lovasz theta problems, graph input (C) |
Mixed Integer Nonlinear Programming (MINLP)
BonMin | hybrid code from COIN-OR, exact for convex problems |
Minotaur, MINLPBB, MIQPBB | various codes, exact for convex problems |
LaGO | B&C, Linux binary, binary variables only, GAMS interface |
BARON | 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 |
AlphaEcp | part of GAMS or through NEOS, exact for convex problems |
LogMIP | Logical Mixed-Integer Programming, general disjunctive programming (needs GAMS) |
MINLP solvers | Links to more solvers |
Pure integer programming
LocalSolver | G Local search heuristic for nonlinear 0-1 problems, free for academic use (C++, C#, Java, .NET) |
OPBDP binaries |
0-1 variables, objective and constraints polynomial (C++) A Davis-Putnam Based Enumeration Algorithm for Linear Pseudo-Boolean Optimization |
CSPLIB/CPlan | C-library for binary constraint satisfaction problems, application to planning problems |
CirCut | GPL-licensed f90 code to approximately solve certain binary quadratic problems such as Max-Cut, Max-Bisection etc. |
A list of problem specific solvers
perm_mateda | Matlab toolbox for permutation-based combinatorial optimization problems incl TSP and QAP |
Torsche | Matlab scheduling toolbox |
TSP software | Commented list of exact and heuristic traveling salesman software |
Concorde | The ultimate Traveling Salesman code, includes LK, source in (C), Win/Unix executables |
LKH | An effective implementation of the Lin-Kernighan heuristic, symmetric and unsymmetric cases, C |
TSPTW | C++ code using ILOG Solver&Scheduler for TSP with time windows |
Blossom IV | Minimum weighted perfect matching solver (C); needs Concorde |
Assignment Problems | links in book by Burkard et al |
STONY BROOK | The Stony Brook Algorithm Repository |
Hungarian method | basic f77 code to solve the linear assignment problem |
SKAP | f77 code for the k-cardinality assignment problem |
QAP | heuristic algorithms for the quadratic assignment problem |
LEMON | Library of Efficient Models and Optimization in Networks (C++) |
Cliquer | exact B&B code to solve various clique problems in weighted graphs (C, GPL) |
QUALEX | fast heuristic max-weight clique/independent set solver |
Knapsack | problem generators and solvers, bin-packing, container-loading |
TOMS 864 | Three-dimensional bin-packing algorithms |
TSpack | C-code for d-dimensional bin packing |
MATLOG | Facilities Planning and Logistics Matlab Toolbox |
JOBSHOP | a package to solve jobshop scheduling problems |
SAT Live! | up-to-date links for the satisfiability problem |
WALKSAT | Stochastic Local Search for Satisfiability, various github projects |
MAXSAT | Borchers' exact algorithm and testproblems for (weighted) MAX-SAT |
GEOSTEINER | package to compute optimal Steiner and minimal spanning trees |
BIOGEME | package for discrete choice (GEV) models |
For more information
Operations Research and Related Sites | mainly a list of useful URL's maintained by John Mitchell |