220 likes | 418 Views
Decision Procedures An Algorithmic Point of View. BDDs. Part I. Reminders - What is Logic Proofs by deduction Proofs by enumeration Decidability, Soundness and Completeness some notes on Propositional Logic Deciding Propositional Logic SAT tools BDDs. . . . . . .
E N D
Decision ProceduresAn Algorithmic Point of View BDDs Daniel Kroening and Ofer Strichman
Part I • Reminders - • What is Logic • Proofs by deduction • Proofs by enumeration • Decidability, Soundness and Completeness • some notes on Propositional Logic • Deciding Propositional Logic • SAT tools • BDDs Decision Procedures An algorithmic point of view
Next: Binary Decision Diagrams • SAT looked for a satisfying solution to CNF • We will now examine a graph-based data structure called Binary Decision Diagrams. • It has several advantages and disadvantages comparing to SAT • Developed by Bryant [1986]. Next few slides are from the source … Decision Procedures An algorithmic point of view
A B C 0 1 A B C 0 1 Alternate Approach • Generate complete representation of function • Canonicity: functions are equal iff representations are identical (A Æ C) Ç (C Æ B) (A Ç B) Æ (C) Decision Procedures An algorithmic point of view
Decision Structures • Vertex represents decision • Follow green (dashed) line for value 0 • Follow red (solid) line for value 1 • Function value determined by leaf value. Truth Table Decision Tree Decision Procedures An algorithmic point of view
Variable Ordering • Assign arbitrary total ordering to variables • e.g., x1 < x2 < x3 • Variables must appear in ascending order along all paths OK Not OK x x 3 1 x 2 x x3 1 Decision Procedures An algorithmic point of view
a a a Reduction Rule #1 Merge equivalent leaves Decision Procedures An algorithmic point of view
x x x x x x y z y z y z Reduction Rule #2 Merge isomorphic nodes Decision Procedures An algorithmic point of view
x y y Reduction Rule #3 Eliminate Redundant Tests Decision Procedures An algorithmic point of view
Example OBDD • Canonical representation of Boolean functions • For a given variable ordering • Two functions are equivalent iff graphs are isomorphic • Can be tested in linear time • Desirable property: simplest form is canonical. Initial Graph Reduced Graph (x1Ç x2) Æ x3 Decision Procedures An algorithmic point of view
Constants Unique unsatisfiable function Unique tautology Satisfiability etc. • Conclusion: given a BDD it takes constant time to check: • Validity • Contradiction • Satisfiability • Is this a free lunch ? … Decision Procedures An algorithmic point of view
Linear Growth Exponential Growth Effect of Variable Ordering Good Ordering Bad Ordering Decision Procedures An algorithmic point of view
Selecting Good Variable Ordering • Intractable Problem • Even when problem represented as OBDD • i.e., to find optimum improvement to current ordering • Application-Based Heuristics • Exploit characteristics of application • e.g., Ordering for functions of combinational circuit • Traverse circuit graph depth-first from outputs to inputs Decision Procedures An algorithmic point of view
Building BDDs ‘from below’ • Starting from a binary decision tree is too hard for formulas with many variables. • Goal: construct the BDD ‘from below’. Decision Procedures An algorithmic point of view
Building BDDs ‘from below’ • For this we will need a function called APPLY: • Given the BDDs for f1 and f2, • and a binary connective F2 {Æ, Ç, !, $...} (any one of the 16 binary connectives), • Construct the BDD for f1F f2, Decision Procedures An algorithmic point of view
x 1 x 3 0 1 Building BDDs ‘from below’ • Def: a restriction of a function f to x=d, denoted f|x=d where x2 vars(f), d 2 {0,1}, is equal to f after assigning x=d. • Given the BDD of f, deriving the BDD of f|x=0 is simple: f|x2=1 f: (x1Ç x2) Æ x3 x 3 0 1 Decision Procedures An algorithmic point of view
Now, APPLY (1/3) • Let v1,v2 denote that root nodes of f1, f2, respectively, with var(v1) = x1 and var(v2)=x2. • If v1 and v2 are leafs, f1F f2 is a leaf node with value val(v1) F val(v2) 1 Ç = 0 1 1 Æ = 0 0 Decision Procedures An algorithmic point of view
x BDD for f1|x=1 Æf2|x=1 BDD for f1|x=0 Æf2|x=0 Now, APPLY (2/3) • If x1 = x2 = x, apply Shanon expansion:f1Ff2 = (:xÆf1|x=0Ff2|x=0 ÇxÆf1|x=1Ff2|x=1) x x Æ = BDD for f1|x=1 BDD for f2|x=1 BDD for f1|x=0 BDD for f2|x=0 Decision Procedures An algorithmic point of view
Now, APPLY (3/3) • else, suppose x1 < x2 in the variable order.f1Ff2 = (:x1Æf1|x=0Ff2 Çx1Æf1|x=1Ff2) x1 x2 x1 Æ = BDD for f1|x=1 Æf2 BDD for f1|x=0 Æf2 BDD for f1|x1=1 BDD for f2|x2=1 BDD for f1|x1=0 BDD for f2|x2=0 Decision Procedures An algorithmic point of view
BDD for f1|x1=0 Çf2 BDD for f1|x1=1 Çf2 x x 1 1 BDD for f1|x1=0 Çf2 = x2 x x x x Ç 2 2 2 2 = 0 1 1 1 1 1 0 0 0 0 0 Ç 0 = 0 1 Ç 1 = 1 BDDs from below: example. x 2 = Ç f2: :x2 f1: x1$ x2 Decision Procedures An algorithmic point of view
BDD for f1|x=0 Çf2 BDD for f1|x=1 Çf2 x x x x 1 1 1 1 x x x x x x 2 2 2 2 2 2 = 1 1 1 1 1 0 0 0 0 BDDs from below: example. x 2 = Ç f2: :x2 f1: x1$ x2 f1Ç f2 = x1Ç (:x1Æ:x2) = Decision Procedures An algorithmic point of view
Comparing SAT to BDDs • BDD is a canonical data structure that represents the semantic of a function, i.e. all its solutions • Some applications (e.g. symbolic model checking) need canonicity to detect when two sets are equivalent. • Can require exponential space & time (highly sensitive to variable ordering) • SAT searches through CNF for a single solution • CNF is not canonical. • Poly-space algorithms exists. Time can be exponential. Decision Procedures An algorithmic point of view