0% found this document useful (0 votes)
71 views3 pages

Hwsoln 08

This document contains solutions to 4 problems about decidability and Turing machines. Problem 1 shows that the problem of determining if a DFA and regular expression are equivalent is decidable. Problem 2 shows that the problem of determining if a context-free grammar generates the empty string is decidable. Problem 3 shows that the problem of determining if a regular expression generates a string containing "111" as a substring is decidable. Problem 4 shows that the emptiness problem for Turing machines is co-Turing-recognizable.

Uploaded by

tghate91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views3 pages

Hwsoln 08

This document contains solutions to 4 problems about decidability and Turing machines. Problem 1 shows that the problem of determining if a DFA and regular expression are equivalent is decidable. Problem 2 shows that the problem of determining if a context-free grammar generates the empty string is decidable. Problem 3 shows that the problem of determining if a regular expression generates a string containing "111" as a substring is decidable. Problem 4 shows that the emptiness problem for Turing machines is co-Turing-recognizable.

Uploaded by

tghate91
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

CS 341: Foundations of Computer Science II

Prof. Marvin Nakayama

Homework 8 Solutions

1. Consider the decision problem of testing whether a DFA and a regular expression are
equivalent. Express this problem as a language and show that it is decidable.

Answer: Define the language as

C = {hM, Ri | M is a DFA and R is a regular expression with L(M ) = L(R) }.

Recall that the proof of Theorem 4.5 defines a Turing machine F that decides the
language EQDFA = { hA, Bi | A and B are DFAs and L(A) = L(B) }. Then the
following Turing machine T decides C:

T = “On input hM, Ri, where M is a DFA and R is a regular expression:


1. Convert R into a DFA DR using the algorithm in the
proof of Kleene’s Theorem.
2. Run TM decider F from Theorem 4.5 on input hM, DR i.
3. If F accepts, accept. If F rejects, reject.”

2. Consider the decision problem of testing whether a CFG generates the empty string.
Express this problem as a language and show that it is decidable.

Answer: The language of the decision problem is

AεCFG = { hGi | G is a CFG that generates ε }.

If a CFG G = (V, Σ, R, S) includes the rule S → ε, then clearly G can generate


ε. But G could still generate ε even if it doesn’t include the rule S → ε. For
example, if G has rules S → XY , X → aY | ε, and Y → baX | ε, then the derivation
S ⇒ XY ⇒ εY ⇒ εε = ε shows that ε ∈ L(G), even though G doesn’t include
the rule S → ε. So it’s not sufficient to simply check if G includes the rule S → ε to
determine if ε ∈ L(G).
But if we have a CFG G′ = (V ′ , Σ, R′ , S ′ ) that is in Chomsky normal form, then G′
generates ε if and only if S ′ → ε is a rule in G′ . Thus, we first convert the CFG G
into an equivalent CFG G′ = (V ′ , Σ, R′ , S ′ ) in Chomsky normal form. If S ′ → ε is
a rule in G′ , then clearly G′ generates ε, so G also generates ε since L(G) = L(G′ ).
Since G′ is in Chomsky normal form, the only possible ε-rule in G′ is S ′ → ε, so the
only way we can have ε ∈ L(G′ ) is if G′ includes the rule S ′ → ε in R. Hence, if

1
G′ does not include the rule S ′ → ε, then ε 6∈ L(G′ ). Thus, a Turing machine that
decides AεCFG is as follows:
M = “On input hGi, where G is a CFG:
1. Convert G into an equivalent CFG G′ = (V ′ , Σ, R′ , S ′ )
in Chomsky normal form.
2. If G′ includes the rule S ′ → ε, accept. Otherwise, reject.”
3. Let Σ = {0, 1}, and consider the decision problem of testing whether a regular
expression with alphabet Σ generates at least one string w that has 111 as a substring.
Express this problem as a language and show that it is decidable.
Answer: The language of the decision problem is
A = { hRi | R is a regular expression describing a language over Σ containing
at least one string w that has 111 as a substring
(i.e., w = x111y for some x and y) }.
Define the language C = { w ∈ Σ∗ | w has 111 as a substring }. Note that C is a
regular language with regular expression (0 ∪ 1)∗ 111(0 ∪ 1)∗ and is recognized by
the following DFA DC :

0 0, 1

1
1 1
1 2 3 4
0
0

Now consider any regular expression R with alphabet Σ. If L(R) ∩ C 6= ∅, then R


generates a string having 111 as a substring, so hRi ∈ A. Also, if L(R) ∩ C = ∅,
then R does not generate any string having 111 as a substring, so hRi 6∈ A. By
Kleene’s Theorem, since L(R) is described by regular expression R, L(R) must be a
regular language. Since C and L(R) are regular languages, C ∩ L(R) is regular since
the class of regular languages is closed under intersection, as was shown in an earlier
homework. Thus, C ∩L(R) has some DFA DC∩L(R) . Theorem 4.4 shows that EDFA =
{ hBi | B is a DFA with L(B) = ∅ } is decidable, so there is a Turing machine H that
decides EDFA . We apply TM H to hDC∩L(R) i to determine if C ∩ L(R) = ∅. Putting
this all together gives us the following Turing machine T to decide A:
T = “On input hRi, where R is a regular expression:
1. Convert R into a DFA DR using the algorithm in the
proof of Kleene’s Theorem.
2. Construct a DFA DC∩L(R) for language C ∩ L(R)
from the DFAs DC and DR .
3. Run TM H that decides EDFA on input hDC∩L(R) i.
4. If H accepts, reject. If H rejects, accept.”

2
4. Consider the emptiness problem for Turing machines:

ETM = { hM i | M is a Turing machine with L(M ) = ∅ }.

Show that ETM is co-Turing-recognizable. (A language L is co-Turing-recognizable if


its complement L is Turing-recognizable.) Note that the complement of ETM is

ETM = { hM i | M is a Turing machine with L(M ) 6= ∅ }.

(Actually, ETM also contains all hM i such that hM i is not a valid Turing-machine
encoding, but we will ignore this technicality.)

Answer: We need to show there is a Turing machine that recognizes ETM , the com-
plement of ETM . Let s1 , s2 , s3 , . . . be a list of all strings in Σ∗ . For a given Turing
machine M , we want to determine if any of the strings s1 , s2 , s3 , . . . is accepted by
M . If M accepts at least one string si , then L(M ) 6= ∅, so hM i ∈ ETM ; if M
accepts none of the strings, then L(M ) = ∅, so hM i 6∈ ETM . However, we cannot
just run M sequentially on the strings s1 , s2 , s3 , . . .. For example, suppose M accepts
s2 but loops on s1 . Since M accepts s2 , we have that hM i ∈ ETM . But if we run M
sequentially on s1 , s2 , s3 , . . ., we never get past the first string. The following Turing
machine avoids this problem and recognizes ETM :

R = “On input hM i, where M is a Turing machine:


1. Repeat the following for i = 1, 2, 3, . . ..
2. Run M for i steps on each input s1 , s2 , . . . , si .
3. If any computation accepts, accept.

You might also like