Busch Complexity Lectures Undecidable Problems unsolvable problems 1
Busch Complexity Lectures: Undecidable Problems (unsolvable problems) 1
Undecidable Languages undecidable language = not decidable language There is no decider: there is no Turing Machine which accepts the language and makes a decision (halts) for every input string (machine may make decision for some input strings) 2
For an undecidable language, the corresponding problem is undecidable (unsolvable): there is no Turing Machine (Algorithm) that gives an answer (yes or no) for every input instance (answer may be given for some input instances) 3
We have shown before that there are undecidable languages: Turing-Acceptable Decidable is Turing-Acceptable and undecidable 4
We will prove that two particular problems are unsolvable: Membership problem Halting problem 5
Membership Problem Input: • Turing Machine • String Question: Does accept ? Corresponding language: 6
Theorem: is undecidable (The membership problem is unsolvable) Proof: Basic idea: We will assume that is decidable; We will then prove that every Turing-acceptable language is also decidable A contradiction! 7
Suppose that Input string is decidable Decider for YES accepts NO rejects 8
Let be a Turing recognizable language Let be the Turing Machine that accepts We will prove that is also decidable: we will build a decider for 9
String description of This is hardwired and copied on the tape next to input string s, and then the pair is input to H Decider for YES accept (and halt) accepts Input string ? NO reject (and halt) 10
Therefore, is decidable Since is chosen arbitrarily, every Turing-Acceptable language is decidable But there is a Turing-Acceptable language which is undecidable Contradiction!!!! END OF PROOF 11
We have shown: Undecidable Decidable 12
We can actually show: Turing-Acceptable Decidable 13
is Turing-Acceptable Turing machine that accepts 1. Run : on input 2. If accepts then accept 14
Halting Problem Input: • Turing Machine • String Question: Does halt while processing input string ? Corresponding language: 15
Theorem: is undecidable (The halting problem is unsolvable) Proof: Basic idea: Suppose that is decidable; we will prove that every Turing-acceptable language is also decidable A contradiction! 16
Suppose that is decidable Input string Decider for YES NO halts on input doesn’t halt on input 17
Let be a Turing-Acceptable language Let be the Turing Machine that accepts We will prove that is also decidable: we will build a decider for 18
Decider for halts on ? Input string Run with input NO YES reject and halts and accepts accept halts and rejects reject and halt 19
Therefore, is decidable Since is chosen arbitrarily, every Turing-Acceptable language is decidable But there is a Turing-Acceptable language which is undecidable Contradiction!!!! END OF PROOF 20
An alternative proof: DIAGONALIZATION PROOF Theorem: is undecidable (The halting problem is unsolvable) Proof: Basic idea: Assume for contradiction that the halting problem is decidable; we will obtain a contradiction using the diagonalization technique 21
Suppose that Input string is decidable Decider for YES halts on NO doesn’t halt on 22
Looking inside Decider for Input string: YES halts on ? NO 23
DIAGONALIZATION PROOF: Construct machine : Loop forever YES halts on ? NO If halts on input Then Loop Forever Else Halt 24
DIAGONALIZATION PROOF, Cont: Construct machine : Copy on tape If halts on input Then loop forever Else halt 25
DIAGONALIZATION PROOF, Cont: Run with input itself Copy on tape If halts on input Then Else loops forever on input halts on input CONTRADICTION!!! END OF PROOF 26
We have shown: Undecidable Decidable 27
We can actually show: Turing-Acceptable Decidable 28
is Turing-Acceptable Turing machine that accepts 1. Run : on input 2. If halts on then accept 29
- Slides: 29