CS4311: Introduction to Computation Theory hw2

CS 4311 Introduction to Computation Theory
Homework 2: Chapter 1

Due: Monday, 9/18/00, beginning of class (Assigned: Monday, 9/11/00)

You are required to turn in answers to all the questions. However, only a random subset of the questions will be graded. While discussion with others is permitted and encouraged, the final work should be done individually. You are not allowed to work in groups. The answers, comments, and programs (if any) must be the original work of the author. You are allowed to build on material supplied in the class. If you use any other source than the current class notes and the textbook, specify it clearly.

1. (Exercise 1.2) Give a formal description of the machine pictured below.

2. (Exercise 1.6a) Give state diagrams for DFAs recognizing the languages below. Then, use the construction given in the proof of Theorem 1.22 to give the state diagram of an NFA recognizing the union of these languages.

3. (Exercise 1.7b) Give state diagrams for DFAs recognizing the languages below. Then, use the construction given in the proof of Theorem 1.23 to give the state diagrams of an NFA recognizing the concatenation of these languages.

4. (Exercise 1.8a) Give state diagram for a DFA recognizing the language below. Then, use the construction given in the proof of Theorem 1.24 to give the state diagrams of an NFA recognizing the star of this language.

5. (Exercise 1.9) Prove that every NFA can be converted to an equivalent one that has a single accept state.

6. (Exercise 1.12b) Use the construction given in Theorem 1.19 to convert the following nondeterministic finite automaton to an equivalent deterministic finite automaton.

7. (Exercise 1.14a) Use the procedure described in Lemma 1.29 to convert the following regular expression to a nondeterministic finite automaton.

8. (Exercise 1.16b) Use the procedure described in Lemma 1.32 to convert the following finite automaton to a regular expression.

9. (Exercise 1.17c) Use the pumping lemma to show that the following language is not regular.

(Here, a2n means a string of 2n a's).

10. (Exercise 1.18) Describe the error in the following "proof" that 0*1* is not a regular language. (An error must exist because 0*1* is regular.) The proof is by contradiction. Assume that 0*1* is regular. Let p be the pumping length for 0*1* given by the pumping lemma. Choose s to be the string 0p1p. You know that s is a member of 0*1*, but Example 1.38 shows that s cannot be pumped. Thus you have a contradiction. So 0*1* is not regular.