Binary decision diagram
4 stars based on
In computer sciencea binary decision diagram BDD or branching program is a data structure that is used to represent a Boolean function. On a more abstract level, BDDs can be considered as a compressed representation of sets or relations. Unlike other compressed representations, operations are performed directly on the compressed representation, i. A Boolean function can be represented as a rooteddirected, acyclic graphwhich consists of several decision nodes and terminal nodes.
There are two types of terminal nodes called 0-terminal and 1-terminal. Such a BDD is called 'ordered' if different variables appear in the same order on all paths from the root. A BDD is said to be 'reduced' if the following two rules have been applied to its graph:.
The advantage of an ROBDD is that it is canonical unique for a particular function and variable order. A path from the root node to the 1-terminal binary decision diagram rules a possibly partial variable assignment for which the represented Boolean function is true. As the path descends to a low or high child from a node, then that node's variable is assigned to 0 resp.
The left figure below shows a binary decision tree the reduction rules are not appliedand a truth tableeach representing the function f x1, x2, x3.
In the tree on the left, the value of the function can be determined for a given variable assignment by following a path down the graph to a terminal. In the figures below, dotted lines represent edges to a low binary decision diagram rules, while solid lines represent edges to a high child. The binary decision tree of the left figure can be transformed into a binary decision diagram by maximally reducing it according to the two reduction rules. Binary decision diagram rules resulting BDD is shown in the right figure.
The basic idea from which the data structure was created is the Shannon expansion. A switching function is split into two sub-functions cofactors by assigning one variable cf. If such a sub-function is considered as a sub-tree, it can be represented by a binary decision tree.
The full potential binary decision diagram rules efficient algorithms based on the data structure was investigated by Randal Bryant at Carnegie Mellon University: Applying these two concepts results in an efficient data structure and algorithms for the representation of sets and relations.
In his video lecture Fun With Binary Decision Diagrams BDDs Donald Knuth calls BDDs "one of the only really fundamental data structures that came out in the last twenty-five years" and mentions that Bryant's paper was for some time one of the most-cited papers in computer science. Adnan Darwiche and his collaborators have shown that BDDs are one of several normal forms binary decision diagram rules Boolean functions, each induced by a different combination of requirements.
BDDs are extensively used in CAD software to synthesize circuits logic synthesis and in formal verification. There are several lesser known applications of BDD, including fault tree analysis, Bayesian reasoning, product configuration, and private information retrieval.
Every arbitrary BDD even if it is not reduced or ordered can be directly implemented in hardware by replacing each node with a 2 binary decision diagram rules 1 multiplexer ; each multiplexer can be directly implemented by a 4-LUT in a FPGA. It is not so simple to convert from an arbitrary network of logic gates to binary decision diagram rules BDD [ citation needed ] unlike the and-inverter graph.
The size of the BDD is determined both by the function being represented and the chosen ordering of the variables.
It is of crucial importance to care about variable ordering when applying this data binary decision diagram rules in practice. The problem of finding the binary decision diagram rules variable ordering is NP-hard.
There are functions for which the graph size is always exponential — independent of variable ordering. Many logical operations on BDDs can be implemented by polynomial-time graph manipulation algorithms: However, repeating these operations several times, for example forming the conjunction or disjunction of a set of BDDs, may in the worst case result in an exponentially big BDD. From Wikipedia, the free encyclopedia. Bell System Technical Journal, Boute, "The Binary Decision Machine as a programmable controller".
Rudell and Randal E. IT University of Copenhagen. Binary decision diagram Directed acyclic graph Directed acyclic word graph. List of data structures. Retrieved from " https: Diagrams Graph data structures Model checking Boolean algebra. All articles with unsourced binary decision diagram rules Articles with unsourced statements from June Articles with unsourced statements from March Articles with unsourced statements from November Articles with example code.