
Binary Decision Diagrams INF5140 1 Motivation Fig 1. Polynomial representation ● Boolean functions ○ Extremely useful ○ Some areas of application: ■ Cryptography ■ Propositional logic ■ Verification/model checking Fig 2. Binary decision tree and ● Hardware accompanying truth table ● Software ○ Often modelled with truth tables or polynomials ■ State space explosion ● Symbolic model checking! Fig 3. Binary decision diagram Fig 4. PDAG 2 Differences between BDTs and BDDs BDDs BDTs ● Between 1 and 2 terminal nodes ● An arbitrary number of terminal ○ (a boolean function can be such that it nodes depending on the function only maps to true or only maps to ● Size scales with complexity of false) ● Can be a tree, usually isn’t function ● ● (more) Compact representation Easy to make ● NP-Hard to find a good representation 3 Binary Decision Diagrams 101 ● Decision nodes ● Terminal nodes ● Ordered (OBDD) ● Reduced (RBDD) ● (Well-) Ordered, reduced (ROBDD) ● Satisfiability ● Validity ● Equivalence ● Brief mention about notation: ○ hi(n) leads to 1, lo(n) leads to 0 4 Binary Decision Diagrams: Ordering ● Finding the “correct” ordering is a difficult problem! ● Big differences in OBDDs for the same function ● Necessary to choose an order to obtain a (unique) reduced ordered BDD 5 Binary Decision Diagram: Ordering, example 2 6 Ordered Binary Decision Diagrams: Reduction ● Starting with a BDT: a. Remove all duplicate terminal nodes b. Remove all duplicate decision nodes c. Remove all redundant decision nodes ● If you have two reduced BDDs, and order them the same, they will be canonical/unique ● Some boolean functions are exponential and cannot be reduced to a linear form 7 Algorithms: Reduce Bottom up id(n) assigns an integer label to the node n 1. 0-terminals are assigned 0, 1-terminals are assigned 1 ○ Given then a non-terminal node, integers are given based on the following: 2. If id(lo(n)) == id(hi(n)), then id(n) == id(lo(n)) 3. If nodes n and m exist such that id(lo(n)) == id(lo(m)) and id(hi(n)) == id(lo(m)) then id(n) == id(m) 4. Else id(n) is the next unused integer 5. Finally: Collapse nodes with the same label, redirect edges accordingly 8 Boole’s expansion theorem ● Example: ○ f = xyz + xy’z + x’y’z + x’yz + x’y’z ○ f = x(yz + y’z) + x’(y’z + yz + y’z) ○ f = xgx + x’gx’ ● Used in the construction of the BDD data structure ● A op B = x’ (A [0/x] op B[0/x]) + x(A [1/x] op B[1/x] 9 Algorithms: Apply ● Used to build an ROBDD from apply(op, Bpsi, Bphi): two OBDDs Bpsi Bphi 1. If r , r are terminal nodes: ● Based on Boole’s expansion psi phi ○ apply(op, Bpsi,Bphi) = B(rpsi op rphi) theorem (Shannon’s expansion) 2. If both roots are decision nodes, create a dashed line to apply(op, Blo(rpsi), Blo(rphi)) and a solid line to apply(op, ● Recursive (roots down) Bhi(rpsi), Bhi(rphi)) 3. If rpsi is a decision node but rphi is a terminal node, or a node higher in the order, create a node with a dashed line to apply(op, Blo(rpsi), Bphi) 4. If rphi is a decision node but rpsii is a terminal node, it is handled in the same way as in 3 10 Algorithms: Apply, example 11 Algorithms: Restrict restrict(T, x, Bpsi): ● Used to restrict a boolean for each node n labelled with x: 1. Incoming edges are redirected to lo(n) function Bf in a BDD by some 2. n is removed variable, either to true or false. ● For boolean quantification, restrict(F, x, Bpsi): same as above, but redirect to hi(n) creating exists function for generating ROBDDs 12 Algorithms: Restrict, example 13 Algorithms: Exists ● Boolean quantification ● Combination of known algorithms 14 Algorithms: Exists, example 15 Sources ● https://www.inf.unibz.it/~artale/FM/slide7.pdf ● http://www.nptel.ac.in/courses/106103016/module4/lec3/1.html ● An Investigation of the Laws of Thought: On which are Founded the Mathematical Theories of Logic and Probabilities, George Boole (1854) ● Images shamelessly stolen from Wikimedia 16.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages16 Page
-
File Size-