Cs 454 Theory of Computation HW # 1

advertisement
CS 454 Theory of Computation
HW # 1solution
1) Exercise 0.6, page 26.
(a)
(b)
(c)
(d)
(e)
f(2) = 7
The domain is X, the range is Y.
g(2, 10) = 6
X x Y and Y
g(4, f(4)) = 8
2) Exercise 0.7, page 26. In all cases, relations are defined on {a, b, c}
(a) {(a,a), (b, b), (c, c), (a,b), (b,a), (b, c), (c,b)}
(b) {(a,a), (b,b), (c, c), (a,b), (b,c), (a,c)}
(c) {(a,a), (b,b), (a,b), (b,a)}
3) Problem 0.12, page 27.
Let n > 1 be the number of vertices. Possible degrees can be {0, 1, 2, …, n-1}.
However, choices 0 and n – 1 are not simultaneously possible. (If there is a node
with degree 0, then this node is not connected to any vertex. But a node of degree
n-1 is connected to every other node. These two options are not simultaneously
possible,) Thus the possible degree sequences are either {1, 2, …, n – 1} or {0, 1, …,
n-2}. In both cases, the number of possible values of degree is at most n – 1, but
there are n vertices. So by pigeonhole principle, two of the vertices must have the
same degree.
4) A circuit designer has access to AND and OR gates, and wires to connect them, but
NOT gates are not available. Which of the following functions can he/she implement
in hardware under this constraint? If your answer is in the affirmative, you should
exhibit the circuit. If it is in the negative, you have to give a proof.
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f
0
0
0
1
0
1
1
1
g
0
1
1
0
1
0
0
1
Answer: f can be implemented by using AND and OR gates since f = (y & z) V (x
& z) V (x & z).
However, g can’t be implemented by a circuit containing only AND, OR gates. This can
be proved using the following lemma:
Lemma: Suppose g is a Boolean function on n variables x1, x2, …, xn that can be
implemented using AND and OR gates. Suppose (x1 = b1, x2 = b2, … , xn = bn) is an
input for which f(b1, b2, … , bn) = 1. Suppose one of the bits bi = 0. Then,
f( b1, …, bi-1 , 1, bi+1, …, bn) is also 1. In other words, changing one of 0 inputs to 1 can’t
change the output from 1 to 0.
Proof can be given by induction of the number of gates in the circuit that implements
the function g. We will leave the proof as exercise.
Now it is easy to see that the above function g can’t be implemented using AND and
OR gates only.
Suppose it is possible that such a circuit exists. Consider the input (0, 0, 1). The value of
g(0, 0, 1) = 1. Now consider the first bit 0. If we change it 1, the output on the input (1,
0, 1) should be 1, according to the lemma. However, g(1, 0, 1) is 0. This is a
contradiction and it completes the proof.
Download