This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: ECS 120 Lesson 18 – Decidable Problems, the Halting Problem Oliver Kreylos Friday, May 11th, 2001 In the last lecture, we had a look at a problem that we claimed was not solvable by an algorithm – the problem whether a given C program prints the message “Hello World” and then exits. Today we are going to look at a very similar problem and prove formally that there exists no Turing Machine that can decide it. 1 Problems and Languages Let us start by defining some terminology for problems. A problem P is a question that can be asked about entities E of some type (Turing Machines, integers, graphs, etc.) and answers either “yes” or “no.” For example, the “Hello World” problem can be applied to C programs and asks whether an entity E (a certain C program) prints “Hello World” and then exits. We denote the answer that problem P gives about entity E as P ( E ). If P ( E ) is “yes,” we call E an instance of P . At first glance, it seems that the theory about languages we have investi- gated so thoroughly cannot be applied to reason about problems. A language is merely a set of words over some alphabet, whereas a problem is a question about some entity, that can either be answered “yes” or “no.” As it turns out, this difference is not fundamental, but just a matter of notation. We have al- ready seen that any entity of some type we can reason about mathematically can also be converted into words over some alphabet by the encoding mech- anism discussed earlier; this means that any entity E can be converted to a word h E i ∈ Σ * for some alphabet Σ. We can now define a language L ( P ) for problem P as follows: L ( P ) := h O i ∈ Σ * E is an instance of P , where 1 Σ is the alphabet needed to encode entity O . In other words, the language for a problem P consists of exactly those words that are encodings of instances of P , i. e., that are encodings of entities for which P ’s answer is “yes.” Being a set of words, L ( P ) is a language in the usual sense. We can now directly apply language theory to solving problems: If and only if P is a problem that can be solved by an algorithm, i. e., there exists an algorithm that always terminates and either answers “yes” or “no,” then the language L ( P ) must be Turing-decidable: Given any word w ∈ Σ * , there is a Turing Machine D ( P ) that can decode w = h E i back to an entity E , and can then apply the algorithm to answer P to that entity. An algorithm comes up with an answer after a finite number of steps; therefore, D ( P ) can accept or reject the word after a finite number of steps. This means that D ( P ) is a decider for L ( P ). 2 The Halting Problem Revisited We defined the halting problem as the question whether a given Turing Machine M halts on input word w . Using the conversion strategy from above, we convert the halting problem to a language H TM := h M,w i TM M halts on input w . The words in H TM are encodings of Turing Ma- chines and the input words they halt on. Let us first look at a slightly modi-chines and the input words they halt on....
View Full Document
This note was uploaded on 05/20/2010 for the course ECS 120 taught by Professor Filkov during the Spring '07 term at UC Davis.
- Spring '07