CS 461 – Nov. 9
-
Upload
kathleen-mann -
Category
Documents
-
view
24 -
download
5
description
Transcript of CS 461 – Nov. 9
CS 461 – Nov. 9
• Chomsky hierarchy of language classes– Review– Let’s find a language outside the TM world!– Hints: languages and TM are countable, but the set
of all languages is uncountable
• Undecidability– We have seen that ATM is undecidable.– Let’s look at some more undecidable problems.
TM properties
• 2 kinds of TMs 2 kinds of languages.– Turing-recognizable (a.k.a. recursively enumerable)
• Example: ATM
– Decidable (a.k.a. recursive)• Example: 0*
• If L is decidable, then L’ is decidable.• If L and L’ are both Turing-recognizable,
then L is decidable. (since either L or L’ must accept)
• Therefore, the complement of ATM is not even Turing recognizable.
Decidable?
for n = 3 .. maxint:
for each combo of (x, y, z) starting at 1:
if (xn + yn == zn)
print (“hello, world”);
• Are we able to tell if this program will print “hello, world” or not?– Only since 1993 . For 300 years we didn’t know.– Solving this problem in general (for any program)
must be hard… but what if it could be done?
“hello, world” tester
• Suppose H can decide the question.• Then we can create similar algorithm H2.
– Returns “hello, world” instead of “no”.– Let’s run H2 on itself!
H
program & inputPrint “yes”
Print “no”
H2
H2Print “yes”
Print “hello, world”
Regular?
• REG = “Is there an algorithm to determine if a TM recognizes a regular language?”
• Proof by contradiction, p. 191• Assume REG is decidable.
– Then, TM “R” that can tell if an input <TM> recognizes a regular language.
– We’ll use R to solve the ATM problem by creating a decider S.
– In other words:
Machine R solves REG -- which implies existence of ….
Machine S which solves ATM.
– Do we understand the I/O of R and S?
Regular, continued
• Here is how to build machine S, which will “solve” ATM.
• Input to S is <T, w>.
• Create a new TM “M2”– M2 sees if its input, x, is of the form 0n1n. If so, M2 accepts x.– If x is not of the form 0n1n,
• M2 runs T on w.• If T accepts w, M2 accepts x.
– Thus, L(M2) is either Σ*, if T accepts w, or 0n1n.– The only way for M2 to accept Σ* is for T to accept w.
• Feed M2 into R.– If R says that M2 accepts a regular language, we can conclude T
accepts w, so S can say “yes”, i.e. accept. Otherwise S rejects.– But S can’t exist. So we have a contradiction. REG undecidable.
Rice’s Theorem
• Any question Q about a TM language is undecidable.• Proof by contradiction:
• Assume Q is decidable. Then TM “QD” that – always halts, and – answers Q for any input TM it receives.
• Using QD, we can build a machine AD to decide ATM.
• (But we know that AD can’t exist, therefore QD can’t exist. That is the contradiction.)
Building TM “AD”• AD will do the following:
– Its input is <T, w>.– Build a TM “Q1” that satisfies Q.– Build a TM “M2” whose input is x.
• M2 runs T on w. If T loops/rejects, M2 will loop/reject. • If T accepts w, next run Q1 on x. M2 accepts if Q1 accepts.• Note that L(M2) = L(Q1) if T accepts w. L(M2) = if T does
not accept w.• In other words, if T accepts, then M2 satisfies Q.
– Feed M2 into QD. If QD accepts, AD accepts. Otherwise AD rejects.
• Thus: QD is a decider AD is a decider.
Glossary to proof
• Q = some question or property about a TM language• QD = a TM that can decide Q• Q1 = a TM for which Q is true, built inside AD
• ATM = the acceptance question for TM’s, already known to be undecidable
• AD = a hypothetical decider for ATM
• T = the TM input to AD• w = the corresponding word also input to AD• M2 = a second TM built inside AD
• Rice’s theorem is a little complex because 5 TM’s!
Examples
• Let Q = “Is the language infinite?” or ….• “Does the language include 001?”• “Is the language finite?”• “Is the language nonregular?”
• Can also prove by contradiction:– Is it decidable to determine if one TM language is the
subset of another?