Sie sind auf Seite 1von 60

A Universal Turing Machine

A limitation of Turing Machines:

Turing Machines are “hardwired”

of Turing Machines: Turing Machines are “hardwired” they execute only one program Real Computers are

they execute only one program

Real Computers are re-programmable

Solution:

Attributes:

Universal Turing Machine

Reprogrammable machine

Simulates any other Turing Machine

Universal Turing Machine simulates any Turing Machine

M

Input of Universal Turing Machine:

Description of transitions of

M

Input string of M

Tape 1

Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M

Description of

Three tapes

Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M

M

Universal

Turing

Machine

Tape 2

Tape 2
Tape 2
Tape 2
Tape 2
Tape 2

Tape Contents of

Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M

M

Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M

Tape 3

Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M
Tape 1 Description of Three tapes M Universal Turing Machine Tape 2 Tape Contents of M

State of M

5

Tape 1

Tape 1 Description of M We describe Turing machine M as a string of symbols: We
Tape 1 Description of M We describe Turing machine M as a string of symbols: We
Tape 1 Description of M We describe Turing machine M as a string of symbols: We
Tape 1 Description of M We describe Turing machine M as a string of symbols: We
Tape 1 Description of M We describe Turing machine M as a string of symbols: We

Description of M

We describe Turing machine

M

as a string of symbols:

We encode

M as a string of symbols

Alphabet Encoding

Symbols:

Encoding:

a

b

c

d

Alphabet Encoding Symbols: Encoding: a b c d  1 1 1 1 1 1 1

1

11

111

1111

States:

Encoding:

State Encoding

q 1
q
1

1

q

2

q

3

q

4

States: Encoding: State Encoding q 1 1 q 2 q 3 q 4  1 1

11

111

1111

Head Move Encoding

Move:

Encoding:

L

R

Encoding: State Encoding q 1 1 q 2 q 3 q 4  1 1 1

1

11

Transition Encoding

Transition:

Encoding:

 q a  q ( , ) ( , b L , ) 1
 q a  q
(
,
)
(
,
b L
,
)
1
2

10101101101

separator

Turing Machine Encoding

Transitions:

 q a  q ( , ) ( 1 Encoding:
 q a  q
(
,
)
(
1
Encoding:

2

,

b L

,

)

q

(

2

,

b q

)

(

3

,

c R

,

)

10101101101 00 1101101110111011

separator

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

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

Language of Turing Machines

L = { 010100101,

00100100101111,

111010011110010101,

…… }

(Turing Machine 1)

(Turing Machine 2)

……

Countable Sets

Infinite sets are either:

Countable

or

Uncountable

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)

Example: The set of even integers is countable

Even integers:

(positive)

Correspondence:

Positive integers:

2

n

0, 2, 1, 2,
0,
2,
1,
2,
4, 6, 
4,
6, 

3,

4,

corresponds to

n 1

Example: The set of rational numbers is countable

Rational numbers:

1

2

,

3

4

,

7

8

,

Naïve Approach

Nominator 1

1

1

1

1

,
2

Rational numbers:

3

,

,

2

1

1, 2,
1,
2,

3,

Correspondence:

Positive integers:

Doesn’t work:

we will never count numbers with nominator 2:

2

2

,

,

2

3

,

1

1

2

1

3

1

4

1

Better Approach

1

2

2

2

3

2

1

3

2

3

1

4

1

1

2

1

3

1

4

1

1 1 2 1 3 1 4 1  1 2 2 2 3 2 

1

2

2

2

3

2

1

3

2

3

1

4

1

1

2

1

3

1

4

1

1 1 2 1 3 1 4 1  1 2 2 2 3 2 
1 1 2 1 3 1 4 1  1 2 2 2 3 2 

1

2

2

2

3

2

1

3

2

3

1

4

1 1 1 2 2 2 1 2  3 3 1 2
1
1
1
2
2
2
1
2
3
3
1
2

4

1

1

3

2

3

1

4

1 1 1 2 2 2 1 2  3 3 1 2
1
1
1
2
2
2
1
2
3
3
1
2

4

1

1

3

2

3

1

4

1

1

2

1

3

1

4

1

1 1 2 3  2 2 2  3 3
1
1
2
3
2
2
2
3
3
1 1 2 1 3 1 4 1 1 1 2 3  2 2 2

2

1

4

Rational Numbers:

Correspondence:

Positive Integers:

2 1 2 , ,  1 3 , 2 3, 4, 5, 
2 1
2
,
, 
1 3
,
2
3,
4,
5, 

We proved:

the set of rational numbers is countable by describing an enumeration procedure (enumerator) for the correspondence to natural numbers

Let

S

Definition

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

strings

s , s , s ,S

1

2

3

Enumerator

Machine for

S

output

, s ,   S 1 2 3 Enumerator Machine for S output (on tape)

(on tape)

Finite time:

s , s , s 1 2 t , t , t 1 2 3
s
,
s
,
s
1
2
t
,
t
,
t
1
2
3

3

,

,

Enumerator Machine

Time 0

Time

t

1

Configuration

 

 
Enumerator Machine Time 0 Time t 1 Configuration   q 0 prints s 1 x

