Download presentation
Presentation is loading. Please wait.
Published byEstella Horn Modified over 8 years ago
1
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs
2
Decision Procedures An algorithmic point of view2 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
3
Decision Procedures An algorithmic point of view3 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 …
4
Decision Procedures An algorithmic point of view4 Alternate Approach Generate complete representation of function Canonicity: functions are equal iff representations are identical (A Æ C) Ç (C Æ B) (A Ç B) Æ (C) B 01C AB 01C A
5
Decision Procedures An algorithmic point of view5 Decision Structures Truth TableDecision Tree Vertex represents decision Follow green (dashed) line for value 0 Follow red (solid) line for value 1 Function value determined by leaf value.
6
Decision Procedures An algorithmic point of view6 Variable Ordering Assign arbitrary total ordering to variables e.g., x 1 < x 2 < x 3 Variables must appear in ascending order along all paths OKNot OK x 3 x 2 x 1 x 1 x3x3
7
Decision Procedures An algorithmic point of view7 Reduction Rule #1 Merge equivalent leaves aa a
8
Decision Procedures An algorithmic point of view8 Reduction Rule #2 y x z x Merge isomorphic nodes y x z x y x z x
9
Decision Procedures An algorithmic point of view9 Reduction Rule #3 Eliminate Redundant Tests y x y
10
Decision Procedures An algorithmic point of view10 Example OBDD Initial GraphReduced Graph Canonical representation of Boolean functions o 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. (x 1 Ç x 2 ) Æ x 3
11
Decision Procedures An algorithmic point of view11 Satisfiability etc. Constants Unique unsatisfiable function Unique tautology Conclusion: given a BDD it takes constant time to check: Validity Contradiction Satisfiability Is this a free lunch ? …
12
Decision Procedures An algorithmic point of view12 Effect of Variable Ordering Good OrderingBad Ordering Linear GrowthExponential Growth
13
Decision Procedures An algorithmic point of view13 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
14
Decision Procedures An algorithmic point of view14 Building BDDs ‘from below’ Starting from a binary decision tree is too hard for formulas with many variables. Goal: construct the BDD ‘from below’.
15
Decision Procedures An algorithmic point of view15 Building BDDs ‘from below’ For this we will need a function called APPLY: Given the BDDs for f 1 and f 2, and a binary connective F 2 { Æ, Ç, !, $...} (any one of the 16 binary connectives), Construct the BDD for f 1 F f 2,
16
Decision Procedures An algorithmic point of view16 Building BDDs ‘from below’ Def: a restriction of a function f to x = d, denoted f | x = d where x 2 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 : (x 1 Ç x 2 ) Æ x 3 01 x 3 x 1 01 x 3 f | x2=1
17
Decision Procedures An algorithmic point of view17 Now, APPLY (1/3) Let v 1, v 2 denote that root nodes of f 1, f 2, respectively, with var( v 1 ) = x 1 and var( v 2 )= x 2. 1. If v 1 and v 2 are leafs, f 1 F f 2 is a leaf node with value val(v 1 ) F val(v 2 ) 0 1 1 Ç = 0 1 0 Æ =
18
Decision Procedures An algorithmic point of view18 Now, APPLY (2/3) 2. If x 1 = x 2 = x, apply Shanon expansion: f 1 F f 2 = ( : x Æ f 1 | x=0 F f 2 | x=0 Ç x Æ f 1 | x=1 F f 2 | x=1 ) x BDD for f 1 | x=0 BDD for f 1 | x=1 x BDD for f 2 | x=0 BDD for f 2 | x=1 Æ = x BDD for f 1 | x=1 Æ f 2 | x=1 BDD for f 1 | x=0 Æ f 2 | x=0
19
Decision Procedures An algorithmic point of view19 Now, APPLY (3/3) 3. else, suppose x 1 < x 2 in the variable order. f 1 F f 2 = ( : x 1 Æ f 1 | x=0 F f 2 Ç x 1 Æ f 1 | x=1 F f 2 ) x1x1 BDD for f 1 | x1=0 BDD for f 1 | x1=1 x2x2 BDD for f 2 | x2=0 BDD for f 2 | x2=1 Æ = x1x1 BDD for f 1 | x=1 Æ f 2 BDD for f 1 | x=0 Æ f 2
20
Decision Procedures An algorithmic point of view20 BDDs from below: example. x 2 01 x 1 x 2 f 1 : x 1 $ x 2 x 2 10 Ç f 2 : : x 2 = x 1 BDD for f 1 | x1=0 Ç f 2 BDD for f 1 | x1=1 Ç f 2 BDD for f 1 | x1=0 Ç f 2 = x2x2 0 1 Ç x 2 10 = x 2 01 0 Ç 0 = 0 1 Ç 1 = 1
21
Decision Procedures An algorithmic point of view21 BDDs from below: example. x 2 01 x 1 x 2 f 1 : x 1 $ x 2 x 2 10 Ç f 2 : : x 2 = x 1 BDD for f 1 | x=0 Ç f 2 BDD for f 1 | x=1 Ç f 2 = x 1 x 2 10 x 2 1 = x 1 x 2 10 x 2 f 1 Ç f 2 = x 1 Ç ( : x 1 Æ : x 2 )
22
Decision Procedures An algorithmic point of view22 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.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.