Download pdf - Skript zur Vorlesung

Transcript
Page 1: Skript zur Vorlesung

Skript zur Vorlesung

Berechenbarkeit und Komplexitat

an der RWTH Aachen

Prof. Berthold Vocking

Lehrstuhl Informatik 1

November 2010

Erganzungen und Anderungen (2014/15)durch Prof. Wolfgang Thomas

Page 2: Skript zur Vorlesung

Inhaltsverzeichnis

1 Einfuhrung 11.1 Modellierung von Problemen . . . . . . . . . . . . . . . . . . . . 21.2 Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2.1 Algorithmen zur Berechnung von Funktionen . . . . . . . 51.2.2 Aufzahlungsalgorithmen . . . . . . . . . . . . . . . . . . 7

1.3 Computermodelle . . . . . . . . . . . . . . . . . . . . . . . . . . 91.3.1 Turings Analyse . . . . . . . . . . . . . . . . . . . . . . 91.3.2 Die Turingmaschine . . . . . . . . . . . . . . . . . . . . 101.3.3 Die Registermaschine . . . . . . . . . . . . . . . . . . . 221.3.4 Vergleich zwischen Turingmaschinen und RAM . . . . . 26

2 Berechenbarkeit 302.1 Die Church-Turing-These . . . . . . . . . . . . . . . . . . . . . . 302.2 Berechenbarkeit, Aufzahlbarkeit, Entscheidbarkeit . . . . . . . . 322.3 Das HalteproblemH . . . . . . . . . . . . . . . . . . . . . . . . 35

2.3.1 Existenz eines unentscheidbaren Problems . . . . . . . . 362.3.2 Unentscheidbarkeit des HalteproblemsH fur Turingma-

schinen . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.3.3 Universelle Turingmaschinen und Aufzahlbarkeit vonH . 41

2.4 Weitere unentscheidbare Probleme . . . . . . . . . . . . . . . . . 442.4.1 Problemreduktionen und Unterprogrammtechnik . . . . .442.4.2 Einfaches Halteproblem undAquivalenzproblem fur Tu-

ringmaschinen . . . . . . . . . . . . . . . . . . . . . . . 472.4.3 Der Satz von Rice . . . . . . . . . . . . . . . . . . . . . 49

2.5 Die Klasse RE der aufzahlbaren Sprachen und Sprachen jenseitsvon RE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.6 Hilberts 10. Problem und Posts Korrespondenzproblem . .. . . . 562.6.1 Hilberts zehntes Problem . . . . . . . . . . . . . . . . . . 56

i

Page 3: Skript zur Vorlesung

2.6.2 Das Postsche Korrespondenzproblem . . . . . . . . . . . 582.7 WHILE- und LOOP-Programme . . . . . . . . . . . . . . . . . . 68

2.7.1 WHILE-Programme . . . . . . . . . . . . . . . . . . . . 682.7.2 LOOP-Programme und Ackermann-Funktion . . . . . . . 73

2.8 Ein Exkurs: Die Busy Beaver Funktion . . . . . . . . . . . . . . . 802.9 Primitiv rekursive undµ-rekursive Funktionen . . . . . . . . . . . 82

3 Komplexitat 883.1 Die KomplexitatsklasseP . . . . . . . . . . . . . . . . . . . . . . 88

3.1.1 Motivation und Definition . . . . . . . . . . . . . . . . . 883.1.2 Beispiele fur Probleme inP . . . . . . . . . . . . . . . . 90

3.2 Die KomplexitatsklasseNP . . . . . . . . . . . . . . . . . . . . . 923.2.1 Definition und Erlauterung . . . . . . . . . . . . . . . . . 923.2.2 Alternative Charakterisierung der KlasseNP . . . . . . . 943.2.3 Beispiele fur Probleme inNP . . . . . . . . . . . . . . . 96

3.3 P versusNP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003.4 NP-Vollstandigkeit . . . . . . . . . . . . . . . . . . . . . . . . . 101

3.4.1 Polynomielle Reduktionen . . . . . . . . . . . . . . . . . 1023.4.2 Beispiel einer polynomiellen Reduktion . . . . . . . . . . 1033.4.3 Definitionen vonNP-Harte undNP-Vollstandigkeit . . . . 106

3.5 Der Satz von Cook und Levin . . . . . . . . . . . . . . . . . . . . 1063.6 NP-Vollstandigkeit von 3SAT und CLIQUE . . . . . . . . . . . . 1113.7 NP-Vollstandigkeit des Hamiltonkreisproblems . . . . . . . . . . 1143.8 NP-Vollstandigkeit einiger Zahlprobleme . . . . . . . . . . . . . 120

3.8.1 NP-Vollstandigkeit von SUBSET-SUM . . . . . . . . . . 1203.8.2 NP-Vollstandigkeit von PARTITION . . . . . . . . . . . 1233.8.3 Konsequenzen fur KP und BPP . . . . . . . . . . . . . . 124

3.9 Ubersichtuber die Komplexitatslandschaft . . . . . . . . . . . . . 1253.10 Approximationsalgorithmen fur NP-harte Probleme . . . . . . . . 127

3.10.1 Ein Approximationsschema fur das Rucksackproblem . . 1283.10.2 Stark und schwachNP-harte Probleme . . . . . . . . . . 132

4 Schlussbemerkungen 1354.1 Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . 1354.2 Danksagung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

ii

Page 4: Skript zur Vorlesung

Kapitel 1

Einf uhrung

Das vorliegende Skript istuber mehrere Semester entstanden. An der Erstellungdes Skriptes haben insbesondere Helge Bals, Nadine Bergner, Dirk Bongartz,Marcel Ochel und Alexander Skopalik mitgewirkt.

Einige Abschnitte wurden fur die Vorlesung WS 2014/15 durch WolfgangThomas modifiziert bzw. erganzt.

In den meisten Vorlesungen des Informatikstudiums wird vermittelt, wie ver-schiedenste Probleme mit dem Computer gelost werden konnen. Man konnte denEindruck gewinnen, dass die Moglichkeiten des Computers unbeschrankt sind.Diese Vorlesung ist anders: Wir werden die Grenzen des Computers erkundenund zahlreiche scheinbar einfache Probleme kennen lernen,uber die wir bewei-sen konnen, dass sie nicht durch den Computer gelost werden konnen.

• Im ersten Teil der Vorlesung beschaftigen wir uns mit fundamentalen Fra-gestellungen aus dem Gebiet derRekursions-bzw.Berechenbarkeitstheorie.Hier geht es um die absoluten Grenzen des Rechners. Wir lernenProblemekennen, die nicht durch einen Rechner gelost werden konnen, egal wievielRechenzeit und Speicherplatz wir zur Verfugung stellen.

• Das Thema des zweiten Teils der Vorlesung ist dieKomplexitatstheorie. Wiruntersuchen, welche Probleme einen effizienten Algorithmus zulassen, alsowelche Probleme sich in akzeptabler Zeit durch einen Rechnerlosen lassen.Zu diesem Zweck werden wir sogenannte Komplexitatsklassen einfuhren,insbesondere die KlassenP undNP, auf deren Basis wir die Schwierigkeitverschiedener Probleme charakterisieren konnen.

1

Page 5: Skript zur Vorlesung

Um formale AussagenuberProblemeund Computerbzw. Rechnermachenzu konnen, benotigen wir zunachst eine mathematische Modellierung dieser bei-den Konzepte. Wir beginnen damit zu erlautern, was wir unter einem Problemverstehen und stellen dann verschiedene Rechnermodelle vor.

1.1 Modellierung von Problemen

Algorithmische Probleme kann man spezifizieren, indem man festlegt, welcheAusgaben zu welchen Eingaben berechnet werden sollen. Ein-und Ausgaben sinddabei endliche Worteruber einem jeweils festgelegtem endlichem AlphabetΣ.

Haufig benutzte Alphabete sind

• Σbool = {0, 1},

• Σtast als Alphabet der Symbole auf einer Standardtastatur.

Die Menge aller Worter der Langek uberΣ bezeichnen wir alsΣk. Beispielsweisegilt

{0, 1}3 = {000, 001, 010, 011, 100, 101, 110, 111}.

Das sogenannteleere Wort, also das Wort der Lange 0, bezeichnen wir mitǫ, d.h.Σ0 = {ǫ}. SeiN = {0, 1, 2, . . .} die Menge der naturlichen Zahlen. Die MengeΣ∗ =

k∈N Σk ist der sogenannteKleenesche Abschlußvon Σ und enthalt alleWorteruberΣ, die wir z.B. der Lange nach aufzahlen konnen:

ǫ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, . . . .

Diese Reihenfolge wird im Folgenden alskanonische Reihenfolgebezeichnet.Problemesind

”Aufgaben“ oder

”Fragestellungen“, die wir mit dem Rechner

losen oder beantworten wollen. Um zu verdeutlichen, welche Arten von Aufga-ben wir meinen, geben wir einige einfache Beispiele. Beispielsweise mochte maneinen Primfaktor zu einer gegebenen Zahl bestimmen.

Problem 1.1 (Primfaktorbestimmung)

Eingabe: eine binar kodierte Zahlq ∈ N, q ≥ 2

Ausgabe: ein binar kodierter Primfaktor vonq

2

Page 6: Skript zur Vorlesung

Hier sind beispielsweise zur Eingabe6 die Ausgaben2 oder3 moglich, genauergesagt naturlich die Binardarstellungen dieser Zahlen. Die Binardarstellung einernaturlichen Zahlk bezeichnen wir mitbin(k). Das Problem entspricht dann derRelationR ⊆ {0, 1}∗ × {0, 1}∗ mit

R = {(x, y) ∈ {0, 1}∗ × {0, 1}∗ | x = bin(q), y = bin(p),

p, q ∈ N, q ≥ 2, p prim, p teilt q} .

Beim Problem der Primfaktorbestimmung gibt es zu einer Eingabe in der Re-gel mehrere mogliche korrekte Ausgaben. Deshalb haben wir dieses Problem inForm einer Relation modelliert. Fur viele Probleme gibt es zu jeder Eingabe eineeindeutige Ausgabe, wie beispielsweise bei der Multiplikation.

Problem 1.2 (Multiplikation)

Eingabe: zwei binar kodierte Zahlena, b ∈ N

Ausgabe: die binar kodierte Zahlc ∈ N mit c = a · b

