Top Banner
Berechenbarkeit und Komplexit¨ at I Grenzen der Berechenbarkeit Alexander Asteroth Hochschule Bonn-Rhein-Sieg University of Applied Sciences Grantham-Allee 20 D-53757 Sankt Augustin Draft – do not distribute mit Beitr¨ agen von:
54
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Skript R1

Berechenbarkeit und Komplexit

¨

at I

Grenzen der Berechenbarkeit

Alexander AsterothHochschule Bonn-Rhein-SiegUniversity of Applied Sciences

Grantham-Allee 20D-53757 Sankt Augustin

Draft – do not distribute

mit Beitragen von:

Page 2: Skript R1

Inhaltsverzeichnis

1 Berechenbarkeit 3

1.1 While-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Goto-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Loop-Programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3.1 Nicht LOOP-berechenbare Funktionen . . . . . . . . . . . . . . . . 8

1.4 Rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4.1 Primitiv rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . 9

1.4.2 µ-rekursive Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.5 Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.5.1 Einband-Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . 13

1.5.2 Varianten von Turingmaschinen . . . . . . . . . . . . . . . . . . . . 18

1.5.3 Simulation von Turingmaschinen durch While-Programme . . . . . 19

1.5.4 “Programmierung” von Turingmaschinen . . . . . . . . . . . . . . . 19

1.6 Weitere Formalismen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.6.1 Registermaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.6.2 ���-Kalkul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

1.7 Church-Turing-These . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2 Entscheidbarkeit 27

2.1 Entscheidbare Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2 Unentscheidbare Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.1 Das Halteproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.2.2 Der Satz von Rice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3 Komplexitat 34

3.1 Nichtdeterminismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.2 Zeitkomplexitatsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Kostenmaße fur TMs . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.2 Komplexitatsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3 Das P=NP-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

1

Page 3: Skript R1

3.3.1 Polynomielle Reduktion . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3.2 NP-Harte, NP-Vollstandigkeit . . . . . . . . . . . . . . . . . . . . 40

3.3.3 Das P=NP-Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.4 Reduktionsbeweise zum Nachweis der NP-Vollstandigkeit . . . . . . 41

3.3.5 Satz von Cook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.3.6 Weitere Beispiele NP-vollstandiger Probeme . . . . . . . . . . . . . 48

3.3.7 Weitere Beispiele NP-vollstandiger Probeme . . . . . . . . . . . . . 48

4 Losungen 50

2

Page 4: Skript R1

Kapitel 1

Berechenbarkeit

In diesem Kapitel werden wir nachweisen, dass verschiedene Berechenbarkeitsmodelle zumgleichen Berechenbarkeitsbegri↵ fuhren. Dabei beginnen wir mit Konzepten, wie wir sieaus “modernen” Programmiersprachen gewohnt sind.

1.1 While-Programme

While-Programme werden induktiv definiert und bestehen im einfachsten Fall aus einerZeile.

• xi

:= 0 oder xi

:= xj

(Zuweisung)

• xi

:= xi

+ 1 (Inkrement)

Programme konnen auch zusammengesetzt werden:

• P ;Q (Komposition)

• If xi

< xj

Then P Else Q Fi (Bedingte Ausfuhrung)

• Loop xi

Do P Od (Loop Schleife)

• While xi

< xj

Do P Od (While Schleife)

Intuitiv ist den meisten klar, was ein While-Programm wie

P =

2

664

x0 := x1;Loop x2 Dox0 := x0 + 1

Od

tut. Da es aber unser Ziel ist, die Aquivalenz verschiedener Ansatze zu zeigen, werden wirdie Semantik eines While-Programms prazise formulieren.

3

Page 5: Skript R1

Sei XP

= {x1, . . . , xN

} die Menge der im Programm P verwendeten Variablen. Eine Va-riablenbelegung ist eine Abbildung � : X

P

! N. Das Programm P verandert eine An-fangsbelegung �0 in m Ausfuhrungsschritten zu einer Endbelegung �

m

. Es kann auch derFall eintreten, dass das Programm nicht terminiert, dann ist die Endbelegung undefiniert(im Zeichen ?). Fur Variablenbelegungen definieren wir die Schreibweise �[x y] mit derBedeutung:

�0(z) =

