Academia.eduAcademia.edu

Satisfiability Solvers

Abstract

The past few years have seen an enormous progress in the performance of Boolean satisfiability (SAT) solvers . Despite the worst-case exponential run time of all known algorithms, satisfiability solvers are increasingly leaving their mark as a generalpurpose tool in areas as diverse as software and hardware verification , automatic test pattern generation , planning , scheduling [103], and even challenging problems from algebra . Annual SAT competitions have led to the development of dozens of clever implementations of such solvers [e.g. 13, 19, 71, 93, 109, 118, 150, 152, 161, 165, 170, 171, 173, 174, 184, 198, 211, 213, 236], an exploration of many new techniques [e.g. 15, 102, 149, 170, 174], and the creation of an extensive suite of real-world instances as well as challenging hand-crafted benchmark problems [cf. 115]. Modern SAT solvers provide a "black-box" procedure that can often solve hard structured problems with over a million variables and several million constraints.

Key takeaways

  • However, large SAT encodings are no longer an obstacle for modern SAT solvers.
  • It is natural to think of a CNF formula as a set of clauses and each clause as a set of literals.
  • This technique has played a critical role in the success of SAT solvers, in particular those involving clause learning.
  • Clause learning and random restarts can be considered to be two of the most important ideas that have lifted the scope of modern SAT solvers from experimental toy problems to large instances taken from real world challenges.
  • This explains, formally, the performance gains observed empirically when clause learning is added to DPLL based solvers.