On Proof Systems Behind Efficient SAT Solvers DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Exploiting SAT solvers in unbounded model checking
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Time-Space Tradeoffs in Resolution: Superpolynomial Lower Bounds for Superlinear Space Chris Beck Princeton University Joint work with Paul Beame & Russell.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Traveling Salesperson Problem
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
Time-Space Tradeoffs in Resolution: Superpolynomial Lower Bounds for Superlinear Space Chris Beck Princeton University Joint work with Paul Beame & Russell.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View SAT.
1/30 SAT Solver Changki PSWLAB SAT Solver Daniel Kroening, Ofer Strichman.
Chapter 5 Shortest Paths: Label-Correcting Algorithms
Properties of SLUR Formulae Ondřej Čepek, Petr Kučera, Václav Vlček Charles University in Prague SOFSEM 2012 January 23, 2012.
Chapter 6: Transform and Conquer
Reduction of Interpolants for Logic Synthesis John Backes Marc Riedel University of Minnesota Dept.
SAT and Model Checking. Bounded Model Checking (BMC) A.I. Planning problems: can we reach a desired state in k steps? Verification of safety properties:
4 th Nov, Oct 23 rd Happy Deepavali!. 10/23 SAT & CSP.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
Willis Lemasters Grant Conklin. Searching a tree recursively one branch at a time, abandoning any branch which does not satisfy the search constraints.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
3/25  Monday 3/31 st 11:30AM BYENG 210 Talk by Dana Nau Planning for Interactions among Autonomous Agents.
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
Last time Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search strategy.
Integer Programming Difference from linear programming –Variables x i must take on integral values, not real values Lots of interesting problems can be.
Shatter: Efficient Symmetry- Breaking for Boolean Satisfiability Fadi A. Aloul Igor L. Markov, Karem A. Sakallah The University of Michigan.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
ECE 667 Synthesis & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
ENGG3190 Logic Synthesis “Boolean Satisfiability” Winter 2014 S. Areibi School of Engineering University of Guelph.
SAT Solving Presented by Avi Yadgar. The SAT Problem Given a Boolean formula, look for assignment A for such that.  A is a solution for. A partial assignment.
Called as the Interval Scheduling Problem. A simpler version of a class of scheduling problems. – Can add weights. – Can add multiple resources – Can ask.
Satisfiability Introduction to Artificial Intelligence COS302 Michael L. Littman Fall 2001.
Binary Decision Diagrams (BDDs)
Logics for Data and Knowledge Representation Propositional Logic: Reasoning Originally by Alessandro Agostini and Fausto Giunchiglia Modified by Fausto.
Quantified Formulas - Decision Procedure Daniel Kroening, Ofer Strichman Presented by Changki Hong 07 NOV 08.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
Solvers for the Problem of Boolean Satisfiability (SAT) Will Klieber Aug 31, 2011 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Logic Circuits Chapter 2. Overview  Many important functions computed with straight-line programs No loops nor branches Conveniently described with circuits.
CS 267: Automated Verification Lecture 6: Binary Decision Diagrams Instructor: Tevfik Bultan.
MINATO ZDD Project Efficient Enumeration of the Directed Binary Perfect Phylogenies from Incomplete Data Toshiki Saitoh (ERATO) Joint work with Masashi.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
NP-Complete Problems. Running Time v.s. Input Size Concern with problems whose complexity may be described by exponential functions. Tractable problems.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Efficient Algorithms for Some Variants of the Farthest String Problem Chih Huai Cheng, Ching Chiang Huang, Shu Yu Hu, Kun-Mao Chao.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
SAT 2009 Ashish Sabharwal Backdoors in the Context of Learning (short paper) Bistra Dilkina, Carla P. Gomes, Ashish Sabharwal Cornell University SAT-09.
Maximum Density Still Life Symmetries and Lazy Clause Generation Geoffrey Chu, Maria Garcia de la Banda, Chris Mears, Peter J. Stuckey.
Tommy Messelis * Stefaan Haspeslagh Patrick De Causmaecker *
Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
SAT Solving As implemented in - DPLL solvers: GRASP, Chaff and
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
Hybrid BDD and All-SAT Method for Model Checking
Inference and search for the propositional satisfiability problem
Gábor Kusper University of Linz RISC Austria
Intro to Theory of Computation
Chain Reduction for Binary and Zero-Suppressed Decision Diagrams
A Boolean Paradigm in Multi-Valued Logic Synthesis
Resolution over Linear Equations: (Partial) Survey & Open Problems
Binary Decision Diagrams
ECE 667 Synthesis and Verification of Digital Circuits
Decision Procedures An Algorithmic Point of View
Artificial Intelligence
NP-Completeness Yin Tat Lee
Switching Lemmas and Proof Complexity
Verifying Clausal Proofs, DRUPing and Interpolants SAT/SMT Seminar
Presentation transcript:

