Download A Modular ROS package for Linear Temporal Logic based Motion

Transcript
3.3 Binary Decision Diagrams library and cross product generation
Binary decision diagram (BDD) is a data structure that is extensively used for model
checking and synthesis of hardware circuits. BDD's are actually compact encoding of
splitting trees used to evaluate Boolean expressions. A BDD has a few properties (1)
being an acyclic graph, (2) it has shared sub-trees and (3) presents a compact way to
represent Boolean functions. These trees are ordered such that if a branch goes from node
i to node j then i < j, the BDD also has to be in a reduced form, these two properties if
adhered to define a BDD. The following Figure 11: Depicting the splitting tree of (q →
p) ^ r → (p ↔ r) ^ q and Figure 12: Depicting the binary decision diagram of (q → p) ^ r
→ (p ↔ r) ^ q show the Boolean expression (q → p) ^ r → (p ↔ r) ^ q. It clearly depicts
how easily a decision tree can be compressed using a BDD and how compact the final
representation becomes. This property of BDD is helpful in finding the satisfiability of
Boolean expressions because it has lesser memory and computation requirements to parse
from root to sink of the tree.
Figure 11: Depicting the splitting tree of (q → p) ^ r → (p ↔ r) ^ q
32