q

0

prints

s 1

x 1 # s 1

x

1

#

s

1

x 1 # s 1
Enumerator Machine Time 0 Time t 1 Configuration   q 0 prints s 1 x

q

s

Time

Time

t

2

t

3

prints

s 2

x 2 # s 2

x

2

#

s

2

x 2 # s 2
Time Time t 2 t 3 prints s 2 x 2 # s 2 q s

q

s

prints

s 3

x 3 # s 3

x

3

#

s

3

x 3 # s 3
Time Time t 2 t 3 prints s 2 x 2 # s 2 q s

q

s

Observation:

If for a set

then the set is countable

S there is an enumerator,

The enumerator describes the

correspondence of

S to natural numbers

Example: The set of strings is countable

S { a , b , c }

Approach:

We will describe an enumerator for

S

Naive enumerator:

Produce the strings in lexicographic order:

s

1

s

2

a

aa

aaa

aaaa

Doesn’t work:

b

strings starting with will never be produced

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

Produce strings in

Proper Order:

s

1

s

2

a

b

c

aa

ab

ac

ba

bb bc

ca

cb

cc

aaa

aab

aac

strings in Proper Order: s  1 s  2 a b  c aa ab
strings in Proper Order: s  1 s  2 a b  c aa ab

length 1

length 2

length 3

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

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

the string describes a Turing Machine if YES: print string on output tape if NO: ignore

if NO: ignore string

Binary strings

0

1

00

01

1

1

1

0 1 0 11 0 11 0 0

0 1 0 11 0 11 0 1

0 11 0 1010010101 101

s 1 s 2
s
1
s
2
0 0 0 1 0 11 0 11 0 1 0 11 0 1010010101 101 

Turing Machines

1 0 1 0 11 0 11 0 1

1 0 11 0 1010010101 101

End of Proof

Uncountable Sets

L

We will prove that there is a language

which is not accepted by any Turing machine

Technique:

Turing machines are countable

Languages are uncountable

(there are more languages than Turing Machines)

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

Theorem:

If

S is an infinite countable set, then

the powerset

2

S

of

S is uncountable.

(the powerset

2

S is the set whose elements

are all possible sets made from the elements of

S )

Proof:

Since S

is countable, we can write

{

S s s

1

,

2

,

s

3

,

}

Elements of S

Elements of the powerset

{

{

s s

s

1

3

,

s

5

7

,

……

}

,

s

9

,

2

s

S have the form:

10

}

We encode each element of the powerset

with a binary string of 0’s and 1’s

Powerset

element

(in arbitrary order)

Binary encoding

s

1

s

2

s

3

s

4

{ s

1 }

{

s

2

,

{ s s

1

,

s

3

3

,

}

s

4

 

1

0

0

0

0

1

1

0

}

1

0

1

1

Observation:

Every infinite binary string corresponds

to an element of the powerset:

Example:

Corresponds to:

10 0111 0

{s , s , s , s ,   } 1 4 5 6
{s , s
, s , s
,
 
}
1
4
5
6

2

S

Let’s assume (for contradiction)

that the powerset

S is countable

2

Then:

we can enumerate

the elements of the powerset

2

S t

{

1

,

t

2

,

t

3

,

}

Powerset

element

suppose that this is the respective

Binary encoding

t

1

1

0

0

0

0

t

2

1

1

0

0

0

t

3

1

1

0

1

0

t

1

1

0

0

1

4

Take the binary string whose bits are the complement of the diagonal

t

1

2

3

4

t

t

t

1
1

1

1

1

0

1
1

1

1

0

0

0
0

0

0

0

1

0
0

0

0

0

1

Binary string:

t

0011

(birary complement of diagonal)

The binary string

corresponds

to an element of

the powerset

S

2

:

t  0011 t  { s , s ,   } 3 4
t  0011
t
{ s , s ,
 
}
3
4

2

S

Thus,

t

must be equal to some

t t

i

t

i

However,

the i-th bit in the encoding of

the complement of the

t is

t

i-th

bit of

i , thus:

t t

i

Contradiction!!!

Since we have a contradiction:

The powerset

2

S

of

S is uncountable

End of proof

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)

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}

}

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

S  

{

,{ },{a},{a , b},{aa , b},

,{aa

, ab, aab},}

uncountable

Consider Alphabet : A {a , b}

countable

Turing machines:

M

1 M

2 M

accepts

Languages accepted

By Turing Machines:

L

M 1 M 2 M accepts Languages accepted By Turing Machines: L 1 L 2 countable

1 L

2

countable

3

Denote:

{

X L L L

1

,

2

,

3

,

countable

}

Note:

X 2

S { a , b }

*

S

57

Conclusion:

There is a language

by any Turing Machine:

L

X 2

S

is a language by any Turing Machine: L  X  2 S  L 

L   2

not accepted

S and

L  X

(Language

L

cannot be described

by any algorithm)

Non Turing-Acceptable Languages

L

Turing-Acceptable Languages
Turing-Acceptable
Languages

Note that:

{

X L L L

1

,

2

,

3

,

}

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