
The State Explosion Problem Many problems suffer from state space explosion : the number of states is exponential in the number of Symbolic Encoding variables in the system. using Decision Diagrams Decision diagrams (DDs): graph-based, canonical using Decision Diagrams representation of functions that avoids space explosion in many practical cases . 16.412J/6.834J Cognitive Robotics Martin Sachenbacher M (using material from Randal Bryant, Alan Mishchenko, and Geert Janssen) CiteSeer Database Overview ¢ Binary Decision Diagrams (BDDs) ¢ Extensions: ADDs, MDDs, ZDDs, SBDDs ¢ Decision Diagram Packages ¢ Combining Symbolic Encoding and Search Boolean Functions Shannon Expansion ¢ Binary Variables x 1, …, xn ¢ Consider boolean function f (x 1, x 2, …, xn). Then: ¢ Function f: x , …, x → {0,1} 1 n Truth Table f = ( ¬x ∧ f | ) ∨ (x ∧ f | ) x y z f(x,y,z) 1 x1 = 0 1 x1 = 1 Sum of Products (DNF) 0 0 0 0 f = ( ¬x∧y∧z) ∨ (x∧¬ y∧z) ∨ Cofactor Cofactor 0 0 1 0 (x∧y∧z) x1=0 x1=1 0 1 0 0 Product of Sums (CNF) 0 1 1 1 f = (x∨y∨z) ∧ (x∨y∨¬ z) ∧ 1 0 0 0 (x∨¬ y∨z) ∧ (¬x∨y∨z) ∧ 1 0 1 1 (¬x∨¬ y∨z) 1 1 0 0 1 1 1 1 1 Binary Decision Trees Variable Ordering Recursive Shannon expansion Impose arbitrary total ordering on variables Variables must obey ordering along all paths x 0 1 Property: No conflicting assignments along path y z 0 1 0 1 x x z x z z y y y y 0 1 0 1 0 10 1 z y x x 0 0 0 1 0 0 1 1 Ordered Binary Decision Tree Avoiding Blow -Up Order x < y < z Decision tree no more space-efficient than truth table x 0 1 – Still explicitly enumerates all the 2 n possible valuations Idea: Transform to directed acyclic graph (DAG) y y – Promotes sharing of sub-expressions 01 0 1 z z z z M " 0 1 0 1 0 10 1 0 0 0 1 0 1 0 1 Ordered Binary Decision Tree Rule 1: Collapse Leaf Nodes x No longer x 0 1 a tree. 0 1 y y y y 01 0 1 01 0 1 z z z z z z z z 1 1 0 1 0 0 1 0 1 0 10 1 0 0 1 0 0 0 1 0 1 0 1 0 1 2 Rule 2: Remove Redundant Tests Rule 2: Remove Redundant Tests x x 0 1 0 1 y y y y 0 1 0 1 1 0 1 0 z z z z z z z 1 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 1 Rule 3: Isomorphic Subgraphs Rule 3: Isomorphic Subgraphs x x 0 1 0 1 y y y 0 y 1 0 1 1 0 0 1 z z z z 1 0 1 0 1 0 0 1 0 1 0 1 Rule may become applicable again Final Representation x x 0 1 0 y 0 y y 1 1 1 Reduced, Ordered 0 1 0 Binary Decision Diagram (ROBDD) z 1 z 1 0 0 0 1 0 1 3 OBDT to ROBDD Summary Canonicity of ROBDDs An ROBDD can be obtained from an OBDT by Is there a unique DD for each boolean function? repeatedly applying the following reduction rules Theorem: DD canonical , iff reduced and ordered . (until none of the them can be applied anymore): – Reduced: None of the reductions applicable – Ordered: There is a total variable ordering Remove duplicate terminal (leaf) nodes Enables checking equivalence of boolean functions Remove duplicate non-terminal (internal) nodes by checking equivalence of corresponding ROBDDs. Remove nodes with redundant tests Equivalence Checking Example Solution by Combinatorial Search Do two circuits compute an identical function ? Prove all assignments fail to check equivalence – Basic task in formal hardware verification Typically, must explore significant fraction of inputs – Compare new design to known “good” design Exponential time complexity Circuit 1 Circuit 2 0 A 0 1 A A 1 C O1 B C O1 O2 1 B 1 C Diff 0 B 0 A 1 1 B 1 C O2 1 Solution using ROBDDs Example ROBDDs S3 Cout Functions equal iff ROBDDs identical 4 bit adder a a – Never enumerate explicit function values – 31 nodes 3 3 – Exploit structure and regularity of functions 64 bit adder S2 b3 b3 b3 b3 – 571 nodes A a2 a2 a2 A … B S b b b b b b C O1 1 2 2 2 2 2 2 C a a a A 1 1 1 B Cout 0 1 S b b b b b b S 0 1 1 1 1 1 1 a a a A A B 0 0 0 B B b0 b0 C O2 C Linear growth 0 1 0 1 4 Influence of Variable Ordering Variable Ordering Function f = (a1 ∧ b1) ∨ (a2 ∧ b2) ∨ (a3 ∧ b3) ROBDD size depends strongly on variable ordering Finding variable ordering that produces minimal a a1 L 1 ROBDD size is intractable a a – But, heuristics exist for finding good variable orderings J b1 2 2 Functions exist whose ROBDD has exponential a a a a a L 2 3 3 3 3 size for any variable ordering b b b b – But, such functions are rarely encountered J b2 1 1 1 1 a b b 3 Good 2 2 Bad ordering: b ordering: b3 3 Linear Exponential 0 1 growth 0 1 growth Manipulating ROBDDs Apply Operator 4 Root f <<< ¢ Procedure Apply(f,g) for implementing all the 2 = 16 ¢ Three possible cases x 1 Root g two-argument logical operations on boolean functions 0 x Apply(f,g) = 0 1 Apply Apply (¬x ∧ Apply(f |x =0 , g|x =0 )) ∨ (x ∧ Apply(f |x =1 , g|x =1 )) (f | x=0 , g) (f | x=1 , g) Recursive Recursive Apply Apply x Root f >>> | | (f | , g | ) 1 descent into descent into (f x=0 , g x=0 ) x=1 x=1 0 Root g subtrees x=0 subtrees x=1 Root f === Root g Apply Apply (f, g | x=0 ) (f, g | x=1 ) Apply Operator Pseudocode Apply Operator Example Function Apply( F, G ) A B if ( AlreadyComputed( F, G ) ) return the result 1 a 1 a A1,B 1 elsif ( F ∈{0,1} and G∈{0,1} ) return oper( F, G ) elsif ( Var( F ) = Var( G ) ) A2 b A2,B 2 u ← CreateNode( Var(F), Apply(Fx’,Gx’), Apply(Fx,Gx)); elsif ( Var( F ) < Var( G ) ) A A ,B 6 c B5 c A6,B 2 6 5 u ← CreateNode( Var(F) , Apply(Fx’,G ), Apply(Fx,G )); ∨∨∨ else /* ( Var( F ) > Var( G ) ) */ B A3 2 A ,B A ,B u ← CreateNode( Var(G) , Apply(F,Gx’ ), Apply(F,Gx )); d d 3 2 5 2 A3,B 4 InsertComputed( F,G,u ); return u; 0 1 0 1 A ,B 4 3 A5,B 4 Complexity: O(|F| ∗∗∗|G|) A4 A5 B3 B4 5 Apply Operator Example Generating ROBDDs Incrementally Network of components as ROBDD A1,B 1 a a A ← new_var("a") T1 A B ← new_var("b“) A ,B 2 2 C O1 C ← new_var("c") b b T1 ← And(A, B) A ,B A ,B 6 2 6 5 B T2 T2 ← And(B, C) c c c O1 ← Or(T1, T2) A ,B 3 2 A5,B 2 A3,B 4 Decision Diagrams O1 d a d 1 1 T1 T2 A B C a b b b A ,B 4 3 A5,B 4 0 1 0 1 a b c b c c 0 1 0 1 0 1 0 1 0 1 0 1 ROBDDs Summary Overview Exploit structure and regularities of functions Binary Decision Diagrams (BDDs) Exponential number of discrete states can be Extensions: ADDs, MDDs, ZDDs, SBDDs captured in polynomial-size ROBDD Decision Diagram Packages Satisfiability, Tautology, Complement constant Combining Symbolic Encoding and Search Apply (and, or, etc.) polynomial in ROBDD size Variable ordering important, but difficult to find Algebraic DDs (ADDs ) [ Bahar 93] Multi -Valued DDs (MDDs ) [ Kam 90] Extension to functions with non-binary values Extension to functions with non-binary variables Canonicity of representation (as for BDDs) Canonicity of representation (as for ROBDDs) Applications in combinatorial optimization However, binary encoding of domains often better x x y z f(x,y,z) ADD MDD x 0 0 0 3 y y 0 2 0 0 1 2 0 1 0 0 z z 1 0 1 1 1 … … 0 1 2 3 6 Zero -suppressed DDs (ZDDs ) [Minato 93] Shared BDDs (SBDDs ) [Minato 90] Adapted to sparse functions (many 0’s in on-set) Global table storing unique nodes Modified rule 2: Remove node if 1-edge points to 0 Equivalence check for functions becomes constant f g h x∧¬∧¬∧¬ y∨¬∨¬∨¬ x∧∧∧y x∧¬∧¬∧¬ y x∨¬∨¬∨¬ y g f h x x x x x x x 0 1 0 1 0 ZDD: 0 1 1 0 1 Default 0 y y 0 y y 1 0 y y 1 y y 11 1 0 11 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 DD Templates [ Goel Hasteer Bryant 03] Overview Share not only functions, but also function types : Binary Decision Diagrams (BDDs) Extensions: ADDs, MDDs, ZDDs, SBDDs f:a b g: c d f: a b g: c d Decision Diagram Packages 0 1 0 1 0 1 0 1 Combining Symbolic Encoding and Search 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 f ≡≡≡ g {a\c,b\d} a c x 0 0 0 b 1 d 1 1 0 0 0 y 0 1 0 1 0 1 Decision Diagram Packages Package Characteristics Code Name Author(s) Affiliation Code Name of the package Vmax Maximum # of variables ABC ABCD 0.3 Armin Biere ETH Zurich BUD BuDDy 1.9 Jørn Lind-Nielsen ITU, Denmark Lang Programming language P Unique table per variable CAL CAL Rajeev Ranjan UC Berkeley T Type (Pointers/Indices) GC Ref.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages9 Page
-
File Size-