(y falls x = z

�(z) sonst, wenn �0 = �[x y]

Spater werden wir Anfangsbelegungen konstruieren mussen. Hierzu definieren wir (hilfs-weise) die Belegung, die allen Variablen aus X den Wert 0 zuweist. Sei X = {x1, . . . , xn

}:

0X

: X ! N, mit 0X

(xi

) = 0, i = 1, . . . , n

Zur Konstruktion von Anfangsbelegungen verwenden wir folgende Schreibweise:

[xi1 a1, xi2 a2, . . . , xik

ak

] := 0X

[xi1 a1][xi2 a2] · · · [xik

ak

]

d.h. die Belegung, die allen Variablen den Wert 0 zuweist, außer den explizit angegebenenWerten fur x

i1 , . . . , xik.

Die Semantik eines While-Programms P kann jetzt analog zu seiner Syntax definiert wer-den (vgl. auch [Koz97]). Als Zeichen verwenden wir JP K und meinen damit eine Abbildung,die Belegungen auf andere Belegungen abbildet.

Fur die Zuweisungen ergibt sich

Jxi

:= 0K : � 7! �[xi

0]Jx

i

:= xj

K : � 7! �[xi

�(xj

)]Jx

i

:= xi

+ 1K : � 7! �[xi

�(xi

) + 1]

bedingte Ausfuhrung:

JIf xi

< xj

Then P Else Q FiK : � 7!(

JP K(�) falls �(xi

) < �(xj

)

JQK(�) sonst

Fur Komposition und einfache Schleifen gilt:

JP ;QK = JQK � JP KJLoop x

i

Do P OdK(�) = JP Kn(�) wobei n = �(xi

)und JP Kn := JP K � JP K � · · · � JP K| {z }

n-mal

Fur While-Schleifen P = While xi

< xj

Do Q Od kann man ansetzen:

JP K(�) =

8><

>:

� falls �(xi

) � �(xj

)

JP K�JQK(�)

�falls JQK(�) definiert ist

? sonst

4

Minh Tuan Nguyen
Page 6: Skript R1

Diese rekursive Definition liefert im Fall einer Endlosschleife eine undefinierte Semantik.Alternativ kann man die Zahl der Schleifendurchlaufe getrennt bestimmen. Sei n 2 N diekleinste Zahl, so dass JQKn definiert ist und JQKn(�)(x

i

) � JQKn(�)(xj

). Dann gilt:

JP K(�) =(

JQKn(�) falls ein solches n existiert

? sonst

Es ist ublich, einem Algorithmus P die durch ihn berechnete Funktion fP

: Nn ! N zuzuordnen. Fur While-Programme P gilt:

fP

(a1, . . . , an) = �(x0) wobei � = JP K([x1 a1, . . . , xn

an

])

d.h. While-Programme erhalten ihre Eingaben in den Variablen x1, . . . , xn

und liefern dasErgebnis in der Variable x0.

Eine Funktion f : Nn ! N heißt While-berechenbar, gdw. es ein While-Programm Pmit f

P

= f gibt.

Geloste Probleme

1 Sei P das folgende While-Programm

P =

2

664

x0 := x1;Loop x2 Dox0 := x0 + 1

Od

Berechnen Sie fP

(2, 3) und notieren Sie moglichst jeden Zwischenschritt.

2 Geben Sie basierend auf der bedingten Ausfuhrung mit “<” Makros fur bedingte Ausfuhrungenmit =, 6=, >,�, an und zeigen Sie deren Korrektheit.

3 Geben Sie eine sinnvolle Semantik fur xi

:= xi

� 1 an.

4 Implementieren Sie ein Makro xi

:= xi

� 1 fur das Dekrement und beweisen Sie die Kor-rektheit Ihres Makros (bzgl. der zuvor definierten Semantik).

5 Zeigen Sie, dass Addition und Subtraktion While-berechenbar sind.

6 Zeigen Sie, dass auch Multiplikation und Division While-berechenbar sind.

7 Schatzen Sie die Laufzeit ab, die fur die Berechnung der Grundrechenarten benotigt wird.

8 Zeigen Sie, dass man in der Abbruch-Bedingung derWhile-Schleife den Vergleichsoperator< durch >,,� oder auch = ersetzen kann, ohne die Berechnungsstarke zu verandern.

9 Zeigen Sie, dass man bei While-Programmen auf die bedingte Ausfuhrung (If . . . ) ver-zichten kann.

10 Zeigen Sie, dass man bei While-Programmen auf das Loop-Konstrukt verzichten kann.

5

Page 7: Skript R1

1.2 Goto-Programme

Ein Goto-Programm P besteht aus einer geordneten Folge von Anweisungen, ist also einVektor von Anweisungen. P [i] bezeichnet die i-te dieser Anweisungen. Dies ermoglicht be-dingte und unbedingte Sprunge zu den Anweisungen. Bei einem Goto-Programm P =<A1, A2, . . . , An

> mit den Variablen x0, . . . , xm

kann jede Zeile eine der folgenden Anwei-sungen sein:

• xi

:= xj

± c (Zuweisung, 0 i, j m, c 2 N, xj

/c kann entfallen)

• Goto k (unbedingter Sprung zu Anweisung 1 k n)

• If xi

= c Then Goto k (bedingter Sprung zu Anweisung 1 k n)

• Halt (Programm-Ende)

Zur Definition der Semantik von P fuhren wir eine neue Variable pc ein. pc (fur programcounter) bezeichnet die nachste auszufuhrende Anweisung.

Zur Definition der Semantik von P =< A1, . . . , An

> fuhren wir eine neue Variable pc ein:

XP

= {pc, x0, x1, . . . , xm

}

pc (fur program counter) bezeichnet die nachste auszufuhrende Anweisung.

JP K(�) =

8>>>>>>>>>>>>>>>><

>>>>>>>>>>>>>>>>:

� falls P [�(pc)] = Halt

JP K(�[xi

�(xj

) + c, pc �(pc) + 1]) falls P [�(pc)] = xi

:= xj

+ c

JP K(�[xi

max{0, �(xj

)� c}, falls P [�(pc)] = xi

:= xj

� c

pc �(pc) + 1])

JP K(�[pc k]) falls P [�(pc)] = Goto k

oder P [�(pc)] = If xi

= c Then Goto k

und �(xi

) = c

JP K(�[pc �(pc) + 1]) falls P [�(pc)] = If xi

= c Then Goto k

und �(xi

) 6= c

Die einem Goto-Programm P zugeordnete Funktion fP

: Nn ! N wird definiert als:

f(a1, . . . , an) = �(x0) wobei � = JP K([pc 1, x1 a1, . . . , xn

an

])

Eine Funktion f : Nn ! N heißt Goto-berechenbar, gdw. es ein Goto-Programm P mitfP

= f gibt.

Satz 1.1. Jede Goto-berechenbare Funktion ist While-berechenbar und umgekehrt. D.h.der durch Goto- und While-Programme formalisierte Berechenbarkeitsbegri↵ stimmtuberein.

6

Page 8: Skript R1

Beweis. Siehe Ubungsaufgaben 17 und 16.

Der Beweis liefert uns insbesondere folgenden

Satz 1.2. Jedes Programm kann durch ein While-Programm mit nur einer Schleife si-muliert werden. Diese Form des Programms nennt sich Kleene’sche Normalform.

Beweis. Z.B. Transformation in ein Goto-Programm und wieder zuruck in ein While-Programm (vgl. 16 und 17).

Geloste Probleme

11 Welche Funktion fP

implementiert das folgende Goto-Programm?

P =

*1 : x0 := x1;2 : If x2 = 0 Then Goto 6;3 : x2 := x2 � 1;4 : x0 := x0 + 2;5 : Goto 2;6 : Halt

+

Bestimmen Sie mit Hilfe der Semantik fP

(2, 3).

12 Zeigen Sie die Goto-Berechenbarkeit der Funktion f(x, y) = x · y.

13 Schreiben Sie Makros fur Sprunge mit anderen Vergleichsoperatoren.

14 Schreiben Sie Makros fur xi

:= xi

op yi

mit op 2 {+,�, ⇤, /}

15 Zeigen Sie die Goto-Berechenbarkeit der Funktion f(x, y) = xy.

16 Zeigen Sie, dass jede While berechenbare Funktion Goto-berechenbar ist.

17 Zeigen Sie, dass jede Goto berechenbare Funktion While-berechenbar ist.

1.3 Loop-Programme

Wir haben gesehen, dass While- und Goto-Programme den gleichen Berechenbarkeits-begri↵ formalisieren (Satz 1.1, Probleme 17 und 16). Außerdem haben wir gezeigt, dassman bei While-Programmen auf das Loop-Konstrukt (Problem 10) und auf die bedingteAusfuhrung If-Then-Else (Problem 10) verzichten kann. Loop-Programme sind While-Programme die auf While-Loops verzichten. Die Berechnungsstarke dieser Programmeunterscheidet sich von der der While-Programme. Der Beweis dieser Tatsache wird imfolgenden Abschnitt 1.4 gefuhrt.

Loop-Programme werden induktiv definiert und bestehen im einfachsten Fall aus einerZuweisung.

7

Page 9: Skript R1

• xi

:= xj

± c (Zuweisung)

• P ;Q (Komposition)

• If xi

< xj

Then P Else Q Fi (Bedingte Ausfuhrung)

• Loop xi

Do P Od (Loop Schleife)

Geloste Probleme

18 Zeigen Sie die Loop-Berechenbarkeit der Grundrechenarten und definieren Sie Makros.

19 Zeigen Sie, dass man bei Loop-Programmen – wie bei While-Programmen – auf diebedingte Ausfuhrung verzichten kann.

1.3.1 Nicht LOOP-berechenbare Funktionen

Wir haben gesehen, dass die Klasse der While-berechenbaren Funktionen mit der Klasseder Goto-Berechenbaren Funktionen ubereinstimmt. Der folgende Satz zeigt, dass dieFunktionsklasse der Loop-berechenbaren Funktionen eine echte Untermenge dieser Klasseist.

Satz 1.3. Die Ackermannfunktion ist While-, aber nicht Loop-berechenbar.

Die folgende Definition der Ackermannfunktion stammt von Hans Hermes [Her71, S.85]:

a(0, y) = y + 1

a(x, 0) = a(x� 1, 1) x > 0

a(x, y) = a(x� 1, a(x, y � 1)) x, y > 0

Beweis. Angenommen, a ware Loop-berechenbar, dann auch g(n) = a(n, n). Sei P einLoop-Programm fur g, also g(n) = f

P

(n). In Problem 26 wird gezeigt, dass dann eineKonstante k existiert mit f

P

(n) < a(k, n). Fur n = k ergibt sich folgender Widerspruch:

g(k) = fP

(k) < a(k, k) = g(k)

Geloste Probleme

20 Zeigen Sie durch Induktion nach dem ersten Argument, dass die Funktion a(x, y) fur jedenWert von x und y definiert ist.

21 Geben Sie ein While-Programm an, das die Ackermann-Funktion berechnet.

8

Page 10: Skript R1

22 Zeigen Sie: y < a(x, y)

23 Zeigen Sie: a(x, y) < a(x, y + 1)

24 Zeigen Sie: a(x, y + 1) a(x+ 1, y)

25 Zeigen Sie: a(x, y) < a(x+ 1, y)

26 Zeigen Sie, dass es fur jedes Loop-Programm P eine Konstante k gibt, so dass fur alle ngilt: f

P

(n) < a(k, n)

1.4 Rekursive Funktionen

Bis zum Beginn des 20. Jahrhunderts glaubte man, dass die e↵ektiv berechenbaren Funk-tionen mit den rekursiv/induktiv definierten Funktionen identisch sind. Heute ist man sichweitgehend sicher, dass der Begri↵ der Turing-Berechenbarkeit die e↵ektive Berechenbar-keit formalisiert. Andererseits weiß man auch, dass die damalige Formalisierung der Re-kursion – die heute primitive Rekursion genannt wird – nicht alle e↵ektiv berechenbarenFunktionen abdeckt. Betrachten wir daher zunachst den Begri↵ der primitiven Rekursionan einem Beispiel, der Additionsfunktion.

Bei der rekursiven Definition einer Funktion wird zunachst eine “Verankerung” vorgenom-men:

add(0, x) = x

Danach wird der allgemeine Fall auf einen Vorganger zuruckgefuhrt. Dadurch wird sicher-gestellt, dass die Definition auch immer zu einer gultigen Funktion, d.h. terminierendenBerechnung, fuhrt.

add(n, x) = add(n� 1, x) + 1

An dieser Definition sind drei Funktionen beteiligt:

1. die Funktion add(n, x), die definiert werden soll,

2. die Funktion id(x) = x, die die Verankerung realisiert und

3. die Funktion succ(x) = x+ 1, welche in der Rekursion verwendet wird.

1.4.1 Primitiv rekursive Funktionen

Die Klasse der primitiv rekursiven Funktionen ist wie folgt induktiv definiert:

• Die Nullfunktion O(x) = 0 ist primitiv rekursiv.

• Die Nachfolgerfunktion S(x) = x+ 1 ist primitiv rekursiv.

9

Page 11: Skript R1

• Die Projektionsfunktionen ⇡n

i

, die aus einem n-Tupel (x1, . . . , xn

) einen einzelnenEintrag x

i

auswahlen, sind primitiv rekursiv.

Seien g, h, h1, . . . , hk

bereits primitiv rekursive Funktionen.

• Die Funktion f(n, . . .), die aus g und h durch primitive Rekursion entsteht,

f(n, . . .) =

⇢g(. . .) falls n = 0h(f(n� 1, . . .), n� 1, . . .) sonst

ist primitiv rekursiv.

• Die Funktion f , die aus g und h1, . . . , kk durch Einsetzung entsteht,

f(x1, . . . , xn

) = g(h1(x1, . . . , xn

), . . . , hk

(x1, . . . , xn

))

ist primitiv rekursiv.

Die Klasse der primitiv rekursiven Funktionen ist die kleinste Klasse, die unter diesenOperationen abgeschlossen ist.

Bemerkung 1.1. Wenn bei primitiver Rekursion ( h(f(n� 1, . . .), n� 1, . . .) ) das zweiteArgument, n� 1, der Funktion h nicht verwendet wird, ist es ublich, dies auszulassen. DieProbleme 27, 28 und 29 zeigen, wie eine solche Auslassung implementiert werden kann.

Geloste Probleme

27 Zeigen Sie, dass die zweistellige Nachfolgerfunktion S21(x1, x2) = x1 + 1, die nur die erste

Stelle zuruckgeliefert, primitiv rekursiv ist. (Beschreiben Sie auch, wie man Funktionen Sk

i

definieren konnte)

28 Zeigen Sie, dass die Identitatsfunktion primitiv rekursiv ist.

29 Zeigen Sie: die Addition ist primitiv rekursiv.

30 Die Multiplikation mul ist ein weiteres Beispiel einer primitiv rekursiven Funktion:

31 Die Subtraktion sub ist p.r.

32 Die Funktion nu2(n) =�n

2

�ist p.r.

10

Page 12: Skript R1

Primitive Rekursivitat der Cantor’schen Diagonalisierungsfunktion Mit denBeweisen fur die obigen Problemstellungen haben wir auch gezeigt, dass die folgende zwei-stellige Funktion c p.r. ist:

c(x, y) =

✓x+ y + 1

2

◆+ x

Die Funktion bildet die Menge N2 umkehrbar eindeutig auf die naturlichen Zahlen ab (Can-tor’sches Diagonalisierungsverfahren). Eine iterierte Anwendung dieses Verfahrens bildetNk $ N umkehrbar eindeutig ab:

(n1, n2, . . . , nk

)$ c(n1, c(n2, . . . , c(nk

, 0) . . .))

Wir nennen die Funktion, die diese k-fache Anwendung von c realisiert, ck und notieren:

ck(n1, . . . , nk

) = n =< n1, . . . , nk

>

Man beachte, dass die spitzen Klammern rechts ein Skalar beschreiben. Bezeichnen wir dieUmkehrfunktionen mit ↵ und ! (entspricht dem ersten Element und dem Rest). Dann gilt:

↵(c(a, b)) = a !(c(a, b)) = b c(↵(n),!(n)) = n

Fur die k-stellige Codierfunktion ck ergeben sich die Umkehrfunktionen:

↵0(n) = ↵(n)

↵1(n) = ↵(!(n))

↵2(n) = ↵(!(!(n)))

. . .

↵k

(n) = ↵(!(. . . (!(n)) . . .))

Bevor wir die primitive Rekursivitat von ↵ und ! zeigen konnen, benotigen wir den fol-genden Satz sowie zwei weitere p.r. Funktionen:

Man kann n-stellige Pradikate P (x1, . . . , xn

) durch Funktionen mit den Ruckgabewerten 0und 1 darstellen. Es gilt:

f(x1, . . . , xn

) =

8>>>>><

>>>>>:

h1(x1, . . . , xn

) falls P1(x1, . . . , xn

)h2(x1, . . . , xn

) falls P2(x1, . . . , xn

)...

...hk

(x1, . . . , xn

) falls Pk

(x1, . . . , xn

)hk+1(x1, . . . , xn

) sonst

ist p.r. wenn P1, . . . , Pk

disjunkt und p.r. sind.

Beweis. Es gilt:

f(x1, . . . , xn

) =kX

i=1

Pi

(x1 . . . , xn

)hi

(x1, . . . , xn

) + (kY

i=1

(1� Pi

(x1 . . . , xn

)))hk+1(x1, . . . , xn

)

11

Page 13: Skript R1

Da die Pradikate immer alle bis auf maximal eines den Wert 0 annehmen, wird von denvorderen Summanden nur einer den Wert h

i

(x1, . . . , xn

) annehmen. Der letzte Summandk + 1 wird nur dann ungleich Null, wenn alle P

i

Null sind.

Da Summe und Produkt p.r. sind, ist f somit ebenfalls p.r..

Satz 1.4. Die Klasse der Loop-berechenbaren Funktionen stimmt mit der Klasse der p.r.Funktionen uberein.

Beweis. Siehe Aufgaben 36 und 37.

Geloste Probleme

33 Fur ein Pradikat P (x) kann man das großte x zwischen 0 und n suchen, das P erfullt:

maxP

(n) = {x n | P (x)}Geben Sie eine gultige p.r. Definition fur max

P

an.

34 Fur ein Pradikat P konnen wir prufen, ob es ein x n gibt, das P (x) erfullt. DefinierenSie das p.r. Pradikat Ex

P

(n) = 9x n : P (x).

35 Geben Sie gultige p.r. Definitionen fur die Umkehrfunktionen der Cantor’schen Diagonali-sierungsfunktion (↵ und !) an.

36 Zeigen Sie, dass fur jedes Loop-Programm P die Funktion fP

p.r. ist.

37 Zeigen Sie, dass jede p.r. Funktion durch ein Loop-Programm berechnet werden kann.

1.4.2 µ-rekursive Funktionen

Erweitert man die Definition der p.r. Funktionen um einen weiteren Operator (der program-miertechnisch einer While-Schleife entspricht) dann erhalt man eine echte Erweiterung, dieso genannten µ-rekursiven Funktionen. Wenn g(n, . . .) bereits eine µµµ-rekursiv berechenbareFunktion ist, dann wird der Operator wie folgt definiert:

Derµµµk

-Operator bestimmt zu einer Funktion g und den Argumenten x1, . . . , xk�1, xk+1, . . . , xn

den kleinsten Wert xk

, so dass g(x1, . . . , xn

) = 0:

f(x1, . . . , xk�1, xk+1, . . . , xn

) = µµµk

g(x1, . . . , xn

) = min{xk

| g(x1, . . . , xn

) = 0}Zusatzlich fordern wir, dass alle g(x1, . . . , xk�1,m, x

k+1, . . . , xn

) fur m < xk

definiert seinmussen.

µµµk

g ist ein Funktional, das einer n-stelligen Funktion eine n�1 stellige Funktion zuordnet.

Falls k = 1 schreiben wir an Stelle von f = µµµ1g kurz f = µµµg.

Satz 1.5. Die Klasse der µµµ-rekursiven Funktionen ist gleich der Klasse der While-berechenbarenFunktionen.

Beweis. Siehe Probleme 40 und 41.

12

Page 14: Skript R1

Geloste Probleme

38 Zeigen Sie, dass die total undefinierte Funktion ? µµµ-rekursiv ist.

39 Zeigen Sie, dass die naturlichzahlige Wurzel µµµ-rekursiv ist.

40 Zeigen Sie, dass jedes While-Programm eine µµµ-rekursive Funktion berechnet.

41 Zeigen Sie, dass jede g = µµµf durch ein While-Programm berechnet werden kann.

42 Zeigen Sie, dass man mit While-Programmen einen Stack implementieren kann. Beschrei-ben Sie zum Beweis den Aufbau der Makros, welche die Operationen Push, Pop, Top undSize implementieren (Hinweis: der gesamte Stack wird in einem einzigen Register codiert).

1.5 Turingmaschinen

Das Konzept der Turingmaschinen kann einerseits als eine weitere Formalisierung einerRechenmaschine angesehen werden und andererseits kann man es als Beschreibungsfor-malismus fur menschliches Rechnen ansehen. Letzteres war vermutlich der Grund, warumKurt Godel 1936 dieses Modell als gultige Formalisierung des intuitiven Berechenbarkeits-begri↵s akzeptierte (Zitat? Quelle?) und es sich seitdem als Standard-Formalisierung furintuitive Berechenbarkeit durchgesetzt hat.

Turingmaschinen formalisieren Algorithmen durch Regelmengen, die in Form einer Ta-fel dargestellt werden konnen. Jede Berechnung wird in Phasen aufgeteilt, die durch eineZustandsmenge reprasentiert werden. Wahrend einer Rechnung konnen Zeichen eines Al-phabets niedergeschrieben und gelesen werden. Zu jedem Zeitpunkt wird nur ein Zeichengelesen und geschrieben und das Papier kann nur um ein “Kastchen” verschoben werden.

Alle erwahnten Mengen (Regeln, Zustande und Alphabet) sind endlich, außer dem zurVerfugung stehenden Papier, davon steht unendlich viel zur Verfugung.

1.5.1 Einband-Turingmaschinen

Die einfachste Variante der Turingmaschine ist die deterministische Einband-Turingmaschine(DTM oder kurz TM)1. Formal ist eine TM ein Tupel:

T = (Q,⌃,�, �, q0, F )

Q ist eine Menge von Zustanden

� das Alphabet, Buchstaben die niedergeschrieben werden konnen.

⌃ eine Teilmenge von �, das Eingabealphabet.

1Im Abschnitt Komplexitatstheorie werden wir auch nichtdeterministische Turingmaschinen kennenler-nen. Bezogen auf ihre Berechnungsstarke unterscheiden sich NTMs und DTMs jedoch nicht (vgl. ProblemXY: Simulation einer NTM durch ein DTM).

13

Page 15: Skript R1

� die Ubergangsfunktion legt das Verhalten der TM fest (� : Q⇥ �! Q⇥ �⇥R)

q0 Startzustand (q0 2 Q)

F Menge von Endzustanden (F ✓ Q)

wobei die Menge R definiert ist als: R = { ,�,!}. Alle genannten Mengen mussenendlich sein. � enthalt das Sonderzeichen⇤, das nicht Teil der Eingabe sein darf (⇤ 2 �\⌃).Q und � mussen durchschnittsfrei sein.

Beispiel T+1 Die Funktionsweise der Turingmaschine erlautern wir an einem Beispiel.Wir konstruieren eine TM T+1 zur Realisierung des Inkrements. T+1 arbeitet auf binarcodiertenZahlen. Sie setzt das letzte Null-Bit der Zahl auf Eins und alle Bits dahinter auf Null. Z.B.:

1 0 1 0 1 1+ 1

1 0 1 1 0 0 bzw.

32 + 0 + 8 + 0 +

=4�1z }| {2 + 1

+ 132 + 0 + 8 + 4 + 0 + 0

Sei ar�1 . . . a1a0 die Binarzahldarstellung der Eingabezahl n. Sei a

k

das letzte Null-Bit,d.h. a0 = a1 = · · · = a

k�1 = 1, ak

= 0 und ab ak+1 sind die Werte egal.

n =r�1X

j=0

aj

· 2j also: n+ 1 =r�1X

j=k+1

aj

· 2j + 2k

=r�1X

j=k+1

aj

· 2j + 0 · 2k +k�1X

j=0

1 · 2j

| {z }2k�1

=r�1X

j=k+1

aj

· 2j + 1 · 2k +k�1X

j=0

0 · 2j

Man erkennt, dass alle Bits hinter ak

auf Null gesetzt sind.

Band, Bandalphabet Die Turingmaschine T+1 verfugt uber ein beidseitig unendlichesBand, das in Zellen unterteilt ist, von denen die TM nur jeweils nur eine Zelle sieht2. JedeZelle kann ein Zeichen aus dem Alphabet � = {0, 1,⇤} aufnehmen, wobei alle “leeren”Zellen mit dem besonderen Zeichen ⇤ beschrieben sind.

Zustande T+1 startet in Zustand q0 und das Band ist initial mit der Eingabe der Tu-ringmaschine beschrieben. Im vorliegenden Fall ist dies das Wort w = a

r�1 . . . a1a0. ZurRechnung verwendet T+1 weitere Zustande: Q = {q0, q1, q2, q3}.Ubergangsfunktion Das “Programm” der TM wird durch die Ubergangsfunktion � an-

2Man spricht hier auch davon, dass die TM einen Schreib-/Lese-Kopf hat, der auf eine bestimmte Zellezeigt.

14

Page 16: Skript R1

gegeben. Ublicherweise stellt man � in Tabellenform dar:

� 0 1 ⇤q0 (q0, 0,!) (q0, 1,!) (q1,⇤, )q1 (q2, 1, ) (q1, 0, ) (q3, 1,�)q2 (q2, 0, ) (q2, 1, ) (q3,⇤,!)q3 � � �

Die Tabelle liest sich z.B. so: “Wenn die TM in Zustand q1 ist und die aktuell betrachteteZelle eine 1 enthalt, dann bleibt sie in Zustand q1, uberschreibt die 1 mit einer 0 undbetrachtet als nachstes die linke Nachbar-Zelle.”

q3 ist der einzige Endzustand, also F = {q3}.Beispielrechnung von T+1 fur das obige Rechenbeispiel arbeitet T+1 in folgenden Schrit-ten: anfangs befindet sich die TM im Zustand q0 und das Band ist mit 101011 beschrieben.Die aktuell betrachtete Zelle enthalt die fuhrende 1. Wir notieren dies · · ·⇤q0101011⇤ · · · ,wir notieren also den aktuellen Zustand links von der aktuell betrachteten Zelle und lassendie unendlich vielen Blanks weg. Nun finden folgende Ubergange (`) statt:

· · ·⇤q0101011⇤ · · · ` · · ·⇤1q001011⇤ · · · ` · · ·⇤10q01011⇤ · · · ` · · ·⇤101q0011⇤ · · · `· · ·⇤1010q011⇤ · · · ` · · ·⇤10101q01⇤ · · · ` · · ·⇤101011q0⇤ · · · `

Nun ist die TM am Ende der Eingabe angekommen. Sie wechselt den Zustand und uberschreibtnun alle Einsen mit Nullen.

· · ·⇤10101q11⇤ · · · ` · · ·⇤1010q110⇤ · · · ` · · ·⇤1010q1000⇤ · · · `Die letzte 0 ist gefunden, wird ersetzt und die TM muss nur noch zum Anfang der Ausgabe

· · ·⇤101q2100⇤ · · · ` · · ·⇤10q21100⇤ · · · ` · · ·⇤1q201100⇤ · · · ` · · ·⇤q2101100⇤ · · · `· · ·⇤q2⇤101100⇤ · · · ` · · ·⇤q3101100⇤ · · ·

Semantik der TM Entsprechend den Variablenbelegungen beiWhile- undGoto-Pro-grammen, wird die Semantik von Turingmaschinen auf der “Belegung” des Bands definiert.Wie bei den Goto-Programmen muss man sich auch hier die aktuelle Position merken.Hinzu kommt noch der aktuelle Zustand. Dies laßt sich sehr kompakt durch sogenannteKonfigurationen ausdrucken. Eine Konfiguration ist ein Wort k = vqw bei dem ⇤!vw⇤!

Band-Inschrift ergeben3 und das erste Zeichen von v und das letzte Zeichen von w nicht ⇤sind. q ist der aktuelle Zustand der TM und w0 das Zeichen, das gerade betrachtet wird.Die Menge aller Konfigurationen von T ist

Conf(T ) = �⇤ �Q � �⇤

3Die Notation ⇤! beschreibt eine unendliche Zeichenkette aus ⇤’s.

15

Page 17: Skript R1

Das schrittweise Verhalten von T gibt an, welche Konfirationen von T aufeinander folgen.Sei v = v0v1 . . . vk und w = w0w1 . . . wl

dann gilt4

vqw ` xry gdw. (q, w0) 2 �

wobei

v0 . . . vk q w0 . . . wl

`

8<

:

v0 . . . vk r aw1 . . . wl

: �(q, w0) = (r, a,�)v0 . . . vka r w1 . . . wl

: �(q, w0) = (r, a,!)v0 . . . r vkaw1 . . . wl

: �(q, w0) = (r, a, )

Mehrere Schritte der TM beschreibt die reflexive transitive Hulle `⇤

k `0 kk `n k0 gdw. k `n�1 k00 und k00 ` k0

k `⇤ k0 gdw. k `n k0 fur ein n 2 N

Falls fur k = vqw kein Ubergang exisitert, also (q, w0) 62 �, schreibt man k 6`.

Berechnung Eine Berechnung von T fur das Eingabewort w ist eine maximale (nichtverlangerbare) Folge

q0 w ` v1 q1 w1 ` v2 q2 w2 ` . . .

von Konfigurationen. Es sind drei Falle moglich:

• Die Berechnung ist unendlich.

• Die Berechnung ist verwerfend, d.h. endet in einer Konfiguration vn

qnwn

, mit qn /2 F

q0w `⇤ vnqnwn

6`

• Die Berechnung ist akzeptierend, d.h. endet in einer Konfiguration vn

qnwn

, mit qn 2F .

Turing Berechenbarkeit Im Gegensatz zu den bisher vorgestellten Maschinenmodellenkennen Turingmaschinen keine naturlichen Zahlen, sondern rechnen auf Wortern uber demAlphabet ⌃. Eine Turingmaschine T berechnet die Funktion fT : ⌃⇤ ! ⌃⇤

fT (w) = v gdw. es existiert eine akzeptierende Berechnung q0w `⇤ xqy 6`

wobei x 2 �⇤ beliebig, q 2 F und y beginnt mit v, d.h.

y = v⇤v0 v 2 ⌃⇤, v0 2 �⇤

4Sonderfalle treten auf falls v oder w leer sind. Da das leere Band mit Blanks vorbelegt ist, identifizierenwir v = " mit v = ⇤ (ebenso fur w).

16

Page 18: Skript R1

Wir setzen fT (w) = ? falls die Berechnung von T fur das Eingabewort w verwerfend oderunendlich ist. Eine Funktion5 f : ⌃⇤ ! ⌃⇤ heißt Turing-berechenbar, wenn es eine TM Tgibt mit

f = fT

Eine Funktion f : Nk ! N heißt Turing-berechenbar , wenn es eine Turingmaschine T gibt,die aus einer Binarcodierung des Eingabetupels die Binarcodierung des Funktionsergebnis-ses berechnet:

fT (bink

(x1, . . . , xk

)) = bin(y) wenn y = f(x1, . . . , xk

)

wobei bin(. . .) die Binarcodierung der Argumente liefert:

val : {0, 1}⇤ ! N, val(bn

. . . b0) =nX

i=0

bi

2i, bin = val�1

Die k-stellige Codierfunktion definieren wir als:

bink

: Nk ! {0, 1,#}⇤ bink

(x1, . . . , xk

) = bin(x1)# · · ·#bin(xk

) valk

= bin�1k

Eine Funktion f : Nk ! N ist also Turing-berechenbar, wenn es eine Turingmaschine Tgibt, so dass:

f = val � fT � bink

Geloste Probleme

43 Zeigen Sie,dass die Inkrementfunktion f+1 : N! N, f(x) = x+ 1 Turing-berechenbar ist.

44 Zeigen Sie, dass die Dekrementfunktion f�1 Turing-berechenbar ist.

45 Geben Sie eine Turingmaschine T⇤2 an, die die Funktion f(x) = 2 · x berechenet undvollziehen Sie die Berechnung von f(17) = 34 nach.

46 Zeigen Sie die Turing-Berechenbarkeit der vollstandig undefinierten Funktion f?

47 Zeigen Sie, dass die Funktion f : {a, b}⇤ ! {a, b}⇤, mit f(w) =

(" falls w ein Palindrom ist

? sonstTuring-berechenbar ist.

48 Geben Sie eine Turingmaschine T23 an, die die Projektionsfunktion ⇡32 (vgl. S. 10) berechnet.

5Die Funktion kann partiell sein.

17

Page 19: Skript R1

1.5.2 Varianten von Turingmaschinen

Mehrband Turingmaschinen unterscheiden sich von Einband Turingmaschinen in derUbergangsfunktion:

� : Q⇥ �k ! Q⇥ �k ⇥Rk

In jedem Schritt werden k Felder gelesen und k Kopfe konnen bewegt werden6.

Semantik von k-Band TMs Eine Konfiguration einer k-Band TM ist

K 2 (�⇤)k �Q � (�⇤)k , K =

0

[email protected]

1

CA q

0

[email protected]

k

1

CA

Die Relation `, das Akzeptanzverhalten und der Begri↵ der k-Band-Turing-Berechenbarkeitist analog zu Einband TMs definiert (vgl. Seite 15). Bei k-Band TMs muss allerdings expli-zit angegeben werden, welches Band das Eingabeband und welches Band das Ausgabebandist.

Satz 1.6. Die Klasse der Turing-berechenbaren Funktionen stimmt mit der Klasse derk-Band-Turing-berechenbaren Funktionen uberein.

Beweis. Probleme 51 und 52.

Satz 1.7. Die Kosten fur die Simulation einer Mehrband-TM durch eine Einband-TM sindquadratisch.

Beweis. Die Anzahl der Konfigurationswechsel, die T 0 zur Simulation eines Schritts vonT benotigt, ist beschrankt durch ein konstantes Vielfaches der Anzahl an Bandquadraten,die T bis dahin besucht hat.7 Ist also

• Nw

die gesamte Anzahl an Bandquadraten, die T bei der Berechnung fur das Einga-bewort w benutzt und

• Mw

die Anzahl an Konfigurationswechseln, die T bei der Berechnung fur w durchfuhrt,

dann benotigt T 0 hochstens C ·Nw

·Mw

Konfigurationswechsel, um w zu bearbeiten. Dabeiist C eine von w unabhangige Konstante.

Erweiterungen und Einschrankungen des Bandes

Satz 1.8. Ein linksseitig beschranktes Band bringt keine Einschrankung des Berechenbar-keitsbegri↵s mit sich. (Beweis siehe Aufgabe 53)

Satz 1.9. Ein zweidimensionales Band bedeutet keine Erweiterung des Berechenbarkeits-begri↵s (Beweis siehe Aufgabe 54).

6Alternativ kann man auch � : Q⇥ �k ! Q⇥ (�⇥R)k definieren.7T 0 wurde so konzipiert, daß zur Simulation jedes Konfigurationswechsels von T die Einband-DTM T 0

jeweils den Bandbereich, der die ⇤-Markierungen enthalt, von links nach rechts und zuruck durchlauft.

18

Page 20: Skript R1

1.5.3 Simulation von Turingmaschinen durch While-Programme

Um eine Turingmaschine durch While-Programme zu simulieren ist es wesentlich, dasswir die Zustande von Turing-Programmen nachbilden konnen. Der Zustand von While-Programme ist durch Registerbelegungen gegeben, wahrend bei Turingmaschinen Kon-figurationen fur die Darstellung der Zustande verwendet werden. Es ist also nach einerAbbildung von Konfigurationen K = vqw auf Variablenbelegungen � gesucht. Wahrendman allerdings bei v, w 2 ⌃⇤ keine obere Schranke fur die Lange der Worter angeben kann,ist die Zahl der Variablen in einem While-Programm stets a priori festgelegt.

Die Losung besteht darin, v, q und w in jeweils einer Variable abzulegen. Die Worterv = v0 . . . vk und w = w0 . . . wl

werden als zwei Stacks in den Variablen xv

und xw

codiert(vgl. Problem 61), wobei v

k

und w0 auf der Spitze der Stacks liegt.

Sei f : Nk ! N und T eine Turingmaschine mit fT = f . Das While-Programm zurSimulation von T arbeitet hat folgende Struktur (Pseudo Code):

push(xw

, bin(x1)); // Startkonfiguration aufbauen...

push(xw

, bin(xk

));

xq

:= 0; // Startzustand q0While x

q

62 F Do // Berechunung

xa

:= pop(xw

);

Zustandsubergang ausfuhren

Od;

x0 := val(pop(xw

)) // Ergebnis in x0 bereitstellen

Beachten Sie, dass die Anweisungen push(xw

, bin(x1)) und x0 := val(pop(xw

)) bereits eineVielzahl an Makro-Ausfuhrungen beinhalten (vgl. Aufgaben 61 und 63).

Die Ausfuhrung des Zustandsubergangs besteht aus einem sehr großen If-Konstrukt, dasgemaß � aufgabaut ist und die jeweilen Werte auf die Stacks x

v

und xw

pushed und dieZustandsvariable x

q

ggf. andert (vgl. Problem 62).

Insgesamt konnen wir folgendes Ergebnis festhalten

Satz 1.10. Jedes Turing-Programm kann durch ein While-Programm simuliert werden.

1.5.4 “Programmierung” von Turingmaschinen

Bemerkung: In diesem Abschnitt numerieren wir die Bander von k-Band Turingmaschi-nen von 0 . . . k � 1.

In den Aufgaben 43 und 44 haben wir gezeigt, dass Inkrement und Dekrement Turingberechenbar sind. Die in der Losung angegebene Einband TMs T±1 lassen sich direkt ineine k-Band-TM

T k

Band i := Band i ± 1 (fur i k)

19

Page 21: Skript R1

umschreiben.

Man zeigt leicht, dass die Prufung, ob Band i den Wert 0 hat, ebenfalls Turing berechenbarist. Wir zeigen nun, dass man Turingmaschinen wie While-Progamme hintereinanderausfuhren kann und, dass man so auch Konstrukte wie If und While nachbilden kann.

Beispiel Seien T1, T2 zwei TMs. T1; T2 bezeichnet diejenige TM, die sich zunachst wie T1

verhalt und – sobald T1 akzeptiert – mit der Simulation von T2 beginnt. Die Ausgabe vonT1 dient dabei als Eingabe8 fur T2. Die von T1; T2 berechnete Funktion ist9

fT1;T2 = fT2 � fT1 .

Dieses Konzept ist fur beliebige Mehrband-TMs anwendbar.

Wir formalisieren die Ideen fur Einband-TMs. Sei Ti

= (Qi

,⌃,�, �i

, q0,i, Fi

), i = 1, 2, wobeiwir Q1 \Q2 = ; voraussetzen. Weiter nehmen wir an, daß jede akzeptierende Berechnungvon T1 in einer Konfiguration der Form ⇤ . . .⇤qa1 . . . am⇤ . . .⇤ endet, wobei a1, . . . , am 2⌃. (Insbesondere nehmen wir fT1(w) 2 ⌃⇤ [ {?} fur alle w 2 ⌃⇤ an.) Dann ist

T1; T2 = (Q1 [Q2,⌃,�, �, q0,1,⇤, F2),

wobei

�(q, a) =

8<

:

�1(q, a) : falls q 2 Q1 \ F1

�2(q, a) : falls q 2 Q2

(q0,2, a,�) : falls q 2 F1

In gleicher Weise konnen bedingte Ausfuhrung (vgl. Problem 59)

If TBand i=0 Then T1 Else T2Fi

und Schleifen modelliert werden (vgl. Problem 60)

While TBand i=0 Do T Od

Zuweisungen sind ebenfalls leicht durch Turingmaschinen simulierbar (Aufgaben 56, 57und 58). Damit erhalten wir folgendes wichtige Ergebnis:

Satz 1.11. Jedes While-Programm kann durch ein Turing Programm simuliert werden.

Universelle Turingmaschinen

Wir werden nun zeigen, dass wir Turingmaschinen nicht nur zu neuen Turingmaschinenkombinieren konnen, sondern, dass wir Turingmaschinen auch programmieren konnen.Hierzu verwenden wir folgende

8Genau genommen wird nicht nur die Ausgabe von T1 an T2 ubergeben, sondern T2 ubernimmt diegesamte Bandinschrift von T1. Alternativ konnen alle Bandinschriften jeweils hintereinander auf einemBand als Ergebnis zuruckgegeben werden.

9Vgl. auch die Semantik von While Programmen.

20

Page 22: Skript R1

Codierung von TMs Sei T = (Q,⌃,�, �, q0, F ) eine beliebige TM undQ = {q0, q1, . . . , qn},� ={a0, . . . , am} feste Numerierungen der Zustandsmenge und des Alphabets. Wir definierennun schrittweise eine Codierungsfunktion code:

code(qi

) = bin(i) fur i = 0, . . . , n

code(aj

) = bin(j) fur j = 0, . . . ,m

code( ) = 0

code(�) = 1

code(!) = 10

Fur die Ubergange (qi

, aj

) ! (qk

, al

, r), also die Elemente (ai

, qj

, ak

, ql

, r) 2 � definierenwir:

code((qi

, aj

, qk

, al

, r)) = #code(qi

)#code(aj

)#code(qk

)#code(al

)#code(r)#

Die gesamte Ubergangsrelation � wird codiert, indem die Codierungen der einzelnen Ele-mente von � konkateniert werden10.

code(�) = #code(�1) � · · · � code(�p

)#, � = {�1, . . . , �p}

Die doppelten # zwischen den einzelnen Ubergangen trennen diese.

Um nun eine vollstandige TM zu codieren mussen wir neben � auch noch die Menge derEndzustande F codieren. Wir definieren:

code(F ) = code({qf1 , qf2 , . . .}) = code(q

f1)#code(qf2)# · · ·

Fur T = (Q,⌃,�, �, q0, F ) definieren wir:

code(T ) = | bin(n) | bin(m) | code(�) | code(F ) |

Die Codierung von T erfolgt also in einem Zwischenschritt uber dem Alphabet {0, 1,#, | }.

Godelisierung In einem zweiten Schritt codieren wir nun noch die vier Zeichen desAlphabets

c(0) = 00 c(1) = 01 c(#) = 10 c( | ) = 11

c(T ) = c(code(T ))

Die Codierungsfunktion c bildet also jede Turingmaschine T auf eine Binarfolge ab. Dadiese stets mit 11 beginnt ist damit jeder Turingmaschine eindeutig ein Zahlenwert zuge-ordnet.

Eine Godelisierung ist eine Abbildung g : M ! N, mit folgenden vier Eigenschaften:

10Diese Beliebigkeit in der Reihenfolge fuhrt zu einer nicht eindeutigen Codierung, die jedoch durchVerwendung der Ordnung auf Q und � eindeutig gemacht werden kann.

21

Page 23: Skript R1

i) g ist injektiv

ii) g ist berechenbar

iii) Die charakteristische Funktion �g

