{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

LectureNotes18 - ECS 120 Lesson 18 Decidable Problems the...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
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 E Σ * for some alphabet Σ. We can now define a language L ( P ) for problem P as follows: L ( P ) := O Σ * E is an instance of P , where 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Σ 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 = E 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 := M, w 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- fied version of the halting problem: Let A TM := M, w TM M accepts w
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}