Variable Shift SDD: A More Succinct Sentential Decision Diagram Kengo Nakamura (NTT) Shuhei Denzumi (The University of Tokyo) Masaaki Nishino (NTT) 18 th Symposium on Experimental Algorithms ( SEA2020 ) 2020/6/18 @ online (Catania, Italy)
Contents Introduction • Related works • SDD • VS-SDD and its property • Experiments • Conclusion • �
̅ Boolean function !: #$%&, !()*& + → #$%&, !()*& 4 ∨ 6 7 ∧ 7 ∨ : Input : - Boolean values, Output : a Boolean value 0 1 2 3 There are useful queries for Boolean function: false false false true Model count : How many patterns of input make output • false false true false true? false true false false Equivalency : Are given two Boolean functions equivalent? • false true true false etc. true false false true true false true false However, these queries are difficult to solve Ex.) Using truth table, they take . 2 + time true true false true true true true true Truth table �
Ordered Binary Decision Diagram (OBDD) [Bryant ’86] $ ∧ & ∨ & ∧ ( Directed Acyclic Graph (DAG) representation of Boolean function ∨ ( ∧ ) Size of OBDD is generally exponential, but is significantly • smaller than ! " for many practical cases OBDD supports many queries in polytime w.r.t. OBDD size • A – Model count, Equivalency, etc. B B C C D ⊥ T OBDD �
OBDD and Apply operation [Bryant ’86] 2 ∧ 3 ∨ 4 ∧ 5 3 ∧ 4 Size of $ A OBDDs support Apply operation in ! " # time B B – Input : Two OBDDs $, & and binary operator ∘ ∨ C C • conjunction( ∧ ), disjunction( ∨ ), etc. D – Output : OBDD representing * ∘ + ⊥ ⊥ T T • $ & represents * + resp. A Fundamental in B B constructing OBDD representing any Boolean function • supporting useful queries • C C D 2 ∧ 3 ∨ 3 ∧ 4 ∨ 4 ∧ 5 ⊥ T �
Sentential Decision Diagram (SDD) [Darwiche ’11] DAG representation of Boolean function • Generalization of OBDD structure • $ ∧ & ∨ & ∧ ( ∨ ( ∧ ) Tighter bound on size than OBDD • – In some cases, SDD can make size exponentially smaller than OBDD [Bova ’16] 3 Supporting useful queries in polytime w.r.t. SDD size • C T ¬B Supporting Apply operation in ! " # time • 1 1 5 B ¬A ¬B ⊥ B A ¬B ⊥ D C ¬D ⊥ Input: Two SDDs *, , and oper. ∘ SDD Output: SDD representing . ∘ / �
Substructure sharing One of the reason why OBDD/SDD is succinct: Boolean function is recursively decomposed into subfunctions that are also • represented by DAGs (substructures) When same subfunctions emerge, only one DAG is needed instead of having • multiple (identical) DAGs … Share of substructure representing the same function 1 1 ¬A A ¬A A 3 3 3 3 B T ¬B B ¬B B T ¬B B ¬B ! ∧ # ! ∧ # 5 5 5 5 5 ! ∧ # ¬C ¬C C D ¬C ⊥ C T ¬C ⊥ C D ¬C ⊥ C T ⊥ C D ⊥ �
Proposal: Variable Shift SDD (VS-SDD) Can we share more substructures to achieve more succinct representation? -> Variable Shift SDD $ ∧ % ∨ % ∧ ! … SDD-based representation of Boolean function ∨ ! ∧ # VS-SDD can share substructures of subfunctions that are • equivalent under specific type of variable substitution – Ex.) ! ∧ # can be obtained from $ ∧ % by substituting 1 $ with ! and % with # 6 T ¬2 Representing Boolean function of substructure is • 1 1 4 dependent on the path from root to it 1 ¬2 ¬1 ⊥ 1 2 ¬1 ⊥ Typical example of emerging such sets of subfunctions: modeling VS-SDD $ ∧ % time-evolving systems; ! ∧ # �
Proposal: Variable Shift SDD (VS-SDD) Features: VS-SDD is never larger than SDD of the same function • % ∧ ' ∨ ' ∧ ) – There exists a class of function for which VS-SDD is ∨ ) ∧ * exponentially smaller than SDD VS-SDD supports many useful queries as SDD does • – Supports Apply operation in ! " # time 1 Input: Two VS-SDDs +, - and oper. ∘ 6 T ¬2 1 1 4 Output: VS-SDD representing / ∘ 0 1 ¬2 ¬1 ⊥ 1 2 ¬1 ⊥ VS-SDDs incur no additional overhead over SDDs while VS-SDD being potentially smaller than SDDs % ∧ ' ) ∧ * �
Contents Introduction • Related works • SDD • VS-SDD and its property • Experiments • Conclusion • ��
Related works Attempts to share substructures representing “equivalent” Boolean functions up to conversion For OBDDs: Attributed edge [Madre & Billon ’88] • " # ↔ ¬"(#) Complement edge [Minato et al. ’90] … up to taking negation • – Solvability of useful operations is not considered " ( ) , ( + , ( , ↑ ΔBDD [Anuchitanukul et al. ’95] … up to “shifting” of variables • ↔ "(( - , ( . , ( / ) – Operation like Apply is supported, but its time complexity is not polynomial of DAG sizes ��
Related works " # $ , # & , # ' For other DAG structures: ↔ "(# * , # + , # , ) Sym-DDG/Sym-FBDD [Bart et al. ’14] … up to any variable substitution • – Based on DDG [Fragier & Marquis ’06] and FBDD [Gergov & Meinel ’94] – Fail to support some important operations such as Apply and Conditioning, as the based structures do For SDDs: No such previous study is known • VS-SDD cannot be obtained by straightforward application of • techniques for OBDDs (like ↑ ΔBDD) ��
Contents Introduction • Related works • SDD • VS-SDD and its property • Experiments • Conclusion • ��
SDD: Boolean circuit view SDD = Boolean circuit with structured decomposability and strong determinism Represents Boolean function by recursive application of OR and AND • – OR gate corresponds to circle node – AND gate corresponds to box pair Circuit SDD 1 C T ¬B true ¬B C 2 2 5 D C B ¬A ¬B ⊥ B A ¬B ⊥ ¬D ⊥ �� B ¬A ¬B false B A ¬B false D C ¬D false
Decomposability Decomposable : for each AND gate, used variables are non-overlapping for any • two inputs of it Circuit SDD 1 C T ¬B true ¬B C 2 2 5 D C B ¬A ¬B ⊥ B A ¬B ⊥ ¬D ⊥ �� B ¬A ¬B false B A ¬B false D C ¬D false
Vtree and structured decomposability Decomposable circuit whose decomposition of variables is structured with vtree Vtree : full binary tree whose leaves are labeled with variables • Structured decomposable (given vtree ! ): for each AND gate, it has two inputs • ", $ and there is an internal node in ! s.t. used variables of " $ are all left (right resp.) descendants Circuit vtree SDD 1 1 ¬B C T 2 5 C true ¬B 2 2 5 6 7 3 4 D C B ¬A ¬B ⊥ B A ¬B ⊥ ¬D ⊥ B A D C B ¬A ¬B false B A ¬B false D C ¬D false ��
Strong determinism For structured decomposable Boolean circuits: Strongly deterministic : for each OR gate, let ! " be a Boolean function of the • left input of # -th child AND gate. Then, ! " ∧ ! % = '()*+ # ≠ - holds. Due to structured decomposability and strong determinism, SDD supports polytime Apply and has preferable properties such as canonicity (uniqueness) Circuit ! 4 = ¬2 vtree ! / = ¬1 ∧ 2 SDD 1 1 ! 3 = 1 ∧ 2 C T ¬B 2 5 C true ¬B 2 2 5 6 7 3 4 D C B ¬A ¬B ⊥ B A ¬B ⊥ ¬D ⊥ B A D C B ¬A ¬B false B A ¬B false D C ¬D false ��
SDD: structure and respecting vtree node Seeing SDD as data structure representing Boolean function (given vtree) OR gate of circuit is represented as decomposition node (circle) • – It has corresponding vtree node called respecting node Bottom literal (constant) of circuit is represented as literal ( constant resp.) node • Size of SDD is defined as sum of #(inputs) of all OR gates • Decomposition node with ID of respecting vtree node 1 vtree SDD 1 C T ¬B Constant node 2 5 Literal node 2 2 5 7 3 4 6 B ¬A ¬B ⊥ B A ¬B ⊥ D C ¬D ⊥ B A D C ¬# ∧ % # ∧ % & ∧ ' ��
Contents Introduction • Related works • SDD • VS-SDD and its property • Experiments • Conclusion • ��
Observation Equivalent substructures (except for labels) emerges if: their respecting vtrees are identical (same shape) except for labels • their representing functions are equivalent under variable substitution • induced from vtree isomorphism 1 Ex.) SDD representing ' = " ∧ $ ∨ $ ∧ % ∨ % ∧ & 2 5 Vtrees rooted at 2 and 5 are identical • – Exchanged by following substitution: $ ↔ &, " ↔ % 6 7 3 4 B A D C " ∧ $ and % ∧ & are equivalent under above substitution • 1 -> Bottom-middle and bottom-right nodes have same shape C T ¬B 2 2 5 B ¬A ¬B ⊥ B A ¬B ⊥ D C ¬D ⊥ " ∧ $ % ∧ & ��
VS-SDD: key idea vtree 1 SDD retains respecting vtree node (ID) of each • 2 5 decomposition and literal explicitly 6 7 3 4 -> Substructures representing Boolean functions with B A D C different variables cannot be shared SDD 1 C T ¬B VS-SDD retains it differentially in edges • =1+4 3=1+1+1 5 2 2 … It is represented as sum of numbers from root to decomposition/literal node B ⊥ B A ⊥ D C ⊥ ¬A ¬B ¬B ¬D 1 VS-SDD To facilitate this idea, vtree nodes are numbered • 6 T ¬2 following preorder traversal of vtree 1 1 4 1 ¬2 ¬1 ⊥ 1 2 ¬1 ⊥ ��
Recommend
More recommend