For a complete binary decision tree with variable ordering of a binary decision diagram , first test , then , then on every branch. The four Boolean cofactors after the first two tests are
The eight terminal nodes, read from left to right in the figure, are . The repeated tests are intentional: this is the full binary decision tree before any reduction.
Figure 1.
Complete decision tree for the ordering z, y, x; dashed edges test zero and solid edges test one
. Details.
For example, the branch ends at one, whereas ends at zero. This checks the dependence on that must survive the later reduction.
A reduced ordered binary decision diagram is obtained by sharing equal terminal nodes, removing a decision node whose two children are equal, and sharing decision nodes with the same tested Boolean variable and the same ordered pair of children. Apply these rules to the binary decision tree in part (c) as follows.
The left panel below is therefore the resulting reduced ordered binary decision diagram. Its full description is
Decision nodeTestZero childOne child
01
1
01
There are vertices: four decision nodes and two terminal nodes.
Figure 1.
Reduced ordered decision diagrams: reversing the given order preserves its size, while testing y first saves one decision node
. Details.
The original binary decision diagram also has four decision nodes and two terminal nodes, and is already reduced for : the two decision nodes have different children and no decision node has two equal children. Thus reversing the order has not made this example smaller. Indeed is unchanged by interchanging and , and the new binary decision diagram is the original one with those two labels exchanged. The uniqueness of a reduced ordered binary decision diagram applies to a fixed variable ordering of a binary decision diagram; it does not assert that every ordering has the same size.
Choose the variable ordering of a binary decision diagram . The Boolean cofactor with is the constant one, while the Boolean cofactor with is . Consequently the right panel in part (d) has the following arrows:
Here an entry such as denotes the zero arrow to the decision node. There are vertices: three decision nodes and two terminal nodes, saving one decision node relative to either of the previous orderings. Testing first is effective because its one branch settles the entire Boolean function immediately. The ordering works equally well.
This is also minimal among ordinary binary decision diagrams for this Boolean function. Each Boolean variable is essential: setting leaves ; setting leaves ; and setting leaves . If a Boolean variable were never tested, the represented Boolean function could not depend on it. Thus at least three decision nodes are necessary, and the construction attains that bound.
An ordered binary decision diagram with shared equal terminal nodes, no decision node having identical zero and one children, and no two decision nodes having the same tested Boolean variable and the same ordered pair of children. For a fixed variable ordering of a binary decision diagram, it is unique up to labelled graph isomorphism: each nonconstant remaining Boolean cofactor has a uniquely determined first essential Boolean variable, and its two children are recursively determined by its zero and one Boolean cofactors. This uniqueness does not compare different orderings.