26. Turing

26. Turing - Maggie Johnson Handout#26 CS103B Turing Gdel...

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

View Full Document Right Arrow Icon
Maggie Johnson Handout #26 CS103B Turing, Gödel and Undecidable Problems Key Topics * Quick Introduction to Turing Machines * Church's Thesis * Undecidable Problems * Sketch of Gödel’s Proof ______________________________________________________________________________ We can think of a Turing Machine as an FA with random-access memory. It’s a very simple little machine that turns out to be remarkably powerful. We don’t have time to learn how they work in 103B but we can talk about how they are used in the field of computability. A Turing machine captures how a computer works at its lowest level. Think of a processor reading and writing individual data bits and performing some action based on what it reads. That’s basically what a Turing machine does. It can be used as a language recognizer like an FA, but a Turing machine can recognize a much larger set of languages. It can recognize regular and context-free languages, and more. In addition, once it recognizes a language pattern, it can perform some action associated with the pattern. This is the essence of what we think of as computing. Turing machines can also perform mathematical functions which takes them way beyond language recognizers. Church 's Thesis How powerful are Turing machines? Are there any algorithms we can write in any programming language that cannot be translated into a Turing machine? The answer is “we don't think so.” In other words, Turing machines stand at the pinnacle of computational power. There is nothing better that we know of, and it is generally agreed that we will never find anything better. We are now in fuzzy territory, but no one has yet come up with a problem that can be solved algorithmically that can’t be solved by a Turing machine, and there is considerable empirical evidence to suggest that no one ever will. The cause of the uncertainty about what is computable lies in the uncertain definition of an algorithm. Computers, after all, can only do what an algorithm tells them to do. We all have an intuitive notion of what an algorithm is, but we do not have a firm definition. C programs, for example, seem like a precise statement of an algorithm, but we would not want to say that the only thing computers can do is follow C programs. Lisp programmers, among other people, would be somewhat disconcerted if this were true. We will not attempt to define an algorithm, but we will at least give it another name and try to characterize its behavior:
Background image of page 1

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

View Full DocumentRight Arrow Icon
An Effective Procedure is another name for an algorithm. There is no precise definition of an effective procedure, but we expect it to have these properties It's description is finite. It will execute in a finite amount of time. It requires a finite amount of storage.
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.

This note was uploaded on 10/01/2011 for the course CS 103B taught by Professor Sahami,m during the Winter '08 term at Stanford.

Page1 / 8

26. Turing - Maggie Johnson Handout#26 CS103B Turing Gdel...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online