Académique Documents
Professionnel Documents
Culture Documents
Algorithm-tokuron
Todays topic
BDD
Properties of BDDs
Improvement of BDDs
Shared BDDs for multiple functions.
Negative edge.
2012.05.01
Algorithm-tokuron
b
c
c
1
c
0
2012.05.01
c
1
c
1
Algorithm-tokuron
b
1
Unordered BDD
BDD
4
Decision node
Terminal node
0-edge0-
1-edge1-
Sub-graph
Shannons expansion
0
0
1
F
0
(Booles expansion)
Algorithm-tokuron
F1
5
Reduced BDD
A BDD form where the two reduction rules are applied as much
as possible.
Algorithm-tokuron
(jump)
Reduced BDD.
(b)
x
(share)
f0
f1
f0
f1
2012.05.01
(cf.)
When using the rule (b) only,
we can obtain
a quasi-reduced BDD.
BDD
Algorithm-tokuron
2012.05.01
c
0
b
c
c
0
Algorithm-tokuron
1
8
Properties of BDDs
Canonical form for a Boolean functions.
Easy to equivalence checking
Algorithm-tokuron
Size of BDDs
n
22
n
2012.05.01
Algorithm-tokuron
10
x2
x2
x3
x3
x1
x1
x1
x4
x4
AND
OR
x2
x2
x3
x3
x4
x4
EXOR (parity)
Algorithm-tokuron
11
S2
S1
S0
Algorithm-tokuron
12
2012.05.01
Algorithm-tokuron
13
Symmetric function
example of 9-input
symmetric function.
Symmetric functions:
Exchanging variable order
has no effect to outputs.
Output value only depends
on the number of 1 in the
n-inputs.
2012.05.01
Algorithm-tokuron
14
x1 x5 + x2 x6 + x3 x7 + x4 x8
O(2n)
O(n)
2012.05.01
Algorithm-tokuron
15
O(n)
2012.05.01
O(2n)
Algorithm-tokuron
16
Binary-coded multiplier
is a weak point.
Proved that O(2n) nodes
needed in any variable
ordering.
Division function also
becomes an
exponential size.
Patterns of variable ordering.
(a) Easy for any order.
(b) Easy/hard may change
depending on the order.
(c) Hard for any order.
2012.05.01
Algorithm-tokuron
17
a
b
b
c
c
1
reduction
(compress)
0
0
F = a b + ~c
direct construction
b
1
Algorithm-tokuron
18
ab
a
0
a
0
AND
a b + ~c
b
0
OR
~c
NOT
2012.05.01
b
1
0
Algorithm-tokuron
19
Algorithm-tokuron
20
N1
N3
N2
0
0
N4
c
1
b
1
N6
0
N5
c
1
2012.05.01
b=0
1
N7
d
d
1
1 1
d
0
1 0
N1+N3
a=0
N8
N4+N3
N4+N5
c=0
c=1
a=1
b=1 b=0
N4+N8
N2+N3
N4+N5
b=1
N6+N8
Algorithm-tokuron
21
Algorithm-tokuron
22
~F
1
a
0
0
0
c
1
b
1
1
0
2012.05.01
c
1
Algorithm-tokuron
23
Algorithm-tokuron
24
Improvements of BDDs
2012.05.01
Algorithm-tokuron
25
Shared BDDBDD
Use a uniform variable order.
All BDDs are shared into a
multi-rooted graph.
a b + ~c
ab
ab
~c
2012.05.01
a b + ~c
~c
Algorithm-tokuron
1
26
ab
AND
b
c
OR
NOT
~c
c
2012.05.01
a b + ~c
Shared BDD
manipulator
b
c
0Algorithm-tokuron1
Negative edge
~F
a
0
0
0
1
0
c
1
b
1
0
0
2012.05.01
Constraints in using
negative edges to keep
uniqueness of BDDs.
x
1
Algorithm-tokuron
BDD package
BDD manipulation programs have been developed
actively in 1990s.
Some of them are public domain software as BDD package.
Algorithm-tokuron
29
Summary
BDD
Properties of BDDs
Improvement of BDDs
Shared BDDs for multiple functions.
Negative edge.
2012.05.01
Algorithm-tokuron
30
Exercises
1. Draw a structure of BDD
for an Achilless heel function:
F = x1 x2 x3 + x4 x5 x6 + x7 x8 x9 + + x3n-2 x3n-1 x3n
2012.05.01
Algorithm-tokuron
31