How To Predict Membership, Classification Trees
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 software binary decision tree 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 Software binary decision tree is that it is canonical unique for a particular function and variable order. A path from the root node to the 1-terminal represents 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 software binary decision 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 child, 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. The resulting BDD is shown in the right figure. The basic idea from which the data structure was software binary decision tree is the Shannon expansion.
A switching function is split into two sub-functions software binary decision tree by assigning one variable cf. If such a sub-function is considered as a software binary decision tree, it can be represented by a binary decision tree. The full potential for 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 software binary decision tree and algorithms for the representation of sets and relations.
In his video lecture Fun With Binary Decision Diagrams BDDssoftware binary decision tree 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 software binary decision tree his collaborators have shown that BDDs are one of several normal forms for 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 to 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 a 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 structure in practice. The problem of finding the best 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.
Wikimedia Commons has media related to Binary decision diagrams.