Ordered Binary Decision Diagrams
[20/100%]Prove that every Boolean function of variables can be realized as an OBDD with no more than internal vertices. Hint. Show how to transform a complete BDD.
Consider three-place Boolean functions , fixing the order of variables . Determine:
Fig. 20: OBDD \mathfrak {D}_{1}.
the largest possible number of vertices in a reduced OBDD for ;
how many functions exist attaining the largest number of vertices in the reduced OBDD.
Indicate how to construct, from an OBDD for a function , an OBDD for the dual function .
Circuits of functional elements are naturally realized as linear programs. Conversely, for decision trees and OBDDs, the natural program representation is a branching program, which includes only conditional statements of the form if then else and assignments and (see Section 22). These correspond to the internal vertices of the diagrams and to the sinks, respectively. Here and are again branching programs, and the variable holds the result.
Show how to construct, from an OBDD, a branching program computing the same function.
Write branching programs computing the functions represented by the OBDDs in Fig. 20 and in Fig. 22 on p. 125.
Prove that every OBDD can be represented as an acyclic program with labels П (see Section 22), and that the length of П does not exceed the number of vertices of . A program П is acyclic if all the labels of the program П are numbered and in every statement the label of the statement has a smaller number than the transition labels (this is equivalent to saying that there are no cycles in the flowchart; equivalently, that no "backward" transitions are possible). Assignments have the same form as in the previous problem.
Prove that from any OBDD with vertices representing a function , one can construct a linear program (and, consequently, a circuit of functional elements) of size over the basis , computing the same function . Hint. Use induction on the height of the vertices. The height of a vertex in an OBDD is the maximum length of a path from to one of the sinks.
Construct minimal OBDDs for the two-place functions: , .
Construct an OBDD for the function and estimate its complexity. Compare it with the complexity of the DNF of the same function from Problem 170 on p. 54.
Construct minimal OBDDs for the function
with respect to two orderings of the variables:
and
.
Using the OBDD reduction algorithm, construct the reduced diagram equivalent to the OBDD in Fig. 21 on the next page. Determine which function the resulting diagram realizes. Construct its truth table.
Fig. 21: OBDD \mathfrak {D}_{2}.
Let be a perfect DNF for a Boolean function . Prove that there exists an OBDD for the function whose number of internal vertices does not exceed the length of , regardless of the order of the variables. By the length of we mean the total number of occurrences of variables in . Hint. Apply induction on the number of variables .
Prove that for the function
the complexity of the reduced OBDD equals
under the variable ordering ;
under the ordering .
Let the function be obtained from the function by fixing the value of the variable :
where .
Suppose is a reduced OBDD for the function under the given order of variables. Propose a procedure that rebuilds the OBDD into an OBDD for the function under the same order. Will the resulting OBDD always be reduced?
Apply the procedure from part (a) to obtain, from the OBDD in Fig. 22 on the facing page, diagrams for the following functions: .
The threshold function is defined in Problem 406 on p. 118.
Construct an OBDD for the threshold function in general form.
Construct a minimal OBDD for the threshold function .
Fig. 22: OBDD \mathfrak {D}_{3}.
Does the complexity of the minimal OBDD for threshold functions depend on the order of the variables?
Estimate the complexity of the minimal OBDD for the threshold function .
Construct minimal OBDDs realizing the functions from Problems 396, 402, and 403.
Construct OBDDs for the functions and from Problem 406 on p. 118 and estimate their complexity.
Construct an OBDD for the solution of Problem 407 on p. 119. Determine the complexity of the diagram constructed.
Construct an OBDD for the solution of Problem 408 on p. 119. Determine the complexity of the diagram constructed.
Construct an OBDD for the solution of Problem 409 on p. 119. Determine the complexity of the diagram constructed.
Construct an OBDD for the solution of Problem 410 on p. 119. Determine the complexity of the diagram constructed.