Chapter 17

Ordered Binary Decision Diagrams

[20/100%]
Show
LaTeX
Problem 411

Prove that every Boolean function of nn variables can be realized as an OBDD with no more than 2n/2+2−12^{n / 2+2}-1 internal vertices. Hint. Show how to transform a complete BDD. ⊛\circledast

?
Problem 412

Consider three-place Boolean functions f(x1,x2,x3)f\left(x_{1}, x_{2}, x_{3}\right), fixing the order of variables x1<x2<x3x_{1}<x_{2}<x_{3}. Determine:

Fig. 20: OBDD \mathfrak {D}_{1}.Fig. 20: OBDD \mathfrak {D}_{1}.

?
(a)

the largest possible number of vertices in a reduced OBDD for ff;

(b)

how many functions exist attaining the largest number of vertices in the reduced OBDD. ⊛\circledast

Problem 413

Indicate how to construct, from an OBDD for a function ff, an OBDD for the dual function f∗f^{*}. ⊛\circledast

?
Problem 414

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 vv then Π1\Pi_{1} else Π2\Pi_{2} and assignments y←0y \leftarrow 0 and y←1y \leftarrow 1 (see Section 22). These correspond to the internal vertices of the diagrams and to the sinks, respectively. Here Π1\Pi_{1} and Π2\Pi_{2} are again branching programs, and the variable yy 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 D1\mathfrak {D}_{1} in Fig. 20 and D3\mathfrak {D}_{3} in Fig. 22 on p. 125. ⊛\circledast

?
Problem 415

Prove that every OBDD D\mathfrak {D} 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 D\mathfrak {D}. 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. ⊛\circledast

?
Problem 416

Prove that from any OBDD D\mathfrak {D} with nn vertices representing a function ff, one can construct a linear program (and, consequently, a circuit of functional elements) of size O(n)O(n) over the basis B0={∧,∨,¬}\mathcal{B}_{0}=\left\{ \wedge , \vee , \neg \right\}, computing the same function ff. Hint. Use induction on the height of the vertices. The height of a vertex vv in an OBDD is the maximum length of a path from vv to one of the sinks. ⊛\circledast

?
Problem 417

Construct minimal OBDDs for the two-place functions: x∧yx \wedge y, x∨y,x⊕y,x→y,x↑yx \vee y, x \oplus y, x \rightarrow y, x \uparrow y. ⊛\circledast

?
Problem 418

Construct an OBDD for the function odd⁡(x1,…,xn)=x1⊕⋯⊕xn\operatorname {odd}\left(x_{1}, \ldots , x_{n}\right)=x_{1} \oplus \cdots \oplus x_{n} and estimate its complexity. Compare it with the complexity of the DNF of the same function from Problem 170 on p. 54. ⊛\circledast

?
Problem 419

Construct minimal OBDDs for the function

f(x1,x2,x3,x4,x5,x6)=(x1∧x2)⊕(x3∧x4)⊕(x5∧x6) f\left(x_{1}, x_{2}, x_{3}, x_{4}, x_{5}, x_{6}\right)=\left(x_{1} \wedge x_{2}\right) \oplus \left(x_{3} \wedge x_{4}\right) \oplus \left(x_{5} \wedge x_{6}\right)

with respect to two orderings of the variables:

?
(a)

x1<x2<x3<x4<x5<x6x_{1}<x_{2}<x_{3}<x_{4}<x_{5}<x_{6} and

(b)

x1<x3<x5<x2<x4<x6x_{1}<x_{3}<x_{5}<x_{2}<x_{4}<x_{6}. ⊛\circledast

Problem 420

Using the OBDD reduction algorithm, construct the reduced diagram equivalent to the OBDD D2\mathfrak {D}_{2} in Fig. 21 on the next page. Determine which function the resulting diagram realizes. Construct its truth table. ⊛\circledast

Fig. 21: OBDD \mathfrak {D}_{2}.Fig. 21: OBDD \mathfrak {D}_{2}.

?
Problem 421

Let Φ\Phi be a perfect DNF for a Boolean function ff. Prove that there exists an OBDD for the function ff whose number of internal vertices does not exceed the length of Φ\Phi, regardless of the order of the variables. By the length of Φ\Phi we mean the total number of occurrences of variables in Φ\Phi. Hint. Apply induction on the number of variables nn. ⊛\circledast