On Proof Systems Behind Efficient SAT Solvers DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor

Motivation Best complete SAT solvers are based on DLL  Runtime (on unSAT instances) is lower-bounded by the length of resolution proofs  Exponential lower bounds for pigeonholes Previous work: we introduced the Compressed Breadth-First Search algorithm (CBFS/Cassatt)  Empirical measurements: our implementation of Cassatt spends Θ(n 4 ) time on PHP n n+1 This work: we show analytically that CBFS refutes pigeonhole instances PHP n n+1 in poly time  Hope to find a proof system behind Cassatt

Empirical Performance

Related Work We are pursuing novel algorithms for SAT facilitated by data structures with compression  Zero-suppressed Binary Decision Diagrams (ZDDs) Existing algorithms can be implemented w ZDDs  The DP procedure: Simon and Chatalic, [ICTAI 2000]  DLL: Aloul, Mneimneh and Sakallah, [DATE 2002] We use the union-with-subsumption operation Details of the Cassatt algorithm are in  Motter and Markov, [ALENEX 2002]

Outline Background Compressed BFS  Overview  Example  Algorithm Pigeonhole Instances Outline of Proof  Some bounds Conclusions and Ongoing Work

Background (a+c+d)(-g + -h)(-b + e + f)(d + -e) Cut clause Not cut

Background: Terminology Given partial truth assignment Classify all clauses into:  Satisfied At least one literal assigned true  Violated All literals assigned, and not satisfied  Open 1+ literal assigned, and no literals assigned true Open clauses are activated but not satisfied  Activated Have at least one literal assigned some value  Unit Have all but one literal assigned, and are open A valid partial truth assignment  no violated clauses disjoint

Open Clauses Straightforward Breadth-First Search  Maintain all valid partial truth assignments of a given depth; increase depth in steps Valid partial truth assignments  sets of open clauses  No literals assigned  Clause is not activated  All literals assigned  Clause must be satisfied Because: assignment is valid  no clauses are violated “Cut” clause = some, but not all literals assigned  Must be either satisfied or open  This is determined by the partial assignment

Binary Decision Diagrams BDD: A directed acyclic graph (DAG)  Unique source  Two sinks: the 0 and 1 nodes Each node has  Unique label  Level index  Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions  Evaluation is performed by a single DAG traversal BDDs are characterized by reduction rules  If two nodes have the same level index and children Merge these nodes 01 A 1 i n 

Zero-Supressed BDDs (ZDDs) Zero-supression rule  Eliminate nodes whose T-Child is 0  No node with a given index  assume a node whose T-child is 0 ZDDs can store a collection of subsets  Encoded by the collection’s characteristic function  0 is the empty collection   1 is the one-collection of the empty set {  } Zero-suppression rule enables compact representations of sparse or regular collections

Compressed BFS: Overview Maintain collection of subsets of open clauses  Analogous to maintaining all “promising” partial solutions of increasing depth  Enough information for BFS on the solution tree This collection of sets is called the front  Stored and manipulated in compressed form (ZDD)  Assumes a clause ordering (global indices) Clause indices correspond to node levels in the ZDD Algorithm: expand one variable at a time  When all variables are processed two cases possible The front is   Unsatisfiable The front is {  }  Satisfiable

