230 likes | 404 Views
CSCI 2670 Introduction to Theory of Computing. October 26, 2004. Agenda. Last week Decidability of languages involving DFA’s & CFG’s Non-decidability of the Turing machine acceptance problem A TM Today Revisit the A TM proof Finish Chapter 4 Problems Tomorrow
E N D
CSCI 2670Introduction to Theory of Computing October 26, 2004
Agenda • Last week • Decidability of languages involving DFA’s & CFG’s • Non-decidability of the Turing machine acceptance problem ATM • Today • Revisit the ATM proof • Finish Chapter 4 • Problems • Tomorrow • Begin Chapter 5 (pp. 171 – 176) October 26, 2004
Announcements Announcements • Homework due next Tuesday (11/2) • 4.4, 4.8, 5.1, 5.2, 5.13 • No quiz this week • Quiz next Tuesday • No tutorials this week -- extra office hours instead • Tuesday & Wednesday 3:00 – 5:00 • Or by appointment October 26, 2004
Undecidability of ATM Theorem: ATM is undecidable Proof: (By contradiction) Assume ATM is decidable and let H be a decider for ATM H(<M,w>) = { accept if M accepts w reject if M does not accept w October 26, 2004
Proof (cont.) • Consider the TM D that submits the string <M> as input to the TM M D = “On input <M>, where M is a TM: • Run H on input <M,<M>> • If H accepts <M,<M>>, reject • If H rejects <M,<M>>, accept” • Since H is a decider, it must accept or reject • Therefore, D is a decider as well • D is a diagonalizing TM October 26, 2004
Proof (cont.) • What happens if D’s input is <D>? D(<D>) = { • D cannot exist! • Therefore, H cannot exist – i.e., ATM is undecidable reject if D accepts <D> accept if D does not accept <D> October 26, 2004
Recap • Assume H decides ATM • H(<M,w>) = accept if TM M accepts w, reject otherwise • Define D using H • D(<M>) returns opposite of H(<M,<M>>) • Consider D(<D>) • D accepts <D> if and only if D rejects <D> October 26, 2004
Apply this method to ADFA • Assume H decides ADFA • H(<A,w>) = accept if DFA A accepts w, reject otherwise • Define D using H • D(<A>) returns opposite of H(<A,<A>>) • Consider D(<D>) • D only accepts DFA’s as input … D is a TM • Method does not apply October 26, 2004
Apply this method to ATM-D • Assume H decides ATM-D • H(<M,w>) = accept if decider TM M accepts w, reject otherwise • Problem • What if M is not a decider and just a regular TM? • How can we test our input? • ATM-D is not decidable October 26, 2004
Co-Turing recognizable Definition: A language A is co-Turing-recognizable if Ā is Turing-recognizable. Example: EDFA = {<A> | A is a DFA and L(A) = } EDFA = {S | S does not describe a DFA or S describes a DFA with a non-empty language} • How would we decide this language? October 26, 2004
Decidability and recognizability Theorem: The language A is decidable if and only if it is both Turing-recognizable and co-Turing-recognizable Proof: In two parts • If A is decidable then A and Ā are Turing-recognizable • Follows from definitions • If A and Ā are Turing-recognizable then A is decidable October 26, 2004
Decider for A • Assume M1 recognizes A and M2 recognizes Ā • Consider the following TM M = “On input w: • Run M1 and M2 on input w in parallel • If M1 accepts, accept; if M2 accepts, reject” • M must halt on w because at least on of the recognizers must halt on w • If w A, M1 must halt; otherwise, M2 must halt October 26, 2004
Corollary • ATM is not Turing-recognizable Proof: ATM is Turing-recognizable, but not decidable. By previous theorem, ATM cannot be co-Turing-recognizable. October 26, 2004
Proving dedicability of L • Create a TM that decides L • Your TM may invoke another TM that decides a language you know is decidable October 26, 2004
Languages we know are decidable October 26, 2004
Some decidable languages • FDFA = {<A> | A is a DFA and L(A) is finite} • PRIME = { n | n is a prime number} • CONN = {<G> | G is a connected graph} • L10DFA = {D | D is a DFA that accepts every string w with |w| = 10} • INTCFG = {<G1, G2, w> | G1 and G2 are CFG’s and w is accepted by both} • INTLCFG = L(G1 G2), where G1 and G2 are CFG’s October 26, 2004
Group project 1 FDFA = {<A> | A is a DFA and L(A) is finite} October 26, 2004
Group project 2 PRIME = { n | n is a prime number} October 26, 2004
Group project 3 CONN = {<G> | G is a connected graph} October 26, 2004
Group project 4 L10DFA = {D | D is a DFA that accepts every string w with |w| = 10} October 26, 2004
Group project 5 INTCFG = {<G1, G2, w> | G1 and G2 are CFG’s and w is accepted by both} October 26, 2004
Group project 6 INTLCFG = L(G1 G2), where G1 and G2 are CFG’s October 26, 2004