CMPSCI 501: Theory of Computation
David Mix Barrington
Spring, 2014
Homework Assignment #1
Posted Monday 27 January 2013
Due on paper in class, Monday 10 February 2013
There are sixteen questions for 100 total points plus
fifteen
extra credit.
All but three are from
the textbook, Introduction to the Theory of Computation
by Michael Sipser (second edition).
The number in parentheses following each problem
is its individual point value.
Students are responsible for understanding and following
the academic honesty
policies indicated on this page.
Correction in green added 3 February 2014.
Corrections in orange added 7 February 2014.
- Problem A-1 (5): A graph is called a cycle if for any vertex x,
there is a path from x to itself that visits all other vertices
exactly once, and contains all the edges in the graph. Informally
describe an algorithm that inputs a graph and determines whether it
is
a cycle. (This is different from whether it includes a cycle.)
- Problem A-2 (10): The Fibonacci numbers are defined inductively
by the rules F(0) = 0, F(1) = 1, and for n ≥ 2, F(n) = F(n-1) +
F(n-2). Let X be the language of all strings over {a, b} that do not begin
with b and never have two b's in a row.
Prove, by induction on all non-negative integers n, that the number
of strings of length n in X is exactly F(n+1). Question
corrected 3 February 2014.)
- Problem A-3 (10):
Let G be a graph with n vertices, e edges, and c connected
components, and assume that G does not include a cycle.
Prove that n = c + e. (Hint: Let n be arbitrary and use induction
on e. If an edge does not create a cycle, what is its effect on the
number of connected components?)
- Exercise 1.4 part c only (5).
- Exercise 1.6 parts j, k, and l only (5).
- Exercise 1.7 parts g and h only (5).
- Exercise 1.13 (10).
- Exercise 1.17 (5). You may use any valid method.
- Exercise 1.19 (5 XC) (Added to the assignment 7 February since it was accidently assigned before.)
- Exercise 1.21 part b only (5).
- Exercise 1.29, part (b) only (5). You may use either the book's method or
mine.
- Problem 1.35 (10). You may either use the Pumping Lemma or
the Myhill-Nerode Theorem.
- Problem 1.39 (5). This is easy using the Myhill-Nerode Theorem.
- Problem 1.42 (10XC). (Hint: Assume you have DFA's for A and B
and
build an NFA for the shuffle language.)
- Problem 1.43 (10).
- Problem 1.48 (10). Clearly you need an equivalent
description of the language.
Last modified 7 February 2014