70 likes | 205 Views
Boolean Satisfiability Present and Future. Lintao Zhang Microsoft Research SVC. SAT: Introduction . Deciding the satisfiability of Boolean formulas SAT: Propositional ( usually in Conjunctive Normal Form (CNF) ) QBF: With quantifiers Many driving forces Verification
E N D
Boolean Satisfiability Present and Future Lintao Zhang Microsoft Research SVC
SAT: Introduction • Deciding the satisfiability of Boolean formulas • SAT: Propositional ( usually in Conjunctive Normal Form (CNF) ) • QBF: With quantifiers • Many driving forces • Verification • Electronic Design Automation (EDA) • Artificial Intelligence • Operational Research • Physics ??? • Where is SAT used in our context? • A basic building block for the reasoning engine • Reasoning on Boolean domain • Driving branching and backtracking for search • Model Checking • Decision Procedures • Etc.
SAT Solvers: Current State-of-the-Art • Tremendous performance improvements on Propositional SAT solvers in the last decade • Speed increased by at least 3 orders of magnitude • We regularly solve SAT instances with tens of thousands variables and clauses • Example: • Microprocessor verification, Bounded Model Checking, 14 Cycles • 1 million variables, 10 million literals initially • 200 million literals in added clauses • 30 million literals finally • 4 million clauses initially • 200k clauses added • 1.5 million decisions • 3 hours run time
SAT Solvers: Current State-of-the-Art • Non performance related improvements of SAT solvers: • Explanatory SAT solver • UNSAT: Unsatisfiable core extraction • SAT: Minimal model extraction • Interpolation using SAT solver • Checkable proof of unsatisfiability • On line progress report • In the last several years, SAT solver changed from a toy with only academic interest to become a powerful and feature rich deduction method capable of industrial strength applications.
Can we increase the SAT solver speed even more? • Yes. Better heuristics and better implementations are proposed everyday • But the improvements are incremental • DPLL is the dominating algorithm for SAT solving for more than 40 years • Basic DPLL algorithm is proposed in 1962 • Learning and non-chronological backtracking (1996) • Careful implementation and tuning (2001) • 2-Literal Watching BCP, VSIDS decision heuristic, 1-UIP learning, etc. • What’s going on? • Better decision/branching heuristics • Better learning and garbage collection schemes • Leverage the structure of the Boolean formula • What’s next? • We cannot bet on any breakthrough without fundamentally change the way the algorithm works • i.e. Don’t bet on another 3 orders of magnitude speed up in the next 10 years.
SAT Solver as a White Box • Traditional usage of SAT as a Black Box • Translate the problem into a monolithic CNF instance • Throw it to the SAT solver and pray • Used to work well • To squeeze the last bit of performance out of a SAT solver, current applications need to treat SAT as a White Box • We need to use the knowledge about the application to help the SAT solver • Input to the SAT solver may be a Boolean formula combined with: • Branching suggestions • Domain specific implications • Continuous interaction because of abstract and refinement • …… • SAT engines need to be expandable, with cleanly defined interfaces. • What can the applications offer?
QBF: Quantified Boolean Formulas • Many applications stress SAT solver because of quantifications • Eliminate quantification by expansion: the formula becomes exponentially large • Eliminate quantification by solution enumeration: SAT solver is bad at this • Unlike SAT, QBF just started to attract interests from researchers in the last couple of years • No predominant algorithm • DPLL search • Resolution • BDD • And many other approaches… • Quantification elimination is hard (exponential in space), while deciding the satisfiability of a QBF may not be. • Will there be a breakthrough in the near future? • Much more probable than a breakthrough in SAT