Derartige Probleme konnen wir als Funktionf : Σ∗ → Σ∗ beschreiben. Diezur Eingabex ∈ Σ∗ gesuchte Ausgabe istf(x) ∈ Σ∗. Im Fall der Multiplikationwerden die Zahlena und b binar kodiert. Um die Zahlena und b in der Eingabevoneinander trennen zu konnen, erweitern wir das Alphabet um ein Trennsymbol,d.h. wir setzenΣ = {0, 1,#}. Die kodierte Eingabe ist dannbin(a)#bin(b) unddie Ausgabe istf(bin(a)#bin(b)) = bin(c).

Viele Probleme lassen sich als”Ja-Nein-Fragen“ formulieren. DerartigeEnt-

scheidungsproblemesind von der Formf : Σ∗ → {0, 1}, wobei wir 0 als”Nein“

und 1 als”Ja“ interpretieren. SeiL = f−1(1) ⊆ Σ∗ die Menge derjenigen Einga-

ben, die mit”Ja“ beantwortet werden. Die MengeL ist eine Teilmenge der Worter

uber dem AlphabetΣ, d.h.L ⊆ Σ∗. Eine solche Teilmenge wird alsSprachebe-zeichnet. Wir geben ein Beispiel.

Problem 1.3 (Graphzusammenhang)

Eingabe: die Kodierung eines GraphenG = (V,E)

Ausgabe: das Zeichen 1, fallsG zusammenhangend ist, ansonsten das Zeichen 0.

3

Page 7: Skript zur Vorlesung

Den Graphen konnen wiruber dem Alphabet{0, 1} kodieren, indem wir sei-ne Adjazenzmatrix angeben. In der obigen Problembeschreibung haben wir be-reits implizit angenommen, dass die Eingabe wirklich der korrekten Kodierungeines Graphen entspricht. Naturlich gibt es auch Eingaben, die keiner Adjazenz-matrix entsprechen, etwa wenn die Lange des Binarstrings keine quadratischeZahl ist. Bei der Beschreibung des Problems als Sprache mussen wir dies explizitberucksichtigen. SeiG die Menge aller Graphen undGz die Menge aller zusam-menhangender Graphen undcode(G) die Kodierung eines GraphenG ∈ G. Dannist

L = {w ∈ {0, 1}∗ | ∃G ∈ Gz : w = code(G)} .

Die SpracheL enthalt alle Eingaben, die einen zusammenhangenden Graphenkodieren. DasKomplementvonL ist definiert alsL = {0, 1}∗ \ L. Die SpracheLenthalt Eingaben, die keiner korrekten Kodierung eines Graphenentsprechen, alsosyntaktisch inkorrekt sind, oder Eingaben, die einen nichtzusammenhangendenGraphen kodieren.

Wir stellen zwei weitere Entscheidungsprobleme vor.

Problem 1.4 (Hilberts 10. Problem (1900))

Eingabe: Polynomp(x1, . . . , xn) uberZ, vorgegeben als Wort in LaTex-Kodierung

Ausgabe: das Zeichen 1, fallsp eine Nullstelle(z1, . . . , zn) ∈ Zn hat, andernfallsdas Zeichen 0.

Beispielsweise lautet die Ausgabe 1 fur das Polynom3x1 + x2 − x12x2

2 und 0fur das Polynomx2

1 + 1.

Problem 1.5 (Programmtermination)

Eingabe: Java-ProgrammP mit integer-Variablen, durch 0 initialisiert

Ausgabe: das Zeichen 1, fallsP bei Initialisierung der Variablen mit 0 schließ-lich terminiert, sonst das Zeichen 0.

1.2 Algorithmen

Wir haben ein recht klares intuitives Verstandnis des Begriffs Algorithmus, deswichtigsten Gundbegriffs der Informatik.

4

Page 8: Skript zur Vorlesung

• Algorithmen verarbeiten Worter schrittweise;

• sie sind durch endlichen Text eindeutig festgelegt.

Wir wollen auch unterstellen, das Algorithmen bei Termination eine Ausgabeliefern. Zudem sind die manipulierten Objekte endliche Worter. Dies entsprichtder Idee, dass wir annehmen, dass Algorithmen durch Computerprogramme rea-lisierbar sind.

In der Wissenschaftsgeschichte werden Algorithmen manchmal auch in all-gemeinerem Rahmen betrachtet, etwa in der Geometrie. Die Verfahren zur Kon-struktion von Dreiecken aus gegebenen Seiten bzw. Winkeln etwa sind “Algo-rithmen”, die Punkte, Geraden und Kreise der euklidischen Ebene manipulieren;diese aber sind i.a. nicht durch endliche Worter uber einem gegebenen Alphabetdarstellbar. (Es gibt nur abzahlbar viele Worter, jedochuberabzahlbar viele Punk-te der Ebene.)

1.2.1 Algorithmen zur Berechnung von Funktionen

Wir beginnen mit Algorithmen, die mit einer Eingabe startenund bei Terminationeine Ausgabe liefern. Das “Eingabe-Ausgabe-Verhalten” eines solchen Algorith-mus erfassen wir durch eine Funktion.

Definition 1.6 (durch Algorithmus berechnete Funktion)Einem AlgorithmusA uber dem AlphabetΣ ordnen wir eine FunktionfA zu

mit Argumenten inΣ∗.

• TerminiertA bei Eingabew mit Ausgabev, so setzen wirfA(w) = v.

• TerminiertA bei Eingabew nicht, so seifA(w) undefiniert, und wir schrei-benfA(w) = ⊥.

Die Tatsache, dass Algorithmen nicht zu terminieren brauchen, fuhrt dazu, dasswir “partielle Funktionen” fur die Beschreibung ihres Verhaltens benotigen.

Definition 1.7 Eine Funktionf mit Argumenten inM und Werten inN heißtpartielle Funktion vonM nachN . Wir schreiben dannf : M N .

Der Definitions- und der Bildbereich einer solchen Funktionsind wie folgtdefiniert:

5

Page 9: Skript zur Vorlesung

• Def(f) = {m ∈ M | f(m) ist definiert}

“Definitionsbereich vonf ”

• Bild(f) = {n ∈ N | ∃m ∈ M : f(m) = n}

“Bildbereich vonf ”

Definition 1.8 (totale Funktion) Eine Funktionf : M N mit Def(f) = Mnennen wirtotal (aufM ) und schreibenf : M → N .

Mit diesen Festlegungen konnen wir die FunktionfA auch wie folgt beschreiben:

Definition 1.9 (berechnete Funktion (2. Formulierung)) Der AlgorithmusA ar-beiteuber dem AlphabetΣ. Die durchA berechnete FunktionfA : Σ∗

Σ∗ istwie folgt definiert:

• Def(fA) ist die Menge derw ∈ Σ∗, so dassA bei Eingabe vonw terminiert.

• Fur w ∈ Def(fA) ist fA(w) die Ausgabe, dieA nach Eingabe vonw beiTermination liefert.

Ein Ziel der Vorlesung ist es, zu erkennen, welche Funktionen durch Algorithmenberechenbar sind, also die FormfA fur einen AlgorithmusA haben.

Definition 1.10 (berechenbar)Eine Funktionf : Σ∗ Σ∗ heißt (im intuitiven

Sinne)berechenbar, wenn ein AlgorithmusA existiert mitf = fA.

Wir geben Beispiele berechenbarer Funktionenuber dem AlphabetΣ = {0, 1}an.

Beispiel 1.11 (Berechenbare Funktionen) SeiΣ = {0, 1}. Folgende Funktio-nenfi : Σ∗

Σ∗ sind berechenbar:

1. die Funktionf1 : Σ∗ → Σ∗ mit

f1(w) = 0, falls |w| gerade,f1(w) = 1, falls |w| ungerade

2. die partielle Funktionf2 : Σ∗ Σ∗ mit

f2(w) = 0, falls |w| gerade,f2(w) = ⊥, falls |w| ungerade

6

Page 10: Skript zur Vorlesung

3. die Konstanteε, also die Funktionf3 : Σ∗ → Σ∗ mit

f3(w) = ε fur w ∈ Σ∗

4. dieuberall undefinierte Funktionf4 : Σ∗ Σ∗ mit

f4(w) = ⊥ fur w ∈ Σ∗.

Wir notieren einen Sonderfall totaler berechenbarer Funktionen: totale bere-chenbare Funktionen mit Wertebereich{0, 1}. Wie bereits oben erlautert, identi-fizieren wir eine Funktionf : Σ∗ → {0, 1} mit der SpracheLf der Worterw, furdief(w) = 1 gilt. Ist f berechenbar, so ist die SpracheLf “entscheidbar”.

Definition 1.12 (entscheidbar)Eine SpracheL ⊆ Σ∗ heißt (im intuitiven Sinne)entscheidbar, wenn es einen Algorithmus gibt, der fur jede Eingabew ∈ Σ∗ ter-miniert, und zwar mit der Ausgabe “ja” (Wert1) fur w ∈ L und ansonsten “nein”(Wert0).

1.2.2 Aufzahlungsalgorithmen

Abschließend erwahnen wir noch eine weitere Variante von Algorithmen, die so-genannten Aufzahlungsalgorithmen.

Definition 1.13 Ein AufzahlungsalgorithmusA startet ohne Eingabe, braucht nichtzu terminieren und gibt nach und nach Worter aus (in irgendeiner Reihenfolge,eventuell mit Wiederholungen).

Man fasst die Menge der ausgegebenen Worter zur SpracheLA zusammen.

Definition 1.14 (aufzahlbar)Eine WortmengeL heißt aufzahlbar, wenn es einen Aufzahlungsalgorithmus

A gibt mitL = LA.

Beispiel 1.15Folgende Mengen sind aufzahlbar:

1. uber dem Alphabet{0, 1, 2, . . . , 9} die Menge der Primzahlen in Dezimal-darstellung

2. uber dem AlphabetΣtast die Menge der Polynome mit ganzzahligen Koeffi-zienten, die eine Nullstelle inZ haben

7

Page 11: Skript zur Vorlesung

Die Aufzahlbarkeit der zweiten Menge sieht man wie folgt:

• Wir nutzen die kanonische Reihenfolge der WorteruberΣtast und extrahie-ren daraus eine Liste aller Polynome inx mit Koeffizienten inZ:p0(x), p1(x), p2(x), . . .

• Wir nutzen daneben eine Auflistung der ganzen Zahlenz (hier: der moglichenNullstellen):0, 1,−1, 2,−2, 3, . . .

• Wir erstellen ein unendliches zweidimensionales Diagramm, das fur alleKombinationen(i, z) jeweils den Wertpi(z) enthalt.

• Der gesuchte Aufzahlungsalgorithmus geht im Diagonalverfahren, d.h. inder Reihenfolge

(0, 0), (0, 1), (1, 0), (0, 2), (1, 1), (2, 0), (0, 3), (1, 2), (2, 1), . . .

alle Stellen(i, z) des Diagramms durch, berechnet jeweilspi(z) und gibtpiimmer dann aus, wenn sichpi(z) = 0 ergibt.

Auf diese Weise entsteht eine Liste derjenigenpi(x), die eine Nullstelle inZ ha-ben.

Wir haben nun vier Typen von Algorithmen kennengelernt:

• Algorithmen zur Berechnung partieller Funktionen

• Algorithmen zur Berechnung totaler Funktionen

• Entscheidungsalgorithmen(zur Bestimmung der Mitgliedschaft von Worten in Sprachen)

• Aufzahlungsalgorithmen(zur Erzeugung der Elemente von Sprachen)

Es gibt weitere Formen von Algorithmen, die wir hier aber nicht weiter verfol-gen. Als Beispiel nennen wir “reaktive nicht-terminierendeVerfahren” (wie etwaKommunikationsprotokolle), die wahrend ihres nicht abbrechenden Laufes immerwieder Eingaben entgegennehmen und immer wieder Ausgaben liefern.

Die Kernfrage zur Tragweite des Begriffs “Algorithmus” lautet dann:

• Welche Funktionen sind berechenbar?

• Welche Mengen sind entscheidbar, welche aufzahlbar?

8

Page 12: Skript zur Vorlesung

1.3 Computermodelle

1.3.1 Turings Analyse

Wenn man fur eine Funktionf einen Algorithmus angibt, dann ist die Berechen-barkeit klar. Wie kann man nachweisen, dass eine Funktionf nicht berechenbarist? Man muss dann gegen alle denkbaren Algorithmen argumentieren. Wie kannman sich einenUberblick uber “alle denkbaren Algorithmen” verschaffen? Diesist eigentlich die Frage, wie weit die Methoden der Informatik reichen. Denn “Al-gorithmus” ist der Kernbegriff der Wissenschaft Informatik.

Eine Klarung dieser Frage verdanken wir Forschern, die sich in der erstenHalfte des 20. Jahrhunderts mit den Grundlagen der Mathematik befasst haben.

Hervorzuheben ist hier Alan Turing (1912 - 1954). Turing entwickelte ein ab-straktes Automatenmodell “Turingmaschine” mit dem Ziel, die Durchfuhrung be-liebiger Algorithmen zur Symbolmanipulation prazise zu fassen. Alle denkbarenAlgorithmen entsprechen dann allen Turingmaschinen. Turing analysierte hierzudie elementaren Einzelschritte, die ein Mensch bei der Realisierung eines Algo-rithmus (beim Rechnen auf dem Papier) durchfuhrt.

Aus Turings Arbeit von 1936 (“On computable numbers, with anapplicationto the Entscheidungsproblem”):

Computing is normally done by writing certain symbols on paper. Wemay suppose this paper is divided into squares like a child’sarith-metic book. In elementary arithmetic the two-dimensional characterof paper is sometimes used. But such a use is always avoidable,andI think that it will be agreed that the two-dimensional character ofpaper is no essential of computation. I assume then that the compu-tation is carried out on one-dimensional paper, i.e. on a tape dividedinto squares.

The behaviour of the computer at any moment is determined by thesymbols which he is observing, and his ”state of mind” at thatmo-ment. We may suppose that there is a boundB to the number of sym-bols or squares which the computer can observe at one moment.[. . . ]If he wishes to observe more, he must use successive observations.

We will also suppose that the number of states of mind which need betaken into account is finite. [. . . ] If we admitted an infinity of states ofmind, some of them will be ”arbitrarily close” and will be confused.Again, the restriction is not one which seriously affects computation,

9

Page 13: Skript zur Vorlesung

since the use of more complicated states of mind can be avoided bywriting more symbols on the tape.

Let us imagine the operations performed by the computer to besplitup into ”simple operations” which are so elementary that it is noteasy to imagine them further divided. Every such operation consistsof some change of the physical system consisting of the computer andhis tape. We know the state of the system if we know the sequence ofsymbols on the tape, which of these are observed by the computer(possibly with a special order), and the state of mind of the computer.

Wir werden damit auf das Modell der Turingmaschine gefuhrt, das wir heuteals “Computermodell” auffassen konnen.

1.3.2 Die Turingmaschine

Das Modell der Turingmaschine sieht auf den ersten Blick sehrrudimentar undeingeschrankt aus. Wir werden im Laufe des Kapitels einsehen, dass dieses ein-fache Modell sehr machtig ist und all diejenigen Probleme losen kann, die auchheute existierende Rechner losen konnen, selbst wenn wir optimistischerweiseannehmen, dass diesen Rechnern eine unbeschrankte Rechenzeit und ein unbe-schrankter Speicher zur Verfugung steht.

Definition des Maschinenmodells

Eine Turingmaschine (TM)arbeitet auf einem beidseitig unendlichemSpeicher-band. Dieses Band besteht aus einzelnenZellen, die jeweils ein Element eines vor-gegebenen, endlichenBandalphabetsΓ enthalten. In vielen Fallen ist es sinnvoll,Γ = {0, 1, B} zu setzen, wobei die Buchstaben0 und1 ein 0-Bit bzw. ein1-Bitreprasentieren. Der BuchstabeB heißtLeerzeichen (Blank)und reprasentiert eineleere, unbeschriebene Zelle. Die Turingmaschine besitzt einen Schreib-/Lesekopf,der uber das Band lauft und dabei die Inschriften in einzelnen Zellen lesen undverandern kann. Neben dem Speicherband hat die Turingmaschinenoch einen ak-tuellenZustandq, der Element einer endlichen ZustandsmengeQ ist.

Am Anfang der Rechnung befindet sich die TM imAnfangszustandq0 ∈ Q,auf dem Band steht von links nach rechts dieEingabein benachbarten Zellen,alle anderen Zellen links und rechts der Eingabe enthalten das Leerzeichen, undder Kopf steht unter dem ersten Zeichen der Eingabe. Das EingabealphabetΣist eine Teilmenge vom BandalphabetΓ, die insbesondere nicht das Leerzeichen

10

Page 14: Skript zur Vorlesung

Zustandq Funktionδ

(q, 0) ✲

0

❳❳❳❳❳❳❳❳❳❳③

Schreib-/Lesekopf

· · · B 1 0 0 1 0 0 0 1 1 B · · ·

Speicherband

Abbildung 1.1: Vor dem Zustandsubergangδ(q, 0) = (q′, 1, L).

B enthalt. Die Arbeitsweise der TM wird durch eineZustandsubergangsfunkti-on δ : (Q \ {q}) × Γ → Q × Γ × {R,L,N} beschrieben. Hierbei bezeichnetq den sogenanntenStoppzustand. Wennδ(q, a) = (q′, a′, d) gilt, hat das folgen-de Interpretation: Wenn der aktuelle Zustand der Turingmaschine q ist und derSchreib-/Lesekopf auf eine Speicherzelle mit Inhalta zeigt, dann schreibt die Tu-ringmaschine den Buchstabena′ in die aktuelle Speicherzelle, wechselt in denZustandq′, und der Schreib-/Lesekopf geht eine Position nach rechts oder links,oder bleibt stehen, je nachdem obd = R, d = L oderd = N gilt. Dieser Vorgangwird als Rechenschrittbezeichnet. Es wird solange ein Rechenschritt nach demanderen ausgefuhrt, bis der Stoppzustandq erreicht ist.

In den Abbildungen 1.1 und 1.2 ist ein solcher Rechenschritt dargestellt. Dabeivisualisiert Abbildung 1.1 die Situation vor einem bestimmten Zustandsubergangund Abbildung 1.2 die Situation nach dem Zustandsubergang. Die in diesen Ab-bildungen dargestellte Turingmaschine hat das Bandalphabet Γ = {0, 1, B} unddas EingabealphabetΣ = {0, 1}. Die ZustandsmengeQ enthalt unter anderem dieZustandeq undq′. In Abbildung 1.1 befindet sich die Turingmaschine im Zustandq, auf dem Speicherband stehen Elemente ausΓ, und der Schreib-/Lesekopf stehtauf einem Speicherplatz mit Inhalta. In einem Rechenschritt wird der Inhalt desaktuellen Speicherplatzes, alsoa, ausgelesen, und zusammen mit dem aktuellenZustand, alsoq, in dieUbergangsfunktionδ

”hineingesteckt“. In unserem Beispiel

sei nunδ(q, 0) = (q′, 1, L), d.h. die TM geht in den Zustandq′ uber, schreibt das

11

Page 15: Skript zur Vorlesung

Zustandq′ Funktionδ✛ (q′, 1, L)

(1, L)

PPPPPPPPq

Schreib-/Lesekopf

· · · B 1 0 0 1 1 0 0 1 1 B · · ·

Speicherband

Abbildung 1.2: Nach dem Zustandubergang.

Zeichen 1 an die aktuelle Kopfposition und bewegt dann den Schreib-/Lesekopfum eine Zelle nach links. Das Ergebnis des Rechenschrittes ist in Abbildung 1.2dargestellt.

Wir fassen zusammen. Eine TM wird durch Angabe der folgendenKompo-nenten beschrieben:

• Q, die endliche Zustandsmenge

• Σ ⊇ {0, 1}, das endliche Eingabealphabet

• Γ ⊃ Σ, das endliche Bandalphabet

• B ∈ Γ \ Σ, das Leerzeichen (Blank)

• q0 ∈ Q, der Anfangszustand

• q ∈ Q, der Stoppzustand

• die Zustandsubergangsfunktion

δ : (Q \ {q})× Γ → Q× Γ× {R,L,N}

Die TM ist definiert durch das 7-Tupel(Q,Σ,Γ, B, q0, q, δ). Die sogenannte Kon-figuration einer TM entspricht einem

”Schnappschuss“ der Rechnung zu einem

12

Page 16: Skript zur Vorlesung

bestimmten Zeitpunkt. Die Konfiguration beschreibt alle Details, die benotigt wer-den, um die Rechnung fortzusetzen, also den Zustand, die Kopfposition und dieBandinschrift. Wir formalisieren dies folgendermaßen.

• EineKonfigurationeiner TM ist ein Stringαqβ, mit q ∈ Q undα, β ∈ Γ∗.Bedeutung: auf dem Band stehtαβ eingerahmt von Blanks, der Zustand istq, und der Kopf steht unter dem ersten Zeichen vonβ.

• α′q′β′ ist direkte Nachfolgekonfigurationvonαqβ, fallsα′q′β′ in einem Re-chenschritt ausαqβ entsteht. Wir schreibenαqβ ⊢ α′q′β′.

• α′′q′′β′′ ist Nachfolgekonfigurationvonαqβ, fallsα′′q′′β′′ in endlich vielenRechenschritten ausαqβ entsteht. Wir schreibenαqβ ⊢∗ α′′q′′β′′. Es giltinsbesondereαqβ ⊢∗ αqβ.

Die Rechnungterminiert, sobald der Stoppzustandq erreicht ist. In diesemFall gibt es keine Nachfolgekonfiguration. DieLaufzeiteiner TM-Rechnung istdie Zahl der Rechenschritte, die die TM bis zur Terminierung ausfuhrt. Falls dieRechnung nicht terminiert, also den Stoppzustand nie erreicht, so ist die Laufzeitunbeschrankt. DerPlatzbedarfist die Zahl der besuchten Speicherzellen. Auchder Platzbedarf kann unbeschrankt sein.

TM-berechenbare Funktionen

Eine TMM , die fur jede Eingabe terminiert, berechnet eine totale FunktionfM :Σ∗ → Σ∗. Wenn der Stoppzustandq erreicht ist, so kann das Ergebnis, alsofM(x),folgendermaßen vom Speicherband abgelesen werden: Der erste Buchstabe desErgebnisses steht unter dem Schreib-/Lesekopf. Das Ergebnis wird nach rechtsdurch den ersten Buchstaben begrenzt, der nicht inΣ liegt, z.B. den Blankbuch-stabenB. Insbesondere ist das Ergebnis das leere Wortǫ, wenn der Kopf zumSchluss der Rechnung auf ein Symbol ausΓ \ Σ zeigt. Es kann jedoch passie-ren, dass eine TM nicht immer terminiert. Im Allgemeinen berechnet eine TMMdeshalb eine FunktionfM : Σ∗

Σ∗.

Definition 1.16 Eine totale Funktionf : Σ∗ → Σ∗ heißtTM-berechenbar(oder:rekursiv), wenn es eine TMM mit f = fM gibt, d.h. eine TM, die fur jede Eingabew ∈ Σ∗ terminiert, und zwar mit Ausgabef(w).

Eine partielle Funktionf : Σ∗ Σ∗ heißtTM-berechenbar(oder: rekursiv,

partiell rekursiv), wenn es eine TMM mit f = fM gibt, d.h. eine TM; die genaufur die Worterw ∈ Def(f) terminiert, und dann jeweils mit Ausgabef(w).

13

Page 17: Skript zur Vorlesung

Der TerminusRekursivitat geht darauf zuruck, dass man die Klasse der TM-berechenbaren Funktionen auch durch eine Menge von induktiven Kompositions-regeln ohne direkten Bezug zu einem Maschinenmodell definieren kann, die unteranderem auch rekursive Definitionen von Funktionen umschließt.

Entscheidungs- und Aufzahlungs-Turingmaschinen

Wie bereits in Abschnitt 1.1 erwahnt, will man haufig nur Entscheidungsproble-me losen, d.h. man erwartet von der Turingmaschine eine Ja-Nein-Antwort. Wenndie Rechnung terminiert und das Ergebnis mit1 beginnt, gilt das als Ja-Antwort(Akzeptieren). Wenn die Rechnung terminiert aber das Ergebnis nicht mit einer 1beginnt, so gilt das als Nein-Antwort (Verwerfen). Fur den Spezialfall von Ent-scheidungsproblemen (Sprachen) konnen wir den Begriff der Rekursivitat wiefolgt fassen.

Definition 1.17 Eine SpracheL ⊆ Σ∗ heißtTM-entscheidbar(oder: rekursiv),wenn es eine TM gibt, die auf allen Eingabenw ∈ Σ∗ stoppt und die Eingabewakzeptiert genau dann, wennw ∈ L (also Eingabew verwirft, wennw 6∈ L).

Man sagt dann, dass die TM die SpracheL entscheidetund spricht von einerEntscheidungs-Turingmaschine.

Schließlichubertragen wir noch die Idee des Aufzahlungsalgorithmus in den Rah-men der Turingmaschinen.

Definition 1.18 (Aufzahlungs-Turingmaschine) Eine Aufzahlungs-TMuberΣist eine TM der Form(Q,Σ,Γ, B, q0, q, qout, δ), bei der

• das AlphabetΣ nur alsAusgabealphabetverwendet wird,

• der Zustandqout alsAusgabezustanddient, bei dessen Erreichen jeweils dasWort ausgegeben wird, das an der Kopfposition beginnt und unmittelbar vordem ersten Symbol ausΓ \ Σ endet.

Eine solche TMzahlt die Mengederjenigen Worter auf, die nach Starten aufdem leeren Band sukzessiv als Ausgabe geliefert werden.

Eine Sprache heißtrekursiv aufzahlbar, wenn es eine Aufzahlungs-TM gibt,die die SpracheL aufzahlt.

14

Page 18: Skript zur Vorlesung

Beispiele fur Turingmaschinen

Wir stellen zunachst zwei Turingmaschinen fur die Losung von Entscheidungs-problemen vor, dann zwei Beispiele fur Turingmaschinen zur Berechnung vonFunktionen.

Erstes Beispiel: Wir betrachten die SpracheL = {w0 |w ∈ {0, 1}∗}. DieseSprache enthalt alle Binarworter, die mit einer 0 enden. Das Entscheidungspro-blemL wird gelost durch die TM

M = ({q0, q1, q}, {0, 1}, {0, 1, B}, B, q0, q, δ) ,

wobeiδ durch folgende Tabelle gegeben ist:

δ 0 1 B

q0 (q0, 0, R) (q1, 1, R) (q, 1, N)q1 (q0, 0, R) (q1, 1, R) (q, 0, N)

Am Anfang steht der Kopf der TM auf dem ersten Buchstaben der Eingabe. DieTM geht in jedem Schritt nach rechts, sofern sie nicht stoppt. Dabei merkt sie sichin ihrem Zustand, ob der jeweils zuletzt gelesene Buchstabe eine 1 war (dann istder Zustandq1) oder nicht (dann ist der Zustandq0). Wenn die TM das erste Malauf einen Blank trifft, ist das Ende der Eingabe erreicht. DieTM kann dann anihrem Zustand erkennen, ob das Eingabewort in der SpracheL liegt oder nicht,und dementsprechend durch Schreiben einer 1 akzeptieren oder durch Schreibeneiner 0 verwerfen.

Die Rechnung fur eine bestimmte Eingabe kann nachvollzogen werden, indemman die Konfigurationsfolge angibt. Beispielsweise ergibt sich fur die Eingabe0110 die folgende Konfigurationsfolge:

q00110 ⊢ 0q0110 ⊢ 01q110 ⊢ 011q10 ⊢ 0110q0B ⊢ 0110q1

Da der Kopf am Ende unter (vor) einer 1 steht bedeutet dies, dass die Maschinedie Eingabe0110 akzeptiert.

Zweites Beispiel: Als weiteres, etwas umfangreicheres Beispiel entwickeln wireine TM fur die SpracheL = {0n1n |n ≥ 1}. Wir setzenQ = {q0, . . . , q6}, Σ ={0, 1},Γ = {0, 1, B} unduberlegen uns nun eine korrekte Zustandsubergangsfunktion.Unsere TM arbeitet in zwei Phasen:

15

Page 19: Skript zur Vorlesung

• Phase 1:Teste, ob die Eingabe von der Form0i1j fur i ≥ 0 undj ≥ 1 ist.

• Phase 2:Teste, obi = j gilt.

Phase 1 verwendet die Zustandeq0 undq1 und wechselt bei Erfolg nachq2. Phase2 verwendet die Zustandeq2 bis q6 und akzeptiert bei Erfolg. Eingeschrankt aufq0 undq1 hatδ folgende Gestalt:

δ 0 1 B

q0 (q0, 0, R) (q1, 1, R) (q, 0, N)q1 (q, 0, N) (q1, 1, R) (q2, B, L)

Wieso implementiert dieser Teil vonδ die erste Phase? Die TM lauft von linksnach rechtsuber die Eingabe, bis ein Zeichen ungleich0 gefunden wird. Fallsdieses Zeichen eine 1 ist, geht sieuber in den Zustandq1. Wenn dieses Zeichenein Blank ist, so ist die Eingabe von der Form0i mit i ≥ 0, und die TM ver-wirft. Im Zustandq1 geht die TM weiter nach rechts bis zum ersten Zeichen un-gleich1. Wenn das soeben gelesene Zeichen eine0 ist, hat die Eingabe die Form0i1j0{0, 1}∗ mit i ≥ 0 und j ≥ 1, und die TM verwirft. Ist das soeben geleseneZeichen ein Blank, so ist die erste Phase erfolgreich beendet, und die TM gehtnach links, so dass der Kopf auf der rechtesten1 steht. Außerdem wechselt dieTM in den Zustandq2 und startet somit die zweite Phase.

Die zweite Phase spielt sich auf den Zustanden{q2, . . . , q6} ab. Eingeschranktauf diese Zustande hatδ folgende Gestalt:

δ 0 1 B

q2 (q, 0, N) (q3, B, L) (q, 0, N)q3 (q3, 0, L) (q3, 1, L) (q4, B,R)q4 (q5, B,R) (q, 0, N) (q, 0, N)q5 (q6, 0, R) (q6, 1, R) (q, 1, N)q6 (q6, 0, R) (q6, 1, R) (q2, B, L)

In der zweiten Phase loscht die TM wiederholt die rechteste1 und die linkeste0,bis das Band leer ist. Wenn zu einer1 keine entsprechende0 gefunden wird oderumgekehrt, unterscheidet sich die Anzahl der Nullen von derAnzahl der Einsen,und die TM verwirft. Wenn zu jeder1 eine entsprechende0 gefunden wird, istdie Anzahl der Einsen gleich der Anzahl der Nullen, und die TMakzeptiert. Wirverdeutlichen die genaue Implementierung dieses Vorgehens, indem wir die Be-deutung der einzelnen Zustande erklaren:

16

Page 20: Skript zur Vorlesung

q2 : Der Kopf steht auf dem rechtesten Nichtblank. Falls dieses Zeichen eine1 ist, so losche es, gehe nach links und wechsel in den Zustandq3. Sonstverwirf die Eingabe.

q3 : Bewege den Kopf auf das linkeste Nichtblank. Wechsel nachq4.

q4 : Falls das gelesene Zeichen eine 0 ist, ersetze es durch ein Blank und gehenachq5, sonst verwirf die Eingabe.

q5 : Wir haben jetzt die linkeste 0 und die rechteste 1 geloscht. Falls das Rest-wort leer ist, dann akzeptiere, sonst gehe in den Zustandq6.

q6 : Laufe wieder zum rechtesten Nichtblank und starte erneut inq2.

Im Zustandq2 muss der Kopf auf dem rechtesten Nichtblank stehen. Wie obenerlautert, ist dies auch am Anfang der zweiten Phase der Fall. Somit arbeitet dieTuringmaschine korrekt.

Wir geben nun ein Beispiel einer einfachen partiellen Funktion an und eineTM, die diese Funktion berechnet.

Drittes Beispiel Wir betrachtenuberΣ = {0, 1} die partielle Funktionf :Σ∗ Σ∗ mit

f(w) = 0 falls |w| gerade ist, ansonsten undefiniert

Wir nutzen die Zustandeq0, q1, um modulo 2 zu zahlen, undq2 als “Schlei-fenzustand”. Die Zustandsmenge ist alsoQ = {q0, q1, q2, q}. Wir definieren diegesuchte TM durch ihre Turingtafel:

δ 0 1 B

q0 (q1, 0, R) (q1, 1, R) acceptq1 (q0, 0, R) (q0, 1, R) (q2, B,N)q2 (q2, B,N) (q2, B,N) (q2, B,N)

Abschließend geben wir noch ein Beispiel fur eine Aufzahlungs-TM.

17

Page 21: Skript zur Vorlesung

Viertes Beispiel Wir konstruieren eine Aufzahlungs-TM fur die Menge der Worter12i mit i > 0, d.h. der Worter11, 1111, 111111, . . ..

Wir geben nur die Turingtafel an.

δ 1 B

q0 [(q1, 1, N)] (q1, 1, L)q1 [(q1, 1, N)] (qout, 1, N)qout (q0, 1, L) [(qout, B,N)]

Beginnend inq0 auf dem leeren Band wird nach einem Schritt die Konfigura-tion q1B1 erreicht, dannqout11, dannq0B11, q1111, qout1111, etc. (Die Eintrageder Turingtafel in eckigen Klammern sind unwesentlich.)

High-Level-Beschreibungen von Turingmaschinen

Die prasentierten Beispiele von konkreten Turingmaschinen habengezeigt, dassdie Beschreibung der Arbeitsweise einer TM durch die konkrete Angabe derUber-gangsfunktion sehr umstandlich sein kann. In diesem Abschnittuberlegen wir uns,wie man die Arbeitsweise einer Turingmaschine auf sinnvolle Art und Weise aufeinem hoheren Abstraktionsniveau beschreiben kann, so dass einerseits die Be-schreibung relativ einfach und intuitiv verstandlich ist, aber andererseits klar bleibtwie man sie technisch umsetzen kann.

Als erstesuberlegen wir, dass man bei der Beschreibung des Programmeseiner TM davon ausgehen kann, dass man eine Variable mit konstant großemZustandsbereich im Zustandsraum abspeichern kann. Wenn man im Programmeiner Turingmaschine beispielsweise auf ein Speicherbit zugreifen mochte, sokann man dies technisch realisieren indem man den ZustandsraumQ erweitertzuQ′ = Q× {0, 1}. Ganz analog kann man einen Zahler mit Werten zwischen0und einer Konstantek implementieren, indem man den ZustandsraumQ erweitertzuQ′ = Q×{0, . . . , k}. Die Zahlk muss eine Konstante sein, weil der Zustands-raum einer TM endlich ist. Insbesondere kann man nicht die Lange der Eingabeim Zustandsraum speichern.

Beispiel 1.19Wir geben eine Kopier-Turingmaschine TM an fur denUbergangqw ⊢∗ q′wBw mit w ∈ {0, 1}+. Wir verwenden Redeweisen, die das “Merken”von Information aus einem endlichen Wertebereich (hier sind es endlich viele Al-phabetbuchstaben) bezeichnen. Die TM arbeitet aufw = a1 . . . ak so:

18

Page 22: Skript zur Vorlesung

1. Unterstreiche den aktuellen Buchstaben, merke ihn und gehe nach rechtsauf das Feld vor dem zweiten auftretenden Blank.

Konfiguration im 1. Durchlauf:a1a2 . . . akB[(q)a1]B

2. Drucke gemerkten Buchstaben, gehe nach links bis auf den unterstrichenenBuchstaben, wandle in zuruck (inai) und gehe ein Feld nach rechts.

Konfiguration im 1. Durchlauf:a1(q)a2 . . . anBa1

3. Falls aktueller Buchstabe= B, gehe nach links auf das nachsteB, ein Feldnach rechts, und terminiere inq′.Ansonsten weiter bei 1.

Ein weiterer Programmiertrick: Bei einerk-spurigen TM handelt es sich umeine TM, bei der das Band ink sogenannte Spuren eingeteilt ist, d.h. in jederBandzelle stehenk Zeichen, die der Kopf gleichzeitig einlesen kann. Das konnenwir erreichen, indem wir das Bandalphabet umk-dimensionale Vektoren erwei-tern, z.B.

Γ′ := Σ ∪ Γk .

Die Verwendung einer mehrspurigen TM erlaubt es haufig, Algorithmen ein-facher zu beschreiben. Wir verdeutlichen dies am Beispiel der Addition. Aus derEingabebin(i1)#bin(i2) fur i1, i2 ∈ N soll bin(i1 + i2) berechnet werden. Wirverwenden eine 3-spurige TM mit den AlphabetenΣ = {0, 1,#} und

Γ =

0, 1,#,

000

,

001

,

010

, . . . ,

111

, B

.

Unsere Implementierung fur das Addieren zweier Zahlen arbeitet in drei Pha-sen. In Phase 1 wird die Eingabe so zusammengeschoben, dass die Binarkodie-rungen voni1 und i2 in der ersten und zweiten Spur rechtsbundig ubereinanderstehen. Aus der Eingabe0011#0110 wird beispielsweise

. . . BBB

000

010

110

100

BBB . . . .

In Phase 2 addiert die TM die beiden Zahlen nach der Schulmethode, indem derKopf das Band von rechts nach links durchlauft. Ubertrage werden im Zustand

19

Page 23: Skript zur Vorlesung

gespeichert (Wieso geht das?). Als Ergebnis auf Spur 3 ergibt sich in unseremBeispiel

. . . BBB

001

010

110

101

BBB . . . .

In Phase drei wird das Ergebnis der Rechnung ins Einspur-Format zurucktrans-formiert. Dabei werden die Inhalte der ersten beiden Spurenignoriert, auf demBand steht der Inhalt der dritten Spur, kodiert durchΣ. Die TM muss schließlichnoch zum linkesten Buchstaben des Ergebnisses laufen, weil dies von TMn, dieFunktionen berechnen, so gefordert wird.

Programmkonstrukte aus hoheren Programmiersprachen konnen auch auf TMnimplementiert werden:

• Schleifenhaben wir bereits implizit in den Beispielen fur TMn gesehen.

• Variablenkonnen realisiert werden, indem wir pro Variable eine Spur desBandes reservieren oder auch mehrere Variablen auf derselben Spur abspei-chern. Auf diese Art konnen wir beispielsweise auch Felder (Arrays) ab-speichern.

• Unterprogrammekonnen implementiert werden, indem wir eine Spur desBandes zur Realisierung eines Prozedurstacks reservieren.

Diese Techniken erlauben es uns, auch auf bekannte Algorithmen beispielsweisezum Sortieren von Daten zuruckzugreifen.

Mehrband-Turingmaschinen

In diesem Abschnitt wird zunachst die Mehrband-TM als Verallgemeinerung derTM eingefuhrt. Es zeigt sich jedoch, dass die Berechnungskraft durch das Hin-zufugen zusatzlicher Bander nicht steigt.

Definition 1.20 (k-Band TM) Eine k-Band-TM ist eine Verallgemeinerung derTuringmaschine und verfugtuberk Speicherbander mit jeweils einem unabhangigenKopf. Die Zustandsubergangsfunktion ist von der Form

δ : (Q \ {q})× Γk → Q× Γk × {L,R,N}k .

Band 1 fungiert als Ein-/Ausgabeband wie bei der (1-Band) TM.Die Bander2, . . . , k sind initial mit B∗ beschrieben. Die sonstige Funktionsweise einerk-Band TM ist analog zur TM. Die Laufzeit und der Platzbedarf einer k-Band TMsind ebenfalls analog zur TM definiert.

20

Page 24: Skript zur Vorlesung

Bei der in Abschnitt 1.3.2 besprochenen mehrspurigen TM handelte es sichlediglich um eine hilfreiche Interpretation der (1-Band) TM. Die k-Band TM isthingegen eine echte Verallgemeinerung. Der wesentliche Unterschied liegt darin,dass die Lese-/Schreib-Kopfe der einzelnen Bander sich unabhangig voneinanderbewegen konnen. Dennoch ist einek-Band-TM nicht wirklich machtiger als einenormale TM, wie der folgende Satz zeigt:

Satz 1.21Einek-Band TMM , die mit Rechenzeitt(n) und Platzs(n) auskommt,kann von einer (1-Band) TMM ′ mit ZeitbedarfO(t2(n)) und PlatzbedarfO(s(n))simuliert werden.

Beweis:Die TM M ′ verwendet2k Spuren. Nach Simulation dest-ten Schrittesfur 0 ≤ t ≤ t(n) gilt

• Die ungeraden Spuren1, 3, . . . , 2k − 1 enthalten den Inhalt der Bander1, . . . , k vonM .

• Auf den geraden Spuren2, 4, . . . , 2k sind die Kopfpositionen vonM aufdiesen Bandern mit dem Zeichen# markiert.

Diese Invarianten sind in Abbildung 1.3 visualisiert. Die Initialisierung der Spurenist in konstanter Zeit moglich.

Jeder Rechenschritt vonM wird durchM ′ wie folgt simuliert: Am Anfangsteht der Kopf vonM ′ auf dem linkesten# undM ′ kennt den Zustand vonM . DerKopf vonM ′ lauft nach rechts bis zum rechtesten#, wobei diek Zeichen an denmit # markierten Spurpositionen im Zustand abgespeichert werden. Es ist keinProblem fur M ′, das linkeste (bzw. rechteste)# zu erkennen, da es nur konstantviele #-Markierungen gibt undM ′ sich somit in seinem Zustand merken kann,wie viele Markierungen jeweils links (bzw. rechts) von der aktuellen Kopfpositionstehen. Am rechtesten#-Zeichen angekommen, kannM ′ die UbergangsfunktionvonM auswerten und kennt den neuen Zustand vonM sowie die erforderlichenBewegungen auf denk Bandern. Nun lauft der Kopf vonM ′ zuruck, verandertdabei die Bandinschriften an den mit# markierten Stellen und verschiebt, fallserforderlich, auch die#-Markierungen um eine Position nach links oder rechts.Man mache sich klar, dass alles, wasM ′ sich merken muss, konstante Große hatund somit im Zustand vonM ′ gespeichert werden kann.Laufzeitanalyse:Wieviele Bandpositionen konnen zwischen der linkesten und derrechtesten#-Markierung liegen? Nacht Schritten (t ≥ 1) konnen diese Markie-rungen hochstens2t Positionen auseinanderliegen, da jede der beiden Markie-rungen pro Schritt hochstens um eine Position nach außen wandert. Also ist der

21

Page 25: Skript zur Vorlesung

die 2Banderder simulierten2-Band TM

· · · B b l a − b a n d 1 B · · ·

· · · B B b a n d 2 B B B B · · ·

die 4Spurender simulierenden TM

· · · B b l a − b a n d 1 B · · ·

· · · B B B B B B B # B B B · · ·

· · · B B b a n d 2 B B B B · · ·

· · · B B # B B B B B B B B · · ·

Abbildung 1.3: Simulation vonk Bandern mit2k Spuren, hierk = 2. Die Kopf-positionen sind durch fette Umrandungen angedeutet.

Abstand zwischen diesen Zeichen und somit auch die Laufzeitzur Simulation ei-nes Schrittes durchO(t(n)) beschrankt. Insgesamt ergibt das zur Simulation vont(n) Schritten eine Laufzeitschranke vonO(t(n)2).Analyse des Platzbedarfs:Der Platzbedarf ist linear, weil zu jeder Speicherzelle,die die simulierende TM besucht, mindestens eine Speicherzelle gehort, die diesimuliertek-Band TM besucht. �

1.3.3 Die Registermaschine

Die TM scheint nicht viel mit heute existierenden Rechnern zutun zu haben. Wirfuhren jetzt ein Rechnermodell ein, dass eher den Vorstellungen eines Computersentspricht. Dann vergleichen wir die Berechnungskraft dieses Modells mit derBerechnungskraft der TM.

Die Registermaschine (RAM)ist ein Maschinenmodell, das der Assembler-

22

Page 26: Skript zur Vorlesung

Programm

b

Befehlszahler

c(0)

Akkumulator

✲✛ c(1) c(2) c(3) c(4) · · ·

unbeschrankter Speicher

Abbildung 1.4: Graphische Veranschaulichung der RAM

sprache eines modernen Rechners recht nahe kommt. Die Abkurzung RAM stehtfur die im englischen Sprachgebrauch verwendete Bezeichnung

”Random Access

Machine“. Der Speicher der RAM ist unbeschrankt und besteht aus den Registernc(0), c(1), c(2), c(3), . . . . Das Registerc(0) heißt Akkumulator und spielt eineSonderrolle, da die Rechenbefehle den Inhalt vonc(0) als implizites Argumentbenutzen und das Ergebnis von Rechenoperationen stets inc(0) gespeichert wird.Die Inhalte der Register sind ganze Zahlen, die beliebig großsein konnen. Außer-dem enthalt die RAM einen Befehlszahlerb, der initial auf1 steht. In Abbildung1.4 ist eine RAM graphisch veranschaulicht.

Eine RAM arbeitet ein endliches Programm mit durchnummerierten Befehlenab. In jedem Schritt wird der Befehl in Programmzeileb abgearbeitet. Danach wirdbeim Befehl GOTOi der Befehlszahler aufi gesetzt, beim Befehl END stoppt dieRechnung, ansonsten wird der Befehlszahler um eins inkrementiert. Syntax undSemantik der RAM-Befehle sind in Tabelle 1.1 definiert.

Die Eingabe steht am Anfang der Rechnung in den Registernc(1), . . . , c(k)fur ein k ∈ N. Die Ausgabe befindet sich nach dem Stoppen in den Registernc(1), . . . , c(ℓ) fur einℓ ∈ N. Der Einfachheit halber nehmen wir an, dassk undℓzu Beginn der Rechnung festliegen. Die RAM berechnet somit eineFunktion derFormf : Nk

Nℓ. Die Tatsache, dass Registermaschinen Funktionenuber dennaturlichen Zahlen berechnen, stellt keinen grundsatzlichen Unterschied zum TM-Modell dar, da wir naturliche Zahlen und Binarworter wechselseitig ineinander

23

Page 27: Skript zur Vorlesung

Syntax Zustandsanderung Anderung vonb

LOAD i c(0) := c(i) b := b+ 1CLOAD i c(0) := i b := b+ 1INDLOAD i c(0) := c(c(i)) b := b+ 1STOREi c(i) := c(0) b := b+ 1INDSTOREi c(c(i)) := c(0) b := b+ 1ADD i c(0) := c(0) + c(i) b := b+ 1CADD i c(0) := c(0) + i b := b+ 1INDADD i c(0) := c(0) + c(c(i)) b := b+ 1SUB i c(0) := c(0) .− c(i) b := b+ 1CSUBi c(0) := c(0) .− i b := b+ 1INDSUB i c(0) := c(0) .− c(c(i)) b := b+ 1MULT i c(0) := c(0) · c(i) b := b+ 1CMULT i c(0) := c(0) · i b := b+ 1INDMULT i c(0) := c(0) · c(c(i)) b := b+ 1DIV i c(0) := ⌊c(0)/c(i)⌋ b := b+ 1CDIV i c(0) := ⌊c(0)/i⌋ b := b+ 1INDDIV i c(0) := ⌊c(0)/c(c(i))⌋ b := b+ 1GOTOj - b := j

IF c(0) = x GOTOj - b :=

{j falls c(0) = xb+ 1 sonst

IF c(0) < x GOTOj - b :=

{j falls c(0) < xb+ 1 sonst

IF c(0) ≤ x GOTOj - b :=

{j falls c(0) ≤ xb+ 1 sonst

END Ende der Rechnung -

Tabelle 1.1: Syntax und Semantik der RAM-Befehle

24

Page 28: Skript zur Vorlesung

uberfuhren konnen.Zur Realisierung (d.h. zur Semantik) der im Befehlssatz angesprochenen Ope-

rationen SUB und DIV vereinbaren wir folgendes. Da wirN als Grundbereichverwenden, passen wir die Subtraktion entsprechend an durch Verwendung derFunktion .− (“monus”):

m .− n = m− n, fallsm ≥ n, ansonstenm .− n = 0

Daneben muss eine Konvention zum Umgang mit der “Division durch 0” erfolgen.Wir wollen das Phanomen der Nichttermination nicht im Bereich der elementarenAnweisungen zulassen. Daher definieren wir hiern/0 := 0

Auf der Registermaschine konnen wir offensichtlich Konstrukte wie beispiels-weise Schleifen und Rekursionen, die wir von hoheren Programmiersprachen ge-wohnt sind, realisieren. Auch komplexere Datentypen sind realisierbar. RationaleZahlen lassen sich beispielsweise als Nenner und Zahler in zwei Registern dar-stellen. Die Machtigkeit des Maschinenmodells wurde sich auch nicht verandern,wenn einzelne Register die Fahigkeit hatten, rationale Zahlen zu speichern.

Eine Rechnungterminiert, sobald der Befehl END erreicht wird. Fur die Be-messung derLaufzeiteiner Rechnung gibt es unterschiedliche Modelle:

• Uniformes Kostenmaß:Jeder Schritt zahlt eine Zeiteinheit.

• Logarithmisches Kostenmaß:Die Laufzeitkosten eines Schrittes sind pro-portional zur binaren Lange der Zahlen in den angesprochenen Registern.

Sollte die Rechnung nicht terminieren, so ist die Laufzeit unbeschrankt.

Wir f uhren nun noch ein “minimales” Modell von Registermaschine ein, dasin der Literatur haufig “URM” (f ur “unbeschrankte Registermaschine”) genanntwird. Es verwendet VariablenX1, X2, . . . mit Werten inN. Als Instruktionen ste-hen neben “END” nur drei Typen zur Verfugung, fur das Erhohen eines Wertesum 1 (Inkrement), fur das Vermindern eines Wertes um 1 (Dekrement) und furden bedingten Sprung.

Definition 1.22 (URM-Programm) Ein URM-Programmhat die Form

1.instr1, 2.instr2, . . . , k − 1.instrk−1, k.end

25

Page 29: Skript zur Vorlesung

wobei jede Instruktioninstrj fur j = 1, . . . , k − 1 von einem der folgendenTypen ist:

INC(Xi) (fur Xi := Xi + 1) oder

DEC(Xi) (fur Xi := Xi.− 1) oder

IF Xi = 0 GOTOℓ (mit 1 ≤ ℓ ≤ k)

Wir werden spater auf die Frage eingehen, wie weit die Berechnungskraft die-ses winzigen Programmierformalismus reicht.

1.3.4 Vergleich zwischen Turingmaschinen und RAM

Wir zeigen nun, dass sich TM und RAM gegenseitig simulieren konnen. Diesebeiden Rechnermodelle sind also gleich machtig, d.h. jede Funktion, die in einemdieser beiden Modelle berechnet werden kann, kann auch im anderen Modell be-rechnet werden. Wenn man TM und RAM bezuglich des logarithmischen Kosten-maßes vergleicht, so sind auch die Laufzeiten in diesen beiden Modellenahnlich,denn die gegenseitigen Simulationen haben nur einen polynomiellen Zeitverlust.

Satz 1.23Jede im logarithmischen Kostenmaßt(n)-zeitbeschrankte RAM kannfur ein Polynomq durch eineO(q(n+t(n)))-zeitbeschrankte TM simuliert werden.

Beweis:Im Beweis konnen wir fur die Simulation eine 2-Band-TM statt einer(1-Band) TM verwenden. Wir erlautern, warum das geht: Seienα, β, γ ∈ N ge-eignet gewahlte Konstanten. Wir werden zeigen, dass die Laufzeit der Simulationder RAM mit Laufzeitschranket(n) durch eine 2-Band TM nach oben beschranktist durcht′(n) = α(n + t(n))β. Gemaß Satz 1.21 konnen wir die 2-Band TMmit Laufzeitschranket′(n) nun wiederum durch eine (1-Band) TM mit Laufzeit-schranket′′(n) = γ(t′(n))2 simulieren. Fur die Simulation der RAM auf der (1-Band) TM ergibt sich somit eine Laufzeitschranke von

t′′(n) = γ(t′(n))2 = γ(α(n+ t(n))β

)2= γα2 · (n+ t(n))2β.

Diese Laufzeitschranke ist polynomiell inn+ t(n), weil sowohl der Termγα2 alsauch der Term2β konstant ist. Wir fassen zusammen:

26

Page 30: Skript zur Vorlesung

Beobachtung 1.24Die Klasse der Polynome ist gegen Hintereinanderausfuhrungabgeschlossen. Deshalb konnen wir einekonstanteAnzahl von Simulationen, de-ren Zeitverlust jeweils polynomiell nach oben beschrankt ist, ineinanderschach-teln und erhalten dadurch wiederum eine Simulation mit polynomiell beschrank-tem Zeitverlust.

Wir beschreiben nun die Simulation einer RAM durch eine2-Band TM. DasProgrammP der RAM bestehe ausp Programmzeilen. Fur jede Programmzei-le schreiben wir ein TM-Unterprogramm. SeiMi das Unterprogramm fur Pro-grammzeilei, 1 ≤ i ≤ p. Außerdem spezifizieren wir ein UnterprogrammM0

fur die Initialisierung der TM undMp+1 fur die Aufbereitung der Ausgabe desErgebnisses. DieRegistermaschinenkonfigurationwird durch den Befehlszahlerbund den Inhalt der Register beschrieben. Den Befehlszahlerb ∈ {1, . . . , p} kanndie TM im Zustand abspeichern, dap konstant ist (d.h. unabhangig von der Ein-gabe). Der Inhalt der benutzten Register ist allerdings nicht durch eine Konstantebeschrankt.Speicherung der Register auf einem Band der TM:Seien0, i1, . . . , im die zu einemZeitpunkt benutzten Register, also die Indizes des Akkumulators und derjenigenanderen Register, die Teile der Eingabe enthalten oder in einem der vorhergehen-den Rechenschritte angesprochen wurden. Wir verwenden eine2-Band-TM undspeichern diese Indizes und den Inhalt der entsprechenden Register in der folgen-den Form auf Band 2 ab:

##0#bin(c(0))##bin(i1)#bin(c(i1))## . . .##bin(im)#bin(c(im))### .

Beobachtung 1.25Die Lange des Speicherinhalts auf Band 2 ist durchO(n +t(n)) beschrankt, weil die RAM fur jedes neue Bit, das sie erzeugt, mindestenseine Zeiteinheit benotigt.

Beachte, dass diese Beobachtung auch fur die auf dem Band gespeichertenAdressen gilt, da jede, nicht konstante Adresse, die von derRAM benutzt wirdmindest einmal in den Akkumulator geladen werden muss.

Rechenschritt fur Rechenschritt simuliert die TM nun die Konfigurationsver-anderungen der RAM. Dazu ruft sie das durch den Programmzahlerb beschriebe-ne UnterprogrammMb auf.

Das UnterprogrammMb arbeitet wie folgt:Mb kopiert den Inhalt der in Pro-grammzeileb angesprochenen Register auf Band 1, fuhrt die notwendigen Ope-rationen auf diesen Registerinhalten durch, kopiert dann das Ergebnis in das inProgrammzeileb angegebene Register auf Band 2 zuruck, und aktualisiert zuletztden Programmzahlerb.

27

Page 31: Skript zur Vorlesung

Laufzeitanalyse:Die Initialisierung erfordert ZeitO(n). Alle anderen Unter-programme haben eine Laufzeit, die polynomiell in der Lange der Bandinschriftauf Band 2 beschrankt ist, also eine polynomielle Laufzeit inn + t(n). Die Ge-samtlaufzeit der Simulation ist somit auch polynomiell inn+ t(n) beschrankt.�

Satz 1.26Jedet(n)-zeitbeschrankte TM kann durch eine RAM simuliert werden,die uniformO(t(n) + n) und logarithmischO((t(n) + n) log(t(n) + n)) zeitbe-schrankt ist.

Beweis:Wie schon bei den anderen Simulationen mussen wir die Konfigurationder simulierten Maschine (in diesem Fall der TM) im Speicherder simulieren-den Maschine (der RAM) abbilden. InUbungsaufgabe?? wird gezeigt, dass wirannehmen konnen, dass es sich um eine TM mit einseitig beschranktem Bandhandelt, deren Zellen mit0, 1, 2, 3, . . . durchnummeriert sind. Die Zustande undZeichen werden ebenfalls durchnummeriert und mit ihren Nummern identifiziert,so dass sie in den Registern abgespeichert werden konnen. Register 2 speichertden aktuellen Zustand. Register 1 speichert den Index der Kopfposition. Die Re-gister3, 4, 5, 6, . . . speichern die Inhalte der Bandpositionen0, 1, 2, 3, . . ., soweitdiese Positionen zur Eingabe der TM gehoren oder zuvor vom Kopf der TM be-sucht worden sind.

Die TM wird nun Schritt fur Schritt durch die RAM simuliert. Zunachst wirduberpruft, ob die TM im aktuellen Schritt terminiert. Falls ja, so terminiert auchdie RAM mit der entsprechenden Ausgabe. Ansonsten muss der Zustandsubergangdurchgefuhrt werden: Auf einer ersten Stufe von|Q| vielen IF-Abfragen wird da-zu der aktuelle Zustand selektiert. Fur jeden moglichen Zustand gibt es dann einezweite Stufe von|Γ| vielen IF-Abfragen, die das gelesene Zeichen selektieren.Jenach Ausgang der IF-Abfragen wird dann der Zustand in Register 2 geandert, dieBandinschrift im Register mit der Adressec(1) uberschrieben, und die Bandposi-tion in Register 1 aktualisiert.Laufzeitanalyse im uniformen Kostenmodell:Die Initialisierung kann in ZeitO(n)durchgefuhrt werden. Die Simulation jedes einzelnen TM-Schrittes hat konstanteLaufzeit. Insgesamt ist die Simulationszeit somitO(n+ t(n)).Laufzeitanalyse im logarithmischen Kostenmodell:Die in den Registern gespei-cherten Zahlen reprasentieren Zustande, Zeichen und Bandpositionen. Zustan-de und Zeichen haben eine konstante Kodierungslange. Die Bandpositionen, diewahrend der Simulation angesprochen werden, sind durchmax{n, t(n)} ≤ n +

28

Page 32: Skript zur Vorlesung

t(n) beschrankt. Die Kodierungslange dieser Positionen ist alsoO(log(t(n)+n)).Damit kann die Simulation jedes einzelnen TM-Schrittes in Zeit O(log(t(n) +n)) durchgefuhrt werden. Insgesamt ergibt sich somit eine Simulationszeit vonO((t(n) + n) log(t(n) + n). �

Fazit: Die Mehrband-TM kann mit quadratischem Zeitverlust durch eine (1-Band) TM simuliert werden. TMn und RAMs (mit logarithmischen Laufzeitko-sten) konnen sich gegenseitig mit polynomiell beschranktem Zeitverlust simulie-ren. Wenn es uns also nur um Fragen der Berechenbarkeit von Problemen oderum ihre Losbarkeit in polynomieller Zeit geht, konnen wir wahlweise auf die TM,die Mehrband-TM oder die RAM zuruckgreifen. Fur positive Ergebnisse (wie et-wa obere Laufzeitschranken) ist es haufig sinnvoll, Algorithmen fur die RAM zuspezifizieren. Fur den Nachweis negativer Ergebnisse werden wir meistens auf dieTM zuruckgreifen, da dieses Modell strukturell einfacher ist.

Ubungsaufgabe 1.27

• Zeige, dass jede TM durch eine RAM simuliert werden kann, die nur einekonstante Anzahl von Registern fur naturliche Zahlen benutzt. Bestimmeden Zeitverlust der Simulation im logarithmischen Kostenmaß.

• Zeige, dass der Befehlssatz der RAM fur die Simulation auf die BefehleLOAD, CLOAD, STORE, CADD, CSUB, GOTO, IFc(0) 6= 0 GOTO, ENDeingeschrankt werden kann. Welchen Einfluss hat diese Einschrankung aufden Zeitverlust?

29

Page 33: Skript zur Vorlesung

Kapitel 2

Berechenbarkeit

In diesem Teil der Vorlesung werden wir untersuchen, welcheProbleme durcheinen Computer gelost werden konnen. Wir werden Probleme kennenlernen, diebeweisbar nicht durch einen Rechner gelost werden konnen, selbst wenn beliebigviel Rechenzeit und Speicherplatz zur Verfugung steht.

2.1 Die Church-Turing-These

In Abschnitt 1.3.2, Definition 1.16 haben wir die Klasse derTM-berechenbaren(oder auch:rekursiven) Funktionen definiert. Unsere bisherigen Ergebnisse zei-gen, dass die Berechnungskraft einer RAM genauso groß ist wie die einer TM. Al-so stimmt die Klasse der TM-berechenbaren bzw. rekursiven Funktionenubereinmit der Klasse derjenigen Funktionen, die durch eine RAM berechnet werdenkann.

Tatsachlich wurden in den Anfangen der Rekursionstheorie (also der Theorieder Berechenbarkeit) zahlreiche Versuche unternommen, um die Klasse der bere-chenbaren Funktionen zu charakterisieren. Keines der in diesem Zusammenhangvorgeschlagenen Berechnungsmodelle hat sich als machtiger als das TM-Modellherausgestellt. Alonzo Church und Alan Turing haben (unabhangig voneinander)im Jahr 1936 eine These formuliert, die besagt, dass man mit einem prazisen Mo-dell wie dem der Turingmaschine den intuitiven Begriff “algorithmisch berechen-bar” identifizieren sollte.

Church hat sich auf den von ihm entwickelten Formalismus des “Lambda-Kalkuls” bezogen, Turing arbeitete mit den von ihm vorgeschlagenen Maschi-nen (die Church dann “Turingmaschinen” nannte). Turing, dervon Church’s Vor-

30

Page 34: Skript zur Vorlesung

schlag erfuhr, wies sofort nach, dass Lambda-Kalkul und Turingmaschinen die-selben Funktionen bestimmen. Wir formulieren die Church-Turing-These so:

These 2.1 (Church-Turing-These)Die Klasse der Turing-berechenbaren Funk-tionen stimmt mit der Klasse der intuitiv berechenbaren Funktionenuberein.

Diese Behauptung kann niemals ein “Satz” sein, da der Begriff der intuitivberechenbaren Funktion immer etwas an Unscharfe aufweisen wird. Aber mankann Argumente fur die Church-Turing-These sammeln, und diese sind ziemlicherdruckend:

• Turings Analyse des Rechenvorgangs

• die Erfahrung mit der These seituber 70 Jahren

• Reduktionsmoglichkeit von Erweiterungen des TM-Modells auf die Basis-form

• die Berechnungsaquivalenz vieler andersartiger Programmierformalismenmit dem Modell der Turingmaschine (darunter Lambda-Kalkul, rekursiveFunktionen, Markov-Kalkul, hohere Programmiersprachen)

Wir werden im Folgenden der Church-Turing-These folgen und die TM-berechenbarenFunktionen mit den im intuitiven Sinne berechenbaren Funktionen identifizieren.Dabei benutzen wir die Church-Turing-These in zwei Weisen:

• Unwesentliche Verwendung: Behauptung, dass ein gegebener Algorithmusim intuitiven Sinne auch durch eine TM realisierbar ist. (Hier dient die The-se nur der Bequemlichkeit – durch Fleißarbeit kann man nach Prasentationeiner Turingmaschine den Bezug auf die These streichen.)

• Wesentliche Verwendung: Behauptung, dass eine nicht TM-berechenbareFunktion durch keinerlei Algorithmus berechenbar ist.

Der zweite Punkt ist also essenziell, wenn es darum geht, Probleme aufzuwei-sen, von denen man behauptet, dass sie durch keinerlei Algorithmus losbar sind.

31

Page 35: Skript zur Vorlesung

2.2 Berechenbarkeit, Aufzahlbarkeit, Entscheidbar-keit

Die Church-Turing-These bezieht sich auf Berechenbarkeit, d.h. auf Algorithmenbzw. Turingmaschinen, die eine Eingabe entgegennehmen unddann mit einemErgebnis terminieren oder nicht terminieren.

Ebenso hatte man in der Church-Turing-These den intuitiven Begriff des Auf-zahlungsalgorithmus durch den prazisen Begriff der Aufzahlungs-Turingmaschineerfassen konnen; dann ergabe sich die obengenannte Church-Turing-These erst imzweiten Schritt.

Wir zeigen in diesem Abschnitt, dass die Begriffe “berechenbar”, “aufzahlbar”und “entscheidbar” sehr eng zusammenhangen und dass insbesondere die erstenbeiden wechselseitig aufeinander zuruckgefuhrt werden konnen. Diese Zusammen-hange kann man auf intuitiver Ebene oder auf TM-Ebene zeigen,im letzteren Fallalso fur “TM-berechenbar”, “TM-aufzahlbar” und “TM-entscheidbar”. Wir zie-hen hier die intuitive Ebene vor, da dies die wesentlichen Aspekte schneller klarmacht und technische Details vermeidet.

Wie kann man den Begriff der Aufzahlbarkeit einer Spracheuber den Begriffder Berechenbarkeit einer Funktion gewinnen? Der folgende Satz gibt eine Ant-wort.

Satz 2.2 Eine MengeL ⊆ Σ∗ ist genau dann aufzahlbar, wenn sie Definitionsbe-reich einer berechenbaren Funktionf : Σ∗

Σ∗ ist.

Beweis:⇒: SeiA ein Algorithmus, derL aufzahlt. Wir verwendenA in folgen-dem AlgorithmusB, der eine Funktionf mit Def(f) = L berechnet:

Bei Eingabeu lasse den AufzahlungsalgorithmusA so lange laufen,bis er einmal das Wortu als Ausgabe geliefert hat; in diesem Falleterminiere mit Ausgabeε, ansonsten laufe ohne Termination weiter.

⇐:Sei A ein Algorithmus, derf : Σ∗

Σ∗ berechnet. Wir verwendenA infolgendem AlgorithmusB, der die MengeDef(f) aufzahlt.

Gehe nach dem Diagonalverfahren alle Kombinationen (Wortwi ausΣ∗, Schrittzahlj) durch und lasse jeweils den AlgorithmusA mit Ein-gabewi fur j Schritte laufen.

Immer, wenn dabei festgestellt wird, dassA fur Eingabewi nach≤ jSchritten terminiert, gebe das jeweilige Wortwi aus.

32

Page 36: Skript zur Vorlesung

Nun zeigen wir, wie man Berechenbarkeit mit Hilfe des Begriffsder Aufzahlbarkeiteinfuhren kann. Hierzu eine wichtige Definition.

Definition 2.3 Zuf : Σ∗ Σ∗ sei der “Graph vonf ” die Sprache

Gf := {u#v | u ∈ Def(f) undf(u) = v}

Satz 2.4 Eine Funktionf : Σ∗ Σ∗ ist genau dann berechenbar, wenn ihr

GraphGf aufzahlbar ist.

Beweis:⇐Aus einem AufzahlungsalgorithmusA fur Gf konstruieren wir einen Algo-

rithmusB zur Berechnung vonf :

Bei Eingabeu0 starte den Aufzahlungsalgorithmus und prufe bei je-der Ausgabe, ob es sich um ein Wort der Formu0#v handelt; in die-sem Falle gebev aus und terminiere.

Dieser Algorithmus terminiert genau dann mit dem richtigenErgebnisv =f(u0), wennu0 ∈ Def(f), und er lauft andernfalls ohne zu terminieren. Damitberechnet der Algorithmus die Funktionf .

⇒:SeiA ein Algorithmus zur Berechnung vonf . AusA konstruieren wir einen

AufzahlungsalgorithmusB furGf :

Nutze die kanonische Reihenfolge aller Worterw0, w1, w2, . . . uberdem AlphabetΣ. Gehe im Diagonalverfahren alle Kombinationen(wi, j) durch,uberprufe jeweils, obA bei Eingabewi binnenj Schrit-ten terminiert, etwa mit der Ausgabev, und gebe in diesem Fall dasWortwi#v aus.

Dies liefert offensichtlich eine Aufzahlung des Graphen vonf .�

Wir vergleichen nun die Begriffe “aufzahlbar” und “entscheidbar”.

33

Page 37: Skript zur Vorlesung

Satz 2.5 (a) IstL ⊆ Σ∗ entscheidbar, so auch aufzahlbar.

(b) Eine SpracheL ⊆ Σ∗ ist entscheidbar genau dann, wenn sowohlL alsauch das KomplementΣ∗ \ L vonL aufzahlbar sind.

Beweis:(a) SeiA ein Entscheidungsverfahren furL.Wir konstruieren unter Verwendung vonA ein Aufzahlungsverfahren furL:

Gehe alle Worter in kanonischer Reihenfolgew0, w1, w2, . . . durch,lasse jeweilsA aufwi laufen (diese Berechnung terminiert!) und gebewi aus, wennA die Antwort “ja” (d.h. “wi ∈ L”) liefert.

Beweis von (b)⇒: Aus einem Entscheidungsverfahren fur L ergibt sich einAufzahlungsalgorithmus gemaß Teil (a).

Ein Aufzahlungsalgorithmus fur das Komplement vonL ergibt sich, wennman im Beweis von (a) statt der Antwort “ja” vonA die Antwort “nein” verwen-det.

⇐: Aus AufzahlungsverfahrenA1, A2 furL bzw. das Komplement vonL kon-struieren wir einen Entscheidungsalgorithmus furL:

Bei Eingabeu lasse die AufzahlungsalgorithmenA1, A2 zugleich lau-fen, bis einer von beidenu liefert: Ist diesA1, terminiere mit Ausgabe“ja”; ist diesA2, terminiere mit Ausgabe “nein”.

Dieser Algorithmus terminiert fur jedesu, denn es giltu ∈ L oder es giltu ∈ (Σ∗ \ L). Also liefert entwederA1 oderA2 irgendwann das Wortu.

Wir schließen den Kreis durch einen weiteren Begriff: Semi-Entscheidbarkeit.

Definition 2.6 Eine SpracheL ⊆ Σ∗ heißtsemi-entscheidbar, wenn es eine TMuberΣ gibt, die

• fur jedes Eingabewortw ∈ L terminiert (oBdA mit Ausgabe1)

• fur jedes Eingabewortw 6∈ L nicht terminiert.

34

Page 38: Skript zur Vorlesung

Satz 2.7 Eine SpracheL ⊆ Σ∗ ist semi-entscheidbar genau dann, wenn sie auf-zahlbar ist.

Beweis:⇒: Aus einem Semi-EntscheidungsalgorithmusA furL konstruieren wir einen

AufzahlungsalgorithmusB:

Gehe nach dem Diagonalverfahren alle Kombinationen (Wortwi ausΣ∗, Schrittzahlj) durch und lasse jeweils den Semi-EntscheidungsalgorithmusA aufwi fur j Schritte laufen: TerminiertA innerhalb dieser Schritt-zahl, gebewi aus.

⇐: Aus einem AufzahlungsalgorithmusA furL konstruieren wir einen Semi-EntscheidungsalgorithmusB:

Bei Eingabeu lasse den AufzahlungsalgorithmusA laufen und ter-miniere, wennA irgendwann das Wortu liefert; ansonsten laufe ohnezu terminieren.

2.3 Das HalteproblemH

Im Folgenden werden wir mehrere Probleme kennen lernen, dietrotz ihrer einfa-chen Formulierung nicht entscheidbar sind. Das bedeutet, dass es fur keines die-ser Probleme einen Algorithmus gibt, der dieses Problem lost, unabhangig vomRechnermodell fur den der Algorithmus spezifiziert wird. Dies schließt auchmo-derne Rechnerkonzepte wie z.B. Quantencomputer oder phantastische Konzeptewie nicht-deterministische Turingmaschinen, die wir spater noch kennen lernenwerden, ein.

Wir zeigen nacheinander die folgenden Satze:

1. Es gibt eine Sprache, die nicht entscheidbar ist.

2. Es gibt eine konkret angebbare SpracheH, die nicht entscheidbar ist.

3. Diese SpracheH wird sich immerhin als semi-entscheidbar (d.h. aufzahlbar)erweisen.

4. Es gibt eine konkret angebbare Sprache, die nicht aufzahlbar ist.

35

Page 39: Skript zur Vorlesung

2.3.1 Existenz eines unentscheidbaren Problems

Wir beginnen mit einer Exkursion in die Mengenlehre, im Besonderen in dieTheorie der abzahlbaren unduberabzahlbaren Mengen.

Definition 2.8 Eine MengeM heißtabzahlbar, wenn es eine surjektive Funktionf : N → M gibt.

WennM abzahlbar ist vermoge der Funktionf in dieser Definition, dann istM darstellbar alsM = {f(0), f(1), f(2), . . .}. Das heißt, dass man die ElementevonM auflisten kann. Doch bedeutet dasnicht, dass man einenAlgorithmushat,um zu gegebenemi das Elementf(i) zu bestimmen! Die Existenz einer Listebedeutet nicht unbedingt die Existenz einer berechenbarenListe.

Wir geben einige Beispiele fur abzahlbare Mengen:

• die MengeZ der ganzen Zahlen

(Man nutze z.B. die Reihenfolge0, 1,−1, 2,−2, 3,−3, . . ..)

• die MengeQ der rationalen Zahlen

(Man nutze z.B. die Reihenfolge aller Bruche ij

nach dem Diagonalverfah-ren und notiere jeweils diesen Bruch und− i

j.)

• {0, 1}∗, die Menge der Worteruber dem Alphabet{0, 1}:

(Man nutze z.B. die kanonische Reihenfolge der WorteruberΣ.)

• die Menge der Turingmaschinen mit dem Eingabealphabet{0, 1}.

(Dies wird im Folgenden gezeigt.)

Zum letzten Punkt benotigen wir eine Kodierung von Turingmaschinen. Wir stel-len eine TM mit ZustandsmengeQ und ArbeitsalphabetΓ in der folgenden nor-mierten Form dar:

• SeiQ = {1, . . . , t}.

• Der Anfangszustand sei1 und der Stoppzustand2.

• SeiΓ = {a1, a2, . . . ak} (mit a1 = 0, a2 = 1, a3 = B)

36

Page 40: Skript zur Vorlesung

Zur Beschreibung in dieser Form mussen wir nur die Turingtafel als Binarstringkodieren.

• Ein Eintragz der Turingtafel

i ak j aℓ L/R/N

wird kodiert durch den Binarstring

code(z) := 0i10k10j10ℓ10/00/000

• Die Kodierung einer TMM mit Eintragenz1, . . . , zs der Turingtafel wirddurch folgendes Kodewort〈M〉 dargestellt:

〈M〉 = 111 code(z1) 11 code(z2) 11 . . . 11 code(zs) 111 .

Diese Definition macht klar, dass man von einem 0-1-Wort entscheiden kann,ob es das Format〈M〉 fur eine TMM hat:

Bemerkung 2.9 Die Menge der Kodierungsworter von Turingmaschinen ist ent-scheidbar.

Wir erhalten nun auch die obengenannte Behauptung, dass Ebenso leicht ergibtsich folgende Behauptung:

Bemerkung 2.10 Die MengeT der Turingmaschinenuber{0, 1} ist abzahlbar.

Beweis:Zum Beweis definieren wir eine surjektive Abbildungf : N → T durchRuckgriff auf die kanonische Reihenfolge der Worteruber{0, 1}:

• f(i) :=Turingmaschine, deren Kode deri-te TM-Kode in der kanonischenReihenfolge aller Worteruber{0, 1} ist.

Beide vorangehenden Bemerkungen zeigen, dass man die Turingmaschinenuber{0, 1} sogar “effektiv auflisten” kann, d.h. in Form einer berechenbaren ListeM0,M1, . . ., also mit berechenbarer Funktionf : M 7→ Mi.

Die Kodeworter fur Turingmaschinen nennt man zuweilen auch “Godelnum-mern”. Diese Bezeichnung geht auf den Logiker Kurt Godel zuruck, der in seinenUntersuchungen logische Aussagen und formale Beweise durchnaturliche Zahlen

37

Page 41: Skript zur Vorlesung

kodierte, um Behauptungen wie “x wird durch den Beweisy formal bewiesen” alsBehauptungenuber Zahlen darstellen zu konnen. Diese Art der Kodierung nenntman auch “Godelisierung”.

Auch wir konnten Turingmaschinen (mit Ruckgriff auf die kanonische Rei-henfolge der Worter) durch Zahlen statt durch Worter kodieren. Wir bleiben beider Darstellung durch Worter.

Wir zeigen nun, wie manuber den Bereich der abzahlbaren Mengen hinausge-hen kann. Wir nennen MengenM , die sich nicht als Bild einer surjektiven Funk-tion f : N → M darstellen lassen,uberabzahlbar.

Wir betrachten dazu die Menge, die aus allen Teilmengen vonN besteht: DiePotenzmengeP(N) vonN ist die Menge aller Teilmengen vonN.

Satz 2.11P(N) ist uberabzahlbar.

Beweis:

• Annahme:P(N) ist abzahlbar.

• Dann gibt es eine surjektive Funktionf : N → P(N); also ist etwaP(N) ={f(0), f(1), f(2), . . .}.

• BetrachteK := {i ∈ N | i 6∈ f(i)}

• K kommt in der Liste der Mengenf(0), f(1), . . . vor, etwaK = f(i0).

• Danni0 ∈ K ⇔ i0 6∈ f(i0) ⇔ i0 6∈ K,Widerspruch

Wir ubertragen dieses Resultat nun von Mengen naturlicher Zahlen auf Men-gen von Wortern:

Bemerkung 2.12 Die Menge aller SprachenL ⊆ {0, 1}∗, d.h. die Potenzmengevon{0, 1}∗, ist nicht abzahlbar.

Zum Nachweis kopieren den Beweis fur die Potenzmenge vonN unter Verwen-dung der kanonischen Reihenfolge der WorteruberΣ.

38

Page 42: Skript zur Vorlesung

Bemerkung 2.13 Die Menge der entscheidbaren SprachenL ⊆ {0, 1}∗ ist abzahlbar.

Beweis:Die Menge aller TMuber{0, 1} ist abzahlbar, also auch die Menge derTM, die eine Sprache entscheiden. �

Mit diesen beiden Bemerkungen ist unser erstes Ziel erreicht:

Satz 2.14Es gibt eine nicht entscheidbare Sprache.

2.3.2 Unentscheidbarkeit des HalteproblemsH fur Turingma-schinen

Nun wollen wir ein konkret angebbares (sogar interessantes) nicht entscheidbaresProblem vorstellen; dasHalteproblem fur Turingmaschinen:

• Gegeben: TuringmaschineM uber{0, 1}, Eingabewortw ∈ {0, 1}∗

• Frage: StopptM bei Eingabew?

Wir nutzen die Kodierung vonM durch〈M〉. Dann wird das allgemeine Hal-teproblem dargestellt durch die folgende Sprache:

H = {〈M〉w | M halt aufw} .

Wir schreiben auchM : w → stopp, wennM angesetzt aufw halt, ansonstenM : w → ∞.

Satz 2.15Das Halteproblem fur Turingmaschinen (d.h. die SpracheH) ist nichtentscheidbar.

Beweis:Annahme: Die TMM0 entscheideH. Dann gilt fur jede TMM :

M0 : 〈M〉w →

{1 fallsM : w → stopp0 fallsM : w → ∞

Wir modifizierenM0 zu einer neuen TMM1, die auf Eingaben〈M〉 wie folgtarbeitet:

1. Stelle aus〈M〉 das Wort〈M〉〈M〉 her (Kopiervorgang)

2. Arbeite wieM0 (M0 entscheidet hier, obM : 〈M〉 → stopp)

39

Page 43: Skript zur Vorlesung

3. Gehe in∞-Schleife beiM0-Ausgabe 1, aber stoppe beiM0-Ausgabe 0(Implementierung: Ersetze inM0 den Zustandq durchq′ und fuge folgendeInstruktionen ein:q′ q′ 1N , q′ 0 q 0N )

Fur jedes Eingabewort〈M〉 gilt dann:M1 : 〈M〉 → stopp

⇐⇒︸︷︷︸

nach Konstr.M1

M0 : 〈M〉 〈M〉︸︷︷︸

w

→ 0

⇐⇒︸︷︷︸

M0 entscheidetH

M : 〈M〉 → ∞.

Fur M = M1 ergibt sich ein Widerspruch. Also war die Annahme, das es eineTM M0 gibt, die AHP entscheidet, falsch. �

In umgangssprachlicher Formulierung besagt der Satz:

Folgendes Entscheidungsproblem ist nicht algorithmisch entscheid-bar:

• Gegeben eine TMM und ein Eingabewortw,

• terminiertM nach Start mit dem Eingabewortw?

Kurz: Das Problem, ob eine gegebene TM fur ein gegebenes Eingabewort ter-miniert, ist unentscheidbar.

Diese Frage der Programmtermination ist sehr naturlich. Der Bezug auf Tu-ringmaschinen ist unwesentlich.

Was bedeutet dieses Ergebnis? Wir halten einige Aspekte fest:

• Das Ergebnis sagt nur, dass eine uniforme algorithmische Losung fur alleInstanzenM,w unmoglich ist.

• In Einzelfallen ist die Frage naturlich beantwortbar.

• Tauchen unentscheidbare Probleme in der Praxis auf, versucht man oft, dieInstanzen einzuschranken, um noch eine algorithmische Losung zu errei-chen.

• In der Logik gibt es “unentscheidbare Aussagen”A: Damit meint man etwasgnaz anderes – die Nichtbeweisbarkeit sowohl vonA als auch von¬A aufBasis der betrachteten Annahmen.

40

Page 44: Skript zur Vorlesung

2.3.3 Universelle Turingmaschinen und Aufzahlbarkeit von H

Unser nachstes Ziel ist der Nachweis, dass die Sprache

H = {〈M〉w | M :→ stopp},

die das Halteproblem kodiert, aufzahlbar ist. Wir nutzen dabei dieAquivalenzzwischen Aufzahlbarkeit und Semi-Entscheidbarkeit.

Intuitiv ist die dann resultierende Behauptung, dassH semi-entscheidbar ist,einfach einzusehen. Folgender Semi-Entscheidungsalgorthmus leistet das Gewunschte:

1. Zuv ∈ {0, 1}∗ uberprufe, obv die Form〈M〉w hat.

2. Wenn nicht, terminiere nicht.

3. Wenn ja, arbeite wieM aufw und terminiere, wennM dies tut.

Dabei ist klar, dass die letzte Phase durchfuhrbar ist, weil die Kodierung〈M〉 aufdem Band vorliegt. Wir wollen nun etwas mehr ins Detail gehen und andeutenwie der intuitive Algorithmus – und hier insbesondere die Phase 3 – durch einekonkrete Turingmaschine ersetzt werden kann.

Bisher haben wir fur jedes Problem eine eigene TM entworfen, einenspeci-al purposeRechner. Real existierende Maschinen sind jedoch programmierbaregeneral purposeRechner. Wir benotigen jetzt eine programmierbare Variante derTM, die sogenannteuniverselle TM.

Die universelle TMU simuliert eine beliebige andere TMM auf einer belie-bigen Eingabew. Als Eingabe erhalt U einen String der Form〈M〉w, wobei derString 〈M〉 die simulierte TuringmaschineM kodiert. Die universelle TM simu-liert das Verhalten der TMM auf der Eingabew und ubernimmt deren Akzep-tanzverhalten. Bei inkorrekter Eingabe (d.h. die Eingabe beginnt nicht mit einerTM-Kodierung〈M〉) terminiertU nicht.

In seiner Arbeit von 1936 hat Turing eine solche Maschine angegeben unddamit fur sein Rechnermodell gezeigt, dass es die Idee der programmierbarenRechenmaschine umfasst.

Satz 2.16 (Turing)Es gibt eine universelle Turingmaschine.

Beweis:Wir geben (anders als Turing in seiner Arbeit) nur eine skizzenhafte Dar-stellung der MaschineU . Wir implementierenU in Form einer 3-Band TM. Zur

41

Page 45: Skript zur Vorlesung

Initialisierung uberpruft U zunachst, ob die Eingabe mit einer korrekten TM-Kodierung 〈M〉 beginnt, d.h. die Form〈M〉w hat. Falls nicht, gehtU in eineSchleife und terminiert nicht.

Andernfalls kopiertU den vorliegenden TM-Kode〈M〉 auf Band 2. Der zwei-te Teilw der Eingabe wird auf Band 1 gespeichert, und zwar in Unarkodierung.Wir folgen dabei der Kodierung der Arbeitsalphabet-Buchstabena1 = 0, a2 =1, a3 = B, . . . durch die 0-Worter0, 00, 000, wie dies in der Kodierung von Tu-ringmaschinen erfolgte.

Wenn zum Beispielw = 1101, lautet die Kodierung auf dem 1. Band vonU :[ 00100101001 ], mit Randmarken[, ]. Es ist leicht, ein vorliegendes Wortw ∈{0, 1}∗ in seine Unarkodierung zuuberfuhren. Der Kopf vonU auf dem erstenBand steht danach unter dem ersten Zeichen der Kodierung vonw.

Wahrend der Simulationubernehmen die3 Bander vonU also die folgendenAufgaben:

• Band 1 vonU enthalt in unarer Kodierung die Bandinschrift bei der ArbeitvonM .

• Band 2 vonU enthalt den Kode vonM .

• Auf Band 3 speichertU den jeweils aktuellen Zustand vonM .

Zur Simulation eines Schritts vonM suchtU zu dem Zeichen an der Kopfpo-sition auf Band 1 und dem Zustand auf Band 3 die Kodierung des entsprechendenUbergangs vonM auf Band 2. Wie in derUbergangsfunktion im vorliegendenTM-Kode 〈M〉 festgelegt,

• aktualisiertU die Inschrift auf Band 1,

• bewegtU den Kopf auf Band 1, und

• verandertU den auf Band 3 abgespeicherten Zustand vonM .

Die Anderungen der Inschrift auf Band 1 erfolgen durch Ersetzen oder Erganzungvon Blocken0i1. Dies erfordert bei Bedarf das Schaffen von Platz, durch Ver-schiebung von Teilen der vorhandenen Inschrift einschließlich Randmarke. Imeinzelnen sieht die Simulierung eines Schritts vonM wie folgt aus:

• Zu dem Block0j1 an der Kopfposition aus Band 1

• und zur Zustandskodierung0i1 auf Band 3

42

Page 46: Skript zur Vorlesung

• suchtU die Kodierung des entsprechendenUbergangs in der Kodierung〈M〉 auf Band 2,

etwa das Segment11 0i10j10k10ℓ100 11

Wie in diesem Segment von〈M〉 festgelegt,

• aktualisiertU die Inschrift auf Band 1 durch Ersetzung von0j1 durch0ℓ1

• bewegtU den Kopf auf Band 1 wie vorgeschrieben,

• verandertU den auf Band 3 abgespeicherten Zustand vonM (Ersetzungvon0i1 durch0k1).

Nun folgt sofort, dass die SpracheH (Turing-) semi-entscheidbar und somit(Turing-) aufzahlbar ist:

Satz 2.17Die MengeH = {〈M〉w | M halt aufw} ist Turing-aufzahlbar.

Es ergibt sich sofort, dass das KomplementH := {0, 1}∗ \ H von H nichtaufzahlbar ist:

Satz 2.18Die SpracheH ist nicht aufzahlbar.

Beweis:Wir wissen: Die SpracheH ist aufzahlbar, aber nicht entscheidbar. Ein Wort

u ist in H genau dann, wenn entwederu nicht die Form〈M〉w hat, oder aberu = 〈M〉w undM : w → ∞. Ware nunH aufzahlbar, so warenH,H beideaufzahlbar, also wareH sogar entscheidbar. DochH ist nicht entscheidbar.

Wir erganzen unsereUberlegungen zum Vergleich der aufzahlbaren und derentscheidbaren Sprachen durch zwei einfache Satze, die die Booleschen Opera-tionen fur aufzahlbare bzw. entscheidbare Sprachen behandeln.

Satz 2.19Die Klasse der aufzahlbaren Sprachen (uber{0, 1}) ist abgeschlossenunter Vereinigung und Durchschnitt, nicht jedoch unter Komplement.

43

Page 47: Skript zur Vorlesung

Beweis:Die Behauptunguber das Komplement wurde mit der SpracheH gezeigt.Fur zwei aufzahlbare (also semi-entscheidbare) SprachenL1, L2 seienA1, A2 ent-sprechende Semi-Entscheidungsalgorithmen. Bilde daraus Semi-EntscheidungsalgorithmenA∩ furL1 ∩ L2 undA∪ furL1 ∪ L2:

A∩ lasst (fur Eingabeu) A1, A2 parallel laufen und terminiert, wennbeide terminiert haben.

A∪ lauft wieA∩, terminiert jedoch, sobaldA1 oderA2 terminiert hat.

Satz 2.20Die Klasse der entscheidbaren Sprachen (uber{0, 1}) ist eine Boole-sche Algebra – sie ist abgeschlossen unter Vereinigung, Durchschnitt und Kom-plement.

Beweis:IstA ein Entscheidungsalgorithmus furL, dann wirdL entschieden durchden Algorithmus, der ausA entsteht, indem die Ausgaben “ja” und “nein” ver-tauscht werden.

Fur zwei entscheidbare SprachenL1, L2 seienA1, A2 entsprechende Entschei-dungsalgorithmen. Bilde daraus EntscheidungsalgorithmenA∩ furL1∩L2 undA∪

furL1 ∪ L2:

A∩ lasst (fur Eingabeu) A1, A2 parallel laufen, bis sie terminieren.Als Ausgabe wird “ja” geliefert, wenn beide die Antwort “ja”gelie-fert haben, sonst “nein”.

A∪ lauft wie A∩, gibt jedoch “ja” aus, wenn wenigstens einer vonA1, A2 dies getan hat, sonst “nein”.

2.4 Weitere unentscheidbare Probleme

2.4.1 Problemreduktionen und Unterprogrammtechnik

In diesem Abschnitt geben wir mehr Beispiele unentscheidbarer Probleme an. Eshandelt sich um Entscheidungsproblemeuber Turingmaschinen:

44

Page 48: Skript zur Vorlesung

• Einfaches HalteproblemHε

Gegeben eine TuringmaschineM , haltM angesetzt auf das leere Band?

• AquivalenzproblemEq

Gegeben zwei TuringmaschinenM1,M2, berechnenM1 undM2 dieselbeFunktion?

• TotalitatsproblemT

Gegeben eine TuringmaschineM , haltM fur jedes Eingabewort?

Um jeweils die Unentscheidbarkeit zu zeigen, nutzen wir diesog. Reduktions-methode. Damit werden Entscheidungsprobleme verglichen und die Unentscheid-barkeit von einem Problem auf ein anderesubertragen.

Wir erinnern an das Format eines Entscheidungsproblems:

Definition 2.21 Ein EntscheidungsproblemP ist gegeben durch

• die MengeIP der Probleminstanzen

• die MengeP ⊆ IP der Instanzen, die die Antwort “ja” verlangen.

Wir sagen in diesem Fall: “Gegeben eine Instanzx ausIP , gehort x zuP?”

Beispiel 2.22HalteproblemH:IH = Menge der Paare (TuringmaschineM , Eingabewortw ∈ {0, 1}∗)H = Menge der(M,w) mit M : w → stopp

Haufig stellen wir ein Entscheidungsproblem durch eine Sprache dar. Dannsind die Instanzen Worter (etwauber{0, 1}) und das ProblemP = (IP , P ) wirdzu folgender Frage:

• Gegeben ein Wortu ∈ {0, 1}∗

• stelltu eine Instanz vonP dar?

• und wenn “ja”: Gehort diese Instanz zuP?

45

Page 49: Skript zur Vorlesung

Wir arbeiten jetzt mit dem FormatP = (IP , P ). Wir wollen die Unentscheid-barkeit des HalteproblemsH auf andere Entscheidungsproblemeubertragen. Hier-zu definieren wir, wann ein ProblemQ “mindestens so schwierig” wie ein Pro-blemP ist.

Definition 2.23 SeienP = (IP , P ),Q = (IQ, Q) Entscheidungsprobleme.

• P: Gegebenx in IP , gilt x ∈ P?

• Q: Gegebenx in IQ, gilt x ∈ Q?

P heißtreduzierbaraufQ, kurz:P ≤ Q, gdw.

es gibt eine berechenbare Funktionf : IP → IQ mit:

x ∈ P gdw.f(x) ∈ Q (fur alle x ∈ IP )

Wir zeigen, dass diese Definition die Idee umsetzt, dassQ “mindestens so schwie-rig ist wie P.

Lemma 2.24 (Reduktionslemma)GelteP ≤ Q. WennP unentscheidbar ist, so auchQ.

Beweis:Wir zeigen dieaquivalente Aussage

IstQ entscheidbar, dann ist auchP entscheidbar.

Nach der VoraussetzungP ≤ Q. betrachten wir eine berechenbare Funktionf : IP → IQ mit:

(∗) x ∈ P gdw.f(x) ∈ Q (fur allex ∈ IP )

Zu zeigen: IstQ entscheidbar, dann ist auchP entscheidbar. Sei dazuAf einAlgorithmus, derf berechnet, undAQ ein Algorithmus, der zuy ∈ IQ entscheidet,oby ∈ Q. Gesucht ist ein AlgorithmusAP , derP entscheidet. Wir definierenAP

so:

Bei Eingabex ∈ IP wendeAf an, erhaltef(x) ∈ IQ.Auf f(x) wendeAQ an, erhalte Antwort, obf(x) ∈ Q.Gebe dieAQ-Ausgabe aus.

46

Page 50: Skript zur Vorlesung

Dieser Algorithmus leistet wegen(∗) das Gewunschte.�

Dieser Beweis nutzt einen Spezialfall der “Unterprogrammtechnik”: Der Al-gorithmusAP nutzt den angenommenen AlgorithmusAQ als Unterprogramm.Dies ist eine allgemeine Methode, aus gegebenen (Entscheidungs-) Algorithmenneue Algorithmen zu gewinnnen. Die Unterprogrammtechnik wird hier allerdingsin sehr einfacher Form genutzt: Das “Programm”AQ wird nur einmal aufgerufen,und sein Ergebnis wird direkt fur das aufrufende Programm verwendet. Im allge-meinen ist die Methode auch in komplexeren Anwendungen nutzbar, etwa wennman das Unterprogramm mehrfach aufruft, auch in Abhangigkeit vom Ergebnisfruherer Aufrufe. Dies fuhrt auf die sog. “Turing-Reduktion”, die starker ist alsdie ReduktionP ≤ Q.

2.4.2 Einfaches Halteproblem undAquivalenzproblem fur Tu-ringmaschinen

Wir zeigen nun die Unentscheidbarkeit des einfachen Halteproblems:

Hε: Gegeben eine TM, stoppt sie angesetzt auf das leere Band?

Satz 2.25Das einfache HalteproblemHε fur Turingmaschinen ist unentscheid-bar.

Beweis:Nach dem Reduktionslemma genugt:H≤Hε. Wir finden eine berechen-bare Transformation (TMM , Wortw) 7→ TM M ′, so dass:

(∗) M stoppt aufw gdw.M ′ stoppt angesetzt auf das leere Band.

Wir definierenM ′ ausM undw wie folgt:

M ′ schreibtw aufs leere Band, geht auf ersten Buchstaben vonw undarbeitet dann wieM .

Offenbar gilt dann(∗).�

Nun zeigen wir die Unentscheidbarkeit desAquivalenzproblems:

Eq: Gegeben zwei TM, berechnen sie dieselbe Funktion?

47

Page 51: Skript zur Vorlesung

Satz 2.26DasAquivalenzproblemEq fur Turingmaschinen ist unentscheidbar.

Beweis:Nach dem Reduktionslemma genugt:Hε ≤ Eq. Wir geben eine berechenbare

Transformation einer TMM in TM’en M1,M2 an, so dass:

(∗) M stoppt auf leerem Band gdw.M1,M2 berechnen dieselbe Funktion.

Wir bestimmenM1 unabhangig vonM : “Bei Eingabew drucke ein Blank undstoppe”. Diese TMM1 berechnet die Konstanteε.

Nun konstruieren wirM2 ausM wie folgt:

M2 loscht das vorliegende Eingabewortw, arbeitet dann wieM aufdem leeren Band und druckt bei Stopp ein Blank.

Dann gilt fur jedes Eingabewortw:

• M2 : w → ε, fallsM auf dem leeren Band stoppt,

• M2 : w → ∞, fallsM auf dem leeren Band nicht stoppt.

Somit gilt wie gewunscht:M stoppt auf leerem Band gdw.M1,M2 berechnen dieselbe Funktion (namlich

die Konstanteε).�

Es folgt der Nachweis, dass das Das Totalitatsproblem unentscheidbar ist:

Htotal: Gegeben eine TuringmaschineM uber{0, 1}, stopptM fur jede Eingabew (d.h. berechnetM eine totale Funktion)?

Die entsprechende Sprache ist:

Htotal = {〈M〉 | M halt fur jedesw}

Satz 2.27Das Totalitatsproblem fur Turingmaschinen ist unentscheidbar.(Somit: Die SpracheHtotal ist unentscheidbar.)

48

Page 52: Skript zur Vorlesung

Beweis:Wir zeigenHǫ ≤ Htotal. Dazu geben wir eine berechenbare Transformation

M 7→ M ′ an mit

(∗) M : ε → stopp gdw.M ′ berechnet eine totale Funktion

Wir konstruierenM ′ ausM wie folgt:

Losche Eingabew (Ergebnis: leeres Band) und arbeite dann wieM .

Dann gilt offensichtlich(∗). �

2.4.3 Der Satz von Rice

In diesem Abschnitt zeigen wir, dass “alle interessanten” Eigenschaften von Tu-ringmaschinen unentscheidbar sind.

Beispiel 2.28Beispiele von Eigenschaften von TuringmaschinenM :

• E1 : M : ε → stopp

• E2 : M berechnet eine totale Funktion (siehe letzter Satz).

• E3 : M stoppt fur Eingabew nach≤ 3 Schritten.

• E4 : M hat 17 Zustande.

Wir definieren nun zwei Arten von TM-EigenschaftenE, namlich “nicht-trivial” und “semantisch”.

Definition 2.29 Eine TM-EigenschaftE heißtnicht-trivial, wenn es eine TM mitE gibt, aber auch eine TM, die die EigenschaftE nicht hat.

Die vier EigenschaftenE1, . . . , E4 sind alle nicht-trivial. Trivial sind die Eigen-schaften “M hat endlich viele Zustande” oder “M hat keinen Anfangszustand”.

Definition 2.30 Eine TM-EigenschaftE von TuringmaschinenM heißtseman-tisch, wennE fur M nur von der durchM berechneten Funktion abhangt. Inanderen Worten: WennM1,M2 dieselbe Funktion berechnen, dann gilt (M1 hatEgdw.M2 hatE).

49

Page 53: Skript zur Vorlesung

Die EigenschaftenE1, E2 sind semantisch,E3, E4 sind nicht semantisch.

Satz 2.31Satz von RiceJede nicht-triviale semantische TM-EigenschaftE ist unentscheidbar.

Dieser Satz zeigt unter anderem sofort, dass das spezielle Halteproblem unddas Totalitatsproblem unentscheidbar sind (die betreffenden TM-Eigenschaftensind die obengenannten EigenschaftenE1, E2).Beweis:

Betrachte eine nicht-triviale semantische TM-EigenschaftE. Sie liefert dasEntscheidungsproblemE mit der Menge aller TM (uber {0, 1}) als Instanzen-menge: Gegeben TMM , hatM die EigenschaftE? Wir zeigenHǫ ≤ E, d.h. wirfinden eine berechenbare TransformationM 7→ M ′ so dass

M : ε → stopp ⇔ M ′ hatE.

Wir benotigen eine kleine Vorbereitung: SeiM⊥ die TM mit den Instruktio-nenq0 a q0 a N , die sofort im Kreis lauft und dieuberall undefinierte Funtionuberechnet.

• Fall 1: M⊥ hatE nicht.

• Fall 2: M⊥ hatE

Wir behandeln Fall 1, Fall 2 geht analog.M⊥ habeE nicht. Dann wahlen wir eine TMMg, dieE hat und die folglich

eine Funktiong 6= u berechnet. (E ist nicht-trivial und semantisch!)

Wir konstruieren nun ausM eine TMM ′, die folgendermaßen arbeitet:

1. Speichere Eingabew auf nichtbenutztem Bandabschnitt, arbeite rechts da-von (in einem durch zwei Symbole# eingeschlossenen Bereich).

2. Arbeite wieM auf ε (hier wird je nach Bedarf der Bereich zwischen denbeiden Randmarken# schrittweise ausgedehnt).

3. Bei Termination losche alle Symbole6= B, bis auf das ursprungliche Ein-gabewortw.

4. Arbeite wieMg aufw

50

Page 54: Skript zur Vorlesung

Es bleibt zu zeigen:M : ε → stopp ⇔M ′ hatE.

Beweis von⇒:M : ε → stopp

⇒M ′ erreicht Phase 3 und arbeitet wieMg aufw⇒M ′ undMg berechnen dieselbe Funktion⇒M ′ hatE (daMg E hat).

Beweis von⇐:M : ε → ∞

⇒M ′ bleibt in Phase 2 hangen⇒M ′ terminiert fur keinw⇒M ′ undM⊥ berechnen dieselbe Funktion⇒M ′ hatE nicht (daM⊥ nichtE hat).

2.5 Die Klasse RE der aufzahlbaren Sprachen undSprachen jenseits von RE

Wir betrachten in diesem Abschnitt SprachenK,L, . . . ⊆ {0, 1}∗ als Entschei-dungsprobleme.

Bemerkung 2.32 WennK ≤ L undL aufzahlbar ist, dann ist auchK aufzahlbar.

Im Beweis nutzen wir, dass “aufzahlbar” und ‘semi-entscheidbar” gleichbe-deutend sind.

Beweis:Nach Voraussetzung existiert berechenbare Transformationf : {0, 1}∗ →{0, 1}∗ mit

(∗) x ∈ K ⇔ f(x) ∈ L

Der AlgorithmusAf berechnef . Der AlgorithmusAL semi-entscheideL. Fol-gender AlgorithmusA semi-entscheidet dannK:

Zu Eingabex wendeAf an, erhaltef(x), und auff(x) wendeAL an.

51

Page 55: Skript zur Vorlesung

Wegen(∗) semi-entscheidetA dannK.�

Wir zeigen nun einen Satz, der die Halteproblem-SpracheH als aufzahlbareMenge “maximaler Schwierigkeit” einstuft:

Satz 2.33Eine SpracheL ⊆ {0, 1}∗ ist aufzahlbar genau dann, wennL ≤ H.

Beweis:Die Richtung⇐ ist klar wegen der vorangehenden Bemerkung und derAufzahlbarkeit vonH. Zum Beweis von⇒:

ML sei eine TM, dieL semi-entscheidet. Wir findenf : {0, 1}∗ → {0, 1}∗

berechenbar mitx ∈ L ⇔ f(x) ∈ H. Wir definierenf als die Transformationw 7→ 〈ML〉w. Dann gilt:

w ∈ L gdw.ML terminiert aufw gdw.〈ML〉w ∈ H gdw.f(x) ∈ H �

Wir schreiben RE fur die Klasse der aufzahlbaren Sprachen (“recursively enu-merable”) und co-RE fur die Klasse der Komplemente der aufzahlbaren Sprachen.

Definition 2.34 Eine SpracheL0 heißt≤-vollstandigin RE, falls

1. L0 gehort zu RE,

2. fur alleL in RE giltL ≤ L0.

Wir haben gezeigt:Die SpracheH ist ≤-vollstandig in RE.

Unser Ziel ist nun der Nachweis einer “sehr unentscheidbaren” SpracheL:WederL noch das Komplement vonL sollen aufzahlbar sein. In anderen Worten:L soll weder zur Sprachklasse RE noch zu co-RE gehoren.

Wir benutzen dazu die SpracheHε = {〈M〉 | M halt auf leerem Band} unddie Tatsache, dassHε zwar aufzahlbar ist, das KomplementHε aber nicht aufzahlbarist. (Sonst wareHε ja sogar entscheidbar.) Wir zeigen:

Satz 2.35Die SpracheHtotal = {〈M〉 | M halt fur jedesw} ist nicht aufzahlbar,und das KomplementHtotal ist ebenfalls nicht aufzahlbar.

52

Page 56: Skript zur Vorlesung

Wir verwenden die vorangehende Bemerkung fur die nicht-aufzahlbare Spra-cheHε. Es genugt zu zeigen:

Lemma 2.36 1. Hε ≤ Htotal

2. Hε ≤ Htotal

Beweis:Zunachst zu Teil 2: Wir mussen eine berechenbare Funktionf : {0, 1}∗ →

{0, 1}∗ finden mit

(∗) u ∈ Hε gdw.f(u) ∈ Htotal

Beim Nachweis der Unentscheidbarkeit vonHtotal haben wir bereits eine bere-chenbare Funktionf angegeben mit:

u ∈ Hε gdw.f(u) ∈ Htotal

Durch Negation beider Seiten wissen wir dann fur dieselbe Funktionf , dass auch(∗) gilt.Nun zeigen wir Teil 1 des Lemmas: Wir mussen eine berechenbare Funktionf :{0, 1}∗ → {0, 1}∗ finden mit:

u ∈ Hε gdw.f(u) ∈ Htotal

Beachte:u ∈ Hε trifft zu, wennu kein TM-Kode ist oder aberu = 〈M〉 fureine TMM gilt mit M : ε → ∞. Wir konstruieren aus einer TMM eine TMM ′

mit folgender Arbeitsweise:

Fur Eingabew terminiertM ′ mit Ausgabeε, wennM auf ε minde-stens|w| Schritte lauft – wennM vorher terminiert, dann terminiertM ′ fur die Eingabew nicht.

Dann gilt:M : ε → ∞⇔ fur alle Schrittzahlens lauftM aufε mindestenss Schritte⇔ M ′ terminiert fur jede Eingabew, d.h.〈M ′〉 ∈ Htotal

NebenM ′ definieren wir noch eine feste TMM0, welche die Konstanteεberechnet, also eine totale Funktion:M0 hat nur die Instruktionenq00/1/BqBN .

Wir definierenf : {0, 1}∗ → {0, 1}∗ durch

53

Page 57: Skript zur Vorlesung

f(u) = 〈M0〉, fallsu kein TM-Kode ist,andernfalls (fur u = 〈M〉) seif(u) = 〈M ′〉

f ist berechenbar. Wir zeigen:u ∈ Hε gdw.f(u) ∈ Htotal.Fur u ∈ Hε ist f(u)(= 〈M0〉) in Htotal.Fallsu ∈ Hε, existiertM mit u = 〈M〉, sodassM : ε → stopp in s Schritten,d.h.M ′ terminiert nicht fur Eingaben einer Lange≥ s, alsof(u) ∈ Htotal.

Abschließend zeigen wir, wie sich aufzahlbare und noch komplexere Sprachenaus entscheidbaren Sprachen gewinnen lassen, wenn man Quantoren uber demBereich der Worter anwendet.

Fur w ∈ {0, 1}∗ seinum(w) die naturliche Zahl mit Binardarstellungw. (Esseinum(ε) = 0.)

Wir erinnern uns an die Definition vonHε:

〈M〉 ∈ Hε ⇔ ∃ Schrittzahls, so dassM : ε → stopp in s Schritten.

Wir definierenH0ε als die Menge derjenigen Worteru#v, so dassu Kode einer

TM M ist, die auf das leere Band angesetzt in≤ num(v) Schritten stoppt. Danngilt:

• H0ε ist entscheidbar.

• u ∈ Hε ⇔ ∃v ∈ {0, 1}∗ : u#v ∈ H0ε .

Die aufzahlbare SpracheHε ist also “einen Existenzquantor entfernt” von ei-ner entscheidbaren Sprache.

Diese Idee gilt allgemein.

Satz 2.37L ⊆ {0, 1}∗ ist aufzahlbar (also gehort zu RE) gdw.es gibt eine entscheidbare SpracheL0 ⊆ {0, 1,#}∗, so dass gilt

(∗) u ∈ L ⇔ ∃v : u#v ∈ L0.

Beweis:Wir f uhren den Beweis mit “semi-entscheidbar” statt “aufzahlbar”.

⇐: AL0entscheideL0, so dass(∗) gilt. Folgender Algorithmus semi-entscheidet

L:

54

Page 58: Skript zur Vorlesung

Fur Eingabeu gehe die Worterv ∈ {0, 1} in kanonischer Reihenfolgedurch, teste mitAL0

jeweils, obu#v ∈ L0, und terminiere, sobald einsolchesv gefunden ist.

⇒: L werde durchAL semi-entschieden. Setze

L0 := {u#v | AL stoppt aufu innerhalb num(v) Schritten}

Dann gilt(∗), wie zu zeigen war.�

Die Anwendung der Negation auf die beiden Seiten von(∗) liefert folgenden Satz:

Satz 2.38L ⊆ {0, 1}∗ ist Komplement einer aufzahlbaren Sprache gdw.es gibt eine entscheidbare SpracheL0 ⊆ {0, 1,#}∗, so dass gilt

(∗) u ∈ L ⇔ ∀v : u#v ∈ L0.

Bei der SpracheHtotal genugt weder ein einzelner Existenzquantor noch ein ein-zelner Allquantor fur die “Anbindung” an eine entscheidbare Sprache. Man brauchtzwei Quantoren:

〈M〉 ∈ Htotal gdw.∀w ∈ {0, 1}∗∃v ∈ {0, 1}∗: M : w → stopp in ≤ num(v) Schritten

Die letzte Bedingung ist entscheidbar (in〈M〉, w, v).

Wir geben eine Sprache noch hoherer logischer Komplexitat an. Eine Wort-funktion heißefasttotal, wenn siebis auf endlich viele Ausnahmenfur alle Worterdefiniert ist.

Hfasttotal = {〈M〉 | M berechnet eine fasttotale Funktion}

Zur Beschreibung vonHfasttotal braucht man drei Quantorenuber dem unend-lichen Bereich der Worter (bzw. der naturlichen Zahlen), um die Anbindung aneine entscheidbare Sprache zu erhalten:

“Es gibt einℓ, sodass fur allew einer Lange≥ ℓ eine Schrittzahls existiertmit: M aufw angesetzt stoppt in≤ s Schritten”.

55

Page 59: Skript zur Vorlesung

Auf diese Weise entsteht die “arithmetische Hierarchie”, eine Abstufung derunentscheidbaren Sprachen nach wachsender logischer Komplexitat. Auf dern-ten Stufe sind SprachenL folgender Form:

L = {u | ∃v1∀v2∃v3 . . . ∃/∀vn : u#v1#v2# . . .#vn ∈ L0}

wobeiL0 entscheidbar ist.

2.6 Hilberts 10. Problem und Posts Korrespondenz-problem

Bei allen nicht entscheidbaren Problemen, die wir bisher kennengelernt haben,ging es darum, Aussagenuber ein gegebenes Programm (in Form einer Godel-nummer) zu machen. Unsere Analyse gipfelte im Satz von Rice, der besagt, dassjede nicht-triviale Aussageuber die durch ein Programm berechnete Funktion un-entscheidbar ist.

Aber wie sieht es aus mit der Entscheidbarkeit anderer Probleme, die sichnicht unmittelbar auf Turingmaschinen beziehen? Wir werden in den folgendenbeiden Abschnitten zwei Entscheidungsprobleme kennen lernen, die sich nichtauf Turingmaschinen beziehen und die trotz ihrer einfachenFormulierung unent-scheidbar sind. Das bedeutet, diese Probleme konnen in ihrer Allgemeinheit nichtdurch einen Algorithmus gelost werden, egal wieviel Rechenzeit und Speicher-platz wir zur Verfugung stellen.

2.6.1 Hilberts zehntes Problem

Im Jahr 1900 prasentierte der Mathematiker David Hilbert 23 ungeloste mathe-matische Probleme auf einem Mathematiker-Kongreß in Paris. Hilbert formuliertedas Problem (im Originalwortlaut) so:

Eine diophantische Gleichung mit irgendwelchen Unbekannten und mit gan-zen rationalen Zahlenkoeffizienten sei vorgelegt: Man sollein Verfahren angeben,nach welchem sich mittels einer endlichen Anzahl von Operationen entscheidenlaßt, ob die Gleichung in den ganzen rationalen Zahlen losbar ist.

Die”ganzen rationalen Zahlen“, von denen in diesem Problem die Rede ist,

sind die ganzen Zahlen ausZ, wie wir sie kennen.”Diophantische Gleichungen“

56

Page 60: Skript zur Vorlesung

bezeichnen Gleichungen mit Polynomen in mehreren Variablen, die so definiertsind:

Ein Term ist ein Produkt aus Variablen mit einem konstanten Koeffizienten,z.B. ist

6 · x · x · x · y · z · z bzw. 6x3yz2

ein Termuber den Variablenx, y, z mit dem Koeffizienten 6. EinPolynomist eineSumme von Termen, z.B.

6x3yz2 + 3xy2 − x3 − 10 .

Eine diophantische Gleichungsetzt ein Polynom gleich Null. Die Losungen derGleichung entsprechen also den Nullstellen des Polynoms. Obiges Polynom hatbeispielsweise die Nullstelle

(x, y, z) = (5, 3, 0) .

Definition 2.39 (Hilberts zehntes Problem (in unseren Worten)) Beschreibeeinen Algorithmus, der entscheidet, ob ein gegebenes Polynom mit ganzzahligenKoeffizienten eine ganzzahlige Nullstelle hat.

Die diesem Entscheidungsproblem zugrundeliegende Sprache ist

N = { p | p ist ein Polynom mit einer ganzzahligen Nullstelle} .

Wir machen uns zunachst klar, dassN aufzahlbar ist: Gegeben sei ein Poly-nomp mit ℓ Variablen. Der Wertebereich vonp entspricht der abzahlbar unendli-chen MengeZℓ. Der folgende Algorithmus erkenntN :

• Zahle dieℓ-Tupel ausZℓ nacheinander auf und wertep fur jedes dieserTupel aus.

• Akzeptiere, sobald eine der Auswertungen den WertNull ergibt.

Falls wir eine obere Schranke fur die Absolutwerte der Nullstellen hatten, sobrauchten wir nur eine endliche Menge vonℓ-Tupeln aufzahlen, undN ware so-mit entscheidbar. Fur Polynomeuber nur einer Variablen gibt es tatsachlich einederartige obere Schranke: Fur ein Polynom der Form

p(x) = akxk + ak−1x

k−1 + · · ·+ a1x+ a0

57

Page 61: Skript zur Vorlesung

mit ganzzahligen Koeffizienten gilt

p(x) = 0, x ∈ Z ⇒ x teilt a0. (Warum?)

Also gibt es keine Nullstelle mit Absolutwert großer als|a0|. Eingeschrankt aufPolynome mit nur einer Variable ist das Nullstellenproblemdamit entscheidbar.

Fur Polynome mit mehreren Variablen gibt es leider keine obere Schranke furdie Absolutwerte der Nullstellen. Um das einzusehen, betrachte beispielsweisedas Polynomx+ y. Dieses Polynom hat die Nullstellen

(0, 0), (−1, 1), (1,−1), (−2, 2), (2,−2), . . . .

Die Menge der Nullstellen ist also unbeschrankt. Aber vielleicht gibt es ja eineobere Schranke fur diejenige Nullstelle mit den kleinsten Absolutwerten? Odervielleicht gibt es ganz andere Moglichkeiten, einem Polynom anzusehen, ob eseine ganzzahlige Nullstelle hat? Erst knapp siebzig Jahre,nachdem Hilbert seinProblem prasentiert hatte, konnte Yuri Matijasevic alle diese Fragen beantworten,und zwar negativ! Hilbert hatte die folgende Antwort nicht erwartet:

Satz 2.40 (Satz von Matijasevic (1970)) Das Problem, ob ein ganzzahliges Po-lynom eine ganzzahlige Nullstelle hat, ist unentscheidbar.

Damit ist Hilberts zehntes Problem unlosbar. Der Beweis des Satzes von Ma-tijasevic beruht auf einer Kette von Reduktionen, durch die letztendlich das Hal-teproblemH auf das NullstellenproblemN reduziert wird. Yuri Matijasevic hat

”lediglich“ das letzte Glied dieser Kette geschlossen. Andere wichtige Beitrage zu

diesem Ergebnis wurden zuvor von Martin Davis, Julia Robinson und Hilary Put-nam erbracht. Wir werden nicht genauer auf den Beweis dieses Satzes eingehen,da er zu aufwendig ist, um ihn in dieser Grundstudiumsvorlesung zu besprechen.

Wir wollen zumindest fur ein naturliches Problem, das sich nicht direkt mitTuringmaschinen beschaftigt, die Nichtberechenbarkeit nachweisen. Dazu unter-suchen wir im folgenden Abschnitt ein scheinbar einfaches Puzzle.

2.6.2 Das Postsche Korrespondenzproblem

Das Postsche Korrespondenzproblem ist eine Art von Puzzle aus Dominos. JedesDomino ist mit zwei Worternuber einem AlphabetΣ beschrieben, ein Wort in deroberen Halfte und eines in der unteren. Gegeben sei eine MengeK von Dominos,z.B.

K =

{[b

ca

]

,

[a

ab

]

,

[ca

a

]

,

[abc

c

]}

.

58

Page 62: Skript zur Vorlesung

Die Aufgabe besteht darin, eine Folge von Dominos ausK zu ermitteln, so dasssich oben und unten dasselbe Wort ergibt. Die Folge soll aus mindestens einemDomino bestehen. Wiederholungen von Dominos sind erlaubt.Ein Beispiel fureine derartigekorrespondierende FolgeuberK ist

[a

ab

][b

ca

][ca

a

][a

ab

][abc

c

]

.

Nicht fur jede MengeK ist dies moglich, z.B. gibt es keine korrespondierendeFolge fur die Menge

K =

{[abc

ca

]

,

[abca

abc

]

,

[abc

bc

]}

,

weil fur jede Folge, die sich aus diesen Dominos bilden laßt, das obere Wort langerals das untere ist.

Definition 2.41 (Postsches Korrespondenzproblem (PKP))Eine Instanz desPKP besteht aus einer Menge

K =

{[x1

y1

]

, . . . ,

[xk

yk

]}

,

wobeixi undyi nichtleere Worter uber einem endlichen AlphabetΣ sind. Es sollentschieden werden, ob es eine korrespondierende Folge von Indizesi1, . . . , in ∈{1, . . . , k}, n ≥ 1 gibt, also eine Folge, so dass giltxi1xi2 . . . xin = yi1yi2 . . . yin .

Die Elemente der MengeK bezeichnen wir intuitiv als Dominos. Wir werdendie Unentscheidbarkeit des PKP durch eine kurze Reduktionskette nachweisen,die einen Umweguber eine Variante des PKP nimmt. Die Modifikation liegt dar-in, dass wir einen Startdomino bestimmen, mit dem die korrespondierende Folgebeginnen muss, namlich [x1

y1].

Definition 2.42 (Modifiziertes PKP (MPKP)) Eine Instanz des MPKP bestehtaus einer geordneten Menge

K =

([x1

y1

]

, . . . ,

[xk

yk

])

.

wobeixi undyi nichtleere Worter uber einem endlichen AlphabetΣ sind. Es sollentschieden werden, ob es eine korrespondierende Folge von Indizesi2, . . . , in ∈{1, . . . , k}, n ≥ 1 gibt, so dass giltx1, xi2 . . . xin = y1, yi2 . . . yin .

59

Page 63: Skript zur Vorlesung

Wir werden die folgenden zwei Aussagen beweisen.

Lemma 2.43 MPKP ≤ PKP .

Lemma 2.44 H ≤ MPKP .

Aus der Transitivitat der Reduktionsbeziehung≤ folgt dannH ≤ PKP . DasHalteproblem ist nicht entscheidbar, aber aufzahlbar. Das Komplement des Halte-problems ist nicht aufzahlbar. Dies ergibt den folgenden Satz.

Satz 2.45Das PKP ist nicht entscheidbar, aber aufzahlbar. Das Komplement desPKP ist nicht aufzahlbar.

Wir mussen”nur“ noch die Lemmata 2.43 und 2.44 beweisen. Zunachst zeigen

wir Lemma 2.43:Beweis:Wir beschreiben die Funktionf : Seien# und$ zwei Symbole, die nichtim AlphabetΣ des MPKP enthalten sind. Wir bilden

K =

([x1

y1

]

, . . . ,

[xk

yk

])

ab auf

f(K) =

{[x′0

y′0

]

,

[x′1

y′1

]

, . . . ,

[x′k

y′k

]

,

[x′k+1

y′k+1

]}

,

wobei

• x′i ausxi (fur 1 ≤ i ≤ k) entsteht, indem wir hinter jedem Zeichen ein#

einfugen,x′0 = #x′

1 undx′k+1 = $.

• y′i ausyi (fur 1 ≤ i ≤ k) entsteht, indem wir vor jedem Zeichen ein#einfugen,y′0 = y′1 undy′k+1 = #$.

Syntaktisch inkorrekte Eingaben werden durchf auf das leere Wortǫ 6∈ PKPabgebildet. Offensichtlich istf berechenbar.

Wir geben zur Verdeutlichung ein Beispiel: Die MPKP-Instanz

K =

([ab

a

]

,

[c

abc

]

,

[a

b

])

wird abgebildet auf die PKP-Instanz

f(K) =

{[#a#b#

#a

]

,

[a#b#

#a

]

,

[c#

#a#b#c

]

,

[a#

#b

]

,

[$

#$

]}

.

60

Page 64: Skript zur Vorlesung

Losung des MPKP:[ab

a

][a

b

][ab

a

][c

abc

]

.

Losung des PKP:[#a#b#

#a

][a#

#b

][a#b#

#a

][c#

#a#b#c

][$

#$

]

.

Zu zeigen:K ∈ MPKP ⇒ f(K) ∈ PKP . Sei (1, i2, . . . , in) eine MPKP-Losung furK, d.h.

x1xi2 . . . xin = y1yi2 . . . yin = a1a2 . . . as

fur geeignet gewahlte Symbolea1, . . . , as ausΣ. Dann ist(0, i2, . . . , in, k + 1)eine PKP-Losung fur f(K), denn

x′0x

′i2. . . x′

in$ = #a1#a2# . . .#as#$ = y′0y′i2. . . y′in#$ .

Gibt es also eine Losung furK bzgl. MPKP, so gibt es auch eine Losung fur f(K)bzgl. PKP. Somit haben wir gezeigtK ∈ MPKP ⇒ f(K) ∈ PKP .Zu zeigen:f(K) ∈ PKP ⇒ K ∈ MPKP . Sei nun(i1, i2, . . . , in) eine PKP-Losungminimaler Langefur f(K).

• Beobachtung 1:Es gilt i1 = 0 und in = k + 1, weil nur x′0 und y′0 mit

demselben Zeichen beginnen und nurx′k+1 undy′k+1 mit demselben Zeichen

enden.

• Beobachtung 2:Es gilt ij 6= 0 fur 2 ≤ j ≤ n, weil sonst zwei#-Zeichenim oberen Wort direkt aufeinander folgen wurden, was im unteren Wortunmoglich ist.

• Beobachtung 3:Es gilt ij 6= k+1 fur 1 ≤ j < n, denn wurde das$-Zeichenvorher auftreten, konnten wir die vorliegende minimale korrespondierendeFolge nach dem ersten Vorkommen des$-Zeichens abschneiden und hatteneine noch kurzere Losung gefunden.

Aus den Beobachtungen folgt, dass unsere PKP-Losung fur f(K) die Struktur

x′0x

′i2. . . x′

in = #a1#a2# . . .#as#$ = y′0y′i2. . . y′in

61

Page 65: Skript zur Vorlesung

hat fur geeignet gewahlte Symbolea1, . . . , as ausΣ. Daraus ergibt sich die fol-gende MPKP-Losung furK:

x1xi2 . . . xin−1= a1a2 . . . as = y1yi2 . . . yin−1

.

Somit giltf(K) ∈ PKP ⇒ K ∈ MPKP . �

Scheinbar haben Dominos wenig mit Turingmaschinen zu tun. In Lemma 2.44wird dennoch behauptet, dass man mit Hilfe eines Puzzles ausDominos das Hal-teproblem fur Turingmaschinen entscheiden kann. Bevor wir in den Beweis desLemmas einsteigen, mochten wir auf der Basis eines umfangreichen Beispiels il-lustrieren, wie die Rechnung einer Turingmaschine durch einPuzzle aus Dominos

”simuliert“ werden kann. Betrachte die folgende TMM :

Σ = {0, 1},Γ = {0, 1, B}, Q = {q0, q1, q2, q},

wobeiq0 der Anfangszustand ist undq der Endzustand. DieUberfuhrungsfunktionδ sei gegeben durch

δ 0 1 B

q0 (q0, 0, R) (q1, 1, R) (q, 1, N)q1 (q2, 0, R) (q1, 1, R) (q, 1, N)q2 (q2, 0, R) (q2, 1, R) (q2, B,R)

Die TM M erkennt, ob das Eingabewort von der Form0i1j, i, j ≥ 0, ist. BeiEingabe eines Wortes dieser Form terminiertM im Zustandq und akzeptiert,ansonsten lauft der Kopf im Zustandq2 weiter und weiter nach rechts. Die Rech-nung der TM auf einer gegebenen Eingabe kann durch eine Konfigurationsfolgebeschrieben werden. Auf der Eingabew = 0011 ist die Konfigurationsfolge bei-spielsweise

q00011 ⊢ 0q0011 ⊢ 00q011 ⊢ 001q11 ⊢ 0011q1B ⊢ 0011q1 .

Wir mochten die Rechnung einer TM auf einer Eingabe durch ein Puzzle ausDominos simulieren. Dieses Puzzle entspricht dem MPKP. AlsStartdomino furdas MPKP wahlen wir ein Domino bei dem das untere Wort aus der Anfangskon-figuration mit ein paar zusatzlichen Trennsymbolen besteht:

[#

##q00011#

]

.

62

Page 66: Skript zur Vorlesung

Das Puzzle fur unsere Beispielrechnung(M,w) enthalt unter anderem jeweils einDomino fur jedes Zeichen ausΓ ∪ {#}:

[0

0

]

,

[1

1

]

,

[B

B

]

,

[#

#

]

.

Wir erweitern diese ListeerlaubterDominos um je ein Domino fur jeden Eintragin der Tabelle derUberfuhrungsfunktionδ, der den jeweiligenUbergang inklusiveder Kopfbewegung beschreibt.

[q00

0q0

]

,

[q01

1q1

]

,

[q0B

q 1

]

,

[q10

0q2

]

,

[q11

1q1

]

,

[q1B

q 1

]

,

[q20

0q2

]

,

[q21

1q2

]

,

[q2B

Bq2

]

Wir werden spater noch weitere Steine zur Liste erlaubter Dominos hinzufugen.

Beobachtung 2.46Wenn wir das Startdomino mit einer Folge von Dominos ausder Liste der erlaubten Dominos derart erganzen, dass der obere String ein Prafixdes unteren Strings ist, so

• rekonstruieren wir im unteren String die Konfigurationsfolge vonM aufw,und

• der obere String folgt dem unteren mit einer Konfiguration imRuckstand.

Die Rekonstruktion der Konfigurationsfolge in unserem Beispiel sieht so aus:Die ersten Dominos in der Losung des Puzzles sind

[#

##q00011#

] [#

#

][q00

0q0

][0

0

][1

1

][1

1

][#

#

]

[#

#

][0

0

][q00

0q0

][1

1

][1

1

][#

#

]

[#

#

][0

0

][0

0

][q01

1q1

][1

1

][#

#

]

[#

#

][0

0

][0

0

][1

1

][q11

1q1

][#

#

]

[#

#

][0

0

][0

0

][1

1

][1

1

][q1#

q 1#

]

. . .

Vielleicht ist es aufgefallen, dass wir im letzten Schritt ein wenig gemogelthaben. Wir haben ein Domino verwendet, das nicht in der zuvorspezifizierten

63

Page 67: Skript zur Vorlesung

Liste erlaubter Dominos enthalten ist. Tatsachlich erganzen wir die Liste erlaubterDominos um die folgenden Elemente:

[q0#

q 1#

]

,

[q1#

q 1#

]

.

Die Aufgabe dieser Dominos ist es,Uberfuhrungen zu realisieren, die auf einimplizites Blank-Symbol am Ende der Konfiguration zuruckgreifen, das virtuellzwischen dem Zeichenq0 bzw.q1 und dem# steht.

Wie konnen wir nun erreichen, dass der obere String seinen Ruckstand am En-de der Rechnung aufholt? Zu diesem Zweck erganzen wir die Liste der erlaubtenDominos um die folgenden Elemente:

[q0

q

]

,

[q1

q

]

,

[qB

q

]

,

[0q

q

]

,

[1q

q

]

,

[Bq

q

]

Desweiteren fugen wir noch einAbschlußdominohinzu.[#q##

#

]

.

Man beachte, dass diese Dominos nur dann zum Einsatz kommen konnen, wennder Endzustandq erreicht ist, also nur wenn die Rechnung der TM terminiert.

Wir setzen die Rekonstruktion der Konfigurationsfolge in unserem Beispielfort:

...

[#

#

][0

0

][0

0

][1

1

][1

1

][q1#

q 1#

]

[#

#

][0

0

][0

0

][1

1

][1

1

][q 1

q

][#

#

]

[#

#

][0

0

][0

0

][1

1

][1q

q

][#

#

]

[#

#

][0

0

][0

0

][1q

q

][#

#

]

[#

#

][0

0

][0q

q

][#

#

]

[#

#

][0q

q

][#

#

] [#q##

#

]

.

64

Page 68: Skript zur Vorlesung

Jetzt stimmt der obere mit dem unteren Stringuberein. Skeptiker vergleichenjeweils den unteren String in einer Zeile mit dem oberen String in der darunterlie-genden Zeile.

Die Idee hinter der obigen Konstruktion ist es, eine Eingabefur das Haltepro-blem in ein MPKP-Puzzle zu transformieren, so dass das Puzzle genau dann eineLosung hat, wenn die im Halteproblem betrachtete TM auf ihrerEingabe halt.Unser Beispiel hat erlautert, wie eine derartige Transformation fur eine bestimm-te Eingabe des Halteproblems aussehen konnte. Der folgende Beweis fur Lemma2.44 verallgemeinert und formalisiert das Vorgehen aus unserem Beispiel.

Beweis:Wir beschreiben eine berechenbare Funktionf , die eine syntaktisch kor-rekte Eingabe fur H der Form(〈M〉, w) auf eine syntaktisch korrekte InstanzK = f((〈M〉, w)) fur das MPKP abbildet, so dass gilt

M halt aufw ⇔ K hat eine Losung .

Syntaktisch nicht korrekte Eingaben fur H werden auf syntaktisch nicht kor-rekte Eingaben fur MPKP abgebildet. Das Alphabet, das wir fur die MPKP-Instanzverwenden istΓ ∪Q ∪ {#}, wobei gelte# 6∈ Γ ∪Q.Konstruktion der Funktionf : Gegeben sei das Tupel(〈M〉, w). Wir beschreiben,welche Dominos die MengeK = f((〈M〉, w)) enthalt. DasStartdominoist vonder Form [

#

##q0w#

]

.

Desweiteren enthalteK die folgenden Arten von Dominos:Kopierdominos: [

a

a

]

fur allea ∈ Γ ∪ {#}

Uberfuhrungsdominos:[qa

q′c

]

falls δ(q, a) = (q′, c, N), fur q ∈ Q \ {q}, a ∈ Γ

[qa

cq′

]

falls δ(q, a) = (q′, c, R), fur q ∈ Q \ {q}, a ∈ Γ

[bqa

q′bc

]

falls δ(q, a) = (q′, c, L), fur q ∈ Q \ {q}, a, b ∈ Γ

65

Page 69: Skript zur Vorlesung

SpezielleUberfuhrungsdominos, die implizite Blanks berucksichtigen:[

#qa

#q′Bc

]

falls δ(q, a) = (q′, c, L), fur q ∈ Q \ {q}, a ∈ Γ

[q#

q′c#

]

falls δ(q, B) = (q′, c, N), fur q ∈ Q \ {q}

[q#

cq′#

]

falls δ(q, B) = (q′, c, R), fur q ∈ Q \ {q}

[bq#

q′bc#

]

falls δ(q, B) = (q′, c, L), fur q ∈ Q \ {q}, b ∈ Γ

[#q#

#q′Bc#

]

falls δ(q, B) = (q′, c, L), fur q ∈ Q \ {q}

Loschdominos: [aq

q

]

und

[q a

q

]

fur a ∈ Γ

Abschlußdomino: [#q##

#

]

Dies sind alle Dominos in der MPKP-Instanz. Zur intuitiven Bedeutung derunterschiedlichen Arten von Dominos verweisen wir auf das vorab prasentierteausfuhrliche Beispiel. Die Beschreibung der Funktionf ist somit abgeschlossen.

Wir beweisen nun die Korrektheit der Konstruktion. Offensichtlich istf bere-chenbar. Wir mussen noch nachweisen, dassM genau dann aufw halt, wenn dieEingabeK zur SpracheMPKP gehort.

Zu zeigen:M halt aufw ⇒ K ∈ MPKP .WennM aufw halt, so entspricht die Rechnung vonM aufw einer endlichen

Konfigurationsfolge der Form

k0 ⊢ k1 ⊢ · · · ⊢ kt−1 ⊢ kt ,

wobeik0 die Startkonfiguration undkt die Endkonfiguration im Zustandq ist.In diesem Fall konnen wir, beginnend mit dem Startdomino, nach und nach

Kopier- undUberfuhrungsdominos hinzulegen, so dass

• der untere String die vollstandige Konfigurationsfolge vonM aufw in derfolgenden Form darstellt

## k0 ## k1 ## · · ·## kt−1 ## kt # ,

66

Page 70: Skript zur Vorlesung

• und der obere String ein Prafix des unteren Strings ist, namlich

## k0 ## k1 ## · · ·## kt−1# .

Durch Hinzufugen von Loschdominos kann jetzt der Ruckstand des oberenStrings fast ausgeglichen werden. Danach sind beide Strings identisch bis auf einSuffix der Form

#q# .

Dieses Suffix fehlt im oberen String. Nach Hinzufugen des Abschlußdominos[#q##

#

]

sind beide Strings somit identisch. WennM aufw halt, gilt somitK ∈ MPKP .

Zu zeigen:M halt nicht aufw ⇒ K 6∈ MPKP.Zum Zweck des Widerspruchs nehmen wir an, dassM nicht aufw halt, aber

K ∈ MPKP .

Beobachtung 2.47Jede korrespondierende Folge enthalt zumindest einen Losch-oder Abschlußdomino, denn sonst ware der untere String langer als der obere,weil beim Startdomino der obere String kurzer als der untere ist, und bei denKopier- undUberfuhrungsdominos der obere String niemals langer als der untereist.

Sei nun1, i2, . . . , in eine korrespondierende Folge furK. Die Teilfolge

1, i2, . . . , is−1

bestehe nur aus dem Startdomino sowie folgenden Kopier- undUberfuhrungs-dominos. Der Dominois sei der erste Losch- oder Abschlußdomino in der Folge.Zunachst betrachten wir die Teilfolge1, i2, . . . , is−1.

• Die Kopier- undUberfuhrungsdominos sind so definiert, dass bei Einhal-tung derUbereinstimmung zwischen dem oberen und dem unteren Stringdie Konfigurationsfolge der Rechnung vonM aufw entsteht.

• Der obere String folgt dabei dem unteren String mit Ruckstand einer Kon-figuration.

• Da die Rechnung vonM auf w nicht terminiert, kann in der Konfigurati-onsfolge nicht der Zustandq auftauchen.

67

Page 71: Skript zur Vorlesung

Der Losch- oder Abschlußdominois enthalt jedoch im oberen Wort den Zustandq. Das Hinzufugen dieses Dominos verletzt somit dieUbereinstimmung zwischenden beiden Strings. Dies steht jedoch im Widerspruch zur Annahme, dass einekorrespondierende Folge vorliegt. �

2.7 WHILE- und LOOP-Programme

Lasst sich die Machtigkeit einer TM mit der Machtigkeit einer Programmierspra-che wie z.B. Java vergleichen? – Ein Programm in Java kann in Assemblercodefur eine RAMubersetzt werden. Die Berechnungskraft einer derartigen Program-miersprache kann also nicht großer als die einer RAM sein und somit auch nichtgroßer als die einer TM, die ja eine RAM simulieren kann. Moglicherweise nutzteine Programmiersprache jedoch nicht die volle Berechnungskraft dieser Modelleaus.

Definition 2.48 Eine Programmiersprache wird alsTuring-machtigbezeichnet,wenn jede berechenbare Funktion auch durch ein Programm in dieser Program-miersprache berechnet werden kann.

Eine praktische Programmiersprache wie Java hat alle moglichen Features.Die meisten dieser Features dienen der Bequemlichkeit des Programmierens. Indiesem Abschnitt untersuchen wir, welche Arten von Befehlenwirklich benotigtwerden, um eineTuring-machtigeProgrammiersprache zu erhalten.

2.7.1 WHILE-Programme

Die Programmiersprache WHILE ist ein Beispiel fur eine Turing-machtige Pro-grammiersprache, die auf das Wesentliche reduziert ist. Syntaktisch besteht einWHILE-Programm aus

• Variablen x1 x2 . . .

• den vier Symbolen ; := + 6=

• den Schlusselwortern if, then, else, endif, while, do endwhile

Die Syntax ist induktiv definiert:

68

Page 72: Skript zur Vorlesung

• Fur jedesc ∈ {−1, 0, 1} ist die Zuweisung

xi := xj + c

ein WHILE-Programm.

• FallsP1 undP2 WHILE-Programme sind, dann ist auch

P1;P2

ein WHILE-Programm.

• FallsP1, P2 WHILE-Programme sind, dann ist auch

if xi 6= 0 thenP1 elseP2 endif

ein WHILE-Programm.

• FallsP ein WHILE-Programm ist, dann ist auch

while xi 6= 0 doP endwhile

ein WHILE-Programm.

Die Syntax lasst sich auch in BNF-Notation darstellen:

<WHILE-Prog> ::= <Wertzuweisung> |<WHILE-Prog>;<WHILE-Prog> |if xi 6= 0 then<WHILE-Prog> else<WHILE-Prog> endif |while xi 6= 0 do<WHILE-Prog> endwhile

Beispiel 2.49Wir verwenden in diesem Beispiel allgemeinere Tests und Wertzu-weisungen. Diese werden spater durch erlaubte Testsxi 6= 0 und durch erlaubteWertzuweisungen ersetzt.

Wir geben den euklidischen Algorithmus als WHILE-ProgrammPE an.

{x1 > 0, x2 > 0}

whilex1 6= x2 doif x1 < x2 thenx2 := x2 − x1 elsex1 := x2 − x1 endifendwhile

{x1 = ggT der Anfangswerte vonx1, x2 }

69

Page 73: Skript zur Vorlesung

Wir f uhren nun die (nichtuberraschende) Semantik fur die Programmierspra-che ein.

Ein WHILE-ProgrammP mit Variablenx1, . . . xk bestimmt eine Transforma-tion [P ] : Nk

Nk, die “semantische Funktion zuP ”. Es soll gelten:

[P ](r1, . . . , rk) = (s1, . . . , sk), wennP mit den Anfangswertenr1, . . . rk der Va-riablenx1, . . . , xk gestartet schließlich terminiert und danns1, . . . , sk die Werteder Variablenx1, . . . , xk bei Termination sind.[P ](r1, . . . , rk) soll undefiniert sein, wennP mit den Anfangswertenr1, . . . rk derVariablenx1, . . . , xk gestartet nicht terminiert.

Wir definieren[P ] nun genauer, durch Induktionuber den Aufbau vonP

Definition 2.50 (Induktive Definition von[P ])

• Ist P die Wertzuweisungxi := xj + 1, so sei

[P ](r1, . . . , rk) = (r1, . . . , ri−1, rj + 1, ri+1, . . . , rk),

analog fur xi := xj + 0 undxi := xj − 1(mit der Konventionx− y = 0 fur y ≥ x).

• Fur P = P1;P2 setzen wir die Hintereinanderausfuhrung fest:

[P ](r1, . . . , rk) = [P2]([P1](r1, . . . , rk))

• Fur P = if xi 6= 0 thenP1 elseP2 endif

setzen wir

[P ](r1, . . . , rk) = [P1](r1, . . . , rk), falls ri 6= 0,

= [P2](r1, . . . , rk), falls ri = 0

• Fur P = while xi 6= 0 doP endwhile

setzen wir

[P ](r1, . . . , rk) =

– [P ]ℓ(r1, . . . , rk) fur das kleinsteℓ, so dass diei-te Komponente von[P ]ℓ(r1, . . . , rk) = 0 ist,

falls solch einℓ existiert

– undefiniert, falls solch einℓ nicht existiert.

70

Page 74: Skript zur Vorlesung

Hier ist [P ]ℓ die ℓ-fache Anwendung von[P ] (und fur ℓ = 0 wird (r1, . . . , rk) aufsich selbst abgebildet).

Wir legen fur die Ein- und Ausgabe folgende Konventionen fest:

Definition 2.51 Das WHILE-ProgrammP , wieder mit den Variablenx1, . . . , xk

berechnet fur n ≥ 1 einen-stelligen Funktionf : Nn N wie folgt:

• Die Variablenx1, . . . , xn enthalten die Eingabewerte.

• Alle anderen Variablenxn+1, . . . , xk werden mit 0 initialisiert.

• Das Resultat eines WHILE-Programms ist die Zahl, die sich amEnde derRechnung in der Variablex1 ergibt.

Formal: Das WHILE-ProgrammP bestimmt zur Stellenzahln die Funktionf(n)P : Nn

N mit

f(n)P (m1, . . . ,mn) = ([P ](m1, . . . mn, 0 . . . , 0))1

Hierbei bezeichnet(s1 . . . sk)1 die erste Komponente eines Vektors(s1 . . . sk).

Beispiel 2.52Fur das Programm

P : while x2 6= 0 dox1 := x1 + 1 ; x2 := x2 − 1 endwhile

gilt:

• [P ](r1, r2) = (r1 + r2, 0)

• f(2)P (m1,m2) = m1 +m2

• f(1)P (m) = m

Beispiel 2.53 (ggT-Programm)

Wir betrachten das zuvor prasentierte ggT-ProgrammPE auch fur Anfangs-werte vonx1, x2, die Null sein konnen.

Es gilt dann

71

Page 75: Skript zur Vorlesung

• f(2)PE

(m1,m2) = ggT(m1,m2) falls m1,m2 > 0

• f(2)PE

(m1,m2) = ⊥, fallsm1 > 0,m2 = 0 oderm1 = 0,m2 > 0

• f(2)PE

(m1,m2) = 0, fallsm1 = m2 = 0

Satz 2.54Die Programmiersprache WHILE ist Turing-machtig.

Beweis:In Ubungsaufgabe 1.27 haben wir gezeigt, dass jede TM durch eine RAMsimuliert werden kann, die nur eine konstante Anzahl von Registern fur naturlicheZahlen benutzt und mit dem eingeschrankten Befehlssatz LOAD, CLOAD, STO-RE, CADD, CSUB, GOTO, IFc(0) 6= 0 GOTO, END auskommt. Deshalb mussenwir jetzt nur noch zeigen, wie eine beliebige Funktion, die durch eine derartigeingeschrankte RAM berechnet werden kann, durch ein WHILE-Programms be-rechnet werden kann.

SeiΠ ein beliebiges RAM-Programm mit eingeschranktem Befehlssatz (wirsagen auch: “RAM0-Programm”), das ausℓ Zeilen besteht undk Register furnaturliche Zahlen benutzt. Wir speichern den Inhalt von Register c(i), fur 1 ≤ i ≤k, in der Variablexi des WHILE-Programms. In der Variablexk+1 speichern wirzudem den Befehlszahlerb der RAM ab, und die Variablexk+2 verwenden wir furden Akkumulator, undxk+3 benutzen wir, um eine Variable zu haben, die immerden initial gesetzen Wert 0 enthalt.

Wir schreiben die letzten drei Variablen alsb (Befehlszahler),c0 (Akkumula-tor) undz (“Zero”).

Die oben aufgelisteten RAM-Befehle werden nun in Form von konstant vielenZuweisungen der Formxi := xj + c mit c ∈ {0, 1} implementiert. Der RAM-Befehl LOAD i wird beispielsweise in das WHILE-Programm

x0 := xi + 0; b := b+ 1

transformiert, wobei die zweite der beiden Zuweisungen dieAnderung des Be-fehlszahlers durchfuhrt. Der RAM-Befehl CLOAD i wird analog in das WHILE-Programm

c0 := z; c0 := c0 + 1; . . . ; c0 := c0 + 1;︸ ︷︷ ︸

i mal

b := b+ 1

transformiert, d.h. wir weisenc0 zunachst den Wert 0 zu, addiereniMal eine 1 hin-zu und aktualisieren dann den Befehlszahler. Die RAM-Befehle STORE, CADD,CSUB und GOTO lassen sich leicht aufahnliche Art realisieren. Der RAM-BefehlIF c(0) 6= 0 GOTOj wird durch das WHILE-Programm

72

Page 76: Skript zur Vorlesung

if c0 6= 0 thenb := z; b := b+ 1; · · · b := b+ 1︸ ︷︷ ︸

j mal

elseb := b+ 1 endif

ersetzt. Den RAM-Befehl END ersetzen wir durch das WHILE-Programmb := 0,d.h. der Befehlszahlerb wird auf 0 gesetzt.

Jede Zeile des RAM-Programms wird nun wie oben beschrieben inein WHILE-Programm transformiert. Das WHILE-Programm fur Zeilei bezeichnen wir mitPi.Das ProgrammPi soll nur ausgefuhrt werden, wenn der Befehlszahler, also dieVariableb, den Werti hat. Deshalb betten wirPi in ein WHILE-ProgrammP ′

i mitder folgenden Semantik ein:

Fallsb = i dann fuhrePi aus.

Ubungsaufgabe 2.55Beschreibe eine mogliche Implementierung des WHILE-ProgrammsP ′

i .

Nun fugen wir die WHILE-ProgrammeP ′1, . . . , P

′ℓ zu einem WHILE-Programm

P der Form

b := 1; while b 6= 0 doP ′1; . . . ;P

′ℓ end

zusammen. Dieaußere Schleife stellt sicher, dass bei Ausfuhrung des WHILE-Programms die Befehle in genau der Reihenfolge abgearbeitet werden, wie es dieRAM vorgibt. Somit berechnetP dieselbe Funktion, wie das gegebene RAM-ProgrammΠ. �

Offensichtlich kann man mit Programmiersprachen wie C, C++, Java oderauch Haskell alles implementieren, was man in WHILE-Programmen implemen-tieren kann. Folglich sind alle diese ProgrammiersprachenTuring-machtig. Inte-ressanterweise haben selbst TEX und PostScript diese Eigenschaft. Im nachstenAbschnitt sehen wir allerdings ein Beispiel fur eine Programmiersprache, diediese Eigenschaft nicht hat, obwohl diese Programmiersprache nur eine kleine,scheinbar harmloseAnderung zu WHILE-Programmen aufweist.

2.7.2 LOOP-Programme und Ackermann-Funktion

LOOP-Programme sind definiert wie WHILE-Programme bis auf die folgendeAnderung. Wir ersetzen das WHILE-Konstrukt durch ein LOOP-Konstrukt derfolgenden Form:

loopxi doP endloop

73

Page 77: Skript zur Vorlesung

In BNF-Syntax sind die LOOP-Programme also wie folgt definiert:<LOOP-Prog> ::= <Wertzuweisung> |

<LOOP-Prog>;<LOOP-Prog> |if xi 6= 0 then<LOOP-Prog> else<LOOP-Prog> endif |loopxi 6= 0 do<LOOP-Prog> endloop

Wir nutzen aucherweiterte WHILE-Programme, in denen sowohl loop- alsauch while-Schleifen erlaubt sind.

Die Semantik des loop-Konstruktes besagt, dass das Programm P sooft aus-gefuhrt wird, wie es der Anfangswert der Variablexi vorgibt.Die Semantik wird formal analog zu den Definitionen fur die Sprache WHILEeingefuhrt, mit der folgendenAnderung fur den Fall der loop-Schleife:

Ist P (mit den Variablenx1, . . . , xk) das LOOP-Programm

loopxi doP0 endloop

so setzen wir[P ](r1, . . . , rk) = [P0]

ri(r1, . . . , rk)

Beispiel 2.56Fur das LOOP-Programm P loop x2 do x1 := x1 + 1 endlooperhalten wir

[P ](r1, r2) = (r1 + r2, r2) undf (2)P (r1, r2) = r1 + r2.

Die Subtraktion wird analog berechnet durch loopx2 dox1 := x1 − 1 endloop.

Die Multiplikation konnen wir berechnen durchloopx2 do loopx1 dox3 := x3 + 1 endloop endloop

Verallgemeinerte Tests (bei while und if-then-else) konnen mit Hilfsvariablenauf Tests der urprunglichen Formxi 6= 0 reduziert werden:

• x < y ⇔ y − x = 0

• x 6= y ⇔ (y − x) + (x− y) 6= 0

Wir zeigen nun die Ersetzbarkeit von loop durch while:

Satz 2.57Satz Das loop-Konstrukt ist durch while simulierbar.

74

Page 78: Skript zur Vorlesung

Beweis:BetrachteP mit x1, . . . , xk. Ersetze inP “loop xi doP0 endloop” durchfolgendes Programm:

xk+1 := xi;while xk+1 6= 0 doxk+1 := xk+1 − 1;P0 endwhile �

Wir haben gesehen, dass man jedes loop durch eine while-Schleife ersetzenkann. Jedoch kann nicht jedes while durch eine loop-Schleife Offensichtlich kannman WHILE-Programme konstruieren, die in eine Endlosschleife laufen, alsonicht terminieren. Mit dem LOOP-Konstrukt ist dies nicht moglich, da die Anzahlder Iterationen der LOOP-Schleife schon beim Betreten der Schleife bestimmt ist.Im Gegensatz zu WHILE-Programmen (und auch TM- oder RAM-Programmen)terminieren LOOP-Programme immer. Dies ist naturlich eine gute Eigenschaftvon LOOP-Programmen. Allerdings stellt sich die Frage, ob durch diese positiveEigenschaft die Berechnungskraft eingeschrankt ist.

Wir bezeichnen die Klasse der durch LOOP-Programme berechenbaren Funk-tionen alsLOOP-berechenbare Funktionen. Man konnte hoffen, dass alle bere-chenbarentotalenFunktionen auch LOOP-berechenbar sind. Ackermann hat je-doch 1928 eine totale Funktion vorgestellt, die zwar berechenbar ist, nicht aberdurch LOOP-Programme berechnet werden kann. (Historisch wurde die Klasseder LOOP-berechenbaren Funktionen nicht in Form von LOOP-Programmen vor-gestellt, sondern im Formalismus der “rekursiven Funktionen”, der im folgendenAbschnitt kurz vorgestellt wird.)

Die Ackermann-FunktionA : N2 → N ist folgendermaßen definert:

(1) A(0, n) = n+ 1 fur n ≥ 0(2) A(m+ 1, 0) = A(m, 1) furm ≥ 0(3) A(m+ 1, n+ 1) = A(m,A(m+ 1, n)) furm,n ≥ 0

Wir wenden die Gleichungen (1) - (3) in einem Beispiel an.

Beispiel 2.58 (Berechnung einesA-Wertes)

A(1, 3) = A(0, A(1, 2))= A(0, A(0, A(1, 1)))= A(0, A(0, A(0, A(1, 0))))= A(0, A(0, A(0, A(0, 1))))= A(0, A(0, A(0, A(0, 1))))= A(0, A(0, A(0, 2))) = A(0, A(0, 3)) = A(0, 4) = 5

75

Page 79: Skript zur Vorlesung

Satz 2.59Die Ackermann-Funktion ist total und berechenbar: Der eindeutigeAuswertungsprozess gemaß (1), (2), (3) terminiert fur alle (x, y) ∈ N2 mit einernaturlichen Zahl (wir sagen hierfur kurz “A(x, y) ist definiert”).

Beweis:durch Induktionuberx fur folgende Behauptung:Fur alley gilt: A(x, y) ist definiert.

Der Induktionsanfangx = 0 ist klar wegen (1)Induktionsvoraussetzung:A(x, y) sei definiert fur alleyInduktionsbehauptung:A(x+ 1, y) ist definiert fur alleyBeweis der Induktionsbehauptung durch Induktionubery:

ind.anfang:y = 0 klar wegen (2)A(x+ 1, 0) = A(x, 1) und Ind. Vor.ind.voraussetzung:A(x+ 1, y) sei definiert.ind. behauptung:A(x+ 1, y + 1) ist definiert.

Wegen (3) istA(x+ 1, y + 1) = A(x,A(x+ 1, y)).A(x+ 1, y) ist definiert nach ind.vor.A(x,A(x+ 1, y)) ist dann definiert nach Ind.Vor.uberx

Wir uberschlagen hier dieUbersetzung des Auswertungsverfahrens in ein kon-kretes WHILE-Programm.

Die Ackermann-Funktion ist streng monoton wachsend in beiden Parametern.Eine fur uns wichtige Eigenschaft der Ackermannfunktion ist, dass sie sehr schnellwachst. Durch einfache Induktion nachn erhalt man beispielsweise

• A(1, n) = n+ 2,

• A(2, n) = 2n+ 3,

• A(3, n) = 8 · 2n − 3,

• A(4, n) = 22···2

︸︷︷︸n+2 vielePotenzen

−3,

Die FunktionA(5, n) wachst so gigantisch schnell, dass uns auf Anhieb keineanschauliche Darstellung zur Beschreibung dieser Funktioneinfallt.

76

Page 80: Skript zur Vorlesung

Um nachzuweisen, dass die Ackermann-Funktion nicht LOOP-berechenbarist, werden wir zeigen, dass die Ackermannfunktion schneller wachst als dasmaximal mogliche Wachstum der Variableninhalte in einem beliebigenLOOP-Programm. Dazu mussen wir zunachst eine Funktion definieren, die das Wachs-tum der Variableninhalte eines LOOP-ProgrammsP beschreibt.

Seienx0, x1, . . . , xk die Variablen vonP . Wenn die Variablen initial die Wer-te a = (a0, . . . , ak) ∈ Nk+1 haben, dann seifP (a) das(k + 1)-Tupel der Va-riablenwerte nach Ausfuhrung vonP und |fP (a)| die Summe dieser Werte. Wirdefinieren nun die FunktionFP : N → N durch

FP (n) = max

{

|fP (a)|

∣∣∣∣∣a = (a0, . . . , ak) ∈ Nk+1 mit

k∑

i=0

ai ≤ n

}

.

Intuitiv beschreibt die FunktionFP das maximale Wachstum der Variablenwertein einem LOOP-ProgrammP . Wir zeigen nun, dassFP (n) fur allen ∈ N echtkleiner ist alsA(m,n), wenn der Parameterm genugend groß in AbhangigkeitvonP gewahlt wird. Beachte, fur ein festes ProgrammP ist der Parameterm eineKonstante.

Lemma 2.60 Fur jedes LOOP-ProgrammP gibt es eine naturliche Zahlm, sodass fur alle n gilt: FP (n) < A(m,n).

Beweis:Betrachte ein beliebiges LOOP-ProgrammP . Zum Beweis des Lemmasinklusive der Bestimmung der Konstantem verwenden wir eine strukturelle In-duktionuber den Aufbau vonP .

FallsP die Formxi := xj + c fur c ∈ {−1, 0, 1} hat, so giltFP (n) ≤ 2n+ 1,da beim Aufruf des Programmesxj ≤ n gilt. Es folgtFP (n) < A(2, n). Damit istder Induktionsanfang gemacht.

Falls P von der FormP1;P2 ist, dann konnen wir als Induktionsannahmevoraussetzen, dass es eine naturliche Zahlq gibt, so dassFP1

(ℓ) < A(q, ℓ) undFP2

(ℓ) < A(q, ℓ) fur alleℓ ∈ N. Es folgt

FP (n) ≤ FP2(FP1

(n)) < A(q, A(q, n)) .

Ubungsaufgabe 2.61Zeige durch eine Induktion nachn, dass giltA(q, n) ≤A(q + 1, n− 1).

Wir konnen somitA(q, n) durchA(q + 1, n− 1) substituieren und erhalten

FP (n) < A(q, A(q + 1, n− 1)) = A(q + 1, n) ,

77

Page 81: Skript zur Vorlesung

wobei die letzte Gleichung unmittelbar aus der rekursiven Definition vonA folgt.In diesem Fall konnen wir alsom = q + 1 wahlen.

Wir untersuchen nun den Fall, dassP von der Form loopxi do Q endloopist. Die FunktionFP (n) wird durch Maximumbildunguber initiale Variablenbe-legungena0, . . . , ak mit der Eigenschafta0 + a1 + . . . + ak ≤ n gebildet. Da dieVariablexi in Q nicht vorkommt, ist die Anzahl der Durchlaufe der loop-Schleifegleichai. Fur ein vorgegebenesn ∈ N seiα(n) ∈ N derjenige Wert fur ai, derdas Maximum vonFP (n) bildet. Zur Vereinfachung der Notation schreiben wirαstattα(n). Nun gilt

FP (n) ≤ FQ(FQ(. . . FQ(FQ(n− α)) . . .)) + α ,

wobei die FunktionFQ(·) hier α-fach ineinander eingesetzt ist. Als Induktions-annahme setzen wir voraus, dass es eine naturliche Zahlq mit der EigenschaftFQ(ℓ) < A(q, ℓ) fur alleℓ ∈ N gibt. Wegen der Ganzzahligkeit der betrachtetenFunktionen folgtFQ(ℓ) ≤ A(q, ℓ) − 1. Diese Ungleichung wenden wir zunachstnur auf dieaußerste SchachtelungFQ(. . .) an und erhalten

FP (n) ≤ A(q, FQ(. . . FQ(FQ(n− α)) . . .)) + α− 1 .

Wenn wir dasselbe Prinzip auf alle Verschachtelungen anwenden, ergibt sich

FP (n) ≤ A(q, A(q, . . . A(q, A(q, n− α)) . . .)) .

Die Monotonie der Ackermannfunktion liefert nun

FP (n) ≤ A(q, A(q, . . . A(q, A(q + 1, n− α)) . . .)) .

Aus der Definition der Ackermannfunktion ergibt sichA(q + 1, y) = A(q, A(q +1, y − 1)). Auf die innere Verschachtelung angewendet ergibt sich somit

FP (n) ≤ A(q, A(q, . . . A(q + 1, n− α + 1) . . .)) ,

wobei die FunktionA(q, ·) jetzt nur noch(α−1)-fach ineinander verschachtelt ist.Wenn wir diese Art der Substitution noch weitere(α − 2) mal anwenden, ergibtsich

FP (n) ≤ A(q + 1, n− 1) < A(q + 1, n) .

Also genugt es auch in diesem Fallm = q + 1 zu wahlen. Damit haben wirLemma 2.60 durch strukturelle Induktion nachgewiesen. �

78

Page 82: Skript zur Vorlesung

Satz 2.62Die Ackermannfunktion ist nicht LOOP-berechenbar.

Beweis:Angenommen die Ackermannfunktion ist LOOP-berechenbar, dann istdie FunktionB(n) = A(n, n) ebenfalls LOOP-berechenbar. SeiP ein LOOP-Programm fur B. Es gilt B(n) ≤ FP (n). Zu P wahlen wir nun gemaß Lem-ma 2.60 die naturliche Zahlm, so dass fur alle n gilt FP (n) < A(m,n). Furn = m ergibt sich nun

B(n) ≤ FP (n) < A(m,n) = A(n, n) = B(n) .

Dies ist offensichtlich ein Widerspruch, woraus folgt dassdie Ackermannfunktionnicht LOOP-berechenbar ist. �

Die Ackermann-FunktionAmotiviert die Frage, ob man die LOOP-Programmeso erganzen kann, dass man genau alle totalen berechenbaren Funktionen erfasst(so dass auchA im Rahmen dieser Erganzung berechenbar ware).

Eine solche Programmiersprache gibt es nicht, wenn man vernunftige Bedin-gungen unterstellt:

Satz 2.63Es gibt keinen FormalismusP0, P1, P2, . . . von Programmen, so dass

1. JedesPi berechnet eine totale Funktion vonN nachN.

2. Jede totale berechenbare Funktion vonN nachN wird durch einPi berech-net.

3. Die Auswertungsfunktion(i, j) 7→ Pi(j) ist berechenbar(wobeiPi(j) die Ausgabe vonPi bei Eingabej ist).

Beweis:Wir nehmen an, ein FormalismusP0, P1, P2, . . . mit 1. - 3. existiere. Definiere

F : N → N durch: (*) F (x) := Px(x)+1. Wegen 3. istF berechenbar, wegen 1.auch total. Wegen 2. konnen wir eini wahlen mitF (x) = Pi(x). Fur diesesi giltalsoF (i) = Pi(i), andererseits wegen(∗): F (i) = Pi(i) + 1, ein Widerspruch.

79

Page 83: Skript zur Vorlesung

2.8 Ein Exkurs: Die Busy Beaver Funktion

Die Ackermann-Funktion wachst starker als jede LOOP-berechenbare Funktion.Wir definieren nun eine Funktion, die so unvorstellbar schnell wachst, dass sienicht berechenbar ist. Sie wird definiert als Ergebnis eines“Wettbewerbs von Tu-ringmaschinen gleicher Zustandszahl”. Diese Turingmaschinen haben die Sym-boleB (Blank) und| (Strich) in ihrem Arbeitsalphabet. Die Funktion liefert zugegebenemn die maximale Anzahl der Striche, die eine TM mitn Zustanden(plus Stoppzustand) bei Termination auf dem Band liefert.

Genauer: Einn-Biber ist eine TM mit Zustandenq1, . . . , qn, q uber dem Al-phabet{|, B}, die angesetzt auf das leere Band stoppt.

Ein fleißigern-Biber ist einn-Biber, der unter allenn-Bibern bei Terminationdie maximale Anzahl von Symbolen| liefert (gegebenenfalls auch unterbrochendurch SymboleB).

Definition 2.64 (Busy Beaver Funktion)Die busy beaver Funktionβ : N → N ist definiert durch

β(n) = Strichzahl, die ein fleißigern-Biber bei Termination liefert.

Es ist klar, dassβ wohldefiniert und total ist. Man beachte, dass es zu gegebenerZustandszahln nur endlich viele Turingmaschinen gibt, dien-Biber sind.

Satz 2.65Die beasy beaver Funktionβ ist nicht berechenbar.

Vor dem Beweis eine Bemerkung:

Bemerkung 2.66 β(n) < β(n+ 1).

Beweis:Wir wandeln den Stoppzustand eines fleißigenn-Bibers in den Zustandqn+1 um und fugen Instruktionen(qn+1 | qn+1 | R) und(qn+1 B q | R) hinzu. Esentsteht ein(n + 1)-Biber, der einen Strich mehr liefert als ein fleißigern-Biber.Dies tut dann auch erst recht ein fleißiger(n+ 1)-Biber. �

Man hat Werte vonβ bisher wie folgt bestimmt:

80

Page 84: Skript zur Vorlesung

• β(1) = 1, β(2) = 4, β(3) = 6, β(4) = 13, β(5) ≥ 4096

• β(12) > 6 · 40964096...

4096

mit einem Potenzturm der Hohe 164

Schon die Bestimmung vonβ(5) ist noch offen. Es gibt bei der Analyse der TMmit 5 Zustanden noch ein paar Dutzend Falle, in denen auch mit hoher Schritt-zahl nicht klar ist, ob die Termination noch spater erfolgt. Dies verhindert eineEingrenzung der TM, die als Biber in Frage kommen.Wir zeigen nun, dassβ starker wachst als jede berechenbare Funktion (und damitnicht berechenbar sein kann). Zunachst beziehen wir uns nur auf streng monotoneberechenbare Funktionen.

Lemma 2.67 β wachst starker als jede berechenbare streng monotone Funktionf , in folgendem Sinne:

Seif : N → N streng monoton und berechenbar durch eine TM mit Eingabeund Ausgabe naturlicher Zahlen in Unardarstellung.

Dann gibt es einn0, so dass fur n ≥ n0 gilt: f(n) < β(n)

Beweis:Seif berechenbar gegeben. Betrachteg, definiert durchg(n) = f(2n+2).

Mit f ist auchg berechenbar (mit unarer Darstellung von Zahlen), etwa durchdie TM Mg mit k Zustanden. OBdA liefertMg bei Termination keine anderenStriche als diejenigen fur die Ausgabe. (Erfullt Mg diese Bedingung nicht, kannmanMg vorab soandern, dass am Ende der Berechnung alle Striche jenseits (linksoder rechts) der Ausgabe durchB uberschrieben werden.

Wir definieren furn ≥ 1 eine VarianteMng vonMg, mit zusatzlichen Zustanden

p0, . . . , pn: Wir stellen den Instruktionen vonMg die Instruktionen

(p0 B p1 | R), . . . , (pn−1 B pn | L)

voran, dien Striche drucken; ferner zwei Instruktionen fur den Rucklauf auf denersten Strich in den Anfangszustandq0 vonMg:

(pn | pn | L), (pn B q0 B R).

Die TM Mng hatk + (n + 1) Zustande und arbeitet auf dem leeren Band wieMg

mit Eingaben.

Wir erhalten fur n ≥ k (k = Anzahl derMg-Zustande):

81

Page 85: Skript zur Vorlesung

f(2n+ 1) < f(2n+ 2) (daf streng monoton ist)= g(n) = Anzahl der Striche, dieMn

g

angesetzt auf das leere Band bei Termination liefert≤ β(k + (n+ 1)) (daMn

g k + (n+ 1) Zustande hat)≤ β(2n+ 1) (wegenn ≥ k)< β(2n+ 2) (gemaß Bemerkung).

Also gilt f(x) < β(x) , wennx ≥ 2n + 1: Fur x gerade nimmt man oben denersten und vorletzten Term, fur x ungerade den zweiten und letzten Term.

Das Lemma gilt zunachst nur fur streng monotone berechenbaref .

Um das Lemma (und damit den Satzuber die Nichtberechenbarkeit vonβ) zuerhalten, mussen wir von einer berechenbaren Funktionh : N → N ausgehen. Zuh bildet man zunnachst eine streng monotone Funktionf mit h(n) ≤ f(n) underhalt dann fur großen, dassh(n) ≤ f(n) < β(n).

Im einzelnen verfahrt man dazu so: Von einer beliebigen berechenbaren Funk-tion h konnen wir durch Ersatz des Funktionswerts0 durch1 ubergehen

• zu einer berechenbaren Funktionh′ ohne Wert0, also mith(n) ≤ h′(n)

• und dann zu einer streng monotonen berechenbaren Funktionf durch

f(n) =∑n

i=0 h′(i).

Auf diese streng monotone Funktionf mit h(n) ≤ f(n) kann man dann das Lem-ma anwenden. Somit istβ verschieden von jeder totalen berechenbaren Funktionh, also nicht berechenbar.

2.9 Primitiv rekursive und µ-rekursive Funktionen

Historisch wurde die Klasse der LOOP-berechenbaren Funktionen nicht in Formvon LOOP-Programmen vorgestellt, sondern wie auch die berechenbaren (rekur-siven) Funktionen in einem abstrakten Formalismus, in dem kein “Berechnungs-modell” (wie Turingmaschine, RAM, WHILE) benutzt wird. Dieser Ansatz gehtvon (offensichtlich berechenbaren) Basisfunktionen aus und bietet dann drei Pro-zesse, die von berechenbaren Funktionen wieder zu berechenbaren Funktionen

82

Page 86: Skript zur Vorlesung

fuhren. Eingefuhrt wurde dieser Formalismus der “rekursiven Funktionen”durchS.C. Kleene, aufbauend auf vielen Vorarbeiten der mathematischen Grundlagen-forscher.

Die folgenden Funktionen sind die Basisfunktionen:

• Nullfunktioneno : Nk → N fur allek ≥ 0 mit

ok(x1, . . . , xk) = 0 fur allex1, . . . , xk ∈ N

• Projektionenfur alle1 ≤ i ≤ k ∈ N:

pki (x1, . . . , xi, . . . , xk) = xi fur allex1, . . . , xk ∈ N

• Nachfolgerfunktions : N → N mit

s(n) = n+ 1 fur allen ∈ N

Wir f uhren nun drei Prozesse ein, die von gegebenen Funktionen zuneuenFunktionen fuhren. Es ist fur jeden Prozess offensichtlich, dass er von berechen-baren Funktionen wieder auf berechenbare Funktionen fuhrt. Die ersten beidenProzesse heißen “Einsetzung” und “primitive Rekursion”.

• Einsetzung:

Sindh n-stellig undg1, . . . , gn jeweilsk-stellig gegeben, so entstehtf (k-stellig) aush, g1, . . . , gk durch Einsetzung, wenn

f(x1, . . . , xk) = h(g1(x1, . . . , xk), . . . , gn(x1, . . . , xk))

• Primitive Rekursion:

Sindg k-stellig undh (k+2)-stellig gegeben, so entstehtf ((k+1)-stellig)ausg undh durch primitive Rekursion, wenn

f(0, x1, . . . , xk) = g(x1, . . . , xk)

f(n+ 1, x1, . . . , xk) = h(f(n, x1, . . . , xk), n, x1, . . . , xk)

83

Page 87: Skript zur Vorlesung

Die primitive Rekursion erfasst das Standardverfahren rekursiver Definitio-nen, etwa

fur die Addition:0 + x = x, (n+ 1) + x = (n+ x) + 1fur die Multiplikation:0 · x = 0, (n+ 1) · x = (n · x) + x

Die Klasse der primitiv rekursiven Funktionen ist sehr reichhaltig und alles an-dere als “primitiv”. Wir geben einige elemantare Beispiele fur primitiv rekursiveFunktionen an.

• Die Additionadd : N2 → N lasst sich schreiben als

add(0, x) = x

add(n+ 1, x) = s(p|1(add(n, x), n, x))

Statt der formalen Angabes(p|1(add(n, x), n, x)) benutzen wir auch dieverkurzende Schreibweises(add(n, x)).

• Die Multiplikationmult : N2 → N definieren wir durch

mult(0, x) = 0

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

• Die Subtraktionsub : N2 → N schreiben wir als

sub(x, 0) = x

sub(x, y + 1) = u(sub(x, y))

wobeiu durchu(0) = 0 undu(n+ 1) = n definiert ist.

Bis zur Entdeckung der Ackermannfunktion vermutete man, dass die Men-ge der primitiv rekursiven Funktionen mit der Menge der berechenbaren totalenFunktionenubereinstimmt.

Tatsachlich ist die Menge der primitiv rekursiven Funktionen aber genau dieMenge der LOOP-berechenbaren Funktionen.

Satz 2.68Die Klasse der primitiv rekursiven Funktionen stimmt genau mit derKlasse der LOOP-berechenbaren Funktionenuberein.

84

Page 88: Skript zur Vorlesung

Beweis:Wir zeigen zunachst, dass alle primitiv rekursiven Funktionen als LOOP-Programme implementiert werden konnen. Dazu fuhren wir einen Induktionsbe-weisuber den Aufbau der Funktion.

Basisfunktionen sind offensichtlich LOOP-berechenbar unddienen uns als In-duktionsanfang. Auch Kompositionen primitiv rekursiver Funktionen konnen wirdurch Hintereinanderausfuhrung der entsprechenden LOOP-Programme simulie-ren. Es bleibt also nur zu zeigen, dass, fallsf durch primitive Rekursion definiertist, d.h. in der Form

f(0, x1, . . . , xk) = g(x1, . . . , xk)

f(n+ 1, x1, . . . , xk) = h(f(n, x1, . . . , xk), n, x1, . . . , xk)

gegeben ist, ebenfalls eine Implementierung moglich ist.Laut Induktionsannahme existieren zwei LOOP-ProgrammePg undPh, wel-

che die Funktioneng undh berechnen. Somit ist das folgende LOOP-Programmwohldefiniert und berechnet die gewunschte Funktion.

y := Pg(x1, . . . , xk);loopn doy := Ph(y, n− 1, x1, . . . , xk) endloop

Fur die Umkehrrichtung benutzen wir eine bijektive Abbildungencode : Nk → N

(z.B. die Cantorsche Tupelfunktion), um Modifikationen aufk Variablen durch ei-ne einstellige Funktion darzustellen.

Man kann sich leicht veranschaulichen, dass die in derUbung vorgestellteCantorsche Paarfunktionπ : N2 → N mit

π(x, y) =

(x+ y + 1

2

)

+ y

und ihre Erweiterungπ(k+1) : Nk+1 → N auf (k + 1)-Tupel naturlicher Zahlendurch

π(k+1)(x0, . . . , xk) = π(π(k)(x0, . . . , xk−1), xk)

primitiv rekursiv ist.Ebenso kann man die Umkehrfunktionendi mit

di(encode(x0, . . . , xi, . . . , xk)) = xi

zum Dekodieren der einzelnen Elemente primitiv rekursiv definieren.

85

Page 89: Skript zur Vorlesung

Nun sind wir in der Lage, LOOP-Programme als primitiv rekursive Funktio-nen anzugeben. Ein LOOP-ProgrammP der Formxi := xj ± c kann als primitivrekursive Funktion

gP (z) = encode(d0(z), . . . , di−1(z), di(z)± c, di+1(z), . . . , dk(z))

geschrieben werden.Fur die Hintereinanderausfuhrung zweier ProgrammeQ;R verwenden wir die

KompositiongR(gQ(z)).Das Programm loopxi doQ endloop wird durch

gloop(z) = h(di(z), z)

mit h(0, z) = z undh(n+ 1, z) = gQ(h(n, z)) angegeben. �

Wir wissen bereits, dass nicht alle rekursiven (also Turing- bzw. WHILE-berechenbaren) Funktionen primitiv rekursiv sind. Wir mochten uns daher im Fol-genden einer Charakterisierung der WHILE-berechenbaren Funktionen zuwen-den. Welchen Prozess muss man zu Einsetzung und primitver Rekursion nochhinzufugen, um alle berechenbaren Funktionen (uberN) zu erhalten?

Dies ist Kleenesµ-Operator, der aus einer(k + 1)-stelligen Funktiong zux1, . . . , xk das kleinstey mit g(y, x1, . . . , xk) = 0 extrahiert.

Aus einer(k+1)-stelligen Funktiong entsteht diek-stellige Funktionf durchAnwendung desµ-Operators, wenn

f(x1, . . . , xk) = kleinstesy mit g(y, x1, . . . , xk) = 0,wenn fur allez < y g(z, x1, . . . , xk)( 6= 0) defininiert ist,falls ein solchesy existiert⊥ , sonst

Definition 2.69 Eine Funktionf : N N heißt rekursiv (oder: partiell rekur-siv, µ-rekursiv), wenn sie aus Basisfunktionen durch endlichmalige Anwendungder Prozesse Einsetzung, primitive Rekursion und Anwendungdesµ-Operatorsentsteht.

Satz 2.70Die Klasse der rekursiven Funktionen stimmt genau mit der Klasse derWHILE-/TURING- (oder auch RAM-) berechenbaren Funktionenuberein.

86

Page 90: Skript zur Vorlesung

TM ≡ RAM ≡ WHILE ≡ µ-rekursiv

)

LOOP ≡ primitiv rekursiv

+ − × ab

xk(nk

). . .

Ackermannfkt.

Abbildung 2.1: Hierarchie der vorgestellten Funktionsklassen

Beweis:Da wir im Vergleich zu den primitiv rekursiven Funktionen (welche wir,wie gesehen, als LOOP- und somit auch als WHILE-Programm darstellen konnen)lediglich die zusatzliche Verwendung desµ-Operators erlauben, mussen wir nurein diesem Fall entsprechendes while-Konstrukt angeben. Wir implementierenµfdurch das WHILE-Programm

x0 := 0;y := f(0, x1, . . . , xk);while y 6= 0 dox0 := x0 + 1;y := f(x0, x1, . . . , xk);endwhile

Umgekehrt ersetzen wir ein WHILE-ProgrammP der Form

while xi 6= 0 doQ endwhile

durch die FunktiongP (z) = h(µ(dih)(z), z)

wobeih(n, z) wie im vorigen Beweis definiert ist und den Zustand der Programm-variablenz = encode(x0, . . . , xk) nachn Ausfuhrungen vonQ wiedergibt. Alleanderen WHILE-Konstrukte konnen wir wie im vorigen Beweis bereits als primi-tiv rekursive Funktionen darstellen. �

87

Page 91: Skript zur Vorlesung

Kapitel 3

Komplexit at

Die Komplexitatstheorie beschaftigt sich mit der”Komplexitat von Problemen“.

Die Komplexitat eines Problems ist ein Maß dafur, wie schwierig es ist, das Pro-blem zu losen. Sie wird beschrieben durch Angabe der Ressourcen, die man zurLosung des Problems auf einem Rechner benotigt. Bei diesen Ressourcen han-delt es sich typischerweise um Rechenzeit und Speicherplatz; in dieser Vorlesungvornehmlich um die Rechenzeit. Die in der Komplexitatstheorie wohl am inten-sivsten untersuchte Fragestellung dreht sich darum, welche Probleme durch einen

”effizienten Algorithmen“ gelost werden konnen.

3.1 Die KomplexitatsklasseP

3.1.1 Motivation und Definition

Algorithmen werden haufig umgangssprachlich oder in einer ArtPseudocodebe-schrieben, der an eine Programmiersprache angelehnt ist. Bei der Analyse derAlgorithmen wird in der Praxis haufig auf das uniforme Kostenmaß der Regi-stermaschine (Random Access Machine – RAM) zuruckgegriffen. Das unifor-me Kostenmaß der RAM erlaubt es aber Rechenoperationen in konstanter Zeitdurchzufuhren, die in der Praxis nicht in konstanter Zeit moglich sind, z.B. dieAddition oder Multiplikation beliebig großer Zahlen. In vielen (aber nicht allen)praktischen Anwendungen liegen haufig Zahlen mit eingeschranktem Wertebe-reich vor, die tatsachlich durch einen Rechner in einem Schritt verarbeitet werdenkonnen. Deshalb kann die Verwendung des uniformen Kostenmaßes fur die prak-tische Algorithmenentwicklung durchaus sinnvoll sein. Wenn es aber darum geht

88

Page 92: Skript zur Vorlesung

eine Theorie zu entwickeln, die die Komplexitat von Problemen im Allgemeinenerfasst, mochten wir insbesondere auch die Komplexitat des Rechnens mit großenZahlen berucksichtigen. Wir greifen deshalb auf ein genaueres Kostenmaß zuruck.

Auch wir werden in dieser Vorlesung Algorithmen umgangssprachlich oderin Pseudocode beschreiben. Die Algorithmenbeschreibung sollte so gefasst sein,dass implizit klar ist, wie der Algorithmus auf einer RAM ausgefuhrt werdenkann. Fur die Laufzeitanalyse legen wir das logarithmische Kostenmaß der RAMzugrunde, bei dem die Laufzeitkosten eines Rechenschrittesproportional zur An-zahl der angesprochenen Bits sind. Solange nichts anderes festgelegt ist, werdenalle Zahlen, die in der Eingabe vorkommen oder wahrend der Rechnung erzeugtwerden, als binar kodiert vorausgesetzt. Die Laufzeit bemessen wir als FunktionderEingabelange, die wir ebenfalls in Bits messen.

Definition 3.1 (worst case Laufzeit eines Algorithmus)Dieworst case LaufzeittA(n), n ∈ N, eines AlgorithmusA entspricht den maximalen Laufzeitkosten aufEingaben der Langen bezuglich des logarithmischen Kostenmaßes der RAM.

Wenn wir in dieser Vorlesung die Laufzeit eines Algorithmusanalysieren, un-tersuchen wir immer die worst case Laufzeit, auch wenn wir bisweilen den Zusatzworst caseaus Bequemlichkeit nicht explizit erwahnen.

Definition 3.2 (Polynomialzeitalgorithmus) Wir sagen, die worst case LaufzeittA(n) eines AlgorithmusA ist polynomiell beschrankt, falls gilt

∃α ∈ N : tA(n) = O(nα) .

Einen Algorithmus mit polynomiell beschrankter worst case Laufzeit bezeichnenwir als Polynomialzeitalgorithmus.

Bereits im ersten Teil der Vorlesung wurde gezeigt, dass Turingmaschine (TM)und RAM sich gegenseitig mit polynomiellem Zeitverlust simulieren konnen.Wenn ein Problem also einen Algorithmus mit polynomiell beschrankter Lauf-zeit auf der RAM hat, so kann es auch mit einer polynomiellen Anzahl Schrit-ten auf einer TM gelost werden, und umgekehrt. Dies gilt nicht nur fur die RAMund die TM, sondern auch fur zahlreiche andere sinnvolle Maschinenmodelle, wiez.B. die Mehrband-TM. Die Klasse der Probleme, die in polynomieller Zeit gelostwerden konnen, ist also in einem gewissen Sinnerobustgegenuber der Wahl desMaschinenmodells.

89

Page 93: Skript zur Vorlesung

Definition 3.3 (KomplexitatsklasseP) P ist die Klasse der Probleme, fur die eseinen Polynomialzeitalgorithmus gibt.

Polynomialzeitalgorithmen werden haufig auch als”effiziente Algorithmen“

bezeichnet. Die Gleichsetzung von Effizienz mit polynomieller Rechenzeit ist si-cherlich stark vereinfachend, aber als erste Naherung fur den Begriff der Effizienzganz gut geeignet.P ist in diesem Sinne die Klasse derjenigen Probleme, die effi-zient gelost werden konnen.

3.1.2 Beispiele fur Probleme in P

Von den folgenden Problem wissen wir, dass sie inP sind, weil wir einen Polyno-mialzeitalgorithmus fur sie kennen.

• Sortieren

• Kurzeste Wege

• Minimaler Spannbaum

• Graphzusammenhang

• Maximaler Fluss

• Maximum Matching

• Lineare Programmierung

• Großter Gemeinsamer Teiler

• Primzahltest

Naturlich ist diese Liste nicht vollstandig. Zur Illustration betrachten wir zweidieser Probleme etwas genauer.

Problem 3.4 (Sortieren)

Eingabe:N (binar kodierte) Zahlena1, . . . , aN ∈ N

Ausgabe: aufsteigend sortierte Folge der Eingabezahlen

Satz 3.5 Sortieren∈ P.

90

Page 94: Skript zur Vorlesung

Beweis:Sein die Eingabelange, d.h. die Anzahl Bits die zur Kodierung derNEingabezahlena1, . . . , aN benotigt wird. Im uniformen Kostenmaß konnen wirin Zeit O(N logN) sortieren, z.B. durch Mergesort. Wir mussen zeigen, dass dieLaufzeit von Mergesort auch bezuglich des logarithmischen Kostenmaßes poly-nomiell beschrankt ist.

• Jeder uniforme Schritt von Mergesort kann in ZeitO(ℓ) durchgefuhrt wer-den, wobeiℓ = max1≤i≤N log(ai).

• Die Laufzeit von Mergesort ist somitO(ℓ ·N logN).

• Aus ℓ ≤ n undN ≤ n, folgt ℓ ·N logN ≤ n2 log n ≤ n3.

Damit ist die worst case Laufzeit von Mergesort polynomiellbeschrankt, namlichdurchO(n3). �

Wenn man genauer hinschaut, kann man auch eine Schranke vonO(n log n)fur die Laufzeit von Mergesort im logarithmischen Kostenmaßherleiten, aber dasist fur uns hier unerheblich.

Das zweite Problem, dass wir genauer betrachten ist ein Entscheidungspro-blem.

Problem 3.6 (Graphzusammenhang)

Eingabe: GraphG = (V,E)

Frage: IstG zusammenhangend?

Bei Graphproblemen gehen wir der Einfachheithalber grundsatzlich davonaus, dass der Graph in Form einer Adjazenzmatrix eingegebenwird.

Satz 3.7 Graphzusammenhang∈ P.

Beweis:. Die Eingabelange istn = |V |2 ≥ |E|. Graphzusammenhanglost manbeispielsweise mit Hilfe einer Tiefensuche.

• Die Tiefensuche benotigt O(|V |+ |E|) uniforme Rechenschritte.

• Die Kosten fur jeden Rechenschritt sind durchO(log |V |) (z.B. fur den Zu-griff auf Knotenindizes) beschrankt.

• Die Gesamtlaufzeit ist somitO((|V |+ |E|) log |V |) = O(n log n).

Somit ist die worst case Laufzeit der Tiefensuche polynomiell beschrankt, namlichdurchO(n2). �

91

Page 95: Skript zur Vorlesung

3.2 Die KomplexitatsklasseNP

3.2.1 Definition und Erlauterung

Um nachzuweisen, dass ein Problem inP enthalten ist, genugt es einen Polyno-mialzeitalgorithmus fur das Problem anzugeben. Wie kann man aber nachweisen,dass ein Problem nicht inP enthalten ist? – Diese Frage wird uns noch ein wenigbeschaftigen. Dazu machen wir einen vielleicht zunachst etwas obskur erschei-nenden Umweguber nichtdeterministische Turingmaschinen.

Definition 3.8 (Nichtdeterministische Turingmaschine – NTM) Eine nichtde-terministische Turingmaschine (NTM) ist definiert wie eine deterministische Tu-ringmaschine (TM), nur die Zustandsuberfuhrungsfunktion wird zu einer Relation

δ ⊆ ((Q \ {q})× Γ)× (Q× Γ× {L,R,N})) .

Eine KonfigurationK ′ ist direkter Nachfolger einer KonfigurationK, ge-schriebenK ⊢ K ′, falls K ′ durch einen der inδ beschriebenenUbergange ausK hervorgeht. Das bedeutet zu einer Konfiguration kann es mehrere Nachfolge-konfigurationen geben. Jede mogliche Konfigurationsfolge, die mit der Startkon-figuration beginnt und jeweils mit einer der direkten Nachfolgekonfigurationenfortgesetzt wird bis sie eine Endkonfiguration im Zustandq erreicht, wird als Re-chenweg der NTM bezeichnet. Der Verlauf der Rechnung ist alsonicht eindeutigbestimmt.

Definition 3.9 (Akzeptanzverhalten der NTM) Eine NTMM akzeptiert die Ein-gabex ∈ Σ∗, falls es mindestens einen Rechenweg vonM gibt, der in eine akzep-tierende Endkonfiguration fuhrt. Die vonM erkannte SpracheL(M) besteht ausallen vonM akzeptierten Wortern.

Bei der Festlegung der Laufzeitkosten der NTMM berucksichtigen wir nurdie Eingabenx ∈ L(M). Fur jedesx ∈ L(M) gibt es mindestens einen Rechen-weg auf demM zu einem akzeptierenden Endzustand gelangt. Wir stellen uns vor,M wahlt den kurzesten dieser Rechenwege. In anderen Worten, die NTM hat diemagische Fahigkeit immer den kurzesten Rechenweg zu raten. Alternativ konnenwir uns auch vorstellen, die NTM kann allen Rechenwegen gleichzeitig folgenund stoppt, sobald einer der Wege erfolgreich ist.

92

Page 96: Skript zur Vorlesung

Definition 3.10 (Laufzeit der NTM) SeiM eine NTM. Die Laufzeit vonM aufeiner Eingabex ∈ L(M) ist definiert als

TM(x) := Lange des kurzesten akzeptierenden Rechenweges vonM aufx .

Fur x 6∈ L(M) definieren wirTM(x) = 0. Die worst case LaufzeittM(n) fur Mauf Eingaben der Langen ∈ N ist definiert durch

tM(n) := max{TM(x) | x ∈ Σn} .

Wir behaupten nicht, dass man eine derartige Maschine bauenkann. Wir be-nutzen die NTM nur als Modell fur die Klassifikation der Komplexitat von Pro-blemen.

Definition 3.11 (KomplexitatsklasseNP) NP ist die Klasse der Entscheidungs-probleme, die durch eine NTMM erkannt werden, deren worst case LaufzeittM(n) polynomiell beschrankt ist.

NP steht dabei fur nichtdeterministisch polynomiell. Wir geben ein erstes Bei-spiel fur ein Problem inNP.

Problem 3.12 (Cliquenproblem – CLIQUE)

Eingabe:GraphG = (V,E), k ∈ {1, . . . , |V |}

Frage:Gibt es einek-Clique?

EineCliqueist dabei eine KnotenteilmengeC ⊆ V , die die Bedingung erfullt,dass jeder Knoten ausC mit jedem anderen Knoten ausC durch eine Kante ver-bunden ist. Einek-Clique ist eine Clique der Großek. Der GraphG = (V,E)wird durch seine Adjazenzmatrix beschrieben.

Satz 3.13CLIQUE∈ NP.

Beweis:Wir beschreiben eine NTMM mit L(M) = CLIQUE. M arbeitet wiefolgt.

1. Falls die Eingabe nicht von der Form(G, k) ist, so verwirftM die Eingabe.Sonst fahrtM wie folgt fort.

2. SeiG = (V,E). SeiN die Anzahl der Knoten. O.B.d.A.V = {1, . . . , N}.M schreibt hinter die Eingabe den String#N . Der Kopf bewegt sich unterdas erste#.

93

Page 97: Skript zur Vorlesung

3. M lauft von links nach rechtsuber den String#N und ersetzt ihn nicht-deterministisch durch einen String aus{0, 1}N . Diesen String nennen wiry = (y1, . . . , yN).

4. SeiC = {i ∈ V | yi = 1} ⊆ V . M akzeptiert, fallsC einek-Clique ist.

Die Anweisungen 1, 2 und 4 sind deterministisch. Diese Anweisungen konnenoffensichtlich auch von einer (deterministischen) TM in einer polynomiell be-schrankten Anzahl von Schritten ausgefuhrt werden. Nur in der dritten Anweisunggreifen wir auf Nichtdeterminismus zuruck:M

”rat“ einen Stringy ∈ {0, 1}N in

N nicht deterministischen Schritten.Wir zeigenL(M) = CLIQUE. Zunachst nehmen wir an, die Eingabe ist von

der Form(G, k) undG enthalt einek-Clique. In diesem Fall gibt es mindestenseinen Stringy, der dazu fuhrt, dass die Eingabe in Anweisung 4 akzeptiert wird.Falls die Eingabe also in CLIQUE enthalten ist, so gibt es einen akzeptierendenRechenweg polynomiell beschrankter Lange. Falls die Eingabe hingegen nicht inCLIQUE enthalten ist, so gibt es keinen akzeptierenden Rechenweg.

Fazit: M erkennt die Sprache CLIQUE (vgl. dazu Def 3.9) und hat eine poly-nomiell beschrankte worst case Laufzeit (vgl. dazu Def 3.10). Also ist CLIQUE∈ NP (vgl. dazu Def 3.11). �

Bei der Beschreibung der NTM fur das Cliquenproblem haben wir den Nicht-determinismus nur dazu verwendet einen Stringy zu raten, der eine Knotenteil-mengeC beschreibt, fur die man ohne weiteresuberprufen kann, ob sie einek-Clique ist. Wir konneny als einZertifikat ansehen, so dass wir mit diesem Zer-tifikat die Zugehorigkeit zu CLIQUE in polynomieller Zeituberprufen konnen.Die Schwierigkeit des Cliquenproblems scheint also nur darin zu liegen ein ge-eignetes Zertifikat zu finden, dass die Zugehorigkeit zur Sprache CLIQUE belegt.Diese Erkenntnis verallgemeinern wir nun auf alle Problemein NP.

3.2.2 Alternative Charakterisierung der KlasseNP

Die KlasseNP kann beschrieben werden, ohne auf nichtdeterministische Turing-maschinen zuruckzugreifen: Eine SpracheL gehort genau dann zuNP, wenn esfur die Eingaben ausL ein Zertifikat polynomieller Lange gibt, mit dem sich dieZugehorigkeit zuL in polynomieller Zeit verifizieren lasst. Diese umgangssprach-liche Charakterisierung vonNP wird durch den folgenden Satz prazisiert. Dabeiubernimmty die Rolle desZertifikats.

94

Page 98: Skript zur Vorlesung

Satz 3.14Eine SpracheL ⊆ Σ∗ ist genau dann inNP, wenn es einen Polynomi-alzeitalgorithmusV (einen sogenanntenVerifizierer) und ein Polynomp mit derfolgenden Eigenschaft gibt:

x ∈ L ⇔ ∃y ∈ {0, 1}∗, |y| ≤ p(|x|) : V akzeptierty#x.

Beweis:SeiL ∈ NP. SeiM eine NTM, dieL in polynomieller Zeit erkennt. DieLaufzeit vonM sei nach oben beschrankt durch ein Polynomq. Wir konstruierennun einen VerifiziererV mit den gewunschten Eigenschaften. Zunachst verein-fachen wir, und nehmen an, dass dieUberfuhrungsrelationδ immer genau zweimoglicheUbergange vorsieht, die wir mit 0 und 1 bezeichnen. Bei einer Eingabex ∈ Σn, verwenden wir ein Zertifikaty ∈ {0, 1}q(n), das den Weg durch die Rech-nung vonM weist: Der VerifiziererV erhalt als Eingabey#x und simuliert einenRechenweg der NTMM fur die Eingabex, wobei er imi-ten Rechenschritt vonM denUbergangyi wahlt. Es gilt

x ∈ L ⇔ M akzeptiertx ⇔ ∃y ∈ {0, 1}q(n) : V akzeptierty#x.

Die Laufzeit des VerifizierersV ist polynomiell beschrankt. Somit erfullt V dieim Satz geforderten Eigenschaften.

Sollte dieUberfuhrungsrelationδ Verzweigungen mit einem großeren Grad alszwei vorsehen, so fassen wir mehrere Bits zusammen um einen Ast der Verzwei-gung zu selektieren: Bei einem maximalen Verzweigungsgrad von k verwendenwir ⌈log k⌉ Bits fur jede Verzweigung. Falls ein nicht vorhandener Ast selektiertwurde, weil der Grad einzelner Verzweigungen kleiner alsk ist, so wird die Ein-gabe verworfen. Wir beobachten, dass der maximale Verzweigungsgradk nichtgroßer als3 · |Q| · |Γ| sein kann. Somit istk eine Konstante. Deshalb sind weiter-hin sowohl die Lange des Zertifikatesy als auch die Laufzeit vonV polynomiellbeschrankt.

Nun zeigen wir die Umkehrrichtung. Dazu nehmen wir an, es liegt ein Veri-fiziererV fur L und ein Polynomp vor, wie sie im Satz beschrieben sind. Es istzu zeigen:L ∈ NP. Wir konstruieren eine NTMM , dieL in polynomieller Zeiterkennt.M arbeitet folgendermaßen:

• M rat ein Zertifikaty ∈ {0, 1}∗, |y| ≤ p(n).

• M fuhrtV aufy#x aus und akzeptiert, fallsV akzeptiert.

95

Page 99: Skript zur Vorlesung

Die Laufzeit vonM ist polynomiell beschrankt, undM erkenntL, denn

x ∈ L ⇔ ∃y ∈ {0, 1}∗, |y| ≤ p(n) : V akzeptierty#x ⇔ M akzeptiertx,

weilM die Eingabex genau dann akzeptiert, wenn mindestens einer der moglichenRechenwege einen akzeptierenden Endzustand erreicht. �

3.2.3 Beispiele fur Probleme in NP

Typische Vertreter fur Probleme aus der KlasseNP sind Entscheidungsvariantenvon Optimierungsproblemen. Wir beschreiben Optimierungsprobleme indem wirEingaben, zulassige Losungenund Zielfunktionangeben. Die Ausgabe, die beieinem Optimierungsproblem berechnet werden soll, ist einezulassige Losung,die die Zielfunktion optimiert. Wenn es mehrere optimale Losungen gibt, so sollgenau eine von diesen Losungen ausgegeben werden.

Problem 3.15 (Rucksackproblem, Knapsack Problem – KP)Beim KP suchenwir eine TeilmengeK vonN gegebenen Objekten mit Gewichtenw1, . . . , wN undNutzenwerten bzw. Profitenp1, . . . , pN , so dass die Objekte ausK in einen Ruck-sack mit Gewichtsschrankeb passen und dabei der Nutzen maximiert wird.

Eingabe:b ∈ N, w1, . . . , wN ∈ {1, . . . , b}, p1, . . . , pN ∈ N

zulassige Losungen:K ⊆ {1, . . . , N}, so dass∑

i∈K wi ≤ b

Zielfunktion: Maximiere∑

i∈K pi

Zu einem Optimierungsproblem konnen wir grundsatzlich auch immer eineEntscheidungsvariante angegeben, in der wir eine Zielvorgabe machen und fra-gen, ob diese Vorgabe erreicht werden kann. Bei derEntscheidungsvariante vomKP ist zur oben beschriebenen Eingabe zusatzlich eine Zahlp ∈ N gegeben. Essoll entschieden werden, ob es eine zulassige Teilmenge der Objekte mit Nutzenmindestensp gibt.

Problem 3.16 (Bin Packing Problem – BPP)Beim BPP suchen wir eine Vertei-lung vonN Objekten mit Gewichtenw1, . . . , wN auf eine moglichst kleine Anzahlvon Behaltern mit Gewichtskapazitat jeweilsb. Die Anzahl der Behalter wird mitk bezeichnet.

Eingabe:b ∈ N, w1, . . . , wN ∈ {1, . . . , b}

96

Page 100: Skript zur Vorlesung

zulassige Losungen:k ∈ N und Funktionf : {1, . . . , N} → {1, . . . , k},so dass

∀i ∈ {1, . . . , k} :∑

j∈f−1(i)

wj ≤ b

Zielfunktion: Minimierek

Bei derEntscheidungsvariante vom BPPist k ∈ N Teil der Eingabe. Es ist zuentscheiden, ob es eine zulassige Verteilung der Objekte auf hochstensk Behaltergibt.

Problem 3.17 (Traveling Salesperson Problem – TSP)Beim TSP ist ein voll-standiger Graph ausN Knoten (Orten) mit Kantengewichten gegeben. Gesuchtist eine Rundreise (einHamiltonkreis, eineTour) mit kleinstmoglichen Kosten.

Eingabe:c(i, j) ∈ N fur i, j ∈ {1, . . . , N}, wobei giltc(j, i) = c(i, j)

zulassige Losungen: Permutationenπ auf{1, . . . , N}

Zielfunktion: MinimiereN−1∑

i=1

c(π(i), π(i+ 1)) + c(π(N), π(1))

Bei derEntscheidungsvariante vom TSPist zusatzlich eine Zahlb ∈ N gege-ben und es ist zu entscheiden, ob es eine Rundreise mit Kosten hochstensb gibt.

Satz 3.18Die Entscheidungsvarianten von KP, BPP und TSP sind inNP.

Beweis:Wir verwenden zulassige Losungen dieser Probleme als Zertifikat. Da-zu mussen wir nachweisen, dass diese Losungen eine polynomiell in der Einga-belange beschrankte Kodierungslange haben und durch einen Algorithmus, des-sen Laufzeit ebenfalls polynomiell in der Eingabelange des Problems beschranktist, verifiziert werden konnen.

• KP: Die TeilmengeK der ausgewahlten Objekte kann mitN Bits kodiertwerden, und es kann in polynomieller Zeituberpruft werden, ob die Ge-wichtsschrankeb des Rucksacks eingehalten wird und zusatzlich der gefor-derte Nutzenwertp erreicht wird.

• BPP: Die Abbildungf : {1, . . . , N} → {1, . . . , k}, die die Verteilung derObjekte auf die Behalter beschreibt, kann mitO(N log k) Bits kodiert wer-den. Die Kodierungslange der Losungen ist somit polynomiell in der Einga-belange beschrankt. Es kann in polynomieller Zeituberpruft werden, ob dievorgegebene Anzahl Behalter und die Gewichtsschranke je Behalter einge-halten werden.

97

Page 101: Skript zur Vorlesung

• TSP: Fur die Kodierung einer Permutationπ werdenO(N logN) Bits be-notigt, und es kann in polynomieller Zeituberpruft werden, ob die durchπbeschriebene Rundreise die vorgegebene Kostenschrankeb einhalt.

Somit sind die Entscheidungsvarianten von KP, BPP und TSP ebenfalls in derKlasseNP enthalten. �

Mit Hilfe eines Algorithmus, der ein Optimierungsproblem lost, kann manoffensichtlich auch die Entscheidungsvariante losen. Haufig funktioniert auch derumgekehrte Weg: Aus einem Polynomialzeitalgorithmus fur die Entscheidungsva-riante konnen wir einen Polynomialzeitalgorithmus fur die Optimierungsvariantekonstruieren. Optimierungs- und Entscheidungsvariante haben also typischerwei-se dieselbe Komplexitat modulo polynomieller Faktoren. Wir demonstrieren diesfur das Rucksackproblem.

Satz 3.19Wenn die Entscheidungsvariante von KP in polynomieller Zeitlosbarist, dann auch die Optimierungsvariante.

Beweis:Neben der Entscheidungs- und Optimierungsvariante betrachten wir diefolgendeZwischenvariante:Gesucht ist der Zielfunktionswert einer optimalenLosung, ohne dass die optimale Losung selber ausgegeben werden muss.

Aus einem AlgorithmusA fur die Entscheidungsvariante, konstruieren wirzunachst einen AlgorithmusB fur die Zwischenvariante. AlgorithmusB berech-net den maximal moglichen Profitp, indem er eine Binarsucheuber dem Werte-bereich{0, . . . , P} ausfuhrt, wobeiP =

∑Ni=1 pi eine triviale obere Schranke fur

p ist. In dieser Binarsuche werden die Entscheidungenuber diejenige”Halfte“ des

Wertebereichs auf der die Suche fortgesetzt wird mit Hilfe von AlgorithmusA ge-troffen. Die Binarsuche hat einen Wertebereich der GroßeP +1. FallsP +1 eineZweierpotenz ist, so benotigt die Suche genaulog(P + 1) Iterationen, da sich derWertebereich von Iteration zu Iteration halbiert. Ist der Wertbereich keine Zweier-potenz, so gilt eine obere Schranke von⌈log(P + 1)⌉ fur die Anzahl der Aufrufevon AlgorithmusA.

Diese Laufzeitschranke mussen wir in Beziehung zur Eingabelange setzen.Wir nehmen an, alle Eingabezahlen werden binar kodiert. Die Kodierungslangeeiner naturlichen Zahla ∈ N bezeichnen wir mitκ(a). Es giltκ(a) = ⌈log(a +1)⌉. Die Binardarstellung der Summe zweier Zahlen ist kurzer als die Summe der

98

Page 102: Skript zur Vorlesung

Algorithmus C

1) K := {1, . . . , N};

2) p∗ := B(K);

3) for i := 1 to N do

if B(K \ {i}) = p∗ thenK := K − {i};

4) AusgabeK.

Abbildung 3.1: Pseudocode fur einen AlgorithmusC fur KP, der eine optimaleRucksackbepackung berechnet und zwar mit Hilfe eines UnterprogrammsB, daslediglich den Wert einer optimalen Losung zuruckgibt. Der Wertp∗ = B(K)entspricht dem optimalen Losungswert.

Langen ihrer Binardarstellungen, d.h. fur a, b ∈ N gilt κ(a + b) ≤ κ(a) + κ(b).Die Eingabelange ist also mindestens

N∑

i=1

κ(pi) ≥ κ

(N∑

i=1

pi

)

= κ(P ) = ⌈log(P + 1)⌉ ,

wobei wir beobachten, dass der letzte Term genau der oberen Schranke fur dieAnzahl Iterationen der Binarsuche entspricht. Die Anzahl der Aufrufe von Algo-rithmusA ist somit linear in der Eingabelange beschrankt. Falls also die LaufzeitvonA polynomiell beschrankt ist, so ist auchB ein Polynomialzeitalgorithmus.

Als nachstes zeigen wir, wie aus einem AlgorithmusB fur die Zwischenva-riante, ein AlgorithmusC fur die Optimierungsvariante konstruiert werden kann.AlgorithmusC wird durch Angabe des Pseudocodes in Abbildung 3.1 beschrie-ben. Der Algorithmus betrachtet die Objekte nacheinander.Fur jedes Objekti ∈{1, . . . , N} testet er mit Hilfe von AlgorithmusB, ob es auch eine optimaleLosung ohne Objekti gibt. Falls Objekti nicht fur die optimale Losung benotigtwird, so wird es gestrichen. Auf diese Art und Weise bleibt amEnde eine Mengevon Objektenubrig, die zulassig ist, also die Gewichtsschranke einhalt, und denoptimalen Zielfunktionswert erreicht.

Die Laufzeit von AlgorithmusC wird im Wesentlichen durch dieN + 1 Un-terprogrammaufrufe von AlgorithmusB bestimmt. Falls also die Laufzeit vonBpolynomiell beschrankt ist, so ist auchC ein Polynomialzeitalgorithmus. �

99

Page 103: Skript zur Vorlesung

3.3 P versusNP

Das wohl bekannteste offene Problem in der Informatik ist die Frage

P = NP?

Genau genommen macht die Frage in dieser Form wenig Sinn, denn wir habenPals Menge von Problemen (z.B. Sortieren) undNP als Menge von Entscheidungs-problemen (Sprachen) definiert. WennE die Menge aller Entscheidungsproblemeist, so musste die Frage eigentlich lauten

P ∩ E = NP?

Zur Verwirrung aller, die in die Komplexitatstheorie einsteigen, wird aber die Be-zeichnungP doppeldeutig verwendet, mal fur die Klasse aller Probleme, die einenPolynomialzeitalgorithmus haben, und mal fur die Klasse der Entscheidungspro-bleme, die in polynomieller Zeit entschieden werden konnen. Wir treffen die fol-gende Vereinbarung: Immer wenn wirP mit NP oder anderen Klassen, die nurfur Entscheidungsprobleme definiert sind, vergleichen, schranken wirP auf dieKlasse der Entscheidungsprobleme, die in polynomieller Zeit entschieden werdenkonnen, ein.

Da eine deterministische TM auch als eine nichtdeterministische TM aufge-fasst werden kann, die vom Nichtdeterminismus keinen Gebrauch macht, gilt (ein-geschrankt auf Entscheidungsprobleme) offensichtlich

P ⊆ NP.

Die KlasseNP scheint wesentlich machtiger als die KlasseP zu sein, da die NTMdie

”magische“Fahigkeit hat, den richtigen Rechenweg aus einer Vielzahl vonRe-

chenwegen zu raten. Satz 3.14 beschreibt die KlasseNP in Form eines Polyno-mialzeitalgorithmus, der ein Zertifikat umsonst geschenktbekommt und nur nochdie

”JA-Antworten“ verifizieren muss. Naturlich konnen wir alle moglichen Zerti-

fikate ausprobieren, um den Nichtdeterminismus zu simulieren. Dieses naive Vor-gehen zeigt zunachst einmal, dass die Probleme inNP zumindest rekursiv sind.Allerdings liefert dieser Ansatz nur eine exponentielle Laufzeitschranke.

Satz 3.20Fur jedes EntscheidungsproblemL ∈ NP gibt es einen AlgorithmusA, derL entscheidet, und dessen worst case Laufzeit durch2q(n) nach oben be-schrankt ist, wobeiq ein geeignetes Polynom ist.

100

Page 104: Skript zur Vorlesung

Beweis:Der VerifiziererV und das Polynomp seien definiert wie in Satz 3.14. Umdie Eingabex ∈ {0, 1}n zu entscheiden, generiert AlgorithmusA nacheinanderalle moglichen Zertifikatey ∈ {0, 1}p(n) und startet den VerifiziererV mit derEingabey#x. FallsV eines der generierten Zertifikate akzeptiert, so akzeptiertauchA. FallsV keines der Zertifikate akzeptiert, so verwirftA.

Die Korrektheit vonA folgt direkt aus Satz 3.14. Wir analysieren nun dieLaufzeit vonA. Seip′ eine polynomielle Laufzeitschranke fur den VerifiziererV .Wir definieren das Polynomq(n) = p(n) + p′(p(n) + 1 + n). Die Laufzeit vonAlgorithmusA ist nach oben beschrankt durch

2p(n) · p′(p(n) + 1 + n) ≤ 2p(n) · 2p′(p(n)+1+n) = 2q(n) .

Mit der Charakterisierung aus Satz 3.14 im Hinterkopf konnen wir die Fra-ge P = NP? auch folgendermaßen interpretieren: Ist das Herleiten eines Be-weises (Zertifikates) wesentlich schwieriger als das Nachvollziehen eines gege-benen Beweises? - Moglicherweise hat das Herleiten exponentielle Komplexitatwahrend das Nachvollziehen in polynomieller Zeit moglich ist. Die Meisten, diesich mit dieser Fragestellung auseinander gesetzt haben, glauben wohl daran, dasses tatsachlich schwieriger ist einen Beweis herzuleiten als ihn nurnachzuvollzie-hen, was zu der HypotheseP 6= NP fuhrt. Solange keiner das Gegenteil beweist,arbeiten wir mit dieser Hypothese. Die Bedeutung dieser Hypothese fur die Al-gorithmik konnen wir an dieser Stelle aber noch nicht wirklich ermessen. Dazubenotigen wir noch mehr Hintergrundwissen, welches wir uns im Folgenden an-eignen werden.

3.4 NP-Vollstandigkeit

Die KlasseNP enthalt viele Probleme, fur die es trotz intensivster Bemuhungenbis heute nicht gelungen ist, einen Polynomialzeitalgorithmus zu entwickeln. Ins-besondere in der Optimierung treten immer wieder scheinbarharmlose Proble-me mit Anwendungen zum Beispiel aus den Bereichen Produktion,Logistik undOkonomie auf, die auch tatsachlich einfach zu losen waren, hatten wir einen Rech-ner, der mit so etwas wie

”Intuition“ ausgestattet ware, um den richtigen Rechen-

weg aus einer Vielzahl von Rechenwegen zu”erraten“. Leider gibt es aber der-

artige Rechner nur in theoretischen Modellen, wie etwa dem Modell der nichtdeterministischen Turingmaschine. Derartig verschrobene theoretische Modelle

101

Page 105: Skript zur Vorlesung

konnen uns bei der praktischen Arbeit aber wohl kaum behilflich sein, oder viel-leicht doch?

TSP ist ein Beispiel fur eines derjenigen Probleme, die auf den ersten Blickrecht harmlos erscheinen,uber die sich aber schon viele Algorithmenentwicklervergeblich den Kopf zerbrochen haben. Wie ist das moglich, wo wir doch effizi-ente Algorithmen fur scheinbar sehrahnliche Problemstellungen wie etwa demKurzeste-Wege-Problem oder dem Minimalen-Spannbaum-Problem kennen? –Wenn uns jemand den Auftrag erteilen wurde, einen effizienten Algorithmus furTSP zu entwerfen, wurde er womoglich damit rechnen, dass wir ihm nach einerWoche die fertige Implementierung vorlegen. Stattdessen kommen wir voraus-sichtlich mit der enttauschenden Nachricht zuruck, dass wir die Aufgabe nichterfullen konnten. Hoffentlich haben wir keinen Vertrag unterschrieben, der hoheKonventionalstrafen fur den Fall unseres Versagens vorsieht. Allemal sehen wirschlecht gegenuber unserem Mitbewerber aus, der die Implementierung fur dasKurzeste-Wege-Problem in Null-Komma-Nichts vorgelegt hat. Das einzige wasuns jetzt noch retten kann, ist eine wirklich stichhaltige Begrundung, warum dieBerechnung einer kurzesten Rundreise tatsachlich wesentlich schwieriger ist alsetwa die Berechnung kurzester Wege.

Die NP-Vollstandigkeitstheorie liefert eine derartige Begrundung. Sie erlaubtes uns Probleme bezuglich ihrer Schwierigkeit miteinander zu vergleichen. Wirwerden zeigen, dass beispielsweise TSP zu den schwierigsten Problemen inNPgehort. Unter der HypotheseP 6= NP hat TSP deshalb beweisbar keinen Polyno-mialzeitalgorithmus. Wir werden sehen, dass TSP keine Ausnahme ist, sonderndiese Eigenschaft mit zahlreichen anderen Problemen ausNP teilt, den sogenann-ten

”NP-vollstandigen“ Problemen.

Wir beginnen nun mit den grundlegenden Definitionen zu dieser Theorie.

3.4.1 Polynomielle Reduktionen

Wir vergleichen die Schwierigkeit von Entscheidungsproblemen mittels polyno-mieller Reduktion.

Definition 3.21 (Polynomielle Reduktion)L1 undL2 seien zwei SprachenuberΣ1 bzw.Σ2. L1 ist polynomiell reduzierbaraufL2, wenn es eine Reduktion vonL1

nachL2 gibt, die in polynomieller Zeit berechenbar ist. Wir schreibenL1 ≤p L2.

Zur Erinnerung: Eine ReduktionL1 ≤ L2 ist definiert durch eine berechen-bare Funktionf : Σ∗

1 → Σ∗2 mit der Eigenschaft, dass fur alle x ∈ Σ∗

1 gilt

102

Page 106: Skript zur Vorlesung

x ∈ L1 ⇔ f(x) ∈ L2. Bei der PolynomialzeitreduktionL1 ≤p L2 verlangenwir also lediglich zusatzlich, dassf in polynomieller Zeit berechnet werden kann.

Falls es fur das ProblemL2 einen PolynomialzeitalgorithmusA gibt und fer-ner eine Funktionf existiert, mit der das ProblemL1 polynomiell aufL2 reduziertwerden kann, so konnen wir aus diesen Komponenten auch einen AlgorithmusBfur L1 konstruieren:B berechnet aus der Eingabex fur L1 die Eingabef(x) furL2, startetA auff(x) undubernimmt das Akzeptanzverhalten vonA. Wir behaup-ten, dass auchB ein Polynomialzeitalgorithmus ist. Diese Behauptung impliziertdas folgende Lemma.

Lemma 3.22 L1 ≤p L2, L2 ∈ P ⇒ L1 ∈ P .

Beweis:Die Korrektheit des oben beschriebenen AlgorithmusB folgt direkt ausder Eigenschaftx ∈ L1 ⇔ f(x) ∈ L2. Wir mussen nur noch die polynomielleLaufzeit von AlgorithmusB nachweisen.

Sei p ein Polynom, dass die Laufzeit fur die Berechnung vonf beschrankt.Beachte, es gilt|f(x)| ≤ p(|x|) + |x|, da das Schreiben jedes Ausgabebits, dasnicht blind aus der Eingabeubernommen wird, mindestens eine Zeiteinheit kostet.Die Laufzeit vonA ist durch ein Polynom in der Lange vonf(x) beschrankt.Dieses Polynom bezeichnen wir mitq. O.B.d.A. seien alle Koeffizienten vonp undq nicht negativ. Wir erhalten somit die folgende Laufzeitschranke fur AlgorithmusB:

p(|x|) + q(|f(x)|) ≤ p(|x|) + q(p(|x|) + |x|) .

Die Laufzeit vonB ist also polynomiell in die Eingabelange beschrankt. �

Intuitiv bedeutetL1 ≤p L2, dassL1 ”nicht schwieriger als“L2 ist – modulo

einer polynomiellen Eingabetransformation.

3.4.2 Beispiel einer polynomiellen Reduktion

Die eigentliche Starke des Reduktionsprinzips ist es, dass man Probleme unter-schiedlichster Art aufeinander reduzieren kann. Wir prasentieren ein Beispiel indem ein Graphproblem auf ein Problem der Aussagenlogik reduziert wird.

Problem 3.23 (Knotenfarbung (COLORING))

Eingabe:GraphG = (V,E), Zahlk ∈ {1, . . . , |V |}

103

Page 107: Skript zur Vorlesung

Frage:Gibt es eine Farbung c : V → {1, . . . , k} der Knoten vonG mit kFarben, so dass benachbarte Knoten verschiedene Farben haben, d.h.∀{u, v} ∈E : c(u) 6= c(v)?

Problem 3.24 (Erfullbarkeitsproblem (Satisfiability – SAT))

Eingabe:Aussagenlogische Formelφ in KNF

Frage:Gibt es eine erfullende Belegung fur φ?

Eine aussagenlogische Formel inkonjunktiver Normalform (KNF)besteht aus∧-verknupften Klauseln, die wiederum aus∨-verknupften Literalen bestehen. EinLiteral entspricht dabei einer Variablenxi oder ihrer Negierungxi. Wir geben einBeispiel fur eine derartige Formel mit vier Klauseln.

x1 ∧ (x1 ∨ x2 ∨ x3) ∧ (x1 ∨ x2 ∨ x3 ∨ x4) ∧ (x2 ∨ x3 ∨ x4)

EineBelegungweist jeder Variablen einen Wert zu, entweder 1 fur wahroder 0 furfalsch. Ein unnegiertes Literal ist erfullt, wenn die zugehorige Variable den Wert1 hat, und einnegiertes Literal ist erfullt, wenn die zugehorige Variable den Wert0 hat. EineKlausel ist erfullt, wenn sie mindestens ein erfulltes Literal enthalt.Die Formel ist erfullt, wenn alle ihre Klauseln erfullt sind. Gefragt ist nach derExistenz einer Belegung, die die Formel erfullt, einer sogenanntenerfullendenBelegung. Beispielsweise istx1 = 1, x2 = 0, x3 = 1, x4 = 0 eine erfullendeBelegung fur die obige Formel.

Satz 3.25COLORING≤p SAT.

Beweis:Wir beschreiben eine polynomiell berechenbare Funktionf , die eine Ein-gabe(G, k) fur das COLORING-Problem auf eine Formelφ fur das SAT-Problemabbildet. Diese Abbildung soll die Eigenschaft

G hat einek-Farbung⇔ φ ist erfullbar

haben. Wir definieren die Abbildung folgendermaßen: Die Formelφ hat fur jedeKnoten-Farb-Kombination(v, i) mit v ∈ V und i ∈ {1, . . . , k} eine Variablexi

v.Die Formel fur (G, k) lautet

φ =∧

v∈V

(x1v ∨ x2

v ∨ . . . ∨ xkv)

︸ ︷︷ ︸

Knotenbedingung

∧∧

{u,v}∈E

i∈{1,...,k}

(xiu ∨ xi

v)︸ ︷︷ ︸

Kantenbedingung

.

104

Page 108: Skript zur Vorlesung

Die∧

-Quantoren sind dabei nur Akkurzungen, die wir im Beweis verwenden umeine kompakte Darstellung der Formel zu haben. Der erste Quantor

v∈V stehtbeispielsweise dafur, dass die Formelφ die Knotenbedingung fur jeden Knotenenthalt. Die Anzahl der Literale in der Formel ist somitO(k · |V | + k · |E|) =O(|V |3). Die Lange der Formel ist deshalb polynomiell in der Große der Eingabedes COLORING-Problems beschrankt und die Formel kann in polynomieller Zeitkonstruiert werden.

Zum Nachweis der Korrektheit mussen wir zum einen zeigen, dass gilt

G hat einek-Farbung⇒ φ ist erfullbar .

Sei c einek-Farbung fur G. Fur jeden Knotenv mit c(v) = i setzen wirxiv = 1

und alle anderen Variablen auf 0. Dadurch ist die Knotenbedingung offensichtlicherfullt. Die Kantenbedingung ist ebenfalls erfullt, denn es gilt: Fur jede Farbeiund jede Kante{u, v} gilt xi

u ∨ xiv, denn sonst hattenu undv beide die Farbei.

Also erfullt diese Belegung die Formelφ.Zum anderen mussen wir zeigen, es gilt

φ ist erfullbar ⇒ G hat einek-Farbung .

Dazu fixiere eine beliebige erfullende Belegung fur φ. Wegen der Knotenbedin-gung gibt es fur jeden Knotenv mindestens eine Farbe mitxi

v = 1. Fur jedenKnoten wahle eine beliebige derartige Farbe aus. Sei{u, v} ∈ E. Wir behauptenc(u) 6= c(v). Zum Widerspruch nehmen wir an,c(u) = c(v) = i. Dann warexiu = xi

v = 1 und die Kantenbedingungxiu ∨ xi

v ware verletzt. �

Die polynomielle Reduktion von COLORING auf SAT impliziert diefolgen-den beidenaquivalenten Aussagen.

Korollar 3.26

a) Wenn SAT einen Polynomialzeitalgorithmus hat, so hat auch COLORINGeinen Polynomialzeitalgorithmus.

b) Wenn COLORING keinen Polynomialzeitalgorithmus hat, so hat auch SATkeinen Polynomialzeitalgorithmus.

In dieser Vorlesung werden wir die polynomielle Reduktion inder Regel imSinne von Aussage b) anwenden, d.h. wir verwenden polynomielle Reduktionenum zu belegen, dass ein ProblemA keinen Polynomialzeitalgorithmus hat, wennein anderes ProblemB ebenfalls keinen Polynomialzeitalgorithmus hat.

105

Page 109: Skript zur Vorlesung

3.4.3 Definitionen vonNP-Harte und NP-Vollstandigkeit

Definition 3.27 (NP-Harte) Ein ProblemL heißtNP-hart, falls gilt

∀L′ ∈ NP : L′ ≤p L .

Satz 3.28L NP-hart,L ∈ P ⇒ P = NP.

Beweis:SeiL′ ein beliebiges Problem ausNP. DaL NP-hart ist, giltL′ ≤p L. AusL ∈ P folgt somit gemaß Lemma 3.22, dassL′ ∈ P gilt. Also ist jedes ProblemausNP auch inP enthalten, so dass giltP = NP. �

Unter der HypotheseP 6= NP gibt es fur NP-harte Probleme deshalb keinenPolynomialzeitalgorithmus.

Definition 3.29 (NP-Vollstandigkeit) Ein ProblemL heißtNP-vollstandig, fallsgilt

1. L ∈ NP und

2. L ist NP-hart.

Intuitiv sindNP-vollstandige Probleme somit die schwierigsten unter den Pro-blemen inNP.

Definition 3.30 NPC bezeichnet die Klasse derNP-vollstandigen Probleme.

Alle Probleme inNPC konnen als gleich schwierig – modulo polynomiellerEingabetransformationen – angesehen werden, da alle Probleme inNPC gegen-seitig aufeinander polynomiell reduziert werden konnen.

3.5 Der Satz von Cook und Levin

Der ersteNP-Vollstandigkeitsbeweis wurde unabhangig von Stephen Cook (1971)und Leonid Levin (in einer Veroffentlichung von 1973) gefuhrt. Cook und Levinzeigten durch eine sogenannteMaster-Reduktion, dass alle Probleme ausNP inpolynomieller Zeit auf das Erfullbarkeitsproblem (SAT, vgl. Abschnitt 3.4.2) re-duziert werden konnen.

Satz 3.31SAT istNP-vollstandig.

106

Page 110: Skript zur Vorlesung

Beweis:Eine aussagenlogische Formelφ kann bezuglich einer gegebenen Bele-gung in polynomieller Zeit ausgewertet werden. Somit konnen wir eine erfullendeBelegung als Zertifikat einsetzen, so dass gilt SAT∈ NP. Der schwierige Teil desBeweises liegt im Nachweis derNP-Harte. Dazu mussen wir in einer Master-Reduktion jedes Problem ausNP polynomiell auf SAT reduzieren.

SeiL ⊆ Σ∗ ein beliebiges Problem ausNP. Fur jedesx ∈ Σ∗ mussen wirin polynomieller Zeit eine Formelφ konstruieren, die die folgende Eigenschafterfullt.

x ∈ L ⇔ φ ∈ SAT

UberL haben wir dabei leider nur wenig Informationen zur Verfugung: Es handeltsich um ein Entscheidungsproblem, fur das es eine NTMM gibt, die das Problemin polynomieller Zeit erkennt. Die Laufzeitschranke vonM werde dabei durch einPolynomp in der Eingabelange beschrieben. Basierend auf diesen Informationenbeschreiben wir nun einen Polynomialzeitalgorithmus, derfur jedesx ∈ Σ∗ eineaussagenlogische Formelφ mit der folgenden Eigenschaft konstruiert.

M akzeptiertx ⇔ φ ist erfullbar

Die Zustandsmenge der NTM bezeichnen wir wieublich mitQ, das Bandalpha-bet mit Γ und die Uberfuhrungsrelation mitδ. Um unsere Argumentation einwenig zu vereinfachen, treffen wir o.B.d.A. die folgenden Vereinbarungen. DieNTM M bewege den Kopf niemals an eine Position links der Startposition (vgl.Ubungsaufgabe??). Die ZustandsmengeQ von M enthalte genau einen akzep-tierenden Zustand, den wir mitqacceptbezeichnen. Wenn dieser Zustand erreichtwird, so terminiertM nicht, sondern verbleibt in einer Endlosschleife im Zustandqaccept.

Seix ∈ Σ∗ eine beliebige Eingabe undn = |x|. SeiK0 = q0x die Startkonfi-guration vonM . Unsere Aufgabe ist die Konstruktion einer Formelφ, die genaudann erfullbar ist, wenn es eine mogliche Konfigurationsfolge

K0 ⊢ K1 ⊢ · · · ⊢ Kp(n)

fur M auf der Eingabex gibt, bei derKp(n) eine Konfiguration im Zustandqaccept

ist. Zu diesem Zweck definieren wir zunachst eine geeignete Menge von boole-schen Variablen, die es uns ermoglicht, einzelne Konfigurationen und Konfigura-tionsubergange in einer aussagenlogischen Formel zu kodieren.

Definition der Variablen: Wir unterscheiden drei Arten von Variablen, die denZustand, die Kopfposition, und die Bandinschrift zu jedem Zeitpunkt innerhalb

107

Page 111: Skript zur Vorlesung

der Laufzeitschranke beschreiben sollen. Beachte, dass dieLaufzeitschranke furM auch eine Schranke fur die maximal erreichbare Kopfposition darstellt, da sichder Kopf nur um eine Position je Schritt bewegen kann. Deshalb mussen wir nurKopfpositionen und Bandinschriften von Index 0 bis Indexp(n) betrachten. ImEinzelnen verwenden wir die folgenden Variablen.

• Q(t, k) fur t ∈ {0, . . . , p(n)} undk ∈ Q

• H(t, j) fur t, j ∈ {0, . . . , p(n)}

• S(t, j, a) fur t, j ∈ {0, . . . , p(n)} unda ∈ Γ

Die BelegungQ(t, k) = 1 soll besagen, dass sich die Rechnung zum Zeitpunkttim Zustandk befindet;H(t, j) = 1 steht dafur, dass sich der Kopf zum Zeitpunkttan Bandpositionj befindet; und die BelegungS(t, j, a) = 1 bedeutet, dass zumZeitpunkt t an Bandpositionj das Zeichena geschrieben steht. Aufgrund derTatsache, dass wir nur an polynomiell vielen Rechenschritten und deshalb auchnur an polynomiell vielen Bandpositionen interessiert sind, benotigen wir auchnur eine polynomiell beschrankte Anzahl an Variablen.

Kodierung einzelner Konfigurationen: Fur jedest ∈ {0, . . . , p(n)} beschrei-ben wir nun eine Formelφt, die nur dann erfullt ist, wenn die Belegung der aufden Zeitpunktt eingeschrankten VariablenmengeQ(t, k), H(t, j), S(t, j, a) einekorrekte Konfiguration beschreibt, d.h.

• es gibt genau einen Zustandk ∈ Q mit Q(t, k) = 1,

• es gibt genau eine Bandpositionj ∈ {0, . . . , p(n)} mit H(t, j) = 1, und

• fur jedesj ∈ {0, . . . , p(n)} gibt es jeweils genau ein Zeichena ∈ Γ mitS(t, j, a) = 1.

Fur eine beliebige Variablenmenge{y1, . . . , ym} besagt das Pradikat

(y1 ∨ . . . ∨ ym) ∧∧

i 6=j

(¬yi ∨ ¬yj) ,

dass genau eine der Variablenyi den Wert 1 annimmt und alle anderen Variablenden Wert 0. Die Lange dieses Pradikates istO(m2), wobei wir mit derLangedieAnzahl der Literale im Pradikat meinen. Auf diese Art kodieren wir die obigenAnforderungen fur den Zeitpunktt. Es ergibt sich eine Teilformel in KNF derLangeO(p(n)2), die wir mitφt bezeichnen.

108

Page 112: Skript zur Vorlesung

Kodierung von Konfigurationsubergangen: Wir betrachten nun nur noch Be-legungen, die die Formelnφ0, . . . , φp(n) erfullen und somit KonfigurationenK0,. . . , Kp(n) beschreiben, die allerdings nicht notwendigerweise einermoglichenKonfigurationsfolge der NTMM entsprechen. Als nachstes konstruieren wir eineFormelφ′

t fur 1 ≤ t ≤ p(n), die nur durch solche Belegungen erfullt wird, beidenenKt eine direkte Nachfolgekonfiguration vonKt−1 ist.

Zunachst beschreiben wir lediglich eine Teilformel, welche festlegt, dass dieBandinschrift vonKt an allen Positionen außer der Kopfposition (zum Zeitpunktt − 1) mit der Inschrift vonKt−1 ubereinstimmt, da sich beim Konfigurations-ubergang die Bandinschrift ja nur an der Kopfposition verandern darf.

p(n)∧

i=0

z∈Γ

((S(t− 1, i, z) ∧ ¬H(t− 1, i)) ⇒ S(t, i, z))

Diese Teilformel erklart sich von selbst, wenn man sie von links nach rechts liest:

”Fur alle Bandpositioneni und alle Zeichenz gelte, falls zum Zeitpunktt − 1

das Band an Positioni das Zeichenz enthalt und die Kopfposition nichti ist, soenthalte das Band auch zum Zeitpunktt an Positioni das Zeichenz.“ Nur derbesseren Lesbarkeit wegen verwenden wir in der Formel die Implikation

”⇒“.

Der Ausdruck”A ⇒ B“ kann durch denaquivalenten Ausdruck

”¬A∨B“ ersetzt

werden. Anschließend wenden wir die De Morganschen Regeln an, die besagen,dass ein Ausdruck der Form

”¬(C ∧D)“ aquivalent zu

”¬C ∨ ¬D“ ist. Dadurch

ergibt sich die folgende KNF-Teilformel

p(n)∧

i=0

z∈Γ

(¬S(t− 1, i, z) ∨H(t− 1, i) ∨ S(t, i, z))

Die Lange dieser Formel istO(p(n)).Die Uberfuhrungsrelationδ beschreibt die Veranderungen, die beim Konfigu-

rationsubergang erlaubt sind. Unter anderem wird durchδ beschrieben, wie sichder Kopf bewegt. Die Kopfbewegung implementieren wir, indem wir eine Zahlκ ∈ {−1, 0, 1} auf die Kopfposition aufaddieren, d.h. wir identifizierenL mit−1, R mit 1 undN mit 0. Die folgende Teilformel beschreibt die Veranderungen,die beimUbergang vonKt−1 nachKt erlaubt sind, falls sich die Rechnung zumZeitpunktt − 1 im Zustandk befindet und der Kopf an Positionj das Zeichena

109

Page 113: Skript zur Vorlesung

liest.

(Q(t− 1, k) ∧H(t− 1, j) ∧ S(t− 1, j, a)) ⇒∨

(k,a,k′,a′,κ)∈δ

(Q(t, k′) ∧H(t, j + κ) ∧ S(t, j, a′))

Diese Teilformel ist ebenfalls selbst erklarend:”Wenn zum Zeitpunktt − 1 die

Rechnung im Zustandk, der Kopf an Positionj ist und an dieser Position das Zei-chena geschrieben steht, so fuhre in Schrittt eine der moglichenδ-Uberfuhrungenbezuglich Zustand, Kopfposition und geschriebenem Zeichen durch.“ Die Langedieser Teilformel hangt nur vom Verzweigungsgrad derUbergangsrelationδ abund ist somitO(1). Fur jede aussagenlogische Formel der LangeO(1) gibt es aucheineaquivalente Formel in KNF der LangeO(1). Wir konnen somit die erlaubtenBandveranderungen an der Kopfposition durch eine KNF-Teilformel konstanterLange beschreiben.

Wir fassen diese Teilformeln zur Teilformelφ′t in KNF zusammen, die einen

korrekten Konfigurationsubergang vonKt−1 nachKt sicherstellt. Diese Teilfor-mel hat die LangeO(p(n)).

Zusammensetzen der Formel. Zu den oben beschriebenen Teilformelnφt undφ′t fugen wir noch weitere einfache Teilformeln hinzu, die festlegen, dass die

Rechnung in der Startkonfigurationq0x startet und sich nachp(n) Schritten imZustandqacceptbefindet. Die so entstehende Formelφ in KNF lautet

Q(0, q0) ∧ H(0, 0) ∧

n∧

i=0

S(0, i, xi) ∧

p(n)∧

i=n+1

S(0, i, B)

p(n)∧

i=0

φi ∧

p(n)∧

i=1

φ′i ∧ Q(p(n), qaccept) .

Diese Formel hat die LangeO(p(n)3). Aus unserer Beschreibung ergibt sich, dassdie Formel in polynomiell beschrankter Zeit konstruiert werden kann.

Wir haben die Formelφ derart konstruiert, dass jede akzeptierende Konfigu-rationsfolge vonM genau einer erfullenden Belegung vonφ entspricht. Somit istφ genau dann erfullbar, wenn eine akzeptierende Konfigurationsfolge vonM aufx existiert, also im Fallex ∈ L. Wir haben bereits argumentiert, dassφ in po-lynomieller Zeit ausx konstruiert werden kann. Damit ist die Master-Reduktionabgeschlossen. �

110

Page 114: Skript zur Vorlesung

3.6 NP-Vollstandigkeit von 3SAT und CLIQUE

Nachdem Cook sein Ergebnisuber dieNP-Vollstandigkeit von SAT vorgestellthatte, war die Bedeutung dieses Ergebnisses fur die Algorithmik noch weitge-hend unklar. Ein Jahr spater, also 1972, hat Richard Karp demonstriert, dass mandie NP-Harte von SAT dazu verwenden kann, um auch fur andere Probleme re-lativ leicht nachzuweisen, dass sieNP-hart sind. Karps Ansatz ist bis heute diewichtigste Methode geblieben um zu zeigen, dass ein Problem– zumindest un-ter der HypotheseP 6= NP – keinen Polynomialzeitalgorithmus zulasst. In seinerbahnbrechenden Arbeit hat Karp die Anwendbarkeit dieser Methode an 21 funda-mentalen Problemen aus verschiedensten Bereichen demonstriert, von denen wirhier auch einige prasentieren werden. Inzwischen gibt es hunderte (wahrscheinlichauch tausende) von Problemen, derenNP-Vollstandigkeit nach demselben Musternachgewiesen wurde. Eine Standardreferenz fur die wichtigstenNP-vollstandigenProbleme ist bis heute das BuchComputers and Intractability: A Guide to theTheory of NP-Completenessvon Garey und Johnson aus dem Jahre 1979. Mituber 3300 inCiteseergelisteten Zitationen ist dieses Buch tatsachlich das meistzitierte Dokument der Informatik.

Die von Karp gefuhrtenNP-Vollstandigkeitsbeweise verwenden das folgen-de Prinzip. Um zu zeigen, dass ein EntscheidungsproblemL NP-vollstandig ist,muss zum einen gezeigt werden, dassL ∈ NP ist und zum anderen, dassL NP-hart ist, also dass gilt∀L′ ∈ NP : L′ ≤p L. Die Zugehorigkeit zuNP kanndabei meist leicht durch Angabe eines geeigneten Zertifikates nachgewiesen wer-den. Die Schwierigkeit liegt in der Regel darin dieNP-Harte zu beweisen. Dazumussen wir jedoch nicht jedesmal eine neue Master-Reduktion fuhren, sondern esgenugt ein bekanntesNP-hartes ProblemL∗ (wie etwa SAT) aufL zu reduzieren.

Lemma 3.32 L∗ NP-hart,L∗ ≤p L ⇒ L NP-hart.

Beweis:Gemaß Voraussetzung gilt∀L′ ∈ NP : L′ ≤p L∗ undL∗ ≤p L. Aufgrund

der Transitivitat der polynomiellen Reduktion folgt somit∀L′ ∈ NP : L′ ≤p L.�

SAT wird uns also als Ausgangspunkt fur weitere Hartebeweise dienen. UmSAT auf andere Probleme reduzieren zu konnen, ist es hilfreich, wenn wir an-nehmen konnen, dass aussagenlogische Formeln in einer moglichst strukturiertenForm vorliegen. Bei einer Formel in 3KNF enthalten alle Klauseln genau drei Li-terale. Wenn wir SAT auf aussagenlogische Formeln dieser Form beschranken,nennen wir das Problem 3SAT.

111

Page 115: Skript zur Vorlesung

Problem 3.33 (3SAT)

Eingabe:Aussagenlogische Formelφ in 3KNF

Frage:Gibt es eine erfullende Belegung fur φ?

3SAT ist ein Spezialfall von SAT und deshalb wie SAT inNP. Um zu zeigen,dass 3SAT ebenfallsNP-vollstandig ist, mussen wir also

”nur“ noch dieNP-Harte

von 3SAT nachweisen. Wir zeigen

Lemma 3.34 SAT≤p 3SAT.

Beweis:Gegeben sei eine Formelφ in KNF. Wir mussen beschreiben, wieφ inpolynomieller Zeit in eineerfullbarkeitsaquivalenteFormelφ′ in 3KNF uberfuhrtwerden kann, d.h.

φ ist erfullbar ⇔ φ′ ist erfullbar .

Diejenigen Klauseln ausφ, in denen weniger als drei Literale vorkommen, konnenwir einfach in logischaquivalente Klauseln mit drei Literalen umformen, indemwir eines der Literale in der Klausel wiederholen. Sei nun

C := ℓ1 ∨ ℓ2 ∨ . . . ∨ ℓk−1 ∨ ℓk

eine Klausel ausφ mit k > 3 Variablen, wobeiℓi jeweils fur ein negiertes oderunnegiertes Literal steht. In einerKlauseltransformationersetzen wirC durch dieTeilformel

(ℓ1 ∨ ℓ2 ∨ . . . ∨ ℓk−2 ∨ h)︸ ︷︷ ︸

=: C′

∧ (h ∨ ℓk−1 ∨ ℓk)︸ ︷︷ ︸

=: C′′

,

wobeih eine zusatzlich eingefuhrte Hilfvariable bezeichnet. Aus der KlauselCder Langek > 3 haben wir somit eine KlauselC ′ der Langek− 1 und eine Klau-selC ′′ der Lange drei erzeugt. Diese Art der Klauseltransformation wenden wirsolange aufφ an, bis eine Formelφ′ in 3KNF vorliegt, wobei wir in jeder Klau-seltransformation eine neue Hilfsvariable erzeugen. Um die Korrektheit unsererKonstruktion nachzuweisen, mussen wir zeigen, dass jede einzelne Klauseltrans-formation die Erfullbarkeitsaquivalenz bewahrt.

• SeiB eine erfullende Belegung fur eine Formel, die die KlauselC enthalt.Wir mussen zeigen, dass die Formel auch dann noch erfullbar ist, wenn wirC durchC ′ ∧ C ′′ ersetzen. AusB erhalten wir eine erfullende Belegungfur die neue Formel, wenn wir wie folgt eine geeignete Belegungfur h hin-zufugen.B erfullt mindestens eines der Literale ausC. Falls dieses Literal

112

Page 116: Skript zur Vorlesung

in der KlauselC ′ enthalten ist, so istC ′ erfullt, und wir setzenh = 0, sodass auchC ′′ erfullt ist. Falls dieses Literal in der KlauselC ′′ enthalten ist,so istC ′′ erfullt, und wir setzenh = 1, so dass auchC ′ erfullt ist.

• Sei nunB′ eine erfullende Belegung fur die Formel, die wir erhalten, wennwir C durchC ′ ∧ C ′′ ersetzen. Wir zeigenB′ erfullt auch die Ausgangs-formel, dennB′ erfullt C: Fallsh = 0 gilt, so mussB′ eines der Literaleℓ1, . . . , ℓk−2 ausC ′ erfullen. Falls hingegenh = 1 gilt, so mussB′ eines derLiteraleℓk−1 oderℓk ausC ′′ erfullen. In beiden Fallen, erfullt die BelegungB′ die KlauselC und somit die Ausgangsformel.

Jede einzelne Klauseltransformation kann in Zeit polynomiell in der Klausellangedurchgefuhrt werden. Fur jede Klausel der Langek in der Formelφ benotigenwir k − 2 Transformationen um schließlich nur noch Klauseln der Lange 3 zuhaben. Die Gesamtanzahl der benotigten Klauseltransformationen ist also durchdie Anzahl der inφ vorkommenden Literale nach oben beschrankt. Die Reduktionkann deshalb in polynomieller Zeit berechnet werden. �

Durch Anwendung von Lemma 3.32 ergibt sich somit das folgende Ergebnis.

Satz 3.353SAT istNP-vollstandig. �

Die Reduktion von SAT auf 3SAT ist nicht besonders spektakular, da die bei-den Probleme offensichtlich miteinander verwandt sind. Die eigentliche Starkeder Reduktionstechnik liegt darin, dass sie Probleme aus unterschiedlichsten Be-reichen zueinander in Beziehung setzen kann. Im Folgenden veranschaulichen wirdies indem wir 3SAT nun auf verschiedene Graph- und Zahlprobleme reduzierenund damit dieNP-Vollstandigkeit dieser Probleme nachweisen.

Da wir schon wissen, dass das Cliquenproblem inNP ist, mussen wir zumNachweis derNP-Vollstandigkeit nur noch dieNP-Harte nachweisen. Dazu fuhrenwir eine Polynomialzeitreduktion von 3SAT auf CLIQUE durch.

Satz 3.36CLIQUE istNP-vollstandig.

Beweis:Gegeben sei eine KNF-Formelφ. Wir beschreiben eine Transformationvon φ in einen GraphenG = (V,E) und eine Zahlk ∈ N mit der folgendenEigenschaft.

φ ist erfullbar ⇔ G hat einek-Clique

113

Page 117: Skript zur Vorlesung

SeienC1, . . . , Cm die Klauseln vonφ undℓi,1, ℓi,2, . . . , ℓi,3 die Literale in KlauselCi. Wir identifizieren die Knoten des Graphen mit den Literalender Formel, d.h.wir setzen

V = {ℓi,j | 1 ≤ i ≤ m, 1 ≤ j ≤ 3} .

Die KantenmengeE definieren wir wie folgt. Ein Knotenpaar wird durch eineKante verbunden, es sei denn

1) die mit den Knoten assoziierten Literale gehoren zur selben Klausel oder

2) eines der beiden Literale ist die Negierung des anderen Literals.

Den Parameterk des Cliquenproblems setzen wir gleichm, also gleich der An-zahl der Klauseln inφ. Diese einfache Eingabetransformation kann offensichtlichin polynomieller Zeit berechnet werden. Wir mussen noch nachweisen, dass derGraphG genau dann einek-Clique hat, wenn die Formelφ erfullbar ist.

• Zunachst nehmen wir anφ hat eine erfullende Belegung. Diese Belegungerfullt in jeder Klausel mindestens ein Literal. Pro Klausel wahlen wir ei-nes dieser erfullten Literale beliebig aus. Wir behaupten, die zugehorigenk = m Knoten bilden eine Clique inG. Begrundung:Alle selektierten Lite-rale gehoren zu verschiedenen Klauseln. Es kann also keine Kante aufgrundvon Ausnahmeregel 1 fehlen. Alle selektierten Literale werden gleichzei-tig erfullt. Somit kann kein Paar von sich widersprechenden Literalen dabeisein. Ausnahmeregel 2 findet also ebenfalls keine Anwendung. Also sind al-le selektierten Knoten miteinander verbunden, undG enthalt einek-Clique.

• Jetzt nehmen wir anG enthalt einek-Clique. Aufgrund von Ausnahme-regel 1 mussen die Knoten in dieser Clique zu verschiedenen Klauselngehoren. Ausk = m folgt somit, dass diek-Clique genau ein Literal proKlausel selektiert. Diese Literale konnen alle gleichzeitig erfullt werden, dasie sich wegen Ausnahmeregel 2 nicht widersprechen. Also ist φ erfullbar.

3.7 NP-Vollstandigkeit des Hamiltonkreisproblems

Ein Hamiltonkreisist ein Kreis in einem Graphen, der jeden Knoten genau einmalbesucht. Wenn man einen Startknoten und eine Richtung festlegt entlang derer

114

Page 118: Skript zur Vorlesung

man dem Kreis folgt, erhalt man die Spezifizierung einerRundreisein Form einerPermutation der Knoten des Graphen.

Problem 3.37 (Hamiltonkreis (Hamiltonian Circuit – HC))

Eingabe:GraphG = (V,E)

Frage:Gibt es einen Hamiltonkreis inG?

Spricht man von einemgerichteten Hamiltonkreisso meint man eigentlicheinenHamiltonkreis in einem gerichteten Graphen, also einen Kreis im gerichte-ten Graphen, der alle Knoten genau einmal besucht.

Problem 3.38 (Gerichteter Hamiltonkreis (Directed HC – DHC))

Eingabe:gerichteter GraphG = (V,E)

Frage:Gibt es einen Hamiltonkreis inG?

Diese beiden Probleme sind aufeinander polynomialzeit-reduzierbar. Die eineRichtung ist dabei trivial. Wenn ein ungerichteter GraphG vorliegt, so konnen wirihn in einen gerichteten GraphenG′ transformieren, indem wir jede ungerichteteKante durch zwei entgegengesetzte gerichtete Kanten ersetzen.G hat offensicht-lich genau dann einen Hamiltonkreis, wenn auchG′ einen Hamiltonkreis hat.

Die Umkehrrichtung ist interessanter. Gegeben sei nun ein gerichteter GraphG = (V,E). Wir konstruieren einen ungerichteten GraphenG′ = (V ′, E ′), dergenau dann einen Hamiltonkreis hat, wenn auchG einen Hamiltonkreis hat. Dazuersetzen wir jeden Knotenv ∈ V mit seinen Eingangs- und Ausgangskanten durcheinen Pfad von drei Knotenvin−v−vout, wobei wir die Eingangskanten des Knotenmit vin und die Ausgangskanten mitvout verbinden und die Richtung der Kantenansonsten ignorieren. Diese lokale Ersetzung wird in Abbildung 3.2 illustriert.Wir fassen den Knotenv alsZimmermit zwei Turen auf. Die Knotenvin undvout

bezeichnen wir alsEingangs-bzw.Ausgangstur zum Zimmerv.Eine Rundreise inG′ betritt ein Zimmerv moglicherweise durch seine Aus-

gangstur vout. Dann muss diese Rundreise das Zimmer jedoch durch seine Ein-gangstur vin wieder verlassen, weil sonstvout zweimal besucht wurde. Davin je-doch nur mit Ausgangsturen anderer Zimmer verbunden ist, muss das nachste vonder Rundreise besuchte Zimmer ebenfalls durch die Ausgangstur betreten und dieEingangstur verlassen werden. Per Induktion lasst sich dieses Argument auf alleZimmer verallgemeinern. Wenn wir eine derartige Rundreise nun in entgegenge-setzter Richtung durchlaufen, so erhalten wir eine Rundreise, bei der alle Zimmer

115

Page 119: Skript zur Vorlesung

... ... ... ...

G’

v voutvin

G

v

Abbildung 3.2: Lokale Ersetzung bei der Reduktion von DHC aufHC

durch Eingangsturen betreten und Ausgangsturen verlassen werden. WennG′ alsoeinen Hamiltonkreis hat, so gibt es auch immer eine Richtung in der dieser Kreisdurchlaufen werden kann, so dass eine Rundreise entsteht, bei der alle Turen imSinne ihrer Bezeichnung verwendet werden. Eine derartige Rundreise im unge-richteten GraphenG′ gibt es nun offensichtlich genau dann, wenn der gerichteteGraphG einen Hamiltonkreis hat. Somit wurde das folgende Lemma bewiesen.

Lemma 3.39 HC ≤p DHC und DHC≤p HC. �

Wir zeigen nun, dass diese beiden Probleme keinen Polynomialzeitalgorith-mus haben, es sei dennP = NP.

Satz 3.40HC und DHC sindNP-vollstandig.

Beweis:Beide Probleme sind offensichtlich inNP, da man die Kodierung einesHamiltonkreises in polynomieller Zeit auf ihre Korrektheit uberprufen kann. DaHC und DHC beidseitig aufeinander polynomiell reduzierbarsind, genugt es dieNP-Harte eines der beiden Probleme nachzuweisen. Wir zeigen dieNP-Harte vonDHC, durch eine polynomielle Reduktion von SAT. Dazu beschreiben wir einepolynomiell berechenbare Funktion, die eine KNF-Formelφ in einen gerichtetenGraphenG = (V,E) transformiert, der genau dann einen Hamiltonkreis hat, wennφ erfullbar ist.

Seienx1, . . . , xN die Variablen der Formel undc1, . . . , cM die Klauseln. Furjede Variablexi enthalt der GraphG eine StrukturGi, wie sie in Abbildung 3.3dargestellt ist. Diese Struktur nennen wirDiamantengadget1. DieseN Gadgetswerden miteinander verbunden, indem wir die Knotenti undsi+1 (1 ≤ i ≤ N−1)sowietN unds1 miteinander identifizieren. In dem so entstehenden Graphenbe-sucht jede Rundreise, die beim Knotens1 startet, die Gadgets in der Reihenfolge

1Gadget(engl.) bedeutetApparatur, Dingsbums(sl.), Gerat, oder Vorrichtung und wird imZusammenhang von Reduktionen auf Graphprobleme im Sinne von Graphstruktur, die eine Entitatdes Ausgangsproblems reprasentiert, verwendet.

116

Page 120: Skript zur Vorlesung

...

...

s

l r

t

i

i

i i

Abbildung 3.3: DiamantengadgetGi fur Variablexi

G1, G2, . . . , GN . Die Rundreise hat dabei fur jedes GadgetGi die Freiheit dasGadgetvon links nach rechts, also vonli nachri, odervon rechts nach links, alsovon ri nachli, zu durchlaufen. Die erste Variante interpretieren wir alsVariablen-belegungxi = 1, die zweite als Variablenbelegungxi = 0.

Wir konnen somit Belegungen der Variablenx1, . . . , xN reprasentieren, aberdie Zusammensetzung der Formelφ ist bisher bei der Konstruktion des Graphenunberucksichtigt geblieben. Jetzt fugen wir einen weiteren Knoten fur jede Klau-sel cj ein. DiesenKlauselknotenbezeichnen wir wie die Klausel selbst mitcj.Falls die Variablexi negiert oder unnegiert als Literal in Klauselcj enthalten ist,so fugen wir Kanten hinzu, die das GadgetGi auf geeignete Art und Weise mitdem Klauselknotencj verbinden. Das GadgetGi enthalte zu diesem Zweck in derdoppelt verketteten Liste zwischenli undri ein benachbartes Knotenpaar fur jedeKlauselcj in der die Variablexi enthalten ist. Den linken Knoten in diesem Paarbezeichnen wir mitaij, den rechten mitbij. Die Knotenpaare fur verschiedeneKlauseln sind jeweils durch einen Zwischenknoten (hier grau markiert) getrennt.Auch die beiden Paare, die in der Kette am weitesten links undrechts stehen, tren-nen wir durch einen Zwischenknoten vonli bzw. ri. Ist die Variablexi unnegiertin cj enthalten, so fugen wir die Kanten(aij, cj) und(cj, bij) hinzu, wie in Abbil-dung 3.4 beschrieben. Ist die Variablexi hingegen negiert incj enthalten, so fugenwir die Kanten(bij, cj) und(cj, aij) hinzu, wie in Abbildung 3.5 beschrieben. Da-mit ist die Beschreibung des GraphenG abgeschlossen.G kann offensichtlich in

117

Page 121: Skript zur Vorlesung

l ri i

jc

bijaij

...

... ......

Abbildung 3.4: Einbindung von Klauselknotencj in das GadgetGi fur den Fall,dass die Klauselcj das Literalxi enthalt. Bei den grauen Knoten handelt es sichum die Zwischenknoten, die zwischen den Knotenpaaren fur verschiedene Klau-seln eingefugt werden.

polynomieller Zeit ausφ konstruiert werden.Durch die Hinzunahme der Knotencj ist leider nicht mehr sofort klar, dass die

Rundreise die Gadgets tatsachlich nacheinander besucht. Ist es vielleicht moglich,dass die Tour aus dem GadgetGi zum Knotencj geht und dann von dort zu einemanderen GadgetGi′ mit i′ 6= i wechselt? – Wir behaupten, dass dieses nicht passie-ren kann. Zum Widerspruch nehmen wir an, die Rundreise wechselt wahrend desBesuchs von GadgetGi zu cj und kehrt dann nicht direkt zum GadgetGi zuruck.O.B.d.A. istxi in unnegierter Form in der Klauselcj enthalten, wie in Abbil-dung 3.4 beschrieben. Den Zwischenknoten links vonaij bezeichnen wir mituund den Zwischenknoten rechts vonbij mit v. Wir unterscheiden zwei Falle: Imersten Fall wird der Knotencj uber einen Weg. . . u, aij , cj, w . . . besucht, wobeiw zu einem anderem Gadget gehort. Dann muss die Tour den Knotenbij uber denKnotenu besuchen. An dieser Stelle steckt die Tour jedoch fest, dennnun hatbijkeinen Nachbarn mehr, der noch nicht besucht wurde. Im zweiten Fall wird derKnotencj uber den Weg. . . v, bij , aij, cj , w . . . besucht. In diesem Fall gibt es ausgleichen Grunden keine Moglichkeit den Knotenu zu durchlaufen. Also werdendie Gadgets tatsachlich in der ReihenfolgeG1, G2, . . . , GN abgearbeitet. Somitkonnen wir an unserer Interpretation fur die Belegung der Variablen – entspre-chend der Richtung in der die Gadgets durchlaufen werden – festhalten.

118

Page 122: Skript zur Vorlesung

l ri i

jc

bijaij

...

... ......

Abbildung 3.5: Einbindung von Klauselknotencj in das GadgetGi fur den Fall,dass die Klauselcj das Literalxi enthalt.

Wir mussen zeigen, dassG genau dann einen Hamiltonkreis enthalt, wennφeine erfullenden Belegung hat.

• Eine Rundreise fur G besucht auch alle Klauselknoten. Wird ein Klausel-knotencj aus einem GadgetGi heraus von links nach rechts durchlaufen,so muss gemaß unserer Konstruktion, die Klauselcj das Literalxi enthal-ten. Also wird diese Klausel durch die mit der Laufrichtung von links nachrechts assoziierten Belegungxi = 1 erfullt. Bei einer Laufrichtung vonrechts nach links, die mit der Belegungxi = 0 assoziiert ist, wird die Klau-sel ebenso erfullt, weil sie in diesem Fall das Literalxi enthalt. Also erfulltdie mit der Rundreise assoziierte Belegung alle Klauseln.

• Eine Belegung beschreibt in welcher Richtung die GadgetsG1, . . . , GN je-weils durchlaufen werden. Die Klauselknoten konnen wir in die Rundreiseeinbauen, indem wir fur jeden Klauselknotencj (1 ≤ j ≤ M ) eine Varia-ble xi auswahlen, die die zugehorige Klausel erfullt, und beim Besuch desGadgetsGi einen Umweguber den Klauselknotencj nehmen. Sollte dieKlausel fur xi = 1 erfullt sein, so istxi unnegiert incj enthalten, und so-mit ist ein Besuch voncj beim Durchlaufen des GadgetsGi von links nachrechts moglich. Sollte die Klausel hingegen fur xi = 0 erfullt sein, so ist dieVariable negiert in der Klausel enthalten, und der Besuch voncj kann beimDurchlaufen des Gadgets von rechts nach links erfolgen. Also konnen alle

119

Page 123: Skript zur Vorlesung

Klauselknoten in die Rundreise eingebunden werden.�

HC konnen wir nun auf die Entscheidungsvariante von TSP reduzieren, wobeiwir nur auf zwei verschiedene Distanzwerte zwischen den Orten zuruckgreifenmussen, namlich Distanzen mit Wert 1 oder 2. Diese eingeschrankte TSP-Variantebezeichnen wir mit{1, 2}-TSP. Gegeben sei ein ungerichteter GraphG = (V,E)fur HC. Wir definieren eine symmetrische Distanzmatrix fur TSP, bei der wir furKnotenpaare zwischen denen eine Kante inG vorliegt, die Distanz 1 eintragen,und fur alle anderen Paare die Distanz 2.G enthalt nun einen Hamiltonkreis genaudann, wenn die Eingabe fur {1, 2}-TSP eine Rundreise der Lange|V | enthalt.Durch diese Polynomialzeitreduktion ergibt sich unmittelbar die Harte von{1, 2}-TSP und somit auch die Harte des allgemeinen TSP.

Korollar 3.41 Die Entscheidungsvariante von{1, 2}-TSP istNP-hart. �

3.8 NP-Vollstandigkeit einiger Zahlprobleme

Wir f uhren zunachst zwei elementare arithmetische Probleme ein: SUBSET-SUMund PARTITION. Wir reduzieren 3SAT polynomiell auf SUBSET-SUM und dannSUBSET-SUM auf PARTITION. Aus derNP-Harte von SUBSET-SUM folgtdann fast direkt die Harte des Rucksackproblems und aus derNP-Harte von PAR-TITION ebenso leicht die Harte des Bin-Packing-Problems.

3.8.1 NP-Vollstandigkeit von SUBSET-SUM

Problem 3.42 (SUBSET-SUM)

Eingabe:a1, . . . , aN ∈ N, b ∈ N

Frage:Gibt esK ⊆ {1, . . . , N} mit∑

i∈K ai = b?

Satz 3.43SUBSET-SUM istNP-vollstandig.

Beweis:Da die TeilmengeK als Zertifikat verwendet werden kann, ist SUBSET-SUM offensichtlich inNP enthalten. Um dieNP-Harte des Problems nachzuwei-sen, beschreiben wir eine Polynomialzeitreduktion von 3SAT. Gegeben sei eine

120

Page 124: Skript zur Vorlesung

Formelφ in 3KNF. Diese Formel bestehe ausM Klauselnc1, . . . , cM uberNVariablenx1, . . . , xN . Fur i ∈ {1, . . . , N} sei

S(i) = {j ∈ {1, . . . ,M} | Klauselcj enthalt Literalxi} ,

S ′(i) = {j ∈ {1, . . . ,M} | Klauselcj enthalt Literal xi} .

Aus der Formelφ erzeugen wir eine SUBSET-SUM-Eingabe. Wir beschreiben dieEingabe von SUBSET-SUM in Form von Dezimalzahlen, die ausN +M Ziffernbestehen. Diek-te Ziffer einer Zahla bezeichnen wir dabei mita(k). Fur jedeboolesche Variablexi, i ∈ {1, . . . , N}, enthalt die SUBSET-SUM-Eingabe zweiZahlenai unda′i, deren Ziffern wie folgt definiert sind.

ai(i) = 1 und ∀j ∈ S(i) : ai(N + j) = 1 ,

a′i(i) = 1 und ∀j ∈ S ′(i) : a′i(N + j) = 1 .

Alle anderen Ziffern setzen wir auf den Wert 0. Neben den jeweils zwei Zahlenpro Variable generieren wir zwei weitere Zahlenhj undh′

j pro Klausel, die wiralsFullzahlenbezeichnen. Fur 1 ≤ j ≤ M geltehj = h′

j, wobei nur die Ziffernan PositionN + j den Wert 1 haben, alle anderen Ziffern erhalten den Wert 0.Wir mussen noch den zur SUBSET-SUM-Eingabe gehorenden Summenwertbspezifizieren: Wir setzenb(k) = 1 fur 1 ≤ k ≤ N undb(k) = 3 furN + 1 ≤ k ≤N +M .

Die Reihenfolge bzw. Wertigkeit der einzelnen Ziffern spielt in unserer Kon-struktion keine Rolle. Wichtig ist lediglich, dass es bei derAddition einer be-liebigen Teilmenge der Zahlenai, a′i, hi, h

′i keinen Additionsubertrag von Ziffer

zu Ziffer geben kann. Dies wird dadurch gewahrleistet, dass pro Ziffernpositionhochsten funf dieser Zahlen eine 1 enthalten. Alle anderen Zahlen enthalten andieser Position eine 0. (Es wurde deshalb tatsachlich ausreichen, ein Zahlensy-stem zur Basis 6 statt des Dezimalsystems zu verwenden.) Zur besseren Intuitionkonnen wir uns vorstellen alle Zahlen der SUBSET-SUM-Eingabein einer Tabel-le abzutragen, in der fur jede Ziffernposition eine Spalte vorgesehen ist. Abbil-dung 3.6 zeigt beispielsweise die Tabelle fur die folgende 3KNF-Formel.

(x1 ∨ x2 ∨ x3) ∧ (x2 ∨ x3 ∨ xN) ∧ ...

Die Zahlen in unserer Konstruktionsbeschreibung sind gigantisch groß. Siebestehen ausN + M Ziffern. Ihre Kodierungslange ist dennoch polynomiell inder Eingabelange der Formelφ beschrankt, deren Kodierung ja mindetensN+M

121

Page 125: Skript zur Vorlesung

1 2 3 · · · N N + 1 N + 2 · · · N +M

a1 1 0 0 · · · 0 1 0 · · · · · ·a′1 1 0 0 · · · 0 0 0 · · · · · ·a2 0 1 0 · · · 0 0 1 · · · · · ·a′2 0 1 0 · · · 0 1 0 · · · · · ·a3 0 0 1 · · · 0 1 1 · · · · · ·a′3 0 0 1 · · · 0 0 0 · · · · · ·...

......

......

......

......

...aN 0 0 0 · · · 1 0 0 · · · · · ·a′N 0 0 0 · · · 1 0 1 · · · · · ·h1 0 0 0 · · · 0 1 0 · · · 0h′1 0 0 0 · · · 0 1 0 · · · 0

h2 0 0 0 · · · 0 0 1 · · · 0h′2 0 0 0 · · · 0 0 1 · · · 0...

......

......

......

......

...hM 0 0 0 · · · 0 0 0 · · · 1h′M 0 0 0 · · · 0 0 0 · · · 1

b 1 1 1 · · · 1 3 3 · · · 3

Abbildung 3.6: Illustration zur Reduktion von 3SAT auf SUBSET-SUM

Zeichen benotigt. Insbesondere kann die SUBSET-SUM-Eingabe in polynomi-eller Zeit aus der 3SAT-Eingabe konstruiert werden. Wir mussen zeigen, es gibtgenau dann eine Teilmenge der Zahlenai, a

′i, hi, h

′i mit Summenwertb, falls die

Formelφ eine erfullende Belegung hat.

• Falls es eine erfullende Belegungx∗ gibt, so nehmen wir diejenigen Zahlenai in unsere TeilmengeK auf, fur die giltx∗

i = 1, ansonsten nehmen wira′iauf. SeiA die Summe der ausgewahlten Zahlenai unda′i. Da fur jedesi ∈{1, . . . , N} entwederai odera′i aufgenommen wird, giltA(i) = 1. Da jedeKlausel mindestens ein erfulltes Literal enthalt, gilt zudemA(N + j) ≥ 1fur 1 ≤ j ≤ M . Falls A(N + j) < 3 so konnen wir eine oder beideder Fullzahlenhj undh′

j verwenden um exakt den geforderten Wert3 anZiffernpositionN + j der Summe zu erhalten. Also gibt es eine zulassigeLosung fur SUBSET-SUM.

• Falls es nun eine TeilmengeK der Zahlenai, a′i, hi, h′i mit Summenwert

122

Page 126: Skript zur Vorlesung

b gibt, so enthalt K fur jedesi ∈ {1, . . . , N} entweder die Zahlai oderdie Zahl a′i, denn sonst wurde sich in Ziffernpositioni keine 1 ergeben.Setzex∗

i = 1, falls ai ∈ K, undx∗i = 0, falls a′i ∈ K. Wir zeigen,x∗ ist

eine erfullende Belegung: SeiA die Summe der Zahlenai unda′i, die inKenthalten sind. Es giltA(N + j) ≥ 1 fur 1 ≤ j ≤ M , weil nur so die Zifferan PositionN+j in der SUBSET-SUM-Losung den Wert 3 annehmen kann,da nur zwei Fullzahlen fur diese Position zur Verfugung stehen. Dadurch istsichergestellt, dass jede Klausel mindestens ein Literal mit Wert 1 enthalt,so dassx∗ eine erfullende Belegung ist.

3.8.2 NP-Vollstandigkeit von PARTITION

Problem 3.44 (PARTITION)

Eingabe:a1, . . . , aN ∈ N

Frage:Gibt esK ⊆ {1, . . . , N} mit∑

i∈K ai =∑

i∈{1,...,N}\K ai?

PARTITION ist ein Spezialfall von SUBSET-SUM, da die gestellte Frageaquivalent zur Frage ist, ob es eine TeilmengeK mit Summenwert1

2

∑Ni=1 ai

gibt. Wir zeigen, dass diese Spezialisierung des SUBSET-SUM-Problems nichteinfacher zu losen ist, als das allgemeine SUBSET-SUM-Problem.

Satz 3.45PARTITION istNP-vollstandig.

Beweis:PARTITION ist offensichtlich∈ NP, weil es ein Spezialfall von SUBSET-SUM ist. Um zu zeigen, dass PARTITIONNP-hart ist, zeigen wir SUBSET-SUM≤p PARTITION. Die Eingabe von SUBSET-SUM seia1, . . . , aN ∈ N undb ∈ N.Es seiA =

∑Ni=1 ai. Wir bilden diese Eingabe fur SUBSET-SUM auf eine Ein-

gabe fur PARTITION ab, die aus denN + 2 Zahlena′1, . . . , a′N+2 bestehe. Dazu

setzen wir

• a′i = ai fur 1 ≤ i ≤ N ,

• a′N+1 = 2A− b, und

• a′N+2 = A+ b.

123

Page 127: Skript zur Vorlesung

In der Summe ergeben dieseN + 2 Zahlen den Wert4A. PARTITION fragt alsodanach, ob es eine Aufteilung der Zahlena′1, . . . , a

′N+2 in zwei Teilmengen gibt,

die in der Summe jeweils2A ergeben oderaquivalent, ob es eine Teilmenge derZahlen mit Summenwert2A gibt.

Diese einfache Eingabetransformation ist in polynomieller Zeit berechenbar.Wir mussen zeigen, dass die Eingabe fur SUBSET-SUM genau dann eine Losunghat, wenn auch die Eingabe fur PARTITION eine Losung hat.

• Wenn es eine geeignete Aufteilung der Eingabezahlen fur PARTITION gibt,so konnena′N+1 und a′N+2 dabei nicht in derselben Teilmenge sein, denna′N+1 + a′N+2 = 3A. Deshalb ergibt sich auch eine Losung fur SUBSET-SUM, denn diejenigen Zahlen ausa′1, . . . , a

′N bzw. a1, . . . , aN , die sich

in derselben Teilmenge wiea′N+1 befinden, summieren sich auf zu2A −a′N+1 = b.

• Die Umkehrrichtung gilt ebenfalls, denn wenn es eine Teilmenge der Zahlena1, . . . , aN bzw.a′1, . . . , a

′N mit Summenwertb gibt, so konnen wir die Zahl

a′N+1 zu dieser Teilmenge hinzufugen, und erhalten dadurch eine Teilmengeder Zahlena′1, . . . , a

′N+2, deren Summenwert2A ist.

3.8.3 Konsequenzen fur KP und BPP

Das folgende Korollar zeigt, dass das Rucksackproblem (KP) und das Bin-Packing-Problem (BPP) keinen Polynomialzeitalgorithmus zulassen,es sei dennP = NP.Diese Ergebnisse folgen unmittelbar aus derNP-Vollstandigkeit von SUBSET-SUM und PARTITION.

Korollar 3.46 Die Entscheidungsvarianten von KP und BPP sindNP-vollstandig.

Beweis:Wir reduzieren SUBSET-SUM auf die Entscheidungsvariante von KP.Bei der Entscheidungsvariante von KP sindN Objekte mit Gewichtw1, . . . , wN

und Nutzenwertp1, . . . , pN gegeben. Gefragt ist nach einer Teilmenge der Objektemit Gewicht hochstensB und Nutzenwert mindestensP . Wir setzenwi = pi =ai fur 1 ≤ i ≤ N und B = P = b. Eine Teilmenge der Zahlena1, . . . , aNmit Summenwertb existiert genau dann, wenn es eine Rucksackbepackung mitGewicht hochstensB = b und Profit mindestensP = b gibt.

124

Page 128: Skript zur Vorlesung

Wir reduzieren PARTITION auf die Entscheidungsvariante von BPP. Bei derEntscheidungsvariante von BPP sindN Objekte mit Gewichtw1, . . . , wN gege-ben. Die Frage lautet, ob diese Objekte ink Behalter mit Gewichtsschranke je-weils b passen. Wir setzenwi = ai fur 1 ≤ i ≤ N , k = 2 und b = 1

2

∑Ni=1 ai.

Die Zahlena1, . . . , aN konnen genau dann in zwei gleich große Teilsummen auf-geteilt werden, wenn die Objekte mit den Gewichtena1, . . . , aN in zwei Behaltermit Gewichtsschrankeb = 1

2

∑Ni=1 ai passen.

Beide Reduktion konnen in polynomieller Zeit berechnet werden. �

3.9 Ubersicht uber die Komplexitatslandschaft

Wir fassen zusammen und geben eineUbersichtuber Komplexitatsklassen, diewir kennen gelernt haben. Wir beschranken uns dabei auf Entscheidungsproble-me.P enthalt die Probleme, die wir effizient losen konnen, also in polynomiel-ler Zeit in Rechenmodellen, die den existierenden Computern nahe kommen.NPenthalt diejenigen Probleme, die wir in polynomieller Zeit auf nicht deterministi-schen Maschinen losen konnen. Unter der HypotheseP 6= NP konnen wir nichtalle Probleme ausNP effizient losen, insbesondere die schwierigsten unter denProblemen ausNP, die NP-vollstandigen Probleme, haben keinen Polynomial-zeitalgorithmus. Diese fasst man in der KlasseNPC zusammen.

SeiPSPACE die Klasse derjenigen Probleme, die wir mit einem polynomi-ell beschrankten Band auf einer Turingmaschine losen konnen. Im Gegensatz zurZeitkomplexitat kann man nachweisen (Satz von Savitch), dass diese Klasse sichnicht verandert, wenn wir zwischen deterministischen und nicht-deterministischenTuringmaschinen wechseln. Alternativ kannPSPACE auchuber Registermaschi-nen definiert werden, ohne die Bedeutung der Klasse zu verandern. Im Beweis desSatzes von Cook und Levin haben wir nebenbei beobachtet, dasswir die Proble-me inNP mit polynomiell großem Speicherplatz losen konnen, da sich der Kopfeiner Turingmaschine pro Zeitschritt nur eine Position bewegen kann. Also giltNP ⊆ PSPACE.

Die Klasse der Probleme mit einer Laufzeitschranke2p(n) fur ein Polynomp bezeichnen wir alsEXPTIME. In Korollar 3.20 haben wir gezeigt, dass giltNP ⊆ EXPTIME. In Ubungsaufgabe??haben wir gezeigt, dass es bei einer Spei-cherplatzbeschrankung der Großes(n) nur 2O(s(n)) viele verschiedenen Konfigu-rationen fur eine Turingmaschine gibt, so dass im Falle einer solchen Speicher-platzbeschrankung auch die Rechenzeit durch2O(s(n)) beschrankt ist. Die Proble-

125

Page 129: Skript zur Vorlesung

EXPTIME

PSPACE

NP

NPC

P

Abbildung 3.7:Uberblick uber die Komplexitatslandschaft unter der HypotheseP ( NP ( PSPACE ( EXPTIME.

126

Page 130: Skript zur Vorlesung

me inPSPACE konnen deshalb in Zeit2p(n) gelost werden, so dass tatsachlich giltPSPACE ⊆ EXPTIME. Wir fassen zusammen.

P ⊆ NP ⊆ PSPACE ⊆ EXPTIME

Es ist bekannt, dass Probleme existieren, die inEXPTIME aber nicht inP ent-halten sind (Hierarchiesatze). Somit giltP ( EXPTIME. In allen anderen Fallenist unklar, ob die angegebenen Inklusionen echt oder unechtsind, ob also etwadie KlassenP undNP oder sogar die KlassenP undPSPACE nicht doch zusam-menfallen. Abbildung 3.7 beschreibt die Situation unter der verbreiteten Hypo-these, dass diese Inklusionen alle echt sind. In der VorlesungKomplexitatstheorieim Hauptstudium wird dieses Bild weiter verfeinert. Zwischen P und PSPACE

wird beispielsweise die Komplexitatslandschaft durch die sogenanntepolynomi-elle Hierarchiegegliedert, deren unterste Stufe durch die KlassenNP und Co-NPgebildet wird, wobei Co-NP die Komplemente der Sprachen ausNP enthalt, alsodiejenigen Entscheidungsprobleme bei denen die

”NEIN-Antworten“ polynomiell

verifizierbar sind.Wir verlassen an dieser Stelle die klassische Komplexitatstheorie und kum-

mern uns im verbleibenden Rest der Veranstaltung um einen alternativen Ansatzum mit schwierigen Optimierungsproblemen wie KP, BPP und TSPumzugehen,fur deren Entscheidungsvarianten wir dieNP-Vollstandigkeit nachgewiesen ha-ben.

3.10 Approximationsalgorithmen fur NP-harte Pro-bleme

Wir nennen ein OptimierungsproblemNP-hart, wenn die Entscheidungsvariantedes ProblemsNP-hart ist. Unter der HypotheseP 6= NP gibt es fur NP-harte Op-timierungsprobleme wie das Rucksackproblem (KP), das Bin-Packing-Problem(BPP) und das Traveling-Salesperson-Problem (TSP) keinen Polynomialzeitalgo-rithmus, der eine optimale Losung berechnet. In der Praxis ist es haufig jedochausreichend eine Losung zu berechnen, deren Zielfunktionswert vielleicht nichtoptimal ist, aber das Optimum annahernd erreicht.

Sei Π ein Optimierungsproblem. Fur eine InstanzI von Π bezeichnen wirden optimalen Zielfunktionswert mitopt(I). Wir unterscheidenMinimierungs-und Maximerungsproblemedanach, ob der Zielfunktionswert wie etwa bei TSPminimiert oder wie beim Rucksackproblem maximiert werden soll.

127

Page 131: Skript zur Vorlesung

• Ein α-Approximationsalgorithmus, α > 1, fur ein MinimierungsproblemΠberechnet fur jede InstanzI von Π eine zulassige Losung mit Zielfunkti-onswert hochstensα · opt(I).

• Ein α-Approximationsalgorithmus, α < 1, fur ein MaximierungsproblemΠ berechnet fur jede InstanzI vonΠ eine zulassige Losung mit Zielfunkti-onswert mindestensα · opt(I).

Der Termα wird auch alsApproximationsfaktoroder Approximationsgute be-zeichnet. Ein 2-Approximationsalgorithmus fur TSP wurde beispielsweise fur je-de TSP-Instanz eine Rundreise berechnen, die hochstens doppelt so teuer ist, wieeine optimale Rundreise. Ein0.99-Approximationsalgorithmus fur das Rucksack-problem wurde fur jede Rucksackinstanz eine zulassige Rucksackbepackung be-rechnen, die mindestens 99% des optimalen Nutzenwertes erreicht.

Nicht alleNP-harten Optimierungsprobleme haben einen Approximationsal-gorithmus mit polynomiell beschrankter Laufzeit. Einge wenigeNP-harte Opti-mierungsprobleme lassen sich allerdings beliebig gut approximieren. Diese Pro-bleme haben ein sogenanntes Approximationsschema. Zum Abschluss der Vorle-sung demonstrieren wir dieses Prinzip anhand des Rucksackproblems.

3.10.1 Ein Approximationsschema fur das Rucksackproblem

Ein ApproximationsschemaA fur ein OptimierungsproblemΠ ist ein Algorith-mus, der es ermoglicht, in polynomieller Zeit eine zulassige Losung fur Π mitbeliebiger Approximationsgute zu berechnen. Der gewunschte Approximations-faktor ist dabei ein Parameter des Algorithmus: Bei Eingabe einer ProbleminstanzI und einer Zahlǫ > 0, berechnetA eine zulassige Losung mit Approximati-onsfaktor1 + ǫ, falls Π ein Minimierungsproblem ist, bzw.1 − ǫ, falls Π einMaximierungsproblem ist. Die Laufzeit eines Approximationsschemas hangt ty-pischerweise von der Eingabelangen und dem Parameterǫ ab. Wir unterscheidenzwei Varianten von Approximationsschemata bezuglich ihrer Laufzeitschranken.

• Ein ApproximationschemaA wird alsFPTAS (fully polynomial time appro-ximation scheme)bezeichnet, falls die Laufzeit vonA polynomiell sowohlin n als auch in1

ǫbeschrankt ist.

• Ein ApproximationschemaA wird alsPTAS (polynomial time approximati-on scheme)bezeichnet, falls die Laufzeit vonA fur jedes konstanteǫ > 0polynomiell inn beschrankt ist.

128

Page 132: Skript zur Vorlesung

Typische Laufzeitschranken fur ein FPTAS sind etwaO(n2/ǫ) oderO(n3+1/ǫ2).Wir werden zeigen, dass das Rucksackproblem ein FPTAS hat. Die Anforderun-gen an ein PTAS sind schwacher, denn die Laufzeit muss nicht polynomiell von1

ǫ

abhangen. Statt dessen wirdǫ als Konstante aufgefasst. Fur ein PTAS sind Lauf-zeitschranken der FormO(21/ǫn2) oder auchO(n1/ǫ log n) erlaubt, die fur einFPTAS nicht zulassig waren.

Das FPTAS fur das Rucksackproblem basiert auf einem dynamischen Pro-gramm. SeiP = max1≤i≤N pi der maximale Nutzenwertuber dieN gegebenenObjekte. Der Algorithmus findet eine optimale Rucksackbepackung inO(N2P )uniformen Rechenschritten, von denen jeder einzelne in polynomieller Zeit be-rechnet werden kann, wie wir in Lemma 3.47 zeigen werden. Beachte, die Lauf-zeitschrankeO(N2P ) ist nicht polynomiell in der Eingabelangen beschrankt.Zwar gilt N ≤ n aberP kann exponentiell inn sein. Eine derartige Laufzeit-schranke, die polynomiell lediglich in der Große (statt der Kodierungslange) derEingabezahlen beschrankt ist, wird alspseudopolynomiellbezeichnet.

Lemma 3.47 Fur das Rucksackproblem gibt es einen Algorithmus, der eine opti-male Losung inO(N2P ) uniformen Rechenschritten berechnet.

Beweis:Der optimale Nutzenwert liegt offensichtlich zwischen 0 und N · P . Furi ∈ {0, . . . , N} und p ∈ {0, . . . , N · P}, seiAi,p das kleinstmogliche Gewicht,mit dem man den Nutzenwertp exakt erreichen kann, wenn man nur Objekte ausder Menge{1, . . . , i} verwenden darf. Wir setzenAi,p = ∞, falls der Nutzenp nicht durch eine Teilmenge von{1, . . . , i} erreicht werden kann. Fur alle i ∈{1, . . . , N} gilt Ai,0 = 0. Außerdem giltA0,p = ∞ fur allep > 0 undAi,p = ∞fur allep < 0. Fur i ∈ {1, . . . , N} undp ∈ {1, . . . , N · P} gilt nun die folgendeRekursionsgleichung:

Ai+1,p = min(Ai,p, Ai,p−pi+1+ wi+1) .

Wir verwenden den Ansatz der dynamischen Programmierung und berechnen Zei-le fur Zeile alle Eintrage in der Tabelle bzw. Matrix(Ai,p)i∈{0,...,N},p∈{0,...,NP}. Furjeden Tabelleneintrag benotigen wir dabei eine konstante Anzahl von Rechen-schritten. Die Laufzeit entspricht somit der Große der TabelleO(N2P ). Der ge-suchte, maximal erreichbare Nutzenwert ist

max{p |AN,p ≤ b} .

Die zugehorige Rucksackbepackung lasst sich durch Abspeichern geeigneter Zu-satzinformationen zu den einzelnen Tabelleneintragen rekonstruieren, so dass dieoptimale Rucksackbepackung in ZeitO(N2P ) berechnet werden kann. �

129

Page 133: Skript zur Vorlesung

Die Laufzeitschranke hangt linear von der Große der Nutzenwerte ab. Zu be-achten ist, dass der Algorithmus davon ausgeht, dass die Nutzenwerte – wie in derProblemspezifikation festgelegt – naturliche Zahlen sind. Wir konnen die Großeder Eingabezahlen verringern, indem wir alle Nutzenwerte mit demselben Skalie-rungsfaktorα multiplizieren (z.B.α = 0.01) und die dabei entstehenden Nach-kommastellen streichen. Was passiert nun, wenn wir das dynamische Programmmit derart skalierten und gerundeten Nutzenwerten aufrufen?

• Einerseits verbessert sich die Laufzeit des Algorithmus umden Skalierungs-faktorα, da die Laufzeitschranke linear vom großten Nutzenwert abhangt,und sich dieser Wert um den Faktorα verringert hat.

• Andererseits konnen wir nicht mehr garantieren, dass der Algorithmus eineoptimale Losung berechnet, da er mit gerundeten Nutzenwerten arbeitet.

Wenn wir uns nun allerdings vorstellen, dass wir den Skalierungsfaktor derartwahlen, dass die Nutzenwerte durch die Rundung nur leicht verfalscht werden, sosollte die vom Algorithmus berechnete Losung doch einen Nutzenwert haben, der

”nahe“ am optimalen Nutzenwert liegt. Wir zeigen im Folgenden, dass dieser ein-

fache Skalierungstrick tatsachlich funktioniert und zu einem FPTAS fuhrt, wennwir den Skalierungsfaktor auf geeignete Art und Weise in Abhangigkeit von denParameternN , P undǫ wahlen.

Satz 3.48Das Rucksackproblem hat ein FPTAS.

Beweis:Das FPTAS arbeitet folgendermaßen:

1. Skaliere die Nutzenwerte mit dem Faktorα = NǫP

und runde ab, d.h. furi ∈ {1, . . . , N} setzep′i = ⌊αpi⌋.

2. Berechne eine optimale RucksackbepackungK ⊆ {1, . . . , N} fur die Nut-zenwertep′1, . . . , p

′N mit dem dynamischen Programm aus Lemma 3.47.

Durch die Skalierung sind die Nutzenwerte nach oben beschrankt durchP ′ =⌊αP ⌋ = ⌊N

ǫ⌋. Aus Lemma 3.47 ergibt sich somit unmittelbar eine Laufzeitschran-

ke vonO(N2P ′) = O(N3/ǫ) uniformen Rechenschritten. Im logarithmischenKostenmaß ist noch die Zeit zu berucksichtigen, die fur die einzelnen Rechen-schritte benotigt wird. Diese Zeit ist jedoch offensichtlich polynomiell in der Ein-gabelange beschrankt, da es sich bei den Rechenschritten nur um einfache Addi-tionen und Vergleiche handelt. Um zu zeigen, dass der Algorithmus ein FPTASist, mussen wir also nun nur noch den Approximationsfaktor nachweisen.

130

Page 134: Skript zur Vorlesung

SeiK∗ ⊆ {1, . . . , N} eine optimale Rucksackbepackung. Die durch den Al-gorithmus berechnete Rucksackbepackung bezeichnen wir mitK. Es gilt zu zei-gen

p(K) ≥ (1− ǫ) p(K∗) .

Fur den Beweis skalieren wir die gerundeten Nutzenwerte virtuell wieder herauf,allerdings ohne dabei den Rundungsfehler ruckgangig zu machen, d.h. wir set-zenp′′i = p′i/α. Die RucksackbepackungK ist optimal fur die Nutzenwertep′iund somit auch optimal fur die Nutzenwertep′′i . Bezogen auf die ursprunglichenNutzenwertepi macht der Algorithmus allerdings moglicherweise fur jedes Ob-jekt einen Rundungsfehler: Objekte sehen weniger profitabelaus als sie eigentlichsind. Der Rundungsfehler fur Objekti lasst sich abschatzen durch

pi − p′′i = pi −⌊αpi⌋

α≤ pi −

αpi − 1

α=

1

α.

Fur eine TeilmengeS ⊆ {1, . . . , N} seip(S) =∑

i∈S pi undp′′(S) =∑

i∈S p′′i .

Der Rundungsfehler fur eine optimale LosungK∗ lasst sich entsprechend abschat-zen durch

p(K∗)− p′′(K∗) ≤∑

i∈K∗

1

α≤

N

α= ǫ P ≤ ǫ p(K∗) ,

wobei die Ungleichungp(K∗) ≥ P daraus folgt, dass der optimale Nutzenp(K∗)mindestens so groß ist wie der Nutzen des Objektes mit dem maximalen Nutzen-wertP . Aus der obigen Ungleichung folgtp′′(K∗) ≥ (1 − ǫ) p(K∗). Nun ergibtsich

p(K) ≥ p′′(K) ≥ p′′(K∗) ≥ (1− ǫ) p(K∗) .

Eine wichtige Grundlage fur das FPTAS des Rucksackproblems ist das dy-namische Programm mit LaufzeitO(N2P ). Ein anderes dynamisches Programm,das vielleicht aus der VorlesungDatenstrukturen und Algorithmenbekannt ist, hatLaufzeitO(N2W ), wobeiW das maximale Gewicht ist. Dieser Algorithmus istalso pseudopolynomiell in den Gewichten statt in den Nutzenwerten. Um aus die-sem Algorithmus ein FPTAS zu gewinnen, musste man die Gewichte runden. Dasist aber problematisch, denn

• rundet man die Gewichte ab, so berechnet der Algorithmus moglicherweiseein unzulassige Losung;

131

Page 135: Skript zur Vorlesung

• rundet man die Gewichte hingegen auf, so ignoriert der Algorithmus mog-licherweise einige sehr gute zulassige Losungen.

Der Skalierungstrick, den wir fur das Rucksackproblem vorgefuhrt haben, funk-tioniert auch fur einige andere Optimierungsprobleme, die einen pseudopolyno-miellen Algorithmus haben. Um ein FPTAS zu erhalten, solltedie Laufzeit, wieerlautert, pseudopolynomiell in der Zielfunktion und nicht inden Nebenbedin-gungen sein. Ist dies gegeben, so ist im Einzelfall zuuberprufen, ob und wie mandurch geschicktes Runden zu einem FPTAS gelangen kann.

3.10.2 Stark und schwachNP-harte Probleme

Bisher sind wir durchgangig davon ausgegangen, dass Zahlen in der Eingabe ei-nes Problems binar kodiert werden. Die Spezifikation des Eingabeformats istTeilder Problembeschreibung. Wenn wir das Eingabeformatandern, so erhalten wirein neues Problem. Das Rucksackproblem mit binarer Kodierung haben wir mitKP bezeichnet. Sei u-KP die Variante des Rucksackproblems, bei der wir anneh-men, dass die Eingabezahlen unar kodiert vorliegen, d.h. wir kodieren eine Zahlk ∈ N durchk aufeinander folgende Einsen. Die Eingabelange vonk ist dannkund nicht mehr⌈log(k + 1)⌉ wie bei der binaren Kodierung. Wir wissen KP istNP-hart, hat aber einen Algorithmus mit pseudopolynomiellerLaufzeitschranke.Die Laufzeit dieses Algorithmus ist polynomiell in der Große der Eingabezahlenbeschrankt, was nichts anderes bedeutet, als dass die Laufzeit polynomiell in derunaren Eingabelange ist. Der pseudopolynomielle Algorithmus fur KP ist also ausSicht von u-KP ein Polynomialzeitalgorithmus.

Somit ist das Rucksackproblem bei unarer Kodierung inP , obwohles in derublichen binaren KodierungNP-hart ist.

Wie laßt sich dieses scheinbare Paradoxon erklaren? – Beim Wechsel von derbinaren zur unaren Kodierung vergroßert sich die Eingabelange exponentiell. Dawir die Komplexitat eines Problems relativ zur Eingabelange beschreiben, hat sichdurch das Aufblasen der Eingabe die Komplexitat des Problems verringert, ob-wohl eine gegebene Instanz naturlich nicht dadurch einfacher zu losen ist, dasswir die Eingabezahlen unar hinschreiben. Wir unterscheiden nun zwei Arten vonNP-harten Problemen, namlich einerseits Probleme, die auch bei unarer Kodie-rung nochNP-hart sind, und andererseits Probleme, wie das Rucksackproblem,die lediglich in binarer KodierungNP-hart sind.

132

Page 136: Skript zur Vorlesung

Definition 3.49 Ein NP-hartes Problem, das bei unarer Kodierung einen poly-nomiellen Algorithmus hat, wird alsschwachNP-hart bezeichnet. Ein Problem,das auch bei unarer Kodierung der EingabezahlenNP-hart bleibt, wird alsstarkNP-hartbezeichnet.

Das Rucksackproblem ist schwachNP-hart, da es einen pseudopolynomiel-len Algorithmus hat. Die Probleme SUBSET-SUM und PARTITION sind eben-falls schwach NP-hart, da sie mit einer einfachen Variante des dynamischen Pro-gramms fur das Rucksackproblem ebenfalls in pseudopolynomieller Zeit gelostwerden konnen.

Bemerkung 3.50 KP, SUBSET-SUM und PARTITION sind schwach NP-hart.

Das Cliquenproblem ist ein Beispiel fur ein Problem, welches trivialer Wei-se starkNP-hart ist, weil sich die Eingabelange nur um einen konstanten Faktorverandert, wenn wir die einzige in der Eingabe vorkommende Zahl, namlich dieCliquengroßek ∈ {1, . . . , |V |}, unar statt binar kodieren. Korollar 3.41 belegtdieNP-Harte von{1, 2}-TSP und zeigt somit, dass TSP auch dann nochNP-hartist, wenn alle Eingabezahlen klein sind. TSP ist somit ebenfalls starkNP-hart,obwohl sich bei diesem Problem die Eingabelange exponentiell vergroßern kann,wenn Zahlen unar statt binar kodiert werden. Auch vom Bin-Packing-Problem(BPP) weiss man, dass es starkNP-hart ist.

Bemerkung 3.51 CLIQUE, TSP und BPP sind stark NP-hart.

Unter der HypotheseP 6= NP haben diese Probleme somit keinen Algorithmusmit einer Laufzeitschranke, die polynomiell in der unaren Kodierungslange ist,also keinen pseudopolynomiellen Algorithmus.

Wir zeigen nun, dass starkNP-harte Optimierungsprobleme nicht nur keinenpseudopolynomiellen Algorithmus sondern auch kein FPTAS haben konnen, essei dennP = NP. Der folgende Satz macht einige kompliziert klingende tech-nische Annahmen, die aber fur typische Optimierungsprobleme ohne weitereserfullt sind. Als Faustformel sollten wir uns merken, unter derHypotheseP 6= NP

haben starkNP-harte Probleme kein FPTAS.

Satz 3.52SeiΠ ein Optimierungsproblem mit ganzzahliger, nicht-negativer Ziel-funktion. Seip ein geeignetes Polynom. Fur eine EingabeI bezeichneopt(I) ∈ N

den Wert einer optimalen Losung undnu(I) die unare Eingabelange. Es gelteopt(I) < p(nu(I)) fur jede EingabeI. Falls Π starkNP-hart ist, so hatΠ keinFPTAS, es sei dennP = NP.

133

Page 137: Skript zur Vorlesung

Beweis:Zum Zwecke des Widerspruchs nehmen wir an,Π ist starkNP-hart undhat ein FPTAS. Aus dem FPTAS werden wir einen pseudopolynomiellen Algo-rithmus fur Π konstruieren. Einen derartigen Algorithmus kann es unter der Hy-potheseP 6= NP nicht geben. Also hatΠ kein FPTAS oderP = NP.

Wir nehmen der Einfachheit halber an,Π ist ein Minimierungsproblem. DerBeweis fur Maximierungsprobleme funktioniert analog. SeiA ein FPTAS fur Π.Bei EingabeI mit unarere Langenu(I) setzen wirǫ = 1/p(nu(I)). Die vonAberechnete Losung hat damit den Wert hochstens

(1 + ǫ) opt(I) < opt(I) + ǫ p(nu(I)) = opt(I) + 1 .

Somit berechnetA eine Losung mit Zielfunktionswertz ∈ [opt(I), opt(I) + 1).Aus der Ganzzahligkeit der Zielfunktion folgt,z = opt(I). A berechnet also eineoptimale Losung. Die Laufzeit vonA ist polynomiell in1

ǫ= p(nu(I)) beschrankt,

also polynomiell innu(I), und somit istA ein pseudopolynomieller Algorithmus.Damit ist der gewunschte Widerspruch gezeigt. �

Aus dem obigen Satz folgt beispielsweise, dass TSP kein FPTAS hat, da esstarkNP-hart ist. Die Umkehrung von Satz 3.52 gilt nicht. Es gibt Probleme mitpseudopolynomiellen Algorithmen, fur die es unter der HypotheseP 6= NP be-weisbar kein FPTAS gibt.

In der VorlesungEffiziente Algorithmenwird das Thema Approximationsal-gorithmen intensiver vorgestellt. Es wird z.B. gezeigt, dass TSP in seiner allge-meinen Formuberhaupt keinen Approximationsalgorithmus mit polynomiell be-schrankter Laufzeit hat, es sei dennP = NP. Nur wenn man bestimmte Forde-rungen an die Distanzmatrix stellt, also die Eingabe einschrankt, kann man dasTSP-Problem bis auf einen konstanten Faktor approximieren.

134

Page 138: Skript zur Vorlesung

Kapitel 4

Schlussbemerkungen

4.1 Literaturhinweise

Die folgenden Bucher eignen sich als zusatzliche Literatur und stehen in der In-formatikbibliothek zur Verfugung.

• M.R. Garey, D.S. Johnson. Computers and Intractability: A Guide to theTheory of NP-Completeness. Freeman and Company 1979.

• J.E. Hopcroft, R. Motwani, J.D. Ullman. Introduction to Automata Theory,Languages, and Computation. Addison-Wesley 2001.

• J. Hromkovic. Theoretische Informatik. Teubner 2004.

• U. Schoning. Theoretische Informatik - kurzgefaßt. Spektrum Akademi-scher Verlag 2001.

• M. Sipser. Introduction to the Theory of Computation. PWS Publishing1997.

• I. Wegener. Theoretische Informatik - eine algorithmenorientierte Einfuhrung.Teubner Verlag 1999.

• I. Wegener. Kompendium Theoretische Informatik - Eine Ideensammlung.Teubner 1996.

135

Page 139: Skript zur Vorlesung

4.2 Danksagung

Das vorliegende Skript istuber mehrere Semester entstanden. An der Erstellungdes Skriptes haben insbesondere Helge Bals, Nadine Bergner, Dirk Bongartz,Marcel Ochel und Alexander Skopalik mitgewirkt.

136


Recommended