Variable Shift SDD: A More Succinct Sentential Decision Diagram
Kengo Nakamura (NTT) Shuhei Denzumi (The University of Tokyo) Masaaki Nishino (NTT) 18th Symposium on Experimental Algorithms (SEA2020) 2020/6/18 @ online (Catania, Italy)
Variable Shift SDD: A More Succinct Sentential Decision Diagram - - PowerPoint PPT Presentation
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)
Kengo Nakamura (NTT) Shuhei Denzumi (The University of Tokyo) Masaaki Nishino (NTT) 18th Symposium on Experimental Algorithms (SEA2020) 2020/6/18 @ online (Catania, Italy)
!: #$%&, !()*& + → #$%&, !()*& Input: - Boolean values, Output: a Boolean value There are useful queries for Boolean function:
true?
etc. However, these queries are difficult to solve Ex.) Using truth table, they take . 2+ time
1 2 3 false false false true false false true false false true false false false true true false true false false true true false true false true true false true true true true true
Truth table 4 ∨ 6 7 ∧ 7 ∨ ̅ :
Directed Acyclic Graph (DAG) representation of Boolean function
smaller than !" for many practical cases
– Model count, Equivalency, etc.
A B B C C D
⊥ T
$ ∧ & ∨ & ∧ ( ∨ ( ∧ ) OBDD
OBDDs support Apply operation in ! " # time – Input: Two OBDDs $, & and binary operator ∘
– Output: OBDD representing * ∘ +
Fundamental in
A B B C C D
⊥ T
B C
⊥ T
A B C D
⊥ T
2 ∧ 3 ∨ 4 ∧ 5 3 ∧ 4 2 ∧ 3 ∨ 3 ∧ 4 ∨ 4 ∧ 5
Size of $
– In some cases, SDD can make size exponentially smaller than OBDD [Bova ’16]
time
$ ∧ & ∨ & ∧ ( ∨ ( ∧ )
Input: Two SDDs *, , and oper. ∘ Output: SDD representing . ∘ /
3 1 B ⊥ 1 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B
SDD
One of the reason why OBDD/SDD is succinct:
represented by DAGs (substructures)
multiple (identical) DAGs … Share of substructure representing the same function
! ∧ #
1 A ¬A 3 B T ¬B 3 B ¬B 5 C T ⊥ ¬C 5 C D ⊥ ¬C 1 A ¬A 3 B T ¬B 3 B ¬B 5 C T ⊥ ¬C 5 C D ⊥ ¬C 5 C D ⊥ ¬C
! ∧ # ! ∧ #
Can we share more substructures to achieve more succinct representation? -> Variable Shift SDD … SDD-based representation of Boolean function
equivalent under specific type of variable substitution – Ex.) ! ∧ # can be obtained from $ ∧ % by substituting $ with ! and % with #
dependent on the path from root to it
Typical example of emerging such sets of subfunctions: modeling time-evolving systems;
1 1 ⊥ 1 2 ⊥ T 6 1 4 1 ¬2 ¬2 ¬1 ¬1
$ ∧ % ∨ % ∧ ! ∨ ! ∧ # VS-SDD ! ∧ # $ ∧ %
Features:
– There exists a class of function for which VS-SDD is exponentially smaller than SDD
– Supports Apply operation in ! " # time VS-SDDs incur no additional overhead over SDDs while being potentially smaller than SDDs
1 1 ⊥ 1 2 ⊥ T 6 1 4 1 ¬2 ¬2 ¬1 ¬1
% ∧ ' ∨ ' ∧ ) ∨ ) ∧ * VS-SDD ) ∧ * % ∧ '
Input: Two VS-SDDs +, - and oper. ∘ Output: VS-SDD representing / ∘ 0
Attempts to share substructures representing “equivalent” Boolean functions up to conversion For OBDDs:
– Solvability of useful operations is not considered
– Operation like Apply is supported, but its time complexity is not polynomial of DAG sizes
" # ↔ ¬"(#) " (), (+, (, ↔ "((-, (., (/)
For other DAG structures:
– 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:
techniques for OBDDs (like ↑ΔBDD)
" #$, #&, #' ↔ "(#*, #+, #,)
SDD = Boolean circuit with structured decomposability and strong determinism
– OR gate corresponds to circle node – AND gate corresponds to box pair
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B C true ¬B B ¬A ¬B false B A ¬B false D C ¬D false
SDD Circuit
two inputs of it
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B C true ¬B B ¬A ¬B false B A ¬B false D C ¬D false
SDD Circuit
Decomposable circuit whose decomposition of variables is structured with vtree
", $ and there is an internal node in ! s.t. used variables of " $ are all left (right resp.) descendants
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B C true ¬B B ¬A ¬B false B A ¬B false D C ¬D false B A C D 1 2 5 3 4 6 7
SDD Circuit vtree
For structured decomposable Boolean circuits:
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)
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B C true ¬B B ¬A ¬B false B A ¬B false D C ¬D false B A C D 1 2 5 3 4 6 7
!/ = ¬1 ∧ 2 !3 = 1 ∧ 2 !4 = ¬2 SDD Circuit vtree
Seeing SDD as data structure representing Boolean function (given vtree)
– It has corresponding vtree node called respecting node
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B
B A C D 1 2 5 3 4 6 7 ¬# ∧ % # ∧ % & ∧ '
Decomposition node with ID of respecting vtree node
SDD vtree
Literal node Constant node
Equivalent substructures (except for labels) emerges if:
induced from vtree isomorphism
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B
B A C D 1 2 5 3 4 6 7 " ∧ $ % ∧ &
Ex.) SDD representing ' = " ∧ $ ∨ $ ∧ % ∨ % ∧ &
– Exchanged by following substitution: $ ↔ &, " ↔ %
decomposition and literal explicitly
different variables cannot be shared
… It is represented as sum of numbers from root to decomposition/literal node
following preorder traversal of vtree
1 2 B ⊥ 2 B A ⊥ 5 D C ⊥ T C ¬A ¬B ¬B ¬D ¬B 1 1 ⊥ 1 2 ⊥ T 6 1 4 1 ¬2 ¬2 ¬1 ¬1
B A C D 1 2 5 3 4 6 7 vtree SDD VS-SDD =1+4 3=1+1+1
B A C D 1 2 5 3 4 6 7
1 1 ⊥ 1 2 ⊥ T 6 1 4 1 ¬2 ¬2 ¬1 ¬1
Given vtree, VS-SDD is also data structure to represent Boolean function
numbers from root to it
Ex.) VS-SDD representing " = $ ∧ & ∨ & ∧ ( ∨ ( ∧ ) Marked substructure represents $ ∧ & when traversing yellow path, and ( ∧ ) when traversing purple path
VS-SDD vtree
Offset
Ex.) Boolean function with high symmetry
variables constitute a matching – SDD size is & '( given any vtree – VS-SDD size is ) ( given vtree with recursive structure
Properties:
– Given vtree, there is unique VS-SDD for a Boolean function Operations:
time
SDDs are also supported in polytime by VS-SDDs – Including model count, equivalency, …
Evaluating how much our approach reduces the DAG size
and VS-SDD, given the same vtree – Vtree is generated by SDD package version 2.0 [Choi & Darwiche ’18] with balanced initial vtree … Meaning that vtree is searched to suit for SDDs
– Planning dataset (used as benchmark for Sym-DDG [Bart et al. ’14]) – N-queens problem (used as benchmark for ZDD [Minato ’93]) – Grid matching enumeration
Given: state variables (Boolean) !
", … , ! %, set of actions &", … , &'
that maps initial assignment to goal assignment Modeling this as a Boolean function of following variables, it exhibits high symmetry
(,) : ! ) of timestamp * = 0, … , -
Ex.) Sokoban puzzle
* In experiment, more simple planning problems are used
… Place " queens on "×" chessboard s.t. no two queens attack each other – Associate variable for each square, and consider function that evaluates $%&' iff constituting solution of "-queens puzzle
– Associate variable for each edge, and consider function that evaluates $%&' iff constituting matching … For grid graphs, such function exhibits symmetry
Planning dataset (Suffix “_t!” stands for " = !):
– This compression ratio is competitive to (or for some cases better than) that of Sym-DDG compared to DDG Many nodes representing substitution-equivalent functions are found among bottom nodes of SDD, yielding substantial size decrease of VS-SDD
SDD size VS-SDD size
Other datasets:
Due to the asymmetry in strong determinism …?
smaller than SDDs
functions especially for planning datasets Future work: