CS154, Lecture 8: Undecidability, Mapping Reductions

Slides:



Advertisements
Similar presentations
David Evans cs302: Theory of Computation University of Virginia Computer Science Lecture 17: ProvingUndecidability.
Advertisements

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.
February 6, 2015CS21 Lecture 141 CS21 Decidability and Tractability Lecture 14 February 6, 2015.
Reducibility Sipser 5.1 (pages ). CS 311 Fall Reducibility.
Reducibility Sipser 5.1 (pages ).
Mapping Reducibility Sipser 5.3 (pages ).
Mapping Reducibility Sipser 5.3 (pages ). CS 311 Fall Computable functions Definition 5.17: A function f:Σ*→Σ* is a computable function.
Reducibility A reduction is a way of converting one problem into another problem in such a way that a solution to the second problem can be used to solve.
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
Fall 2003Costas Busch - RPI1 Decidability. Fall 2003Costas Busch - RPI2 Recall: A language is decidable (recursive), if there is a Turing machine (decider)
Fall 2004COMP 3351 The Chomsky Hierarchy. Fall 2004COMP 3352 Non-recursively enumerable Recursively-enumerable Recursive Context-sensitive Context-free.
Fall 2006Costas Busch - RPI1 Undecidable Problems (unsolvable problems)
Prof. Busch - LSU1 Undecidable Problems (unsolvable problems)
February 4, 2015CS21 Lecture 131 CS21 Decidability and Tractability Lecture 13 February 4, 2015.
CSCI 2670 Introduction to Theory of Computing November 4, 2004.
The Halting Problem – Undecidable Languages Lecture 31 Section 4.2 Wed, Oct 31, 2007.
 2005 SDU Lecture13 Reducibility — A methodology for proving un- decidability.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture 7 Undecidability cont. Jan Maluszynski, IDA, 2007
CSCI 3130: Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong Decidable.
FORMAL LANGUAGES, AUTOMATA, AND COMPUTABILITY * Read chapter 4 of the book for next time * Lecture9x.ppt.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Undecidable.
Decidability.
The Acceptance Problem for TMs
CS 461 – Nov. 2 Sets Prepare for ATM finite vs. infinite Infinite sets
The Halting Problem.
Theory of Computability
Recursively Enumerable and Recursive Languages
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
Busch Complexity Lectures: Reductions
Undecidable Problems Costas Busch - LSU.
Lecture12 The Halting Problem
Reductions Costas Busch - LSU.
Theory of Computability
FORMAL LANGUAGES, AUTOMATA AND COMPUTABILITY
Reducibility The Chinese University of Hong Kong Fall 2010
CSCI 2670 Introduction to Theory of Computing
Intro to Theory of Computation
CS154, Lecture 10: Rice’s Theorem, Oracle Machines
Busch Complexity Lectures: Undecidable Problems (unsolvable problems)
CSE 105 theory of computation
CS154, Lecture 8: Undecidability, Mapping Reductions
CS154, Lecture 10: Rice’s Theorem, Oracle Machines
CSCI 2670 Introduction to Theory of Computing
Decidable Languages Costas Busch - LSU.
Undecidable problems:
Reducability Sipser, pages
CSCI 2670 Introduction to Theory of Computing
Proposed in Turing’s 1936 paper
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
CS21 Decidability and Tractability
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
Theory of Computability
Instructor: Aaron Roth
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
Theory of Computability
More undecidable languages
CSCI 2670 Introduction to Theory of Computing
Intro to Theory of Computation
Theory of Computability
Instructor: Aaron Roth
Instructor: Aaron Roth
Automata, Grammars and Languages
More Undecidable Problems
CSE 105 theory of computation
Intro to Theory of Computation
Intro to Theory of Computation
Presentation transcript:

CS154, Lecture 8: Undecidability, Mapping Reductions

A Concrete Undecidable Problem: The Acceptance Problem for TMs ATM = { (M, w) | M is a TM that accepts string w } Theorem [Turing ‘30s]: ATM is recognizable but NOT decidable Corollary: ATM is not recognizable

ATM = { (M,w) | M is a TM that accepts string w } ATM is undecidable: (proof by contradiction) Suppose H is a machine that decides ATM Accept if M accepts w Reject if M does not accept w H( (M,w) ) = Define a new machine D as follows: D(M): Run H on (M,M) and output the opposite of H Reject if M accepts M Accept if M does not accept M D D D( M ) = D D D

The table of outputs of H(x,y) M1 M2 M3 M4 : … accept reject D ?

? The outputs of D(x) D(x) outputs the opposite of H(x,x) M1 M2 M3 M4 … D M1 accept reject reject accept M2 reject reject M3 accept accept M4 accept accept : ? D reject reject accept accept D(x) outputs the opposite of H(x,x) D(D) outputs the opposite of H(D,D)=D(D)

ATM = { (M,w) | M is a TM that accepts string w } ATM is undecidable: (constructive proof) Let H be a machine that recognizes ATM Accept if M accepts w Reject or loops if M does not accept w H( (M,w) ) = Define a new machine DH as follows: DH(M): Run H on (M,M) until the simulation halts Output the opposite answer

Note: There is no contradiction here! DH must loop on DH Reject if M accepts M (i.e. if H( M , M ) = Accept) Accept if M rejects M (i.e. if H( M , M ) = Reject) Loops if M loops on M (i.e. if H( M , M ) loops) DH DH DH DH DH DH DH ( M ) = DH DH DH DH DH Note: There is no contradiction here! DH must loop on DH We have an instance (DH, DH) which is not in ATM but H fails to tell us that! H(DH, DH) runs forever

