← Back
Home › Systems › Numerical and mathematical computing

constraint-solver

constraint programming solver

OR-Tools CP-SAT, Gecode

SystemTechniques · 12Primitives · 23 constraint-solver Work-stealing dequeconcurrency · medium: Per-worker deque: the owner pushes and pops at the bottom without contention, idle workers steal from the top; the core of Rayon, Tokio and Go.›Bipartite matchinggraphs · medium: Maximum/weighted bipartite matching (Hopcroft-Karp, Hungarian) for assignment problemsCDCL SAT solvingoptimization · medium: Search 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.›Constraint propagation (constraint…optimization · medium: Variables with finite domains, propagators that prune impossible values to a fixpoint, and backtracking search with trail undo between decisions.›Cutting planesoptimization · medium: Valid 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.›Guided local searchoptimization · medium: Penalize frequent solution features to escape local optima in routing and schedulingJob-shop schedulingoptimization · medium: Model 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.›Max flow (Dinic)graphs · low: Maximum s-t flow by BFS level graphs and blocking flows; also gives the min cut, bipartite matching and assignment with capacities.›Drat proof certificatesoptimization · low: DRAT and LRAT proofs emitted by SAT solvers and checked independentlyTwo watched literalsoptimization · low: Unit propagation for SAT that watches just two literals per clause, so backtracking costs nothing and long clauses are rarely touched.›Simplex methodoptimization · low: Solves 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.›Strongly connected componentsgraphs · low: Tarjan/Kosaraju SCCs for cycle detection in dependency graphsBinary decision diagramsoptimization · low: A 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.›Tseitin transformationoptimization · low: Linear-size CNF encoding of formulas with auxiliary variablesEpoch-based reclamationconcurrency · low: Threads announce a global epoch while touching shared lock-free data; garbage retired in epoch e is freed once the epoch reaches e + 2.›Memory orderingconcurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.›BFS and DFSgraphs · low: The two basic graph traversals; BFS gives hop distances and levels, DFS gives discovery/finish order for cycles, components and topological order.›d-ary heapdata-structures · low: Array heap with d children per node (d = 4 typical): half the binary heap's depth, siblings in one cache line, faster priority queues.›Arena allocatorsystems · low: Allocate by bumping a pointer through big chunks and free everything at once: a few instructions per allocation for objects sharing a lifetime.›Interval arithmeticnumerics · low: Rigorous bounds with outward rounding; root isolation and robust geometric testsJournaled state revertstorage · low: Undo journal of state writes enabling nested checkpoints and cheap revertFloating-point errornumerics · low: How IEEE 754 rounding error accumulates and how to contain it: compensated (Kahan/Neumaier) and pairwise summation, error-free transformations with FMA, ULP comparisons.›Swiss tabledata-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.›+ 5 more techniques+ 7 more primitives

Similar systems

Share the most building blocks with this one.