Sie sind auf Seite 1von 18

Turing-Berechenbarkeit

Turing-Berechenbarkeit

Bisher wurden Turingmaschinen als Akzeptoren definiert. Nun wollen wir Turingmaschinen als Maschinen zur Berechnung von Funktionen auffassen.

Turing-Berechenbarkeit

Turing-Berechenbarkeit

Bisher wurden Turingmaschinen als Akzeptoren definiert. Nun wollen wir Turingmaschinen als Maschinen zur Berechnung von Funktionen auffassen.

Definition

Eine Funktion f : N k N heißt Turing-berechenbar, falls es eine

deterministische Turingmaschine M = (Σ, Γ, Z , δ, z 0 , , F ) mit

Σ = {0, 1} gibt, so dass fur¨

alle n 1 , n 2 ,

, n k , m N:

f(n 1 , n 2 ,

, n k ) = m

⇐⇒

z F.z 0 bin(n 1 )#bin(n 2 )# · · · #bin(n k

) M zbin(m)

Turing-Berechenbarkeit

Turing-Berechenbarkeit

Bisher wurden Turingmaschinen als Akzeptoren definiert. Nun wollen wir Turingmaschinen als Maschinen zur Berechnung von Funktionen auffassen.

Definition

Eine Funktion f : N k N heißt Turing-berechenbar, falls es eine

deterministische Turingmaschine M = (Σ, Γ, Z , δ, z 0 , , F ) mit

Σ = {0, 1} gibt, so dass fur¨

alle n 1 , n 2 ,

, n k , m N:

f(n 1 , n 2 ,

, n k ) = m

⇐⇒

z F.z 0 bin(n 1 )#bin(n 2 )# · · · #bin(n k

) M zbin(m)

Falls f (n 1 , n 2 ,

Schleife oder stoppt in einem Zustand z

, n k ) nicht definiert ist, lauft¨

F .

M in eine unendliche

Turing-Berechenbarkeit

Turing-Berechenbarkeit: Nachfolgerfunktion

Beispiel: Die (total definierte) Nachfolgerfunktion f : N N mit f : n n + 1

ist Turing-berechenbar.

Turing-Berechenbarkeit

Turing-Berechenbarkeit: Nachfolgerfunktion

Beispiel: Die (total definierte) Nachfolgerfunktion f : N N mit

f : n n + 1

ist Turing-berechenbar. Eine Turingmaschine, die f berechnet, ist definiert durch

M = ({0, 1}, {0, 1, }, {z 0 , z 1 , z 2 , z e }, δ, z 0 , , {z e }),

mit der folgenden Liste von Turingbefehlen gemaߨ

δ:

(z 0 , 0)

(z 0 , 1)

(z 0 , )

(z 0 , 0, R)

(z 0 , 1, R)

(z 1 , , L)

0)

1)

