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)
| 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 |
| 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 | 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 |