der Bildmenge von g ist berechenbar11.

iv) g�1 ist auf dem Bild von g berechenbar.

Die Codierungsfunktion c ist eine Godelisierung, denn sie ordnet jeder TM einen eindeu-tigen Wert zu. Ihre schrittweise “algorithmische” Definition zeigt, dass sie berechenbar istund durch Umkehren der Konstruktion kann �

g

und g�1 berechnet werden.

Bemerkung 1.2. Sei w = code(T ) der Code einer Turingmaschine. Dann ordnen wirumgekehrt w die Turingmaschine T

w

= T zu.

Die von der Turingmaschine Tw

berechnet Funktion fTw bezeichnen wir kurz mit fw

.

Universelle Turingmaschinen (UTM) akzeptieren als Eingabe binarcodierte Zahlen.Sie prufen, ob es sich bei den eingegebenen Zahlen um Codierungen von Turingmaschinenhandelt und, falls dies der Fall ist, dekodieren Sie die TMs und simulieren sie.

UTMs werden sowohl fur den Nachweis der Unentscheidbarkeit des Halteproblems als auchfur den Nachweis der Semientscheidkeit des Halteproblems im folgenden Kapitel benotigt.

Diese erhalten als Eingabe die codierte Darstellung eines Paars (T , x) bestehend

