More undecidable languages

Slides:



Advertisements
Similar presentations
Variants of Turing machines
Advertisements

1 CSC3130 Formal Languages and Automata Theory Tutorial 9 Undecidable Problem KN Hung SHB 1026.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Variants.
Reducibility Sipser 5.1 (pages ). CS 311 Fall Reducibility.
Reducibility Sipser 5.1 (pages ).
Mapping Reducibility Sipser 5.3 (pages ). CS 311 Fall Computable functions Definition 5.17: A function f:Σ*→Σ* is a computable function.
Fall 2003Costas Busch - RPI1 Decidability. Fall 2003Costas Busch - RPI2 Recall: A language is decidable (recursive), if there is a Turing machine (decider)
CHAPTER 4 Decidability Contents Decidable Languages
Tutorial CSC3130 : Formal Languages and Automata Theory Tu Shikui ( ) SHB 905, Office hour: Thursday 2:30pm-3:30pm
Fall 2004COMP 3351 Reducibility. Fall 2004COMP 3352 Problem is reduced to problem If we can solve problem then we can solve problem.
CS Master – Introduction to the Theory of Computation Jan Maluszynski - HT Lecture 6 Decidability Jan Maluszynski, IDA, 2007
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Nondeterminism.
Automata & Formal Languages, Feodor F. Dragan, Kent State University 1 CHAPTER 5 Reducibility Contents Undecidable Problems from Language Theory.
CSE 105 Theory of Computation Alexander Tsiatas Spring 2012 Theory of Computation Lecture Slides by Alexander Tsiatas is licensed under a Creative Commons.
The Halting Problem – Undecidable Languages Lecture 31 Section 4.2 Wed, Oct 31, 2007.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Turing Machines.
CSCI 2670 Introduction to Theory of Computing October 13, 2005.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Undecidable.
CSCI 3130: Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong Decidable.
Turing Machines- Cont. Theory of Computation Lecture 11 Tasneem Ghnaimat.
CSC 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Undecidable.
Decidability.
The Acceptance Problem for TMs
Recursively Enumerable Languages
Theory of Computability
More variants of Turing Machines
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
Undecidable Problems Costas Busch - LSU.
Lecture12 The Halting Problem
CSCI 2670 Introduction to Theory of Computing
Reductions Costas Busch - LSU.
Turing Machines.
Theory of Computability
Polynomial time The Chinese University of Hong Kong Fall 2010
Intro to Theory of Computation
Undecidable problems for CFGs
MCC 2093 Advanced Theoretical Computer Science
Reducibility The Chinese University of Hong Kong Fall 2010
Intro to Theory of Computation
CSE 105 theory of computation
Decidability and Enumerability
Busch Complexity Lectures: Undecidable Problems (unsolvable problems)
Undecidable Problems (unsolvable problems)
Chapter 3: The CHURCH-Turing thesis
More on DFA minimization and DFA equivalence
CSE 105 theory of computation
Decidable Languages Costas Busch - LSU.
Decidable and undecidable languages
NP-completeness The Chinese University of Hong Kong Fall 2008
CSC 4170 Theory of Computation Mapping Reducibility Section 5.3.
Intro to Theory of Computation
Theory of Computability
CS21 Decidability and Tractability
CSCI 2670 Introduction to Theory of Computing
Theory of Computability
CSE 105 theory of computation
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
Theory of Computability
Instructor: Aaron Roth
Instructor: Aaron Roth
Automata, Grammars and Languages
Intro to Theory of Computation
CSE 105 theory of computation
CSE 105 theory of computation
Presentation transcript:

More undecidable languages The Chinese University of Hong Kong Fall 2008 CSC 3130: Automata theory and formal languages More undecidable languages Andrej Bogdanov http://www.cse.cuhk.edu.hk/~andrejb/csc3130

More undecidable problems L1 = {〈M〉: M is a TM that accepts input e} L2 = {〈M〉: M is a TM that accepts some input} L3 = {〈M〉: M is a TM that accepts all inputs} L4 = {〈M, M’〉: M and M’ accept the same inputs} decidable recognizable but undecidable unrecognizable

Example 1 L1 = {〈M〉: M is a TM that accepts input e} Step 1: You gotta believe it To know if M accepts e, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know ATM is undecidable

Proof by “reduction” ? L1 = {〈M〉: M is a TM that accepts input e} Show that if L1 can be decided, ... so can ATM 〈M〉 A accept if M accepts e reject if not ? accept if M accepts w 〈M〉, w reject if not

Proof by “reduction” A A M’ is a Turing Machine such that: accept if M accepts e reject if not accept if M accepts w A 〈M’〉 〈M〉, w reject if not M’ is a Turing Machine such that: If M accepts w, then M’ accepts e If M does not accept w, then M’ does not accept e

Proof by “reduction” A M’ M’: On input z, accept if M accepts w construct M’ A 〈M’〉 〈M〉, w reject if not M’ M’: On input z, q1 ☐/☐R If z = e, then simulate M on w Otherwise, reject ☐/☐L q0 M qrej qacc

Recognizable or not? L1 = {〈M〉: M is a TM that accepts input e} decidable recognizable but undecidable unrecognizable Algorithm for L1 On input 〈M〉: Simulate M on input e

Example 2 L2 = {〈M〉: M is a TM that accepts some input} Step 1: You gotta believe it To know if M accepts, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know ATM is undecidable L1 is undecidable

Example 2 A A M’ is a Turing Machine such that: accept if M accepts some input reject if not accept if M accepts e A 〈M’〉 〈M〉 reject if not M’ is a Turing Machine such that: If M accepts e, then M’ accepts some input If M does not accept e, then M’ does not accept anything