Compressed BFS Front  1 # assign {  } to front foreach v  Vars Front2  Front Update(Front, v  1) Update(Front2, v  0) Front  Front  s Front2 if Front == 0 return Unsatisfiable if Front == 1 return Satisfiable

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Process variables in the order {a, b, c, d} Initially the front is set to 1  The collection should contain one “branch”  This branch should contain no open clauses  {  } 1

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable a  Activate clauses {3, 4, 5, 6} Cut clauses: {3, 4, 5, 6}  a = 0 Clauses {3, 4} become open  a = 1 Clauses {5, 6} become open ZDD contains { {3, 4}, {5, 6} }

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable b  Activate clauses {1, 2} Cut clauses: {1, 2, 3, 4, 5, 6}  b = 0 No clauses can become violated  b is not the end literal for any clause Clause 2 is satisfied  Don’t need to add it Clause 1 first becomes activated

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable b  Activate clauses {1, 2} Cut clauses: {1, 2, 3, 4, 5, 6}  b = 1 No clauses can become violated  b is not the end literal for any clause Existing clauses 4, 6 are satisfied Clause 1 is satisfied  Don’t need to add it Clause 2 first becomes activated

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable b  Activate clauses {1, 2} Cut clauses: {1, 2, 3, 4, 5, 6}  b = 1 No clauses can become violated  b is not the end literal for any clause Existing clauses 4, 6 are satisfied Clause 1 is satisfied  Don’t need to add it Clause 2 first becomes activated

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) b=1 b=0 1 0

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable c  Finish clause 4 Cut clauses: {1, 2, 3, 5, 6}  c = 0 No clauses become violated  c ends 4, but c=0 satisfies it Clauses 4,5 become satisfied No clauses become activated

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable c  Finish clause 4 Cut clauses: {1, 2, 3, 5, 6}  c = 1 Clause 4 may be violated  If c appears in the ZDD, then it is still open Clauses 1, 2, 3 are satisfied No clauses become activated

Compressed BFS: An Example (b + c + d)(-b + c + -d)(a + c + d)(a + b + -c)(-a + -c + d)(-a + b + d) Processing variable d  Finish clauses {1, 2, 3, 5, 6} Cut clauses: {1, 2, 3, 5, 6}  d = 0, d=1 All clauses are already satisfied Assignment doesn’t affect this Instance is satisfiable

Compressed BFS: Pseudocode CompressedBfs(Vars, Clauses) front  1 for i = 1 to |Vars| do front’  front //Modify front to reflect x i = 1 Form sets U xi,1, S xi,1, A xi,1 front  front  2 Cut - Uxi,1 front  ExistAbstract(front, S xi,1 ) front  front  A xi,1 //Modify front' to reflect x i = 0 Form sets U xi,0, S xi,0, A xi,0 front’  front’  2 Cut - Uxi,0 front’  ExistAbstract(front’, S xi,0 ) front’  front’  A xi,0 //Combine the two branches via Union with Subsumption front  front  s front' if front = 0 then return Unsatisfiable if front = 1 then return Satisfiable

The Instances PHP n n+1 Negation of the pigeonhole principle  “If n+1 pigeons are placed in n holes then some hole must contain more than one pigeon” Encoded as a CNF  n(n+1) Boolean variables v ij represents that pigeon i is in hole j  n+1 “Pigeon” clauses: (v i1 + v i2 + … + v in ) Pigeon i must be in some hole  n(n+1) “Pairwise Exclusion” clauses (per hole): (v i1j + v i2j ) No two pigeons can be in the same hole Unsatisfiable CNF instance Use the “hole-major” variable ordering  {x 1, x 2, … x n(n+1) }  {v 11, v 21, …, v (n+1)1,v 12,v 22, …}

The Instances PHP n n+1

