1 / 22

Binary Decision Diagrams (BDDs)

Binary Decision Diagrams (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. . . . . .

Download Presentation

Binary Decision Diagrams (BDDs)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Binary Decision Diagrams (BDDs) Daniel Kroening and OferStrichman

  2. 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. 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. 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)

  5. 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

  6. 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

  7. a a a Reduction Rule #1 Merge equivalent leaves

  8. x x x x x x y z y z y z Reduction Rule #2 Merge isomorphic nodes

  9. x y y Reduction Rule #3 Eliminate Redundant Tests

  10. 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

  11. 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 ? …

  12. Linear Growth Exponential Growth Effect of Variable Ordering Good Ordering Bad Ordering

  13. 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. 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. 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,

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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) =

  22. 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.

More Related