Planning and Optimization
- E1. Symbolic Search: BDDs
Malte Helmert and Gabriele R¨
- ger
Universit¨ at Basel
Planning and Optimization E1. Symbolic Search: BDDs Malte Helmert - - PowerPoint PPT Presentation
Planning and Optimization E1. Symbolic Search: BDDs Malte Helmert and Gabriele R oger Universit at Basel December 15, 2016 Motivation Binary Decision Diagrams BDD Implementation Summary Motivation Motivation Binary Decision Diagrams
Universit¨ at Basel
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Explicit Representations vs. Formulae
Sorted vector Hash table Formula s ∈ S? O(k log |S|) O(k) O(S) S := S ∪ {s} O(k log |S| + |S|) O(k) O(k) S := S \ {s} O(k log |S| + |S|) O(k) O(k) S ∪ S′ O(k|S| + k|S′|) O(k|S| + k|S′|) O(1) S ∩ S′ O(k|S| + k|S′|) O(k|S| + k|S′|) O(1) S \ S′ O(k|S| + k|S′|) O(k|S| + k|S′|) O(1) S O(k2k) O(k2k) O(1) {s | s(v) = 1} O(k2k) O(k2k) O(1) S = ∅? O(1) O(1) co-NP-complete S = S′? O(k|S|) O(k|S|) co-NP-complete |S| O(1) O(1) #P-complete
Motivation Binary Decision Diagrams BDD Implementation Summary
Examples: S = ∅?, S = S′?
For example, all unsatisfiable formulae represent ∅.
Motivation Binary Decision Diagrams BDD Implementation Summary
Formulae vs. BDDs
Formula BDD s ∈ S? O(S) O(k) S := S ∪ {s} O(k) O(k) S := S \ {s} O(k) O(k) S ∪ S′ O(1) O(SS′) S ∩ S′ O(1) O(SS′) S \ S′ O(1) O(SS′) S O(1) O(S) {s | s(v) = 1} O(1) O(1) S = ∅? co-NP-complete O(1) S = S′? co-NP-complete O(1) |S| #P-complete O(S)
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
u v w w 1 1
1 1 1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
u v 1
1 1
v u 1
1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1
1 1
v2 v1 1
1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 v3 v3 1 1
1 1 1 1
v1 v2 v3 v3 1
1 1 1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1 v3
1 1
v3
1 1
1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1
1 1
v3
1
v3 1
1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1 v3
1 1 1
v3 1
1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1 v3
1 1 1
1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 v3
1 1 1
1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1 v3
1 1 1
1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 1 v3
1 1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 v3 1
1 1
v3
1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 v3
1 1
v3 1
1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v2 v3 1
1 1 1
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Example: S = S′? can be tested in time O(1).
The zero BDD has ID −2. The one BDD has ID −1. Other BDDs have IDs ≥ 0.
Motivation Binary Decision Diagrams BDD Implementation Summary
var[i] denotes the decision variable. low[i] denotes the ID of the 0-successor. high[i] denotes the ID of the 1-successor.
This can be implemented without amortized overhead.
Randomized hashing allows constant-time access in the expected case. More sophisticated methods allow deterministic constant-time access.
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v3 1
1 1
v2 v3 1
1 1
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v3 1
1 1 −2
v2 v3 1
1 1 −2
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
1 v1 v3
1 1 −2 −1
1 v2 v3
1 1 −2 −1
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
1 v3
1
v1
1 −2 −1 12
1 v3
1
v2
1 −2 −1 12
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
1 v3
1
v1
1 −2 −1 12 14
v2 v3 1
1 1 −2 −1 12
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v3 1
1 1 −2 −1 12 14
1 v3
1
v2
1 −2 −1 12 17
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
v1 v3 1
1 1 −2 −1 12 14
v2 v3 1
1 1 −2 −1 12 17
formula ID i var[i] low[i] high[i] ⊥ −2 – – – ⊤ −1 – – – v3 12 3 −2 −1 v1 ∧ v3 14 1 −2 12 ¬v2 ∧ v3 17 2 12 −2
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary
BDD s ∈ S? O(k) S := S ∪ {s} O(k) S := S \ {s} O(k) S ∪ S′ O(SS′) S ∩ S′ O(SS′) S \ S′ O(SS′) S O(S) {s | s(v) = 1} O(1) S = ∅? O(1) S = S′? O(1) |S| O(S)
Motivation Binary Decision Diagrams BDD Implementation Summary
Motivation Binary Decision Diagrams BDD Implementation Summary