140 likes | 329 Views
Reducibility. Sipser 5.1 (pages 187-198). Reducibility. Driving directions. Boston. Cambridge. Western Mass. If you can’t drive to London…. If something’s impossible…. Theorem 4.11: A TM = { < M,w > | M is a TM and M accepts w } is undecidable . Define: HALT TM =
E N D
Reducibility Sipser 5.1 (pages 187-198)
Driving directions Boston Cambridge Western Mass
If something’s impossible… • Theorem 4.11: ATM= {<M,w> | M is a TM and M accepts w} is undecidable. • Define: HALTTM= {<M,w> | M is a TM and Mhalts on input w} • Is HALTTM decidable?
The Halting Problem (again!) • Theorem 5.1: HALTTM is undecidable. • Proof Idea: • We knowATMis undecidable. • We need to reduce one ofHALTTMorATMtothe other. • Which way to go?
HALTTM is undecidable. • Proof: Suppose R decidesHALTTM. Define S= "On input <M,w>, whereMis a TM andw a string: • Run TMRon input<M,w>. • If Rrejects, then reject. • If R accepts, simulate Mon inputwuntil it halts. • If Menters its accept state, accept; if Menters its reject state, reject."
What about emptiness? • ETM= {<M> |Mis a TM and L(M) = Ø} • Theorem 5.2: ETM is undecidable.
A step along the way • Given an input <M,w>, define a machine Mwas follows. • Mw= "On input x: • If x ≠ w, reject. • If x = w, run M on input w and accept if M does.”
ETM = {<M> | M is a TM and L(M) = Ø} • Proof: Suppose TM R decides ETM. Define a TM to decide ATM S = "On input <M,w>: • Use the description of M and w to construct Mw. • Run R on input <Mw>. • If R accepts, reject; if R rejects, accept."
Is there anything that can be done? • Rice’s Theorem: Testing any nontrivial property of the languages recognized by Turing machines is undecidable!
We can’t even tell when something’s regular! • REGULARTM= {<M> | M is a TM and L(M) is regular} • Theorem 5.3:REGULARTM is undecidable.
REGULARTM is undecidable • Proof: Assume R is a TM that decidesREGULARTM. Define S = "On input <M,w>: • Construct TM M2= "On input x: • If xhas the form 0n1n, accept. • Otherwise, runM on inputwand accept ifMacceptsw." • Run R on input <M2>. • If R accepts, accept; if R rejects, reject."