That is: Given the code of any machine H that recognizes ATM we can effectively construct an instance ( DH, DH ), where: ( DH, DH ) does not belong to ATM H runs forever on the input ( DH, DH ) So H cannot decide ATM Given any program that recognizes the Acceptance Problem, we can efficiently construct an input where the program hangs!

Theorem: ATM is recognizable but NOT decidable Corollary: ATM is not recognizable! Proof: Suppose ATM is recognizable. Then ATM and ATM are both recognizable… But that would mean they’re both decidable!

The Halting Problem HALTTM = { (M,w) | M is a TM that halts on string w } Theorem: HALTTM is undecidable Proof: Assume (for a contradiction) there is a TM H that decides HALTTM We use H to construct a TM M’ that decides ATM M’(M,w): Run H(M,w) If H rejects then reject If H accepts, run M on w until it halts: If M accepts, then accept If M rejects, then reject

(M,w) M’ (M,w) w H M Does M halt on w? If M halts If M doesn’t halt: reject

Can often prove a language L is undecidable by proving: if L is decidable, then so is ATM We reduce ATM to the language L ATM ≤m L

Mapping Reductions f : Σ*  Σ* is a computable function if there is a Turing machine M that halts with just f(w) written on its tape, for every input w A language A is mapping reducible to language B, written as A ≤m B, if there is a computable f : Σ*  Σ* such that for every w, w  A  f(w)  B f is called a mapping reduction (or many-one reduction) from A to B

Say: A is mapping reducible to B Write: A m B Let f : Σ*  Σ* be a computable function such that w  A  f(w)  B Σ* Σ* A B f f Say: A is mapping reducible to B Write: A m B

Theorem: If A m B and B m C, then A m C g C

Theorem: If A m B and B is decidable, then A is decidable Proof: Let M decide B. Let f be a mapping reduction from A to B To decide A, we build a machine M’ M’(w): 1. Compute f(w) 2. Run M on f(w), output its answer w  A  f(w)  B so w  A ⇒ M’ accepts w w ∉ A ⇒ M’ rejects w

Theorem: If A m B and B is recognizable, then A is recognizable Proof: Let M recognize B. Let f be a mapping reduction from A to B To recognize A, we build a machine M’ M’(w): 1. Compute f(w) 2. Run M on f(w), output its answer if you ever receive one

Theorem: If A m B and B is decidable, then A is decidable Corollary: If A m B and A is undecidable, then B is undecidable Theorem: If A m B and B is recognizable, then A is recognizable Corollary: If A m B and A is unrecognizable, then B is unrecognizable

The proof that the Halting Problem is undecidable can be seen as constructing a mapping reduction from ATM to HALTTM Theorem: ATM ≤m HALTTM f(M, w) := (M’, w) where “M’(w) = accepts if M(w) accepts else loops forever” how? We have (M, w)  ATM  (M’, w)  HALTTM

Theorem: ATM ≤m HALTTM Corollary: ATM ≤m HALTTM Proof? Corollary: HALTTM is unrecognizable! Proof: If HALTTM were recognizable, then ATM would be recognizable…

Theorem: HALTTM m ATM Proof: Define the computable function f(M, w) := (M’, w) where “M’(w) accepts if M(w) halts else loop forever” (how?) Observe (M, w)  HALTTM  (M’, w)  ATM

Corollary: HALTTM m ATM I can give you the magical power to either compute the halting problem, or the acceptance problem. Which do you want? Surprise me

The Emptiness Problem EMPTYDFA = { M | M is a DFA such that L(M) = } Given a DFA, does it reject every input? Theorem: EMPTYDFA is decidable Why? EMPTYNFA = { M | M is a NFA such that L(M) = } EMPTYREX = { R | R is a regexp such that L(R) = }

The Emptiness Problem for TMs EMPTYTM = { M | M is a TM such that L(M) = } Given a program, does it reject every input? Theorem: EMPTYTM is not recognizable Proof: Show that ¬ATM m EMPTYTM f(M, w) := M’ where “M’(x) := M(x) if (x = w), else reject” (how?) M, w ∈ ATM  L(M’) ≠   M’ ∉ EMPTYTM  f(M, w) ∉ EMPTYTM

The Regularity Problem for Turing Machines REGULARTM = { M | M is a TM and L(M) is regular} Given a program, is it equivalent to some DFA? Theorem: REGULARTM is not recognizable Proof: Show that ¬ATM m REGULARTM f(M, w) := M’: where M’ is a TM such that “M’(x) := M(w) if (x = 0n1n) else reject” (how?) (M, w)  ATM  f(M, w) = M’ such that M’ accepts {0n1n } (M, w)  ATM  f (M, w) = M’ such that M’ accepts nothing (M, w)  ATM  f(M,w)  REGULARTM

The Equivalence Problem EQTM = {(M, N) | M, N are TMs and L(M) = L(N)} Do two programs compute the same function? Theorem: EQTM is unrecognizable Proof: Reduce EMPTYTM to EQTM Let M be a “dummy” TM with no path from start state to accept state Define f(M) := (M, M) M  EMPTYTM  L(M) = L(M) =   (M’, M)  EQTM

Moral: Analyzing Programs is Really, Really Hard.

Theorem: PCP is undecidable! Post’s Correspondence Problem Given a collection of domino types, can we build up a match? PCP = { P | P is a set of dominos with a match } Theorem: PCP is undecidable!