Outline of Proof Bound the size of the ZDD-based representation throughout execution  With most ZDD operations: h = zdd_op(ZDD f, ZDD g) h is built during a traversal of ZDDs f, g The execution time is bounded by poly(|f|, |g|) Do not consider all effects of reduction rules  These obscure underlying structure of the ZDD  Reduction rules can only eliminate nodes This will still allow an upper bound on ZDD size

Outline of Proof Main idea: Bound the size of the partially reduced ZDD  First compute a simple bound between “holes”  Prove that the size does not grow too greatly inside “holes” Show the ZDD at given step has a specific structure

Bounds Between H k Lemma. Let k  {1, 2, …, n}. After assigning values to variables x 1, x 2, …, x k(n+1), we may satisfy at most k of the n+1 pigeon clauses.  Valid partial truth assignment to the first k(n+1) variables  Must set only one variable in H i true, for each i<k. For CBFS  Remove subsumed sets  front contains all sets of (n+1-k) pigeon clauses  How many nodes does this take?

ZDD of all k-Element Subsets To reach 1  function must select the T-Child on exactly k indices  Less than k  Traverse to 0  More than k  Zero-Supression Rule Contains (n+1-k)k nodes ZDDs are a canonical representation  When this is encountered in CBFS, we are assured of this structure  CBFS uses (n+1-k)(k+1) nodes after variable x k(n+1)

The front within H k After variable x k(n+1)+i the ZDD contains (i+1) “branches” Main branch corresponds to all x k(n+1) + 1, …, x k(n+1) + i false i+1 other branches correspond to one of x k(n+1) + 1, …, x k(n+1) + i true Squares correspond to ZDDs of all subsets of a given size Can show this structure is correct by induction Bound comes from counting nodes in this structure

Analytical vs. Empirical

Conclusions and Ongoing Work Understanding why CBFS can quickly solve pigeonhole instances depends on recognizing structural invariants within the ZDD We hope to understand exactly what proof system is behind CBFS We hope to improve the performance of CBFS  DLL solvers have been augmented with many ideas (BCP, clause subsumption, etc)  These ideas may have an analogue with CBFS giving a performance increase

Thank you!!!

The Utility of Subsumption Cassatt empirically solves pigeonhole instances in O(n 4 ) without removing subsumptions Without subsumption removal  Instead of ZDD’s for all k- element subsets  ZDDs for all (k or greater)- element subsets Still O(n 2 ) To find a bound, need to factor in the additional nodes due to keeping all (k or greater) element subsets

Opportunistic Subsumption Finding ‘Subsume’-able sets can occur as the result of Existential Abstraction or Union  In pigeonhole instances, this only occurs when we satisfy 1 pigeon clause  Smaller sets will have only one less element than larger sets they subsume Can detect some subsumptions by recursively searching for nodes of the form  Captures subsumptions which occur in CBFS’s solution of pigeonhole instances

Thanks again!!!

Processing a Single Variable Given:  Assignment of 0 or 1 to a single variable x It violates some clauses: V x←{0,1}  V x←{0,1} : Clauses which are unit, and this assignment makes the remaining literal false If any clause in V x←{0,1} is open then the partial truth assignment for that set of open clauses cannot yield satisfiability  Remove all such sets of open clauses  Can use ZDD Intersection

Processing a Single Variable Given:  Assignment of 0 or 1 to a single variable x It satisfies some clauses: S x←{0,1}  S x←{0,1} : Clauses in which x appears, and the assignment makes the corresponding literal true If any clause in S x←{0,1} is open, it should no longer be  Remove all such clauses S x←{0,1} from any set  ZDD  Abstraction

Processing a Single Variable Given:  Assignment of 0 or 1 to a single variable x It activates some clauses, A x←{0,1}  A x←{0,1} : Clauses in which x is the first literal encountered, and x does not satisfy These clauses are open in any branch of the search now  Add these clauses A x←{0,1} to each set  ZDD Cartesian Product