This preview shows pages 1–3. Sign up to view the full content.
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 randomaccess 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 contextfree 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:
This preview has intentionally blurred sections. Sign up to view the full version.
View Full DocumentAn
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.
This is the end of the preview. Sign up
to
access the rest of the document.
 Winter '08
 SAHAMI,M

Click to edit the document details