Every time a compiler checks for impossible conditions, a chip designer verifies a circuit, or a planner allocates resources, the same question lurks underneath: Is there any assignment of true/false values to a list of boolean variables that satisfies all the constraints? That question is called SAT, and it is NP-complete — yet modern software solves instances with millions of variables in seconds.
The credit goes to two algorithms invented six decades apart. DPLL — named for Martin Davis, Hilary Putnam, George Logemann and Donald Loveland — was published in 1960–1962. It is a systematic backtracking search: pick a variable, guess a value, propagate the forced consequences, and backtrack when a contradiction appears. It works, but it can revisit the same dead end over and over.
CDCL (Conflict-Driven Clause Learning), developed through the 1990s and 2000s in solvers like GRASP, Chaff and MiniSat, adds a single powerful idea: when the solver hits a contradiction, it analyzes the conflict, extracts a compact clause that captures why this path failed, and learns it as a new constraint. Every future branch that would lead to the same failure is pruned immediately — without ever re-exploring it.
The combination is why practical SAT solving went from a theoretical curiosity to an industrial workhorse in one generation.
Comments
Loading comments...