Download presentation
Presentation is loading. Please wait.
1
More undecidable languages
The Chinese University of Hong Kong Fall 2008 CSC 3130: Automata theory and formal languages More undecidable languages Andrej Bogdanov
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
... 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!
12
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, ...
13
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
14
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
15
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
16
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 ...
17
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
18
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.
19
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?
20
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
21
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
22
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
23
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.
24
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.
25
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
26
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
27
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
28
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
29
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.