A Universal Turing Machine
1
A limitation of Turing Machines:
Turing Machines are “hardwired”
they execute
only one program
Real Computers are re-programmable
2
Solution: Universal Turing Machine
Attributes:
• Reprogrammable machine
• Simulates any other Turing Machine
3
Universal Turing Machine
simulates any Turing Machine M
Input of Universal Turing Machine:
Description of transitions of M
Input string of M
4
Tape 1
Three tapes
Description of M
Universal
Tape 2
Turing
Machine
Tape Contents of M
Tape 3
State of M 5
Tape 1
Description of M
We describe Turing machine M
as a string of symbols:
We encode M as a string of symbols
6
Alphabet Encoding
Symbols: a b c d
Encoding: 1 11 111 1111
7
State Encoding
States: q1 q2 q3 q4
Encoding: 1 11 111 1111
Head Move Encoding
Move: L R
Encoding: 1 11
8
Transition Encoding
Transition: (q1, a ) (q2 , b, L)
Encoding: 1 0 1 0 11 0 11 0 1
separator
9
Turing Machine Encoding
Transitions:
(q1, a ) (q2 , b, L) (q2 , b) (q3 , c, R)
Encoding:
1 0 1 0 11 0 11 0 1 00 11 0 1 10 111 0 111 0 11
separator
10
Tape 1 contents of Universal Turing Machine:
binary encoding
of the simulated machine M
Tape 1
1 0 1 0 11 0 11 0 10011 0 1 10 111 0 111 0 1100
11
A Turing Machine is described
with a binary string of 0’s and 1’s
Therefore:
The set of Turing machines
forms a language:
each string of this language is
the binary encoding of a Turing Machine
12
Language of Turing Machines
L = { 010100101, (Turing Machine 1)
00100100101111, (Turing Machine 2)
111010011110010101, ……
…… }
13
Countable Sets
14
Infinite sets are either: Countable
or
Uncountable
15
Countable set:
There is a one to one correspondence
of
elements of the set
to
Natural numbers (Positive Integers)
(every element of the set is mapped to a number
such that no two elements are mapped to same number)
16
Example: The set of even integers
is countable
Even integers: 0, 2, 4, 6,
(positive)
Correspondence:
Positive integers: 1, 2, 3, 4,
2n corresponds to n 1
17
Example: The set of rational numbers
is countable
1 3 7
Rational numbers: , , ,
2 4 8
18
Naïve Approach Nominator 1
1 1 1
Rational numbers: , , ,
1 2 3
Correspondence:
Positive integers: 1, 2, 3,
Doesn’t work:
we will never count 2 2 2
, , ,
numbers with nominator 2: 1 2 3
19
Better Approach
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 20
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 21
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 22
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 23
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 24
1 1 1 1
1 2 3 4
2 2 2
1 2 3
3 3
1 2
4
1 25
1 1 2 1 2
Rational Numbers: , , , , ,
1 2 1 3 2
Correspondence:
Positive Integers: 1, 2, 3, 4, 5,
26
We proved:
the set of rational numbers is countable
by describing an enumeration procedure
(enumerator)
for the correspondence to natural numbers
27
Definition
Let S be a set of strings (Language)
An enumerator for S is a Turing Machine
that generates (prints on tape)
all the strings of S one by one
and
each string is generated in finite time
28
strings s1, s2 , s3 , S
Enumerator output s1, s2 , s3 ,
Machine for S (on tape)
Finite time: t1, t2 , t3 ,
29
Enumerator Machine
Configuration
Time 0
q0
prints s1
Time t1 x1 # s1
qs
30
prints s2
Time t2 x2 # s2
qs
prints s3
Time t3 x3 # s3
qs
31
Observation:
If for a set S there is an enumerator,
then the set is countable
The enumerator describes the
correspondence of S to natural numbers
32
Example: The set of strings S {a , b , c }
is countable
Approach:
We will describe an enumerator for S
33
Naive enumerator:
Produce the strings in lexicographic order:
s1 a
s2 aa
aaa
aaaa
......
Doesn’t work:
strings starting with b
will never be produced
34
Better procedure: Proper Order
(Canonical Order)
1. Produce all strings of length 1
2. Produce all strings of length 2
3. Produce all strings of length 3
4. Produce all strings of length 4
..........
35
s1 a
s2 b length 1
c
aa
ab
ac
Produce strings in ba
Proper Order: bb length 2
bc
ca
cb
cc
aaa
aab length 3
aac
......
36
Theorem: The set of all Turing Machines
is countable
Proof: Any Turing Machine can be encoded
with a binary string of 0’s and 1’s
Find an enumeration procedure
for the set of Turing Machine strings
37
Enumerator:
Repeat
1. Generate the next binary string
of 0’s and 1’s in proper order
2. Check if the string describes a
Turing Machine
if YES: print string on output tape
if NO: ignore string
Costas Busch - RPI 38
Binary strings Turing Machines
0
1
00
01
1 0 1 0 11 0 11 0 0 s1
1 0 1 0 11 0 11 0 1 1 0 1 0 11 0 11 0 1
s2
1 0 11 0 1010010101 101 1 0 11 0 1010010101 101
End of Proof
39
Uncountable Sets
40
We will prove that there is a language L
which is not accepted by any Turing machine
Technique:
Turing machines are countable
Languages are uncountable
(there are more languages than Turing Machines)
41
Definition: A set is uncountable
if it is not countable
We will prove that there is a language
which is not accepted by any Turing machine
42
Theorem:
If S is an infinite countable set, then
S
the powerset 2 of S is uncountable.
(the powerset 2 S is the set whose elements
are all possible sets made from the elements of S )
43
Proof:
Since S is countable, we can write
S {s1, s2 , s3 ,}
Elements of S
Fall 2006 Costas Busch - RPI 44
Elements of the powerset 2 S have the form:
{s1, s3}
{s5 , s7 , s9 , s10 }
……
45
We encode each element of the powerset
with a binary string of 0’s and 1’s
Powerset
Binary encoding
element
(in arbitrary order)
s1 s2 s3 s4
{s1} 1 0 0 0
{s2 , s 3 } 0 1 1 0
{s1, s 3 , s4 } 1 0 1 1
46
Observation:
Every infinite binary string corresponds
to an element of the powerset:
Example: 10 0 111 0
S
Corresponds to: {s1, s4 , s5 , s6 ,} 2
47
Let’s assume (for contradiction)
that the powerset 2 is countable
S
Then: we can enumerate
the elements of the powerset
S
2 {t1, t2 , t3 ,}
48
suppose that this is the respective
Powerset
Binary encoding
element
t1 1 0 0 0 0
t2 1 1 0 0 0
t3 1 1 0 1 0
t4 1 1 0 0 1
49
Take the binary string whose bits
are the complement of the diagonal
t1 1 0 0 0 0
t2 1 1 0 0 0
t3 1 1 0 1 0
t4 1 1 0 0 1
Binary string: t 0011
(birary complement of diagonal)
50
The binary string t 0011
corresponds
to an element of
S
the powerset 2 : t {s3 , s 4 , } 2
S
51
Thus, t must be equal to some ti
t ti
However,
the i-th bit in the encoding of t is
the complement of the i-th bit of ti , thus:
t ti
Contradiction!!!
52
Since we have a contradiction:
The powerset S of
2 S is uncountable
End of proof
53
An Application: Languages
Consider Alphabet : A {a, b}
The set of all Strings:
S {a, b} { , a, b, aa, ab, ba, bb, aaa, aab,}
*
infinite and countable
(we can enumerate the strings
in proper order)
54
Consider Alphabet : A {a, b}
The set of all Strings:
S {a, b} { , a, b, aa, ab, ba, bb, aaa, aab,}
*
infinite and countable
Any language is a subset of S:
L {aa, ab, aab}
55
Consider Alphabet : A {a, b}
The set of all Strings:
S A {a, b} { , a, b, aa, ab, ba, bb, aaa, aab,}
* *
infinite and countable
The powerset of S contains all languages:
2 {,{},{a},{a, b},{aa, b},...,{aa, ab, aab},}
S
uncountable
56
Consider Alphabet : A {a, b}
countable
Turing machines: M1 M2 M3
accepts
Languages accepted
By Turing Machines: L1 L2 L3
countable
Denote: X {L1, L2 , L3 ,} Note: X 2 S
countable
S {a , b }
*
57
Conclusion:
There is a language L not accepted
by any Turing Machine:
S L 2 S
and L X
X 2
(Language L cannot be described
by any algorithm)
58
Non Turing-Acceptable Languages
L
Turing-Acceptable
Languages
59
Note that: X {L1, L2 , L3 ,}
is a multi-set (elements may repeat)
since a language may be accepted
by more than one Turing machine
However, if we remove the repeated elements,
the resulting set is again countable since every element
still corresponds to a positive integer
60