?
Problem 422

Prove that for the function

pn(x1,…,xn,yn,…,y1)=(x1∧y1)∨(x2∧y2)∨…∨(xn∧yn) p_{n}\left(x_{1}, \ldots , x_{n}, y_{n}, \ldots , y_{1}\right)=\left(x_{1} \wedge y_{1}\right) \vee \left(x_{2} \wedge y_{2}\right) \vee \ldots \vee \left(x_{n} \wedge y_{n}\right)

the complexity of the reduced OBDD equals

?
(a)

2n2 n under the variable ordering π1:x1,y1,…,xn,yn\pi_{1}: x_{1}, y_{1}, \ldots , x_{n}, y_{n};

(b)

2n+1−22^{n+1}-2 under the ordering π2:x1,x2,…,xn,yn,…,y2,y1\pi_{2}: x_{1}, x_{2}, \ldots , x_{n}, y_{n}, \ldots , y_{2}, y_{1}. ⊛\circledast

Problem 423

Let the function f′f^{\prime } be obtained from the function ff by fixing the value of the variable xix_{i}:

f′(x1,…,xi−1,xi+1,…,xn)=f(x1,…,xi−1,σ,xi+1,…,xn), f^{\prime }\left(x_{1}, \ldots , x_{i-1}, x_{i+1}, \ldots , x_{n}\right)=f\left(x_{1}, \ldots , x_{i-1}, \sigma , x_{i+1}, \ldots , x_{n}\right),

where σ∈{0,1}\sigma \in \left\{ 0,1\right\}.

?
(a)

Suppose D\mathfrak {D} is a reduced OBDD for the function f(x1,…,xn)f\left(x_{1}, \ldots , x_{n}\right) under the given order of variables. Propose a procedure that rebuilds the OBDD D\mathfrak {D} into an OBDD D′\mathfrak {D}^{\prime } for the function f′(x1,…,xi−1,xi+1,…,xn)f^{\prime }\left(x_{1}, \ldots , x_{i-1}, x_{i+1}, \ldots , x_{n}\right) under the same order. Will the resulting OBDD D′\mathfrak {D}^{\prime } always be reduced?

(b)

Apply the procedure from part (a) to obtain, from the OBDD D3\mathfrak {D}_{3} in Fig. 22 on the facing page, diagrams for the following functions: f(0,x2,x3,x4),f(x1,1,x3,x4),f(x1,x2,0,x4)f\left(0, x_{2}, x_{3}, x_{4}\right), f\left(x_{1}, 1, x_{3}, x_{4}\right), f\left(x_{1}, x_{2}, 0, x_{4}\right). ⊛\circledast

Problem 424

The threshold function TknT_{k}^{n} is defined in Problem 406 on p. 118.

?
(a)

Construct an OBDD for the threshold function TknT_{k}^{n} in general form.

(b)

Construct a minimal OBDD for the threshold function T46T_{4}^{6}.

Fig. 22: OBDD \mathfrak {D}_{3}.Fig. 22: OBDD \mathfrak {D}_{3}.

(c)

Does the complexity of the minimal OBDD for threshold functions depend on the order of the variables?

(d)

Estimate the complexity of the minimal OBDD for the threshold function TknT_{k}^{n}. ⊛\circledast

Problem 425

Construct minimal OBDDs realizing the functions from Problems 396, 402, and 403. ⊛\circledast

?
Problem 426

Construct OBDDs for the functions fnf_{n} and gng_{n} from Problem 406 on p. 118 and estimate their complexity. ⊛\circledast

?
Problem 427

Construct an OBDD for the solution of Problem 407 on p. 119. Determine the complexity of the diagram constructed. ⊛\circledast

?
Problem 428

Construct an OBDD for the solution of Problem 408 on p. 119. Determine the complexity of the diagram constructed. ⊛\circledast

?
Problem 429

Construct an OBDD for the solution of Problem 409 on p. 119. Determine the complexity of the diagram constructed. ⊛\circledast

?
Problem 430

Construct an OBDD for the solution of Problem 410 on p. 119. Determine the complexity of the diagram constructed. ⊛\circledast

?