Universal Turing Machine

Download as pdf or txt
Download as pdf or txt
You are on page 1of 60

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

You might also like