• aus einer DTM T und

• einer zugehorigen Eingabe x

und simulieren T bei Eingabe x.

Wir skizzieren, wie man eine Vierband-UTM U entwerfen kann, die bei Eingabe (T , x) eineschrittweise Simulation von T bei Eingabe x durchfuhrt. Wir verwenden das Eingabeal-phabet

⌃ = {0, 1,#, | }und stellen des Paar (T , x) durch das Wort c(T )#x dar.

• Auf Band 1 steht das Eingabewort, von dem wir annehmen, daß es die Form c(T )#xhat (mit x 2 {0, 1}⇤).

• Band 2 dient zur Darstellung des aktuellen Zustands von T .

• Band 3 enthalt eine Codierung der Bandinschrift von T .

• Band 4 benutzen wir als Hilfsband.11Vergleiche Abschnitt 2.1

22

Page 24: Skript R1

In einem Inititalisierungsschritt kopiert die UTM U das Wort x (am Ende der auf Band 1stehenden Eingabe) auf Band 3 und decodiert c(T ) zu code(T ), in dem jeweils zwei Bitsvon c(T ) zu einem Zeichen aus {0, 1,#, | } ersetzt werden. Abschließend pruft U noch, obes sich um eine korrekte Codierung code(T ) von T handelt.Wenn T in Zustand q

i

ist, dann steht bin(i) auf Band 2 von U . Sei aj

das Zeichen unterdem Kopf von T . U kann so konzipiert werden, daß der Kopf fur Band 3 auf das ersteZeichen der Codierung von a

j

zeigt. U sucht nun auf Band 1 einen Eintrag uber �(qi

, aj

);d.h. sucht ein Wort der Gestalt

##bin(i)#bin(j)#bin(I)#bin(J)#bin(X)##

Ist kein solcher Eintrag auf Band 1 vorhanden, dann ist �(qi

, aj

) = ?; T halt also an.Entsprechend verhalt sich U . Andernfalls wechselt T in den Zustand q

I

, uberschreibt dasgelesene Zeichen a

j

mit aJ

und andert die Position des Lese/Schreibkopfs gemaß X. DiesenKonfigurationswechsel von T kann U simulieren, in dem

• die Inschrift von Band 2 durch bin(I) ersetzt,

• die Codierung bin(j) von aj

durch die Codierung bin(J) von aJ

ersetzt und

• die Position des Lese/Schreibkopfs auf Band 3 gemaß X verandert

wird. Die so konzipierte Vierband-UTM U kann durch eine aquivalente Einband-TM ersetztwerden (Satz 1.6, Seite 18).

UTM- und SNM-Theorem Siehe [VW06, Abschnitt 9.6, Seite 302-317].

Geloste Probleme

49 Zeigen Sie, dass die Addition Mehrband-Turing-berechenbar ist.

50 Vollziehen Sie die Additionen 5 + 15 und 21 + 3 anhand der Losung aus Aufgabe 49 nach.Geben Sie die Berechnung der TM (Konfigurationsfolge) an.

51 Zeigen Sie: jede Einband-TM kann durch eine k-Band-TM simuliert werden.

52 Geben Sie an, wie eine Einband-TM eine k-Band TM simulieren kann.

53 Zeigen Sie, dass ein linksseitig beschranktes Band keine Einschrankung des Berechenbar-keitsbegri↵s mit sich bringt.

54 Zeigen Sie, dass ein zweidimensionales Band keine Erweiterung des Berechenbarkeitsbegri↵sbedeutet. Hinweis: Sie durfen die Einschrankung machen, dass das Band nur nach rechtsund unten unendlich ist.

23

Page 25: Skript R1

55 Geben Sie eine Familie von Turingmaschinen TBand i=0 an, die mit der Ausgabe 1 auf Band 0akzeptiert12, falls Band i = 0 und die mit der Ausgabe 0 akzeptiert, falls Band i 6= 0

56 Geben Sie eine Turingmaschine T⇡

ki (Band i) an, die folgende Funktion ausfuhrt: Wenn die

Inschrift von Band i von der Form

bin(x1)#bin(x2)# · · ·#bin(xk

)

ist, akzeptiert T⇡

ki (Band i) mit der Ausgabe bin(x

i

) auf Band 0.

57 Geben Sie eine Turingmaschine an, die die Inschrift von Band 0 auf das Band i kopiert(Eingabeband: Band 0, Ausgabeband: Band i).

58 Geben Sie eine Turingmaschine an, die Band i loscht und mit dem Wert 0 beschreibt. (Siekonnen davon ausgehen, dass Band i zuvor nur mit w 2 {0, 1}⇤ beschrieben ist.)

59 Zeigen Sie, wie die bedingte Ausfuhrung

If TBand i=0 Then T1 Else T2

implementiert werden kann.

60 Zeigen Sie wie man eine While-Schleife

While TBand i=0 Do T Od

implementieren kann.

61 Zeigen Sie, dass man mit While-Programmen einen Stack implementieren kann. Beschrei-ben Sie zum Beweis den Aufbau der Makros, welche die Operationen Push, Pop, Top undSize implementieren (Hinweis: der gesamte Stack wird in einem einzigen Register codiert).

Im Gegensatz zu Aufgabe 42 durfen Sie hier davon ausgehen, dass die Elemente, die aufdem Stack abgelegt werden sollen aus einem endlichen Wertebereich {1, . . . , n} sind.

62 Beschreiben Sie am Beispiel von �(q1, 0) = (q2, 1, ), wie das While-Programm aus Ab-schnitt 1.5.3 den Zustandsubergang der Turingmaschine simuliert.

63 Beschreiben Sie im Pseudocode, wie das Makro x0 := val(pop(xw

)) implementiert werdenkann. (Hinweis, Sie durfen Makros aus vorangegangenen Ubungsaufgaben verwenden).

64 (a) Geben Sie eine Ein- oder Mehrband-DTM T an, die die Additionsfunktion

fADD : N⇥ N! N, fADD(n,m) = n+m

in polynomieller Zeit berechnet.

12Wir konnen die Bandnummern auch mit 0 beginnen lassen.

24

Page 26: Skript R1

(b) Geben Sie jeweils eine Ein- oder Mehrband-DTM an, die die Funktionen

ffak : N! N, ffak (n) = n!

fLOG : N! N, fLOG(n) =

⇢blog nc : falls n � 1? : sonst

berechnet. (Zur Erinnerung: 0! = 1.)

Geben Sie jeweils die Großenordnungen der Kostenfunktionen (Zeit und Platz, inAbhangigkeit der Eingabegroße) der konzipierten DTMs an.

65 Geben Sie fur die Turingmaschine aus Problem 45 die Codierung c(T⇤2) an.

66 Vollziehen Sie die Initialisierung und die ersten Schritte der UTM U fur das Beispielc(T⇤2)#9 nach. Sie mussen dabei nicht jenden Konfigurationsubergang notieren, ein in-formelles Vorgehen, bei dem Sie sich klar machen, wann welche Bandinschriften vorliegenund welche Kopfbewegungen stattfinden reicht aus.

1.6 Weitere Formalismen

1.6.1 Registermaschinen

Siehe [AB02, Abschnitt 1.1, Seite 18-35].

1.6.2 ���-Kalkul

1.7 Church-Turing-These

In den vorangegangenen Abschnitten haben wir gesehen, dass unterschiedlichen Formali-sierungen des Berechenbarkeitsbegri↵s jeweis zum gleichen Ergebnis gefuhrt haben. Wirhalten dieses Ergebnis an dieser Stelle noch einmal explizit fest:

25

Page 27: Skript R1

Satz 1.12. Die durch

• Turingmaschinen (LBB, Einband, Mehrband, mehrdim. Band)

• While-Programme

• Goto-Programme

• µµµ-rekursive Funktionen

• Registermaschinen

• Lambda-Kalkul

formalisierten Berechenbarkeitsbegri↵e stimmen uberein.

Dieses zentrale Ergebnis der Informatik wird als Church-Turing-These bezeichnet:

Die Klasse der Turing-berechenbaren Funktionen ist genau die Klasse derintuitiv berechenbaren Funktionen.

26

Page 28: Skript R1

Kapitel 2

Entscheidbarkeit

Eine Funktion heißt berechenbar, wenn es eine Turingmaschine gibt, die sie berechnet.Der Berechenbarkeits-Begri↵ wird verwendet, um eine Aussage uber die algorithmischeLosbarkeit von Problemen zu tre↵en. Hierbei beschranken wir uns zunachst auf so genannteEntscheidungsprobleme1. Bei diesen wird eine Frage gestellt, die mit Ja oder Neinbeantwortet werden kann.

Beispiel: Beim Traveling-Sales-Person-Problem (TSP) wird die Frage gestellt, ob manin einem gegeben Netz aus Stadten und Wegen, die diese verbinden, eine Rundreise findenkann, die jede Stadt genau einmal besucht und die kurzer als eine gegebene obere Schrankeist.

Ist ein gewichteter Graph aus Stadten und Wegen, sowie eine Schranke gegeben, so kanndiese Frage mit Ja oder Nein beantwortet werden2.

Formalisieren konnen wir dies durch die Menge L aller Probleminstanzen, fur die die Fragemit Ja zu beantworten ware. Die weitere Formalisierung erfordert, dass wir diese Proble-minstanzen codieren. Wir werden daher fordern, dass die Beschreibung der Probleminstan-zen uber einem endlichen Alphabet erfolgt, dass also L ✓ ⌃⇤.

2.1 Entscheidbare Mengen

Eine Menge, L ✓ ⌃⇤ heißt entscheidbar, wenn ihre charakteristische Funktion

�L

: ⌃⇤ ! {0, 1} �L

(w) =

(1 : w 2 L

0 : w 62 L

1Von Optimierungsproblemen und Approximationsproblemen kann man zeigen, dass deren Losung un-ter bestimmten Randbedingungen auf die Losung des zugehorigen Entscheidungsproblems zuruckgefuhrtwerden kann.

2Das zugehorige Optimierungsproblem ware die Frage nach einem kurzesten Hamilton-Kreis durchdiesen Graph.

27

Page 29: Skript R1

berechenbar ist, das heißt, wenn es eine Turingmaschine T gibt, mit

fT = �L

Turingmaschinen konnen endlos laufen, oder nichtakzeptierend anhalten, d.h. sie berechnenpartielle Funktionen. Fordert man nur die Berechenbarkeit der partiellen Funktion

�0L

: ⌃⇤ ! {0, 1} �0L

(w) =

(1 : w 2 L

? : w 62 L

so nennt man L semi-entscheidbar.

Entscheidbarkeit ist o↵ensichtlich eine starkere Forderung als Semi-Entscheidbarkeit(vgl.Problem 67). Genauer gilt folgender Zusammenhang:

Satz 2.1. Eine Menge L ist entscheidbar genau dann wenn sowohl L, als auch L semi-entscheidbar sind.(Beweis ! P.68)

Ein weiterer Begri↵, der mit Entscheidbarkeit verbunden ist, ist rekursive Aufzahlbarkeit.

L ✓ ⌃⇤ heißt rekursiv aufzahlbar, wenn

• L = ;

• oder wenn es eine berechenbare totale Funktion3 f : N! ⌃⇤ gibt, so dass

L = {f(0), f(1), . . .} = f(N)

Es gilt:

Satz 2.2. L ist semi-entscheidbar gdw. L ist rekursiv aufzahlbar. (Beweis ! P.69)

Fur Turingmaschinen nennt man die Menge der Worter w 2 ⌃⇤, fur die eine akzeptierendeBerechnung existiert die Sprache von T :

LT = { w 2 ⌃⇤ | w `⇤ vn

qn

wn

mit qn

2 F }

Der berechnete Wert ist hier irrelevant. Es gilt

Satz 2.3. L ist semi-entscheidbar gdw. L = LT fur eine Turingmaschine T . (Beweis! P. 70))

Satz 2.4. L ist entscheidbar gdw. L = LT fur eine Turingmaschine ohne unendlicheBerechnungen, d.h. alle w 62 L werden verworfen.

3Die Funktion muss nicht injektiv sein.

28

Page 30: Skript R1

Geloste Probleme

67 Sei L eine entscheidbare Menge, zeigen Sie, dass L auch semi-entscheidbar ist.

68 Beweisen Sie Satz 2.1.

69 Beweisen Sie Satz 2.2.

70 Beweisen Sie Satz 2.3

71 Zeigen Sie, dass das Primzahlproblem Lprim = {bin(n) | n ist eine Primzahl} rekursivaufzahlbar ist.

2.2 Unentscheidbare Probleme

Tatsachlich gilt fur viele Probleme, dass sie nicht entscheidbar sind. In einigen Fallen kannjedoch ein Semi-Entscheidungsverfahren angegeben werden. Solche Probleme sind dannalso unentscheidbar aber semi-entscheidbar. Das wohl beruhmteste Beispiel eines solchenProblems ist das Halteproblem.

2.2.1 Das Halteproblem

Unter Halteproblem versteht man die Frage, ob eine Programm bei einer gegebenen Einga-be anhalt oder nicht. Formalisiert man diese Frage unter Verwendung von Turingmaschi-nen, so erhalt man das Halteproblem

H = { w#x | Tw

halt bei Eingabe x }

Das Halteproblem ist unentscheidbar aber semi-entscheidbar. Dies werden wir in den fol-genden Abschnitten schrittweise herleiten.

Unentscheidbarkeit des speziellen Halteproblems Das spezielle Halteproblem

H0 = { w | Tw

halt bei Eingabe w an }

stellt die Frage, ob ein Programm mit sich selbst als Eingabe4 anhalt oder nicht. Es gilt:

Satz 2.5. H0 ist unentscheidbar.

Dies zeigen wir durch einen einfachen Widerspruchsbeweis:

Angenommen H0 ware entscheidbar, dann folgt zwingend ein Widerspruch.

4Genau genommen mit seinem Codewort als Eingabe.

29

Page 31: Skript R1

Wenn H0 entscheidbar ist, dann gibt es eine Turingmaschine T 0 die H0 entscheidet, also

�H0 = fT 0

In Abschnitt 1.5.4 haben wir gezeigt, dass wir Turingmaschinen zusammensetzen konnen.Es ist also moglich folgende Konstruktion vorzunehmen:

T 0

w

hält Tw beiEingabe w?

akzeptiere

T

1 0

Abbildung 2.1: Konstruktion der Turingmaschine T , basierend auf der Annahme, dass T 0

existiert, das H0 entscheidet.

Da T 0 H0 entscheidet, berechnet T 0 die charakteristische Funktion von H0 und halt stetsmit der Ausgabe 1 oder 0 an. Die konstruierte TM T lauft endlos, falls T 0 eine 1 ausgibtund akzeptiert (z.B. mit Ausgabe 0), wenn T 0 eine 0 ausgibt.

Beweis. Sei w = code(T )

T halt bei Eingabe w

, w 2 H0 wegen T = Tw

, fT 0 = 1 T 0 entscheidet H0 und �H0 (w) = 1

, T halt nicht bei Eingabe w Konstruktion von TWiderspruch!

Der gleiche Widerspruch ergibt sich, falls T nicht halt.5

Das Reduktionsprinzip Oft kann man fur zwei Sprachen (Probleme) A ✓ ⌃⇤ undB ✓ �⇤ eine berechenbare totale Funktion f : ⌃⇤ ! �⇤ angeben6, so dass

a 2 A, f(a) 2 B

Ist dies der Fall, so nennt man A reduzierbar auf B und schreibt:

A B

Satz 2.6. Wenn A B und B (semi-) entscheidbar, dann ist auch A (semi-) entscheidbar.(Beweis ! P.72)

5Durch die Aquivalenzen kann man den Beweis auch ruckwarts lesen.6Dies geschieht durch Angabe eines Algorithmus P , so dass f = fP . Der Algorithmus transformiert

eine Instanz des Problmes A in eine Instanz des Problems B.

30

Page 32: Skript R1

Die Unentscheidbarkeit des Halteproblems ergibt sich nun einfach durch die Re-duktion H0 H und somit:

Satz 2.7. Das Halteproblem H ist unentscheidbar. (Beweis ! P. 73)

Semientscheidbarkeit des Halteproblems H ist zwar unentscheidbar, jedoch kannmit Hilfe universeller Turingmaschinen (vgl. Abschnitt 1.5.4) fur jedes Wort w#x gepruftwerden, ob T

w

bei Eingabe x anhalt. Hierzu muss nur Tw

bei Eingabe x simuliert werden.Damit ergibt sich

Satz 2.8. Das Halteproblem H ist semi-entscheidbar.

Bemerkung 2.1. Das Komplement des Halteproblems (die Frage ob ein Programm nichthalt) ist nicht semi-entscheidbar.

Wahre H semi-entscheidbar, dann ware H entscheidbar (vgl. Satz 2.1)

2.2.2 Der Satz von Rice

Satz 2.9. Sei R die Klasse der berechenbaren Funktionen und sei S ( R eine nichtleereTeilmenge von R. Dann ist die Sprache

LS = { w | Die von Tw

berechnete Funktion liegt in S }

unentscheidbar.

Der Satz besagt: wenn wir eine Spezifikation S gegeben haben und eine ImplementierungTw

vorliegt, die angeblich diese Spezifikation erfullt, so gibt es keinen Algorithmus, derdies bei Eingabe S und w uberprufen kann. D.h. es kann nicht entschieden werden ob einProgramm seine Spezifikation erfullt oder nicht.7

Um diesen zentralen Satz der Informatik zu beweisen, sind einige Vorarbeiten notwendig:

Beweis. Wir fuhren zwei getrennte Beweise, jenachdem ob die Spezifikation die vollstandigundefinierte Funktion enthalt oder nicht.

Sei zunachst f? 2 S.

• Sei fr�s

eine Funktion aus R \ S eine Funktion außerhalb der Spezifikationund T

r�s

die TM, die fr�s

berechnet.

• Sei Tbeliebig

, kurz Tb

eine beliebige Turingmaschine

• Konstruiere TM Tu

(u fur unentscheidbar), die folgendes Verhalten zeigt:

7Gleichwohl kann fur ein konkretes Programm und eine konkrete Spezifikation dieser Beweis gelingen.Daher muss er im Zweifelsfall durch einen Beweis (z.B. im Hoare-Kalkul) erbracht werden.

31

Page 33: Skript R1

Bei Eingabe y ignoriert Tu

diese zunachst und verhalt sich wie Tb

. Akzep-tiert T

b

, verhalt sich Tu

danach wie Tr�s

, lauft Tb

endlos, so lauft auch Tu

endlos.

Wir beobachten folgendes:

1. Die Konstruktion von Tu

ist einfach.

2. Das Codewort u von Tu

kann berechnet werden.

3. u = ⌧(b) fur eine geeignete berechenbare Transformations-Funktion ⌧

fu

=

⇢fr�s

: falls Tb

bei leerem Band akzeptiertf? : falls T

b

bei leerem Band endlos lauft

Mit Hilfe der so konstruierten Funktion konnen wir nun die Unentscheidbarkeit von LSdurch die Reduktion H

"

LS zeigen.

Wir fuhren folgende Fallunterscheidung durch:

Fall 1 b 2 H"

b 2 H"

) Tb

stoppt bei leerem Band

) Tu

berechnet fr�s

) fu

liegt nicht in S) u = ⌧(b) 62 LS

Fall 2 b 62 H"

b 62 H"

) Tb

stoppt nicht bei leerem Band

) Tu

berechnet f?) f

u

liegt in S) u = ⌧(b) 2 LS

Insgesamt erhalten wir:

b 2 H"

, ⌧(b) 62 LS also: b 2 H"

, ⌧(b) 2 LS

) H"

LS also LS unentscheidbar.

Satz von Rice (Beweis - Fall 2: f? 62 S) (Beweis ! P. 76)

32

Page 34: Skript R1

Geloste Probleme

72 Beweisen Sie Satz 2.6.

73 Beweisen Sie Satz 2.7.

74 Das Komplement des Halteproblems ist nicht semi-entscheibar. Beweisen Sie dies.

75 Das Problem H"

= { w | Tw

halt bei leerer Eingabe } ist unentscheibar. Beweisen Sie dies.

76 Beweisen Sie den zweiten Teil (f? 62 S) des Satz von Rice.

77 Zeigen Sie, daß folgende Sprachen unentscheidbar sind:

(a) H8 = {w | Tw

halt fur alle Eingaben an}(b) H9 = {w | es gibt eine Eingabe x, fur die T

w

anhalt}(c) H8

(d) H9

Hinweis: Mit einer Reduktion des Halteproblems auf die in (a) und (b) genannten Problemeist man gut beraten.

78 Zeigen Sie, daß das Aquivalenzproblem fur TMs

Aquiv = {w#v : w, v 2 {0, 1}⇤, fTw = fTv}nicht semientscheidbar ist.

Hinweis: Benutzen Sie das Reduktionsprinzip fur semientscheidbare Sprachen (Satz 2.6) inder Form

L K und L nicht semientscheidbar =) K nicht semientscheidbar.

79 Zeigen Sie die Aquivalenz der folgenden Aussagen.

(a) L ist semientscheidbar

(b) es gibt eine partielle berechenbare Funktion f : ⌃⇤ ! ⌃⇤, so daß fur alle x 2 ⌃⇤ gilt:

f(x) 6= ? gdw x 2 L

(c) es gibt eine totale berechenbare Funktion g : N! ⌃⇤ mit g(N) = L.

Dabei ist ⌃ ein Alphabet und ; 6= L ✓ ⌃⇤.

80 Geben Sie ein deterministisches Semientscheidungsverfahren und ein (rekursives) Aufzahlungsverfahrenfur die Sprache

H9 = {w 2 {0, 1}⇤ : es existiert ein x 2 {0, 1}⇤, so daß Tw

bei Eingabe x anhalt}an. Es genugt eine verbale Beschreibung der Verfahren, in der die wesentlichen Ideen skiz-ziert sind.

33

Page 35: Skript R1

Kapitel 3

Komplexitat

In diesem Kapitel werden wir entscheidbare Probleme genauer untersuchen. Dabei werdenwir insbesondere den Zeit- und Platz-Bedarf betrachten, den ein Algorithmus zur Losungbenotigt.

3.1 Nichtdeterminismus

Eine nichtdeterministische Turinmaschine

T = (Q,⌃,�, �, q0, F )

ist definiert wie eine deterministische TM, mit Ausnahme von �, das nun keine Funktion,sondern eine Relation

� ✓ Q⇥ �⇥Q⇥ �⇥R, mit R = { ,�,!}

Statt (q, a, q1, a1, r1) 2 � werden wir folgende aquivalente Schreibweise bevorzugen

�(q, a) = {(q1, a1, r1, ), . . .}

und die Menge aller Ubergange notieren.

Konfigurationen, Berechnungsbaume, akzeptierte Sprache

Konfigurationen von NTMs: Die Konfigurationsrelation `T (oder `) und derenreflexive Hulle `⇤T (oder `⇤) sind wie fur deterministische TMs definiert. Maximale Folgenvon Konfigurationswechseln heißen Berechnungen.

Man beachte, daß es fur NTMs im allgemeinen zu jeder Konfiguration k = vqw mehrereNachfolgekonfigurationen gibt. Insbesondere kann es zu jedem Wort viele Berechnungengeben.

Berechnungsbaume: Jedem Eingabewort w 2 ⌃⇤ kann man einen Berechnungsbaumzuordnen, dessen maximalen Pfade den moglichen Berechnungen entsprechen.

34

Page 36: Skript R1

• Die Wurzel des Berechnungbaums ist mit der Anfangskonfiguration q0 w beschriftet.1

• Fur innere Knoten, die mit k = vqbw markiert sind und gilt

�(q, b) = {(q1, b1, R1), . . . , (qk, bk, Rk

)},

dann besitzt der Konten genau k Sohne, die jeweils mit den Nachfolgekonfigurationenvon k bzgl. (q

i

, bi

, Ri

) beschriftet sind (i = 1, . . . , k).

Man beachte, daß der Berechnungsbaum sowohl akzeptierende als auch verwerfende alsauch unendliche Berechnungen enthalten kann.

Akzeptierte Sprache: Die von einer NTM T akzeptierte Sprache ist

L(T ) = {w 2 ⌃⇤ : es gibt eine akzeptierende Berechnung von T fur w}

Wie fur TMs gilt also:

w 2 L(T ) gdw q0 w `⇤ v0 q w0 fur ein q 2 F .

Umgekehrt gilt w 2 ⌃⇤\L(T ) genau dann, wenn alle Berechnungen von T fur w verwerfendoder endlos sind.

Nichtdeterministisches Entscheidungsverfahren: Eine NTM T entscheidet eine Spra-che L, falls

• L(T ) = L und

• der Berechnungsbaum jedes Eingabeworts endlich ist.

Bemerkung 3.1. T entscheidet also genau dann die Sprache L, wenn L = L(T ) und allemoglichen Berechnungen von T verwerfend oder akzeptierend sind.

Aquivalenz von NTMs und TMs

O↵enbar konnen TMs als Spezialfall von NTMs angesehen werden, in denen die Mengen�(q, a) stets hochstens einelementig sind.2 Wir zeigen nun, daß NTMs durch TMs simuliertwerden konnen.

Satz 3.1. Zu jeder NTM T gibt es eine TM T 0 mit L(T ) = L(T 0).

Beweis. Die Grundidee der Simulation besteht darin, den Berechnungsbaum mit einer Brei-tensuche (BFS) zu durchlaufen.3 Sobald eine akzeptierende Berechnung (ein akzeptierendesBlatt) gefunden ist, halten wir akzeptierend an.

1Ist w = ", dann identifizieren wir q0 w mit q0 ⇤.2Falls �(q, a) 6= ;, dann identifizieren wir �(q, a) mit der Menge {�(q, a)}. Weiter identifizieren wir ?

mit der leeren Menge.3Der Berechnungsbaum ist endlich verzweigend. Die Breitensuche (gestartet in der Wurzel) findet stets

jedes Blatt. Diese Aussage gilt nicht fur die Tiefensuche (DFS).

35

Page 37: Skript R1

Wenn T eine akzeptierende Berechnung fur ein Wort x hat, dann ist sichergestellt, daß dieseakzeptierende Berechnung mit der Breitensuche gefunden wird. Es gilt also L(T ) = L(T 0),wenn wir T 0 gemaß Algorithmus des skizzierten Algorithmus konzipieren (vgl. auch [AB02,S. 112])

3.2 Zeitkomplexitatsklassen

3.2.1 Kostenmaße fur TMs

Die E�zienz einer Turingmaschine T wird an den Kostenfunktionen tT und sT gemessen,die die benotigte Rechenzeit bzw. den benotigten Platzbedarf angeben. Im folgenden seiT eine Einband- oder Mehrband-Turingmaschine mit dem Eingabealphabet ⌃.4

Zeit- und Platz-Komplexitat von TMs: Die Funktion tT : ⌃⇤ ! N [ {1} zahlt furjedes Eingabewort w 2 ⌃⇤ die Lange der Berechnung von T fur w.

tT (w) = Anzahl der Konfigurationswechsel, die T bei Eingabe w durchfuhrt

Falls T bei Eingabe w endlos lauft, dann ist tT (w) =1.

Die Funktion sT : ⌃⇤ ! N [ {1} zahlt die Anzahl an Bandzellen, die bei der Berechnungvon T fur das Eingabewort besucht werden.

sT (w) = Anzahl an Bandzellen, die T bei der Eingabe w besucht.

Als”besucht“ gilt eine Bandzelle genau dann, wenn zu irgendeinem Zeitpunkt wahrend

der Berechnung von T der Kopf auf die betre↵ende Bandzelle zeigt.

Bei Zeit- und Platzanalysen ist es ublich, von den konkreten Eingabedaten zu abstrahie-ren und stattdessen auf die Eingabegroße zuruckzugreifen. Fur Turingmaschinen wird dieEingabegroße an der Lange des Eingabewortes gemessen.

Wir verwenden Kleinbuchstaben t, s fur Zeit- und Platzkomplexitat in Abhangigkeit kon-kreter Eingaben, wahrend die Großbuchstaben T, S Komplexitaten in Abhangigkeit vonder Eingabegroße kennzeichnen.

Zeit- und Platzkomplexitat in Abhangigkeit der Eingabegroße: Die Abbildungen

TT , ST : N! N [ {1}

seien gegeben durch

TT (n) = max{tT (w) : w 2 ⌃⇤, |w| n},ST (n) = max{sT (w) : w 2 ⌃⇤, |w| n}.

4Fur manche Komplexitatsklassen ist es entscheidend, daß man Turingmaschinen mit separatem Ein-gabeband betrachtet. Die durch die Eingabe belegten Bandzellen werden dann in der Platzanalyse nichtberucksichtigt. Beispielsweise macht der Begri↵

”logarithmischer Platzbedarf“ nur fur Turingmaschinen

mit separatem Eingabeband Sinn; da dann nur die besuchten Zellen der Arbeitsbander in die Platzfunkti-on sT eingehen. Fur die Komplexitatsklassen, die wir in diesem Buch betrachten, ist es jedoch irrelevant,ob wir Turingmaschinen mit separatem Eingabeband betrachten oder nicht.

36

Page 38: Skript R1

Wir nennen T polynomiell zeitbeschrankt, wenn es ein Polynom p gibt, so daß

TT (n) p(n) fur alle n 2 N.

und polynomiell platzbeschrankt,

ST (n) p(n) fur alle n 2 N.

Bemerkung 3.2. [Zusammenhang Zeit- und Platzkomplexitat] O↵ensichtlich gilt:

sT (w) tT (w) + 1

fur alle Eingabeworter w. Somit ist ST (n) TT (n) + 1 fur alle n 2 N.

Rechenzeit von NTMs: Sei T eine Einband-NTM mit dem Eingabealphabet ⌃. Wirdefinieren die Funktion tT : ⌃⇤ ! N [ {1} durch

tT (x) = maximale Lange einer Berechnung von T fur x.

O↵enbar ist tT (x) die Hohe des Berechnungsbaums von T fur x. Wir erweitern tT zu einerAbbildung

TT : N! N [ {1}in Abhangigkeit der Eingabegroße.

TT (n) = max {tT (x) : x 2 ⌃⇤, |x| n} .

Geloste Probleme

81 Geben Sie einen nichtdeterministischen Algorithmus an, der das Erfullbarkeitsproblem derAussagenlogik lost.

3.2.2 Komplexitatsklassen

Zeitkomplexitatsklassen: Sei ' : N! N eine totale Funktion.

DTIME('(n))

bezeichnet die Klasse aller Sprachen L ✓ ⌃⇤, fur die es eine Ein- oder Mehrband-TM Tgibt, so daß gilt:

• T entscheidet L

• TT (n) = O('(n))

37

Page 39: Skript R1

Entsprechend ist NTIME('(n)) die Klasse aller Sprachen L ✓ ⌃⇤, fur die es eine NTM Tgibt, die L entscheidet und fur die TT (n) = O('(n)) gilt.

Man beachte, daß Elemente der Zeitkomplexitatsklassen DTIME('(n)), NTIME('(n))stets entscheidbare Sprachen sind.

Die Klassen P, NP und EXPTIME: P bezeichnet die Klasse aller mit einer TM inpolynomieller Zeit losbaren Probleme; NP die Klasse aller mit einer NTM in polynomiellerZeit losbaren Probleme.

P = PTIME =[

k�1

DTIME�nk

NP = NPTIME =[

k�1

NTIME�nk

Eine weitere wichtige Zeitkomplexitatsklasse ist

EXPTIME =[

c>1

[

k�1

DTIME⇣cn

k⌘,

die alle Probleme erfaßt, die sich in exponentieller Zeit mit einer TM losen lassen.

Beispielsweise liegt SAT (das Erfullbarkeitsproblem der Aussagenlogik) in

• EXPTIME (da SAT z.B. durch einen Backtracking Algorithmus exponentieller Lauf-zeit gelost werden kann),

• NP da wir einen nichtdeterministische Algorithmus angeben konnen, der polynomi-elle Laufzeit hat (! P. 84).

Satz 3.2. Es gilt:

P ✓ NP ✓ PSPACE = NPSPACE ✓ EXPTIME

Beweis. O↵ensichtlich gilt P ✓ NP und da jede NTM mit exponentiellem Aufwand durcheine det. TM simuliert werden kann gilt ebenfalls NP ✓ EXPTIME.

Weiter gilt o↵ensichtlich P ✓ PSPACE und NP ✓ NPSPACE (vgl. Bemerkung 3.2).

Der Satz von Savitch (den wir nicht beweisen werden) besagt, dass PSPACE = NPSPACE.

Zum Beweis von NP ✓ PSPACE simulieren wir eine polynomiell zeitbeschrankte NTM Tdurch eine det. TM, die den Berechnungsbaum von T mit einer Tiefensuche durchlauft.Sei p ein Polynom, so daß

TT (n) p(n) fur alle n 2 N.

Zur Durchfuhrung der DFS ist polynomieller Platz ausreichend, da die Rekursionstiefedurch p(n) beschrankt ist, wenn n die Lange des Eingabeworts ist.

Wir zeigen nun die Inklusion PSPACE ✓ EXPTIME . Hierzu betrachten wir eine poly-nomiell platzbeschrankte det. TM T . Sei p ein Polynom, so daß T fur die Eingabe x 2 ⌃⇤

38

Page 40: Skript R1

hochstens p(|x|) Bandzellen besucht. Die Gesamtanzahl an moglichen Konfigurationen, dieT bei der Bearbeitung von x durchlauft, ist durch

p(|x|) · |Q| · |�|p(|x|)

beschrankt, wobei Q der Zustandsraum und � das Bandalphabet von T ist. Der Fak-tor p(|x|) steht fur die moglichen Positionen des Lese/Schreibkopfs und |�|p(|x|) fur diemoglichen Belegungen der p(|x|) Bandzellen.Wir wahlen eine Konstante c � 1 und ein Polynom q, so daß

cq(n) � p(n) · |Q| · |�|p(n)

fur alle n 2 N. Da T deterministisch ist und fur alle Eingaben anhalt, kann keine Konfigu-ration wiederholt wahrend der Berechnung fur x auftreten. Daher ist die Rechenzeit von Tdurch die Gesamtanzahl an durchlaufenen Konfigurationen bestimmt. Hieraus folgt, daßT exponentiell zeitbeschrankt ist.

Geloste Probleme

82 Bestimmen Sie fur die Turingmaschinen T+1 Laufzeit und Platzbedarf fur die Eingabe 17an.

83 Wie ist die sind Laufzeit TT+1(n) und Platzbedarf ST+1(n)?

84 Geben Sie einen nichtdeterministischen Algorithmus an, der das Erfullbarkeitsproblem derAussagenlogik in polynomieller zeit lost. .

85 Zeigen Sie, dass der Test auf Zusammengesetztheit, also die Frage: “Besitzt die Eingabe neinen Teiler t 62 {1, n}?”, in NP liegt.

3.3 Das P=NP-Problem

3.3.1 Polynomielle Reduktion

Polynomielle Unterschiede in der Laufzeit- oder Platz-Komplexitat konnen in den ein-gefuhrten Komplexitatsklassen nicht unterschieden werden. Daher kann die Zugehorigkeiteines Problem zu einer Komplexitatsklasse durch die folgende Vorgehensweise nachgewie-sen werden:

Seien A ✓ ⌃⇤ und B ✓ �⇤ zwei Entscheidungsprobleme (Sprachen). A heißt polynomiellauf B reduzierbar:

A p

B

39

Page 41: Skript R1

wenn eine berechenbare totale Funktion f : ⌃⇤ ! �⇤ und ein Polynom p(n) existieren, sodass

a 2 A, f(a) 2 B

und die Laufzeit der TM Tf

, die f berechnet, polynomiell begrenzt ist:

TTf (n) p(n), fur alle n 2 N

Satz 3.3. Sei A p

B dann gilt:

i) B 2 P ) A 2 P

ii) B 2 NP) A 2 NP

iii) B 2 PSPACE) A 2 PSPACE

Bemerkung 3.3. A p

B konnte man umgangssprachlich als A ist nicht schwieriger alsB lesen.

Wenn namlich B mit polynomiellem Aufwand gelost werden kann und A durch eine poly-nomielle Reduktion auf B losbar ist, dann ist auch A mit polynomiellem Aufwand losbar.

A konnte aber – durch einen klugen Algorithmus – e�zienter losbar sein als B.

3.3.2 NP-Harte, NP-Vollstandigkeit

Aufgrund einer falschen Ubersetzung bezeichnet man Probleme, die mindestens so schwie-rig sind wie alle Probleme der Komplexitatsklasse NP als NP-hart (auch NP-schwierig).

Praziser definiert man: B heißt NP-hart, gdw. fur alle Probleme A 2 NP gilt:

A p

B

B heißtNP-vollstandig, wenn B zusatzlich inNP liegt. Die Klasse derNP-VollstandigenProbleme bezeichnet man mit NPC.

Bemerkung 3.4. Die NP-vollstandigen Probleme sind die schwierigsten Probleme in NP

3.3.3 Das P=NP-Problem

Es ist ungelost, ob P 6= NP. Vielversprechende Kandidaten fur Probleme aus NP\P sindalle Probleme aus NPC. Es ist daher interessant diese zuvor charakterisierte Klasse genauzu bestimmen.

40

Page 42: Skript R1

3.3.4 Reduktionsbeweise zum Nachweis der NP-Vollstandigkeit

Das erste Problem, von dem nachgewiesen werden konnte, dass es NP-vollstandig ist, wardas Erfullbarkeitsproblem er Aussagenlogik SAT. Der Beweis geht auf Cook zuruck (vgl.Abschnitt 3.3.5).

Nachdem nun ein Problem ausNPC bekannt war, war der Nachweis derNP-Vollstandigkeitfur weitere Probleme nun weniger schwierig.

Satz 3.4. Sei A ein NP-hartes Problem und A p

B, dann ist auch B NP-hart.

Zum Nachweis der NP-Vollstandigkeit eines Problems B genugt also die Reduktion einesProblems A 2 NPC auf B sowie die Angabe eine nichtdet. Algorithmus zur Losung vonB.

Bemerkung 3.5. Wichtig: beachten Sie die Richtung der Reduktion!

Die Probleme aus NPC sind Kandidaten fur Probleme, die sich nicht deterministisch inPolynomialzeit losen lassen. Es gilt

Satz 3.5. Sei L 2 NPC, dann gilt

L 2 P , P = NP

Beweis. Wenn NP = P ist, dann ist nichts zu zeigen. Wir nehmen an, daß K eine NP-vollstandige Sprache mit K 2 P ist. Wir zeigen, daß dann P = NP gilt.

Sei K 2 NP. Da L NP-hart ist, gilt

K p

L.

Aus Teil (i) von Satz 3.3 folgt K 2 P . Da K beliebig wahlbar ist gilt somit P = NP

Als Beispiel fur eine polynomielle Reduktion betrachten wird die Reduktion SAT p

3SATund zeigen:

Satz 3.6.3SAT 2 NPC

O↵enbar liegt 3SAT in NP (Guess& Check-Methode). Wir zeigen, daß sich SAT auf 3SATpolynomiell reduzieren laßt, d.h.

SAT p

3SAT.

Wir geben ein Polynomialzeitverfahren an, das eine gegebene aussagenlogische Formel ↵in eine erfullbarkeitsaquivalente Formel ↵0 in 3KNF uberfuhrt. In einem ersten Schritterstellen wir in O(|↵|) Schritten den Syntaxbaum fur ↵, der die Operatoren ¬, ^ und _benutzt.

41

Page 43: Skript R1

Durch Anwenden der de Morganschen Regeln

¬(�1 ^ �2) ⌘ ¬�1 _ ¬�2, ¬(�1 _ �2) ⌘ ¬�1 ^ ¬�2

und der Regel fur doppelte Verneinung

¬¬� ⌘ �

konnen wir die Negationsknoten des Syntaxbaums eliminieren und erhalten einen modifi-zierten Baum T , dessen innere Knoten mit ^ oder _ beschriftet sind und dessen BlatterLiterale reprasentieren.

Die Kosten der beschriebenen Transformation sind linear in der Große des Syntaxbaums,also O(|↵|).Wir ordnen jedem Knoten v des Baums T ein neues Aussagensymbol zu. Zur Vereinfachungder Formalismen verwenden wir die Knotennamen als Aussagensymbole.

Syntaxbaum: Eliminieren vom Negationsknoten

¬y

x

¬z

¬

¬

x

z

¬

y� � v0 � (v0 � v � ¬ z) � (v � x � ¬y

v0 � v � ¬ z

v � x � ¬y

Abbildung 3.1: Transformation des Syntaxbaumes fur ↵ = ¬(¬(x_¬y)_z) ⌘ (x_¬y)^¬z

Ist v ein innerer Knoten mit den beiden Sohnen vL

und vR

und ist op der Verknupfungsoperator,mit dem v beschriftet ist (also entweder op = ^ oder op = _), dann ordnen wir v die Formel

↵v

= v $ (vL

op vR

)

zu. Dabei steht $ fur den Aquivalenzoperator �1 $ �2 = (�1 ^ �2) _ (¬�1 ^ ¬�2). DieFormel ↵

v

kann in konstanter Zeit in eine aquivalente Formel ↵0v

in 3KNF gebracht werden.Dazu benutzen wir die folgenden Regeln:

v $ (vL

_ vR

) ⌘ (v _ ¬vL

) ^ (¬v _ vL

_ vR

) ^ (v _ ¬vR

)

v $ (vL

^ vR

) ⌘ (¬v _ vL

) ^ (¬v _ vR

) ^ (v _ ¬vL

_ ¬vR

)

42

Page 44: Skript R1

Man beachte, daß die Formeln auf der rechten Seite eine feste Lange (namlich 9 bzw. 10)haben und daher nur konstante Kosten entstehen.5 Ist v ein Blatt, dann identifizieren wirv mit dem Literal, mit dem v beschriftet ist. Sei

↵0 =

^

v

↵0v

!^ v0,

wobei v0 den Wurzelknoten bezeichnet. (Dabei quantifiziert v uber alle inneren Knoten desmodifizierten Syntaxbaums.)

Geloste Probleme

86 Beweisen Sie Satz 3.3.

87 Beweisen Sie Satz 3.4.

88 Beweisen Sie die Korrektheit der Konstruktion zur Reduktion SAT p

3SAT (vgl. Satz 3.6).

3.3.5 Satz von Cook

(Vergleiche [AB02] und [Sch92])

Satz 3.7. SAT 2 NPC

Das Erfullbarkeitsproblem (SAT fur satisfiability problem) der Aussagenlogik fragt, ob einegegebene aussagenlogische Formel ↵ erfullbar ist6. Eine prazise Formulierung als Wortpro-blem verwendet eine Codierung der Formeln, z.B. mit dem Alphabet {¬,^, (, ), 0, 1}, wobeidie Binarzi↵ern 0, 1 zur Codierung der in ↵ vorkommenden Aussagensymbole x1, . . . , xn

verwendet werden. Man macht sich leicht klar, wie diese Codierung prazisiert werden kann.Zur besseren Lesbarkeit werden wir im folgenden mit nicht-codierten Formeln arbeiten.

SAT (Erfullbarkeitsproblem der Aussagenlogik)

• Gegeben: aussagenlogische Formel ↵

• Gefragt: Ist ↵ erfullbar?

Beweis. Ein nichtdeterministischer Algorithmus mit polynomieller Laufzeit kann basierendauf der Guess&Check-Methode angegeben werden. Damit ist

SAT 2 NP.5Selbstverstandlich ist der Umweg uber die Formel ↵v unnotig. Jedoch ist die Semantik von ↵v o↵en-

sichtlicher als die der angegebenen aquivalenten Formeln ↵

0v in 3KNF.

6In Anhang ref Seite 43 ↵. werden die notwendigen Grundbegri↵e der Aussagenlogik kurz wiederholt.Leserinnen und Leser, die diese nicht mehr parat haben, konnen ihre Kenntnisse dort au↵rischen.

43

Page 45: Skript R1

Wir zeigen nun, daß SAT NP-hart ist. Hierzu mussen wir nachweisen, daß jedes NP-Problem L auf SAT polynomiell reduzierbar ist.

Sei L eine Sprache inNP und sei T = (Q,⌃,�, �, q0,⇤, F ) eine polynomiell zeitbeschrankteNTM, die L entscheidet. Wir konnen o.E. annehmen, daß �(q, a) = {(q, a,N)} fur alleq 2 F . Sei p ein Polynom, das die Laufzeit von T beschrankt, also

tT (x) p(|x|)

fur alle x 2 ⌃⇤. Wir konnen o.E. voraussetzen, daß alle Koe�zienten von p ganze Zahlen� 0 sind und daß p(n) � n fur alle n 2 N. Wir zeigen, daß

L = L(T ) poly SAT.

Hierzu geben wir eine in Polynomialzeit durchfuhrbare Transformation an, die zu gegebenerEingabe x 2 ⌃⇤ eine Formel ↵ konstruiert, so daß ↵ genau dann erfullbar ist, wenn x 2L(T ).

Im wesentlichen codiert die Formel ↵ das Verhalten von T bei Eingabe x, wobei lediglich dieersten p(|x|) Schritte von T berucksichtigt werden. Tatsachlich wissen wir ja, daß T nachspatestens p(|x|) Konfigurationswechseln terminiert; unabhangig davon, wie der Nichtde-terminismus aufgelost wird. Desweiteren nutzen wir im folgenden die Beobachtung aus,daß T zur Bearbeitung von x hochstens tT (|x|) Bandquadrate besucht. Insbesondere sindhochstens die Bandquadrate mit den Nummern �p(|x|), . . . , 0, 1, . . . , p(|x|) von Belang.

Die Formel ↵ setzt sich wie folgt zusammen:

↵ = A ^ Ub ^ E ^ R.

Intuitiv steht A fur die Anfangsbedingung, Ub fur die Ubergangsfunktion, E fur die End-bedingung und R fur gewisse Randbedingungen. Die Konstruktion von ↵ beginnt mit derBerechnung des Werts p(|x|).7 In Abb. 3.3.5 (Seite 45) sind die verwendeten Aussagensym-bole erlautert.

Aussagen- Schreibweise Intuitive Bedeutungsymbol

zt,q

zustand(t) = q nach t Schritten ist T in Zustand q

yt,i

position(t) = i nach t Schritten zeigt der Lese/Schreibkopfvon T auf Bandzelle i

xt,i,a

band(t, i) = a nach t Schritten ist der Inhaltvon Bandzelle i gleich a

7Auch wenn wir das Polynom p nicht kennen, so ist p dennoch berechenbar.

44

Page 46: Skript R1

Dabei ist

• q 2 Q,

• a 2 �,

• i 2 {�p(|x|), . . . , 0, 1, . . . , p(|x|)} und

• t 2 {0, 1, . . . , p(|x|)}.

Wahrend i uber die Nummern der eventuell besuchten Bandzellen quantifiziert, steht derIndex t fur die jeweiligen Zeitpunkte. Wir benutzen intuitive Schreibweisen wie

zustand(t) 6= q anstelle von ¬zt,q

.

Zur Vereinfachung der folgenden Formeln verwenden wir Kurzschreibweisen wieV

q,i

. . .,wobei q alle Zustande durchlauft und i alle Werte aus dem Zahlenbereich

{�p(|x|), . . . , 0, . . . , p(|x|)}.

Man beachte, daß die Aussagensymbole vom Wert p(|x|) abhangig sind, der eine obereSchranke fur die Anzahl der Konfigurationswechsel von T vorgibt. Die Anzahl der Aussa-gensymbole ist in

⇥⇣p(|x|) · |Q| + |�| · p(|x|)2

also polynomiell in |Q|, |�| und |x|. Da � und Q von der Eingabe x unabhangig sind,konnen wir |Q| und |�| als Konstanten au↵assen. Somit ist die Zahl der Aussagensymbolepolynomiell in der Eingabelange |x|.Im folgenden nehmen wir an, daß

x = a1a2 . . . an,

wobei ai

2 ⌃. Insbesondere ist |x| = n.

Die Anfangsbedingung A codiert die Anfangskonfiguration q0 a1 . . . an von T fur Ein-gabe x. A legt die Komponenten fur den Zeitpunkt t = 0 fest.

A = ( zustand(0) = q0) ^ ( position(0) = 0) ^

^

1in

( band(0, i� 1) = ai

) ^^

�p(n)ip(n)

i/2{0,1,...,n�1}

( band(0, i) = ⇤)

Intuitiv beschreibt A, daß T im Zustand q0 startet und daß der Lese/Schreibkopf auf dasBandquadrat 0 zeigt. Die letzten beiden Konjunktionen legen die Inhalte der Bandquadratefest. Die Bandquadrate 0, 1, . . . , n� 1 sind mit den Eingabesymbolen belegt; alle anderenBandquadrate enthalten Blanks.

45

Page 47: Skript R1

Die Ubergangsbedingungen werden durch die Teilformel Ub beschrieben. Diese setztsich aus zwei Teilen zusammen.

Ub = Ub1 ^ Ub2.

Die Formel Ub1 beschreibt die Ubergangsmoglichkeiten von Zeitpunkt t zu Zeitpunkt t+1;wahrend Ub2 aussagt, daß sich die Inhalte aller Bandzellen, auf die der Lese/Schreibkopfnicht zeigt, unverandert bleiben.

Fur die Formel Ub1 nehmen wir eine leichte Modifikation an der Ubergangsfunktion � vor,um Berechnungen, die zu einem Zeitpunkt t < p(|x|) anhalten, leichter handhaben zukonnen. Wir setzen

�0(q, a) =

⇢{(q, a,N)} : falls �(q, a) = ; (oder q 2 F )�(q, a) : sonst.

Der Ubergang von � zu �0 hat lediglich technische Grunde. Im wesentlichen verlangert �0

die fruhzeitig terminierenden Berechnungen von T durch Konfigurationswiederholungen(bis zum Zeitpunkt t = p(n)).

Die Formel Ub1 ist nun wie folgt definiert:

Ub1 =V

t<p(n)�p(n)<i<p(n)

q,a

⇣�( zustand(t) = q) ^ ( position(t) = i) ^

( band(t, i) = a)��! �(t, q, i, a)

(Der”Pfeil“ �! steht fur den Implikationsoperator � �! � = ¬� _ �.)

Intuitiv steht die Teilformel �(t, q, i, a) fur die Menge �0(q, a) aller moglichen Ubergangeim Zustand q bei gelesenem Zeichen a.

�(t, q, i, a) =W

(q0,b,X)2�0(q,a)

�( zustand(t+ 1) = q0) ^ ( position(t+ 1) = i+X)

^ ( band(t+ 1, i) = b)�

Die durch die KomponenteX 2 {L,R,N} angegebene Bewegungsrichtung des Lese/Schreib-kopfs fassen wir als Zahl auf:

L entspricht -1, N entspricht 0, R entspricht 1.

Der zweite Teil der Formel fur die Ubergangsfunktion druckt aus, daß die Inschrift allerBandquadrate, auf die der Lese/Schreibkopf nicht zeigt, unverandert bleiben.

Ub2 =^

t<p(n)i,a

�( position(t) 6= i) ^ (band(t, i) = a) �! (band(t+ 1, i) = a)

Die Endbedingung charakterisiert die akzeptierenden Konfigurationen. Dabei genugt esden Zeitpunkt t = p(n) zu betrachten, da wir � zu einer totalen Funktion �0 modifiziert

46

Page 48: Skript R1

haben, fur die samtliche Endzustande Fangzustande.

E =_

q2F

( zustand( p(n) ) = q).

Die Randbedingungen werden durch R = R1 ^ R2 ^ R3 festgelegt. R1 besagt, daß sichT zu jedem Zeitpunkt t in genau einem Zustand befindet.

R1 =^

t

_

q

⇣( zustand(t) = q) ^

^

q

02Q\{q}

(zustand(t) 6= q0)⌘.

In Analogie sind die beiden anderen Teilformeln R2 und R3 definiert. Diese garantieren,daß fur jeden Zeitpunkt t der Lese/Schreibkopf von T auf genau ein Bandquadrat zeigt(R2) und daß zu jedem Zeitpunkt t genau ein Zeichen a 2 � in jeder Bandzelle i steht (R3)(vgl. auch Ubungsaufgabe 4.1).

Korrektheit der Konstruktion: Wir zeigen, daß x 2 L(T ) genau dann gilt, wenn ↵erfullbar ist.

• Ist x 2 L(T ) = L, dann kann man eine erfullende Belegung µ fur ↵ aus einerakzeptierenden Berechnung von T fur x konstruieren. Die Wahrheitwerte der Aussa-gensymbole unter der erfullenden Belegung µ ergeben sich, in dem wir die intuitiveInterpretation einsetzen. Z.B. ist der Wahrheitswert von z

t,q

genau dann gleich 1gesetzt, wenn in der akzeptierenden Berechnung der Zustand q nach dem t-ten Kon-figurationswechsel erreicht ist.

• Umgekehrt: Ist ↵ erfullbar, dann ergibt sich eine akzeptierende Berechnung aus einererfullenden Belegung fur ↵. An dieser Stelle sind die durch die Teilformel R angege-benen Randbedingungen entscheidend. Diese stellen sicher, daß wir jedem Zeitpunktt genau eine Konfiguration zuordnen konnen. Hieraus ergibt sich eine Berechnungfur T bei Eingabe x.8 Diese Berechnung ist akzeptierend, da durch die Formel Esichergestellt wird, daß ein Endzustand erreicht wurde.

Somit gilt:

x 2 L = L(T ) gdw ↵ erfullbar.

Kosten der Konstruktion: Abschließend mussen wir uns uberlegen, daß ↵ aus x inpolynomieller Zeit berechnet werden kann. Die Berechnung des Werts p(n) erfordert po-lynomielle Zeit. Fur die eigentliche Konstruktion von ↵ mussen wir uns lediglich davonuberzeugen, daß die Lange von ↵ polynomiell in |x| = n ist.9 O↵enbar ist

|A| = O(p(n)) und |E| = O(|F |) = O(1),

8Bei der Rekonstruktion der Berechnung ist zu beachten, daß nichtexistente Ubergange mit der modi-fizierten Ubergangsfunktion �

0 fur fruhzeitig terminierende Berechnungen stehen.9Wir haben uns oben bereits klargemacht, daß die Anzahl an Aussagensymbolen polynomiell in n ist.

Die Codierungslange von ↵ ist daher polynomiell in Anzahl an Operatoren von ↵ und der Lange von x.

47

Page 49: Skript R1

da |F | als konstant angesehen werden kann. Die Formeln zur Darstellung der Ubergangsfunktionhaben die Lange

|Ub1| = O(p(n) · |Q| · p(n) · |�|) = O�p(n)2

|Ub2| = O(p(n) · p(n) · |�|) = O�p(n)2

Auch hier machen wir davon Gebrauch, daß |Q| und |�| als konstant angesehen werden.Die Lange der Formeln �(t, q, i, a) ist daher jeweils konstant. Fur die Formel R kann manzeigen, daß sie kubisch in p(n) beschrankt ist (d.h. |R| = O (p(n)3)).

¡¡¡¡¡¡¡ .mine

3.3.6 Weitere Beispiele NP-vollstandiger Probeme

Geloste Probleme

89 Zeigen Sie 2SAT 2 P

90 Zeigen Sie 3SAT p

Clique

91 Zeigen Sie 3SAT p

DHC p

HC p

TCP

92 Zeigen Sie 3GC 2 NPC

93 Zeigen Sie, dass die unterschiedelichen Varianten des Rucksackproblems in NPC liegen (mitAusnahme des rationalen Rucksackproblems).

=======

3.3.7 Weitere Beispiele NP-vollstandiger Probeme

Geloste Probleme

94 Zeigen Sie 2SAT 2 P

95 Zeigen Sie 3SAT p

Clique

96 Zeigen Sie 3SAT p

DHC p

HC p

TCP

97 Zeigen Sie 3GC 2 NPC

98 Zeigen Sie, dass die unterschiedelichen Varianten des Rucksackproblems in NPC liegen (mitAusnahme des rationalen Rucksackproblems).

48

Page 50: Skript R1

Literaturverzeichnis

[AB02] Alexander Asteroth and Christel Baier. Theoretische Informatik. Eine Einfuhrungin Berechenbarkeit, Komplexitat und formale Sprachen mit 101 Beispielen. Pear-son Studium, 2002.

[Her71] Hans Hermes. Aufzahlbarkeit, Entscheidbarkeit, Berechenbarkeit. Springer Verlag,1971.

[Koz97] Dexter Kozen. Automata and Computability. Springer-Verlag, New York, 1997.

[Sch92] Uwe Schoning. Theoretische Informatik kurz gefaßt. BI Wissenschaftsverlag, Uni-versitat Ulm, 3 edition, 1992.

[VW06] Gottfried Vossen and Kurt-Ulrich Witt. Grundkurs Theoretische Informatik.Vieweg Verlag, 2006.

49

Page 51: Skript R1

Kapitel 4

Losungen

50

Page 52: Skript R1

Index

F , 12O(x), 8Q, 12S(x), 8Conf(T ), 14EXPTIME, 37�, 12NP, 37P, 37⌃, 12Tw

, 21T+1, 14↵, 10↵k

, 10�, 12�n

2

�, 9

µ-rekursive Funktionen, 11!, 10⇡n

i

, 9µµµk

-Operator, 11`, 15`⇤, 15`T , 33`⇤T , 33bin, 16bin

k

, 16c(x, y), 10ck(n1, . . . , nk

), 10val, 16Aquivalenz

BerechenbarkeitEinband-TM und k-Band-TM, 17, 22GOTO und WHILE, 5, 6LOOP und p.r., 11TM und LBB-TM, 17, 22

TM und TM mit mehrdim. Band, 17,22

WHILE und µµµ-rekursiv, 11, 12WHILE und Turing, 18, 19, 23

NTM – TM, 34Ubergangsfunktion, 13NP-vollstandig, 39NP-hart, 39

Ackermannfunktion, 7Alphabet, 12Anfangsbelegung, 3

Band, 13Bandalphabet, 13Bedingte Ausfuhrung, 2, 3Belegung, 3berechenbar, 26Berechenbarkeit

µµµ-rekursiv berechenbare Funktion, 11Goto, 5AquivalenzEinband-TM und k-Band-TM, 17, 22GOTO und WHILE, 5, 6LOOP und p.r., 11TM und LBB-TM, 17, 22TM und TM mit mehrdim. Band, 17,22

WHILE und µµµ-rekursiv, 11, 12WHILE und Turing, 18, 19, 23

Loop, 7While, 4primitiv rekursive Funktion, 9Turing, 15, 16k-Band, 17

Berechnung

51

Page 53: Skript R1

akzeptierend, 15einer NTM, 33einer TM, 15unedlich, 15verwerfend, 15

Berechnungsbaum, 33

Cantor’schen Diagonalisierungsfunktion, 10Church-Turing-These, 25Codierfunktion ck, 10

Dekrement, 4DTM, 12

Eingabealphabet, 12Einsetzung, 9Endzustande, 13entscheidbar, 26Entscheidungsprobleme, 26Entscheidungsverfahren

nichtdeterministisch, 34

Funktionµ-rekursive, 11partielle, 27primitiv rekursive, 8

Godel, 12GOTO

Berechenbarkeit, 5Programm, 5Semantik, 5Syntax, 5

Identitatsfunktion, 9Inkrement, 2

Kleene’sche Normalform, 6Komplexitat, 36Komplexitatsklasse, 36

EXPTIME, 37NP, 37P, 37

Komposition, 2, 3Konfiguration, 14

einer NTM, 33Konfigurationsrelation

erweiterte, 33

Laufzeit, 4LOOP

Berechenbarkeit, 7Programm, 6Schleife, 2Syntax, 6

Nachfolgerfunktion, 8Normalform

Kleene’sche, 6Nullfunktion, 8

p.r., 8der Grundrechenarten, 9

partielle Funktion, 27Polynomielle Reduktion, 38Pradikate

primitiv rekursive, 10primitiv rekursive

Funktion, 8primitive Rekursion, 8, 9Problem

SAT, 42Programm

While, 2GOTO, 5LOOP, 6

Projektionsfunktionen, 9

Reduktionpolynomielle, 38

Reduktionsprinzip, 29reduzierbar, 29Rekursion

primitive, 8, 9rekursive Aufzahlbarkeit, 27

SAT, 42Schleife

LOOP, 2

52

Page 54: Skript R1

WHILE, 2, 3Schrittweises Verhalten von T , 15Semantik

GOTO, 5Turingmaschine, 14WHILE, 3

semi-entscheidbar, 27Sprache einer TM, 27Startzustand, 13Syntax

GOTO, 5LOOP, 6WHILE, 2

TM, 12Sprache, 27

Turing Berechenbarkeit, 15Turingmaschine, 12

deterministische, 12Einband, 12Mehrband, 17

Variablenbelegung, 3

WHILEBerechenbarkeit, 4Grundrechenarten, 4

Programm, 2Schleife, 2, 3Semantik, 3Syntax, 2

Zeitkomplexitatsklassen, 36Zustande, 13Zuweisung, 2, 3

53