TIC 2151 - Theory of Computation: Church-Turing Thesis & Computability
TIC 2151 - Theory of Computation: Church-Turing Thesis & Computability
Computation
Lecture 8
Church-Turing Thesis & Computability
1
Lecture 8 - Outline
Church-Turing Thesis.
Countable sets.
Using Gödel numbering to count Turing machines.
Existence of non-computable problems: a simple proof.
2
Algorithms & Turing Machines
an algorithm is a procedure (finite sequence of instructions which can
be mechanically carried out) that terminates after a finite number of
steps for any input.
The formal definition of algorithm emerged after the works of Alan
Turing and Alanzo Church in 1936. The church-turing thesis states that
any algorithmic procedure that can be carried out by a human (or a
computer), can also be carried out by a Turing Machine (TM).
It is universally accepted by computer scientists that Turing machine
provides an ideal theoretical model of a computer.
3
Algorithms & Turing Machines
Church-Turing Thesis
“a problem can be solved by an algorithm iff it can be solved by a Turing
Machine”
Notion of an algorithm
means:
= Turing machine programs
( ) ( )
qstart dTM1 q
.. * ..
h(x1) h(y)
t(x1)#x2#..#xn.. t(y)..
and q is accepting 4
Algorithms & Turing Machines
(Unfortunately) Yes.
5
Countable sets
A set is called countable if either it is finite OR has the same size as N.
For finite sets,. We simply count the elements in a finite set, and the resulting
number is its size. But, If we have two finite sets then they have the same size
if the elements of one set can be paired with the elements of the other set. This
method compares the sizes without resorting to counting.
Example:
N is countable:
M = {x | x Î N and even(x)}
However, for some infinite sets no correspondence with N exists. Such sets are called
uncountable. Eg: real numbers
7
The Gödel Numbering
For any finite sequence x0, x1, x2… xn of natural numbers, the Gödel
number of the sequence is computed as:
8
The Gödel Numbering
= 3138428376721
9
All Turing Machines and the Gödel number
We use Gödel Numbering to show that the set of all TMs is countable (if we can
represent TM using Gödel Numbering)
What was done? We only replaced Q by its set of states, q start by the start state, insert | into
10
All Turing Machines and the Gödel number
Lets go further:
TM T = ({qstart, q1, q2, q3, q4}, {|}, {|, }, {((qstart,)(,q1,R)), ((q1,),(|,q2,R)),
((q1,|),( |,q1,R)), ((q2,),(,q3,L)), ((q2,|),(|,q2,R)), ((q3,|),(,q4,N))},qstart, {q4}, )
Obviously a Turing Machine program is nothing more than a word over a all the
states, the input alphabet, the tape alphabet, the stack symbols, and some special signs.
TM {w | w over {Q,S,G,(,),#}*}
11
Computing the Gödel No for TM
Non-numeric Numeric
qstart 10
q1 12
L 13
R 14
…
12
All C++ programs are countable
The terminals of the programming language C++ are finite. So first choose all words with
the length 1, then all the words with length 2, and so on.
all the possible C++ programs are there and this set is countable
There are as many programs in a given language as there are natural numbers (countably
many).
13
The set of all algorithms is countable
S is finite
All the algorithms are countable
S* is not finite
We’ve seen that L is the power set over
• Turing Machine programs an infinite alphabet
• C++ programs are countable sets. L cannot be countable.
There are as many programs in a given language as there are natural numbers (countably
many).
There are as many functions on the natural numbers as there are real numbers
(uncountably many).
This also have shown that the set of all languages cannot be put into a correspondence
with the set of all Turing machines since TM is countable. Thus we can also make a
conclusion that some languages are not recognized by any Turing machine.
15
All the problems here inside we can solve with
a Turing Machine
But problems
from here
we cannot
solve!
Lfin Í Lreg Í LDPDA Í Lcf Í Lcs Í LTM Í L
16
Learning Outcomes
17