(z 1 ,

(z 1 ,

(z 1 , )

(z 2 , 1, L)

(z 1 , 0, L)

(z e , 1, N)

(z 2 , 0)

(z 2 , 1)

(z 2 , )

(z 2 , 0, L)

(z 2 , 1, L)

(z e , , R)

Tabelle: Liste δ der Turingbefehle von M fur¨ die Funktion f (n) = n + 1

Turing-Berechenbarkeit

Turing-Berechenbarkeit: Nachfolgerfunktion

Z

Bedeutung

Absicht

z

0

Anfangszustand

gehe bis zum Wortende und wechsle in Zustand z 1

z

1

addiere 1

mache eine 0 zu 1 bzw. alle 1en zu 0en

z

2

nach links laufen

gehe an den Wortanfang und wechsle in Zustand z e

z

e

Endzustand

Akzeptieren

Tabelle: Interpretation der Zustande¨

von M

Turing-Berechenbarkeit

Turing-Berechenbarkeit: Nachfolgerfunktion

Fur¨ n = 5 ergibt sich:

z 0 101

M

M

M

M

M

M

M

M

1z 0 01 10z 0 1 101z 0 10z 1 1 1z 1 00 z 2 110 z 2 110 z e 110

Turing-Berechenbarkeit

Turing-Berechenbarkeit: Nachfolgerfunktion

Fur¨ n = 3 ergibt sich:

z 0 11

M

M

M

M

M

M

1z 0 1 11z 0 1z 1 1 z 1 10 z 1 00 z e 100

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

Beispiel:

n

2

Die (total definierte) Funktion div 2 : N N mit

div 2 (n) =

n

2

ist Turing-berechenbar.

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

Beispiel:

n

2

Die (total definierte) Funktion div 2 : N N mit

div 2 (n) =

n

2

ist Turing-berechenbar.

Idee: Falls n 2, letzte Ziffer in bin(n) loschen.¨

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

Beispiel:

n

2

Die (total definierte) Funktion div 2 : N N mit

div 2 (n) =

n

2

ist Turing-berechenbar.

Idee: Falls n 2, letzte Ziffer in bin(n) loschen.¨

Fur¨ n = 0 ist nichts zu tun, fur¨ n = 1 muss eine 0 aufs Band geschrieben werden.

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Eine Turingmaschine, die div 2 berechnet, ist definiert durch

M = ({0, 1}, {0, 1, }, {z 0 , z 1 , z 2 , z 3 , z 4 , z 5 , z e }, δ, z 0 , , {z e }),

mit dieser Liste der Turingbefehle gemaߨ

¨

der Uberfuhrungsfunktion¨

δ:

(z 0 , 0)

(z 0 , 1)

(z e , 0, N)

(z 1 , 1, R)

0)

1)

(z 1 , )

(z 1 ,

(z 1 ,

(z 3 , 0, R)

(z 3 , 1, R)

(z 2 , , L)

(z 2 , 1)

(z e , 0, N)

(z 3 , 0)

(z 3 , 1)

(z 3 , )

(z 3 , 0, R)

(z 3 , 1, R)

(z 4 , , L)

(z 4 , 0)

(z 4 , 1)

(z 5 , , L)

(z 5 , , L)

(z 5 , 0)

(z 5 , 1)

(z 5 , )

(z 5 , 0, L)

(z 5 , 1, L)

(z e , , R)

Tabelle: Liste δ der Turingbefehle von M fur¨ die Funktion div 2 =

n

2

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Z

Bedeutung

Absicht

z

0

Anfangszustand

falls Eingabe = 0, dann wechsle in z e ,

sonst in z 1

z

1

Eingabe = 1 testen

falls Eingabe = 1, dann wechsle in z 2 ,

sonst z 3

z

2

Eingabe 1 zu 0 machen

(hier konnte nichts geloscht¨

werden)

z

3

nach rechts laufen

Wortende suchen und in z 4 wechseln

z

4

letztes Zeichen loschen¨

letztes Zeichen durch ersetzen und

in z 5 wechseln

z

5

nach links laufen

Wortanfang suchen und in z e wechseln

z

e

Endzustand

Akzeptieren

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Fur¨ n = 0 ergibt sich:

z 0 0

M

z e 0

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Fur¨ n = 0 ergibt sich:

z 0 0

M

z e 0

Fur¨ n = 1 ergibt sich:

z 0 1

M

M

M

1z 1 z 2 1 z e 0

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Fur¨ n = 2 ergibt sich:

z 0 10

M

M

M

M

M

M

1z 1 010z 3 1z 4 0 z 5 1z 5 1 z e 1

Turing-Berechenbarkeit

Turing-Berechenbarkeit: div 2 =

n

2

Fur¨ n = 5 ergibt sich:

z 0 101

M

M

M

M

M

M

M

M

1z 1 01 10z 3 1 101z 3 10z 4 1 1z 5 0z 5 10 z 5 10 z e 10

Turing-Berechenbarkeit

Turing-Berechenbarkeit fur¨ Wortfunktionen

Definition Eine Funktion f : Σ Σ heißt Turing-berechenbar, falls es eine deterministische Turingmaschine

M = (Σ, Γ, Z , δ, z 0 , , F)

gibt, so dass fur¨ alle x, y Σ :

f(x) = y ⇐⇒ ∃z F.z 0 x M zy

Falls f (x) nicht definiert ist, dann lauft¨

oder stoppt in einem Zustand z

F .

M in eine unendliche Schleife