Example 2 A M’: On input w, If w = e, then simulate M on e accept if M accepts w construct M’ A 〈M’〉 〈M〉 reject if not M’: On input w, If w = e, then simulate M on e Otherwise, reject decidable recognizable but undecidable unrecognizable

... Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input} Attempt to recognize L2: Simulate M on input e Simulate M on input 0 Simulate M on input 1 Accept if one of them accepts Simulate M on input 00 ... ... but there are infinitely many!

Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input} Attempt to recognize L2: For all possible strings x (in lexicographic order): Simulate M on input x what if M loops on e but M accepts, say, 11? If it accepts, accept. If it rejects, reject. lexicographic order: e, 0, 1, 00, 01, 10, 11, 000, 001, ...

Is it recognizable? L2 = {〈M〉: M is a TM that accepts some input} Description of Turing Machine that recognizes L2: k := 1 For all possible strings x (in lexicographic order): For all strings y that come before x Simulate M on y for k steps If it accepts, accept. If it rejects, reject. k := k + 1

Explanation of algorithm ... inputs e 1 00 01 Execution of algorithm Simulate M on e for 1 step If M accepts some w, algorithm will see this in some stage of the simulation Simulate M on e for 2 steps Simulate M on 0 for 2 steps Simulate M on e for 3 steps Simulate M on 0 for 3 steps Simulate M on 1 for 3 steps ... decidable recognizable but undecidable unrecognizable

Example 3 L3 = {〈M〉: M is a TM that accepts all inputs} Step 1: You gotta believe it To know if M accepts, it looks like we have to simulate it But then we might end up in a loop Step 2: Use what you know ... by yourself this time! decidable recognizable but undecidable unrecognizable

Is it recognizable? and then what? ... L3 = {〈M〉: M is a TM that accepts all inputs} Let’s try... Simulate M on e for 1 step and then what? Simulate M on e for 2 steps Simulate M on 0 for 2 steps accept if all of them accept Simulate M on e for 3 steps Simulate M on 0 for 3 steps but there are infinitely many! Simulate M on 1 for 3 steps ...

Is it recognizable? L3 = {〈M〉: M is a TM that accepts all inputs} To check that 〈M〉 is in L3, it looks like we have to wait for an infinite number of simulations to finish But we don’t have that much time! Step 1: You gotta believe it ... but I don’t! decidable recognizable but undecidable unrecognizable

How to argue unrecognizability L3 = {〈M〉: M is a TM that accepts all inputs} First attempt: Remember that ... so we can try to argue that L3 is recognizable If L and L are both recognizable, then L is decidable.

First attempt ... Let’s try... L3 = {〈M〉: M is a TM that accepts all inputs} L3 = {〈M〉: M is a TM that does not accept all inputs} Let’s try... Simulate M on e for 1 step Simulate M on e for 2 steps Simulate M on 0 for 2 steps Simulate M on e for 3 steps Simulate M on 0 for 3 steps Simulate M on 1 for 3 steps ... accept if M rejects or loops but how to know if it loops?

How to argue unrecognizability L3 = {〈M〉: M is a TM that accepts all inputs} Second attempt: Use what you know We can try to argue that ATM is not recognizable If we can recognize L3 then we can also recognize ATM

Proof by “reduction” A A M’ is a Turing Machine such that: accept if M accepts all inputs rej/loop if not accept if M does not accept w construct M’ A 〈M’〉 〈M〉, w rej/loop if M accepts w M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input

Constructing M’ M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input To do this, we want to simulate M on w ... but what if simulation loops? Idea: M’ keeps accepting more and more of its inputs as long as M has not halted on w If M never halts on w, M’ will accept all inputs

Constructing M’ Description of M’: M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input Description of M’: length of z On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept.

Correctness of construction M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input Description of M’: On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept.

Correctness of construction M’ is a Turing Machine such that: If M does not accept w, then M’ accepts all inputs If M accepts w, then M’ rejects or loops on some input In k steps z = 0k Description of M’: On input z, Simulate M on input w for |z| steps If simulation of M reaches state qacc, reject. If simulation of M reaches state qrej, accept. If neither state is reached, accept. M’ rejects input 0k

Example 3 recap L3 = {〈M〉: M is a TM that accepts all inputs} We showed that ... but we know ATM is not recognizable so If we can recognize L3 then we can also recognize ATM decidable recognizable but undecidable unrecognizable

Example 4 L4 = {(〈M1〉, 〈M2〉): M1 and M2 accept the same inputs} Step 1: You gotta believe it Step 2: Use what you know decidable recognizable but undecidable unrecognizable ATM is recognizable but undecidable L1 is recognizable but undecidable L2 is recognizable but undecidable L3 is unrecognizable ATM is unrecognizable

Example 4 ? A L4 = {(〈M1〉, 〈M2〉): M1 and M2 accept the same inputs} accept if M1, M2 accept same inputs rej/loop if not L3 = {〈M〉: M is a TM that accepts all inputs} ? accept if M accepts all inputs 〈M〉 rej/loop if not

Example 4 A A If M accepts all inputs, then M1, M2 accepts same inputs accept if M1, M2 accept same inputs rej/loop if not accept if M accepts all inputs 〈M〉 A 〈M1〉 〈M2〉 qacc rej/loop if not If M accepts all inputs, then M1, M2 accepts same inputs If M does not, then M1, M2 do not accept same inputs M1 = M M2 = TM that always accepts