Professional Documents
Culture Documents
Manas Thakur
We got an ROBDD!!
Overview
1 Motivating Example
2 Introduction
3 Constructing ROBDDs
4 Applications
5 Conclusion
Definition
A Binary Decision Diagram is a rooted DAG with
One or two terminal nodes of out-degree zero labeled 0 or 1
A set of variable nodes of out-degree two
Definition
An OBDD is reduced if it satisfies the following properties:
Uniqueness
low (u) = low (v ) and high(u) = high(v ) implies u = v
Non-redundant tests
low (u) 6= high(u)
Properties of ROBDDs
Reduction?
Reduction?
No hopes since conversion between CNF and DNF is exponential
t = x1 t1 , t0
t = x1 t1 , t0
t0 = y1 0, t00
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t001 = y2 1, 0
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t001 = y2 1, 0
t110 = y2 0, 1
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t001 = y2 1, 0
t110 = y2 0, 1
t111 = y2 1, 0
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t001 = y2 1, 0
t110 = y2 0, 1
t111 = y2 1, 0
t = x1 t1 , t0
t0 = y1 0, t00
t1 = y1 t11 , 0
t00 = x2 t001 , t000
t11 = x2 t111 , t110
t000 = y2 0, 1
t001 = y2 1, 0
t110 = y2 0, 1
t111 = y2 1, 0
t = x1 t1 , t0
t0 = y1 0, t00
t = x1 t1 , t0
t1 = y1 t11 , 0
t0 = y1 0, t00
t00 = x2 t001 , t000
t1 = y1 t00 , 0
t11 = x2 t111 , t110
t00 = x2 t001 , t000
t000 = y2 0, 1
t000 = y2 0, 1
t001 = y2 1, 0
t001 = y2 1, 0
t110 = y2 0, 1
t111 = y2 1, 0
1 Motivating Example
2 Introduction
3 Constructing ROBDDs
4 Applications
5 Conclusion
Applications of BDDs
Model Checking
bddbddb
bddbddb
On the Board
1 Represent program information using relations
Express relations as BDDs
bddbddb
On the Board
1 Represent program information using relations
Express relations as BDDs
2 Write program analyses as Datalog queries
Express queries as BDD operations
bddbddb
On the Board
1 Represent program information using relations
Express relations as BDDs
2 Write program analyses as Datalog queries
Express queries as BDD operations
3 Get solutions!
Perform operations on BDDs
Conclusion
Conclusion