A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.

Slides:



Advertisements
Similar presentations
Exploiting SAT solvers in unbounded model checking
Advertisements

Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Modified.
Presented by Monissa Mohan 1.  A highly optimized BCP algorithm  Two watched literals  Fast Backtracking  Efficient Decision Heuristic  Focused on.
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Presenting:
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
UIUC CS 497: Section EA Lecture #2 Reasoning in Artificial Intelligence Professor: Eyal Amir Spring Semester 2004.
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
Proofs from SAT Solvers Yeting Ge ACSys NYU Nov
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.
Abstract Answer Set Solver. Todolist Print the rules of Fig 1.
© 2011 Carnegie Mellon University Binary Decision Diagrams Part Bug Catching: Automated Program Verification and Testing Sagar Chaki September.
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.
1 Boolean Satisfiability in Electronic Design Automation (EDA ) By Kunal P. Ganeshpure.
CPSC 322, Lecture 12Slide 1 CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12 (Textbook Chpt ) January, 29, 2010.
Presented by Ed Clarke Slides borrowed from P. Chauhan and C. Bartzis
Chaff: Engineering an Efficient SAT Solver Matthew W.Moskewicz, Concor F. Madigan, Ying Zhao, Lintao Zhang, Sharad Malik Princeton University Presenting:
GRASP-an efficient SAT solver Pankaj Chauhan. 6/19/ : GRASP and Chaff2 What is SAT? Given a propositional formula in CNF, find an assignment.
Winter 2004/5Pls – inductive – Catriel Beeri1 Inductive Definitions (our meta-language for specifications)  Examples  Syntax  Semantics  Proof Trees.
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
GRASP SAT solver Presented by Constantinos Bartzis Slides borrowed from Pankaj Chauhan J. Marques-Silva and K. Sakallah.
Efficient Reachability Checking using Sequential SAT G. Parthasarathy, M. K. Iyer, K.-T.Cheng, Li. C. Wang Department of ECE University of California –
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
Last time Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search strategy.
On Proof Systems Behind Efficient SAT Solvers DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
ENGG3190 Logic Synthesis “Boolean Satisfiability” Winter 2014 S. Areibi School of Engineering University of Guelph.
GRASP: A Search Algorithm for Propositional Satisfiability EE878C Homework #2 2002/11/1 KAIST, EECS ICS Lab Lee, Dongsoo.
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.
SAT Solver Math Foundations of Computer Science. 2 Boolean Expressions  A Boolean expression is a Boolean function  Any Boolean function can be written.
Binary Decision Diagrams (BDDs)
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.
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
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.
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.
Search by partial solutions.  nodes are partial or complete states  graphs are DAGs (may be trees) source (root) is empty state sinks (leaves) are complete.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
LDK R Logics for Data and Knowledge Representation Propositional Logic: Reasoning First version by Alessandro Agostini and Fausto Giunchiglia Second version.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Boolean Satisfiability Present and Future
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.
Solving the Logic Satisfiability problem Solving the Logic Satisfiability problem Jesus De Loera.
Satisfiability and SAT Solvers CS 270 Math Foundations of CS Jeremy Johnson.
SAT Solving As implemented in - DPLL solvers: GRASP, Chaff and
1 Boolean Satisfiability (SAT) Class Presentation By Girish Paladugu.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Hybrid BDD and All-SAT Method for Model Checking
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Inference and search for the propositional satisfiability problem
Gábor Kusper University of Linz RISC Austria
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
CSPs: Search and Arc Consistency Computer Science cpsc322, Lecture 12
Propositional Calculus: Boolean Algebra and Simplification
SAT-Based Area Recovery in Technology Mapping
Binary Decision Diagrams
Introduction to the Boolean Satisfiability Problem
ECE 667 Synthesis and Verification of Digital Circuits
Decision Procedures An Algorithmic Point of View
Introduction to the Boolean Satisfiability Problem
Artificial Intelligence
Canonical Computation without Canonical Data Structure
GRASP-an efficient SAT solver
Presentation transcript:

A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor

Motivation SAT is a fundamental problem in CS thry & apps “Efficient” SAT solvers abound (GRASP, Chaff) Many small instances are still difficult to solve 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, IJCAI 2000 DLL: Aloul, Mneimneh and Sakallah, DATE 2002

Outline Background Partial truth assignments and implied clause classification Representing collections of subsets with Zero-Suppressed BDDs (ZDDs) Cassatt: a simple example Cassatt: algorithm overview Outer loop: process one variable at a time Processing a given variable Efficiency improvements using ZDDs Empirical results and conclusions

Partial Truth Assignments SAT instance: {V, C} V: set of variables {a, b, … n} C: set of clauses Each clause is a set of literals over V Partial truth assignment to some V  V If it makes all literals in some clause false call it invalid Otherwise, call the assignment valid

Clause Classification With respect to a valid truth assignment, no clauses evaluate to false  Every clause must be either Unassigned No literals in this clause are assigned Satisfied At least one literal in this clause is true Open At least one literal assigned, and all such literals are false {Open clauses}  partial truth assignment  Store sets of open clauses instead of assgnmts

Binary Decision Diagrams BDD: A directed acyclic graph (DAG) Unique source Two sinks: the 0 and 1 nodes Each node has Unique label Level number Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions Evaluation is performed by a single DAG traversal 01 A 1 i n 

Binary Decision Diagrams BDD: A directed acyclic graph (DAG) Unique source Two sinks: the 0 and 1 nodes Each node has Unique label Level number Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions Evaluation is performed by a single DAG traversal 01 A 1 i n 

Binary Decision Diagrams BDD: A directed acyclic graph (DAG) Unique source Two sinks: the 0 and 1 nodes Each node has Unique label Level number Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions Evaluation is performed by a single DAG traversal 01 A 1 i n 

Binary Decision Diagrams BDD: A directed acyclic graph (DAG) Unique source Two sinks: the 0 and 1 nodes Each node has Unique label Level number Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions Evaluation is performed by a single DAG traversal 01 A 1 i n 

Binary Decision Diagrams BDD: A directed acyclic graph (DAG) Unique source Two sinks: the 0 and 1 nodes Each node has Unique label Level number Two children at lower levels T-Child and E-Child BDDs can represent Boolean functions Evaluation is performed by a single DAG traversal 01 A 1 i n 

ZDD: Example Collection of subsets: {1, 3} {2, 3} {3} A B C 

ZDD: Example Collection of subsets: {1, 3} {2, 3} {3} A B C 

ZDD: Example Collection of subsets: {1, 3} {2, 3} {3} A B C 

ZDD: Example Collection of subsets: {1, 3} {2, 3} {3} A B C 

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

Cassatt: Example (b + c + ~d)(a+b)(~a + b + d)(a + ~b + ~c) a  1 activates clause 3 (satisfies 2, 4) a  0 activates clauses 2, 4 (sat 3) “Cut” clauses 2, 3, 4 01  2 3 4

Cassatt: Example (b + c + ~d)(a+b)(~a + b + d)(a + ~b + ~c) b  1 satisfies clauses 2, 3 (and 1) b  0 activates 1, satisfies 4, violates 2 “Cut” clauses 1, 3, 4 1 

Cassatt: Example (b + c + ~d)(a+b)(~a + b + d)(a + ~b + ~c) c  1 violates 4, satisfies 1 c  0 satisfies 4 “Cut” clauses 1, 3 1 

Cassatt: Example (b + c + ~d)(a+b)(~a + b + d)(a + ~b + ~c) d  1 violates 1, satisfies 3 d  0 violates 3, satisfies 1 “Cut” clauses  1 

Cassatt: Algorithm 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

Cassatt: Algorithm Overview 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

Processing a Single Variable Given: Subset S of open clauses Assignment of 0 or 1 to a single variable x Do they imply that some clauses must be violated? I.e., does it correspond to a partial valid truth assignment ? (otherwise, can prune it) What subset S’ of clauses corresponds to the new truth assignment? In our BFS algorithm, we consider both 0 and 1

Detecting Violated Clauses Variables are processed in a static order  Within each clause, some literal must be processed last  The end literal of a clause is known beforehand For all literals in clause C to be false, it is necessary and sufficient that Clause C must be open The end literal of C must be assigned false

New Set of Open Clauses Given: Subset S of open clauses Assignment of 0 or 1 to a single variable x The combination of the two is valid What subset S’ corresponds to the new truth assignment?

New Set of Open Clauses Given: Subset S of open clauses Assignment of 0 or 1 to a single variable x In the table below, select Row: current status of a clause C  S Column: location of literal l in C (l corresp. to x)

Gaining Efficiency Using ZDDs Use ZDD to store the collection of all subsets of open clauses (front) Achieves data compression (in some cases, with exponential compression ratio) Improves memory requirements of BFS Use ZDD algorithms to consider all subsets in the ZDD at the same time Implicit (symbolic) manipulation of compressed data

Gaining Efficiency Using ZDDs Given: Assignment of 0 or 1 to a single variable x Consider its effect on all clauses It violates some clauses x corresponds to the end literal l of some clause C, and l is assigned false It satisfies some clauses x appears in C, and its literal l is assigned true It activates some clauses x corresponds to the beginning literal l for C, and l is assigned false

Newly Violated Clauses Given: Subset U of violated clauses Each set S in the ZDD containing u  U must be removed This branch cannot yield satisfiability Efficient implementation in terms of ZDD ops Form the ZDD containing all possible subsets of Ū: the set-complement to U Intersect this with the original front

Newly Violated Clauses Build the ZDD containing all subsets of Ū For each element in Ū add a don’t care node at that level Size is O(Ū) Exponential compression in this simple case A B N 1 i1i1 i2i2 i | Ū |

Newly Satisfied Clauses Given: Set F of newly-satisfied clauses If f  F is in some subset of the front It has now been satisfied Any occurrence of f in the ZDD must be removed Implementation The ZDD Existential Abstraction operation

Newly Activated Clauses Given: Set A of activated clauses Each a  A must be added to every set in the front Implementation: The ZDD Cartesian Product operation

Pseudocode 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

Pseudocode Update(ZDD Z, v  value) Find the set U of violated clauses Z  Z  2 ~U Find the set F of satisfied clauses Z  ExistentialAbstract(Z, F) Find the set A of activated clauses Z  CartesianProduct(Z, A)

Results

Summary of Results Proposed a novel algorithm for SAT BFS with compression Efficiency is due to exponential compression via ZDDs Implementation and empirical results Solves pigeon-hole instances in poly-time Outperforms Zres of Simon and Chatalic Beats best DLL solvers on Urquhart instances not better than Zres Reasonable but not stellar performance on DIMACS benchmarks

Future Work Improved efficiency via Boolean Constraint Propagation BCP is a part of all leading-edge SAT solvers Exploring the effects of clause and variable ordering on memory/runtime Implications of Cassatt in terms of proof systems

Questions?