Optimization & solvers
LP and MIP, constraint programming, SAT and SMT, metaheuristics, and routing, scheduling and packing heuristics.
LP, MIP & convex solvers
Exact solvers for linear, integer and quadratic programs.
Simplex method
lowSolves linear programs by walking along the edges of the feasible polytope from vertex to vertex, one basis swap (pivot) at a time; the workhorse behind MIP solvers.
Mixed-integer programming (branch and bound)
mediumSolves LPs with integer variables by solving the LP relaxation, branching on a fractional variable, and pruning subtrees whose LP bound cannot beat the incumbent.
Cutting planes
mediumValid inequalities added to an LP relaxation to cut off its fractional optimum without removing any integer point; the engine of branch-and-cut MIP solvers.
Presolve reductions
mediumCheap, provably safe reductions run before the solver (fix variables, drop rows, tighten bounds and coefficients) so LP and MIP solves start from a smaller, tighter model.
Column generation
mediumSolve a huge LP by keeping only a few columns and pricing new ones from a subproblem until none can improve; gives the Dantzig-Wolfe bound.
Interior-point method (primal-dual, Mehrotra)
mediumFollows the central path with Newton steps on the perturbed KKT system, one sparse Cholesky per iteration; Mehrotra's predictor-corrector makes it fast.
primal dual hybrid gradient
Planned.
quadratic programming
Planned.
stochastic programming
Planned.
SAT, SMT & constraint programming
Boolean and constraint solvers and the encodings that feed them.
CDCL SAT solving
mediumSearch for a satisfying assignment, learn a new constraint from every dead end, and jump back past irrelevant choices; handles industrial formulas with millions of clauses.
Two watched literals
lowUnit propagation for SAT that watches just two literals per clause, so backtracking costs nothing and long clauses are rarely touched.
tseitin transformation
Planned.
bit blasting
Planned.
dpll t
Planned.
drat proof certificates
Planned.
Binary decision diagrams
lowA reduced ordered BDD stores a Boolean function as a shared DAG that is unique per variable order, so equivalence is one integer compare and counting is one pass.
Constraint propagation (constraint programming)
mediumVariables with finite domains, propagators that prune impossible values to a fixpoint, and backtracking search with trail undo between decisions.
Metaheuristics & local search
Good-enough answers for problems too big for exact solvers.
simulated annealing
Planned.
genetic algorithms
Planned.
Large neighbourhood search (ruin and recreate)
mediumRepeatedly remove a chunk of a solution and rebuild it with a heuristic or exact solver; learn which operator pairs pay off.
guided local search
Planned.
local search 2opt or opt
Planned.
Routing & scheduling
Vehicle routes, tours and machine or runway schedules.
vehicle routing heuristics
Planned.
savings algorithm clarke wright
Planned.
tsp heuristics
Planned.
Time-window feasibility
lowKeep earliest/latest start and slack per segment so "does this insertion or move keep every window?" costs O(1) instead of a walk down the sequence.
Job-shop scheduling
mediumModel jobs as chains of operations, resource order as a choice of arc directions, and minimise the longest path; build with dispatching rules, improve by swapping critical neighbours or solve with CP.
arrival sequencing and scheduling
Planned.
facility location coverage
Planned.
Packing & supply planning
Packing items, planning materials and stock.
Bin packing
lowPack items of given sizes into the fewest fixed-capacity bins; sort descending, then first-fit, gives at most 11/9 of optimal and runs in O(n log n).
vector bin packing
Planned.
rectangle bin packing
Planned.
subset sum dp
Planned.
inventory policies safety stock
Planned.
bill of materials explosion
Planned.