Find your next solver
A curated index of Operations Research resources — solvers, courses, books, datasets, communities and more. Classified by type, topic and audience.
- AliGorithmVideo
YouTube channel with interesting knowledge about optimization.
- Anything you can do I can do betterVideo
Prof Marco Lubbecke talks about optimization in a TED Talk.
- BARONSolver
BARON is the industry-leading solver for mixed-integer nonlinear programming (MINLP).
- Ceres SolverSolver
Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems. It can be used to solve Non-linear Least Squares problems with bounds constraints and general unconstrained optimization problems.
- Choco solverSolver
An Open-Source java library for constraint programming
- ChuffedSolver
Chuffed is a state of the art lazy clause solver designed from the ground up with lazy clause generation in mind.
- ClarabelSolver
http://clarabel.rs/ is a Rust implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding.
- CONOPTSolver
CONOPT is a feasible path solver based on advanced active set methods, particularly suited for large and sparse models.
- COPTSolver
A mathematical optimization solver for large-scale optimization problems. It is independently developed by Cardinal Operations, and it includes high-performance solvers for LP, MIP, SDP, (MI)SOCP, convex (MI)QP, convex (MI)QCP and exponential cone programming.
- CPLEXSolver
The IBM ILOG CPLEX Optimizer solves integer programming problems, very large[3] linear programming problems using either primal or dual variants of the simplex method or the barrier interior point method, convex and non-convex quadratic programming problems, and convex quadratically constrained problems (solved via second-order cone programming, or SOCP).
- cuOptSolver
Achieve world-record speed on large-scale problems with millions of constraints and variables—saving time and reducing costs.
- FICO XpressSolver
The FICO Xpress optimizer is a commercial optimization solver for linear programming (LP), mixed integer linear programming (MILP), convex quadratic programming (QP), convex quadratically constrained quadratic programming (QCQP), second-order cone programming (SOCP) and their mixed integer counterparts. Xpress includes a general purpose non-linear solver, Xpress NonLinear, including a successive linear programming algorithm (SLP, first-order method), and Artelys Knitro (second-order methods).
- Free the world from wasteful scheduling with Timefold AIVideo
Solve NP-hard optimization problems with Timefold AI.
- GCGSolver
GCG is a generic decomposition solver for mixed-integer programs (MIPs). It automatically performs a Dantzig-Wolfe reformulation and runs a full-fledged branch-price-and-cut algorithm to solve it to optimality. Alternatively, GCG is able to automatically apply a Benders decomposition.
- GecodeSolver
Gecode is an open source C++ toolkit for developing constraint-based systems and applications. Gecode provides a constraint solver with state-of-the-art performance while being modular and extensible.
- GLPKSolver
For solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library.
- GurobiSolver
Gurobi Optimizer is a prescriptive analytics platform and a decision-making technology developed by Gurobi Optimization, LLC. The Gurobi Optimizer (often referred to as simply, “Gurobi”) is a solver, since it uses mathematical optimization to calculate the answer to a problem.
- HexalySolver
Heuristic-based solver with great results in complex problems
- HiGHSSolver
HiGHS is open-source software to solve linear programming (LP), mixed-integer programming (MIP), and convex quadratic programming (QP) models.
- HSL ma27Solver
To solve a sparse symmetric system of linear equations.
- HuubSolver
Huub is a Lazy Clause Generation (LCG) solver with a focus on modularity and maintainability in addition to speed. LCG solvers are a class of solvers that can be used to solve decision and optimization problems. They are characterized by their ability to dynamically add new Boolean variables and clauses to a Boolean Satisfiability (SAT) solver during the search process
- InsideOptSolver
Optimization software that leverages machine learning to provide unparalleled performance.
- IpoptSolver
Ipopt (Interior Point Optimizer, pronounced "Eye-Pea-Opt") is an open source software package for large-scale nonlinear optimization. It can be used to solve general nonlinear programming problems
- jMetalSolver
jMetal is a Java-based framework for multi-objective optimization with metaheuristics.
- KalisSolver
An innovative constraints programming component able to solve quickly and efficiently a wide range of combinatorial problems relying on an interactive and user-friendly hybrid framework including constraint programming, mixed-integer programming and artificial intelligence.
- KNITROSolver
The most advanced solver for nonlinear optimization.
- LGOSolver
LGO is capable of determining high-quality solutions to global optimization problems that have (possibly many) locally optimal solutions. Because LGO makes only limited assumptions as to problem structure and differentiability, it can be applied in a broad range of design and operational applications.
- LINGOSolver
LINGO includes a set of built-in solvers to tackle a wide variety of problems. Unlike many modeling packages, all of the LINGO solvers are directly linked to the modeling environment.
- LOQOSolver
LOQO is a powerful solver for smooth constrained optimization problems, based on interior-point method applied to a sequence of quadratic approximations. Subject to the requirement that the defining functions be smooth (at the points evaluated by the algorithm), LOQO can handle a range of problems: linear or nonlinear, convex or nonconvex, constrained or unconstrained. For convex problems, LOQO finds a globally optimal solution; otherwise, it iterates from the given starting point to find a locally optimal solution.
- lpsolveSolver
A Mixed Integer Linear Programming (MILP) solver.
- MathOpt: Solver Independent Modeling in Google OR-ToolsVideo
A new interface for Google OR-Tools.
- MINOSSolver
MINOS is an established choice for both linear and nonlinear optimization problems. It incorporates proven methods for large-scale sparse nonlinear constraints, and its methods are especially effective for nonlinear objectives subject to linear and near-linear constraints.
- MIPLearnSoftware
An extensible framework for solving discrete optimization problems using a combination of Mixed-Integer Linear Programming (MIP) and Machine Learning (ML). MIPLearn uses ML methods to automatically identify patterns in previously solved instances of the problem, then uses these patterns to accelerate the performance of conventional state-of-the-art MIP solvers such as CPLEX, Gurobi or XPRESS.
- ML ain’t your only hammerVideo
Introduction to the field of mathematical optimization.
- MosekSolver
Solves your LPs, QPs, SOCPs, SDPs, and MIPs. Includes interfaces to C, C++, Java, MATLAB, .NET, Python, Julia, Rust and R.
- NevergradSolver
A gradient-free optimization platform.
- NLoptSolver
NLopt is a free/open-source library for nonlinear optimization, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms.
- OSQPSolver
The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving convex quadratic programs.
- PATHSolver
The PATH solver for MCP models is a Newton-based solver that combines a number of the most effective variations, extensions, and enhancements of this powerful technique.
- PATHNLPSolver
PATHNLP is a solver for large nonlinear programming problems that builds on the PATH algorithm, extending it from mixed complementarity problems to general NLPs. PATHNLP is distributed through the GAMS ecosystem.
- Pragmatic OR: Solving large scale optimization problems in fast moving environmentsVideo
Rubén Ruiz, Principal Applied Scientist at Amazon, shows how he leverages Hexaly at Amazon to solve a gigantic optimization problem that is out of the scope of other MILP solvers.
- SBBSolver
SBB is a GAMS solver for Mixed Integer Nonlinear Programming (MINLP) models. It is based on a combination of the standard Branch and Bound (B&B) method known from Mixed Integer Linear Programming and some of the standard NLP solvers already supported by GAMS. SBB can use all GAMS NLP solvers as subsolvers but it works best with NLP solvers that can utilize a near optimal point as a starting point like Conopt, Minos, and Snopt.SBB supports all types of discrete variables supported by GAMS, including Binary, Integer, Semicont, Semiint, Sos1, and Sos2.
- SCIPSolver
SCIP is currently one of the fastest non-commercial solvers for mixed integer programming (MIP) and mixed integer nonlinear programming (MINLP). It is also a framework for constraint integer programming and branch-cut-and-price.
- SCSSolver
SCS (Splitting Conic Solver) is a numerical optimization package for solving large-scale convex quadratic cone problems. The code is freely available on https://github.com/cvxgrp/scs. It solves primal-dual problems.
- SHOTSolver
SHOT (Supporting Hyperplane Optimization Toolkit) is a deterministic solver for mixed-integer nonlinear programming problems (MINLPs). Originally, SHOT was intended for convex MINLP problems only, but now also has functionality to solve nonconvex MINLP problems as a heuristic method without providing any guarantees of global optimality. SHOT can solve certain nonconvex problem types to global optimality as well.
- SNOPTSolver
A software package for solving large-scale optimization problems (linear and nonlinear programs). It employs a sparse SQP algorithm with limited-memory quasi-Newton approximations to the Hessian of Lagrangian. SNOPT is especially effective for nonlinear problems whose functions and gradients are expensive to evaluate.
- Timefold AISolver
Updated fork from OptaPlanner
- UnoSolver
Uno (Unifying Nonlinear Optimization) is a C++ library that unifies methods for solving nonlinearly constrained optimization problems.
- Z3Solver
Z3 is a theorem prover from Microsoft Research.