Algorithmen und Berechnungskomplexit at II Rheinische Friedrich-Wilhelms-Universit at Bonn...

101
Rheinische Friedrich-Wilhelms-Universit¨ at Bonn Mathematisch-Naturwissenschaftliche Fakult¨ at Algorithmen und Berechnungskomplexit¨ at II Skript SS 2013 Elmar Langetepe Bonn, 19. Juli 2013 Das folgende Skript wurde im Laufe des Sommersemesters 2013 erstellt und erg¨ anzt. Korrekturhinweise, Bemerkungen und Anregungen der Studierenden sind uns sehr willkommen, bitte per Mail an [email protected].

Transcript of Algorithmen und Berechnungskomplexit at II Rheinische Friedrich-Wilhelms-Universit at Bonn...

Rheinische Friedrich-Wilhelms-Universitat Bonn

Mathematisch-Naturwissenschaftliche Fakultat

Algorithmen undBerechnungskomplexitat II

Skript SS 2013

Elmar Langetepe

Bonn, 19. Juli 2013

Das folgende Skript wurde im Laufe des Sommersemesters 2013 erstelltund erganzt. Korrekturhinweise, Bemerkungen und Anregungen der

Studierenden sind uns sehr willkommen, bitte per Mail [email protected].

I

II

Inhaltsverzeichnis

1 Einfuhrung 1

1.1 Modellierung und Kodierung von Problemen . . . . . . . . . 3

2 Turingmaschinen 5

2.1 Formale Definition . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Berechnungen und Beispiele . . . . . . . . . . . . . . . . . . . 8

2.3 Erweiterte Programmiertechniken . . . . . . . . . . . . . . . . 12

2.4 Mehrbandmaschinen und Simulation . . . . . . . . . . . . . . 14

2.5 Universelle Turingmaschine . . . . . . . . . . . . . . . . . . . 18

3 Berechenbarkeit 23

3.1 Entscheidbare und rekursiv aufzahlbare Sprachen . . . . . . . 23

3.2 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3 Turingmaschinen-Eigenschaften als Sprachen . . . . . . . . . 26

3.4 Existenz unentscheidbare Probleme . . . . . . . . . . . . . . . 27

3.5 Konkrete unentscheidbare Probleme . . . . . . . . . . . . . . 29

3.6 Unentscheidbarkeit des Halteproblems . . . . . . . . . . . . . 30

3.7 Reduktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.8 Churchsche These und Registermaschine . . . . . . . . . . . . 35

3.9 Der Satz von Rice . . . . . . . . . . . . . . . . . . . . . . . . 41

3.10 Unentscheidbare Probleme ohne Selbstbezug . . . . . . . . . . 43

4 Komplexitat und Klassen P und NP 49

4.1 Entscheidungs- und Optimierungsprobleme . . . . . . . . . . 50

4.2 Zeitkomplexitat von Turingmaschinen . . . . . . . . . . . . . 52

4.3 Die Klasse P . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

III

IV INHALTSVERZEICHNIS

4.4 Nichtdeterministische Turingmaschinen . . . . . . . . . . . . . 56

4.5 Die Klasse NP . . . . . . . . . . . . . . . . . . . . . . . . . . 59

4.5.1 Beispiele fur Probleme aus NP . . . . . . . . . . . . . 60

4.6 Klasse NP und Zertifikate . . . . . . . . . . . . . . . . . . . . 64

4.6.1 P und NP . . . . . . . . . . . . . . . . . . . . . . . . 66

4.7 NP -Vollstandigkeit . . . . . . . . . . . . . . . . . . . . . . . . 66

4.7.1 Polynomielle Reduktion . . . . . . . . . . . . . . . . . 67

4.7.2 Definition der NP -Vollstandigkeit . . . . . . . . . . . 68

4.7.3 Beispiele polynomieller Reduktionen . . . . . . . . . . 68

4.7.4 Der Satz von Cook und Levin . . . . . . . . . . . . . . 72

4.7.5 NP -Vollstandigkeit arithmetischer Probleme . . . . . 79

5 Approximation und Randomisierung 83

5.1 Randomisierte Algorithmen . . . . . . . . . . . . . . . . . . . 83

5.2 Approximationen fur NP -schwere Probleme . . . . . . . . . . 87

5.2.1 Approximationsschemata PTAS und FPTAS . . . . . 88

5.2.2 Approximationsalgorithmus fur TSP . . . . . . . . . . 89

5.2.3 Ein Approximationsschemata des Rucksackproblem . 90

5.2.4 Approximation von Bin Packing . . . . . . . . . . . . 94

Bibliography 95

Kapitel 1

Einfuhrung

Im ersten Teil der Vorlesung Algorithmen und Berechnungskomplexitat ha-ben wir im vergangenen Semester verschiedene klassische algorithmischeFragestellungen (Sortieren, Flussprobleme, Graphenprobleme, Bin-Packing,Knapsack, etc.) untersucht, Losungsplane dafur entworfen und die Effizienzdieser Plane untersucht.

Die Losungsplane beruhten dabei auf sehr unterschiedlichen Vorgehenswei-sen (Divide-and-Conquer, Inkrementelle Konstruktion, Greedy, DynamischeProgrammierung, etc.). Diese Paradigmen haben wir fur verschiedene Fra-gestellungen zur Anwendung gebracht.

Fur die Analyse der Losungen wurden dann die wesentlichen Berechnungs-schritte asymptotisch abgeschatzt. Neben der formalen Beschreibung dieserAbschatzungen (O- und Ω-Notation) haben wir auch verschiedene Methodender Analyse (Rekursionsgleichungen, Induktionsbeweise, strukturelle Eigen-schaften, Rekursionstiefe, etc.) kennengelernt und angewendet. Außerdemhaben wir gesehen, dass zur rechnergestutzten Umsetzung der Losungsplaneeine geeignete, effiziente Reprasentation der Daten (Datenstrukturen) imRechner notwendig ist. Ein wesentlicher Bestandteil der Vorlesung war dieformale Analyse der vorgestellten Techniken und Strukturen. Dadurch konn-ten wir Gutegarantien abgeben. Die Formulierung der Algorithmen wurdeim Wesentlichen durch Pseudocode dargestellt, der sich im Prinzip in jederhoheren Programmiersprache umsetzen lasst.

Neben diesen klassischen algorithmischen Prinzipien haben wir außerdembereits eine formale Beschreibung von Sprachen vorgenommen. FormaleSprachen und Grammatiken werden beispielsweise benutzt, um Program-miersprachen syntaktisch korrekt zu beschreiben und semantisch richtig zuinterpretieren. Wir hatten bereits festgestellt, welche Sprachen sich durchwelche Automaten exakt beschreiben lassen oder genauer welche Sprachendurch welchen Automaten entschieden werden konnen. Damit wurde insge-

1

2 KAPITEL 1. EINFUHRUNG

samt bereits ein Schritt zu den in dieser Vorlesung zu behandelnden Fra-gestellungen getan: Gegeben ist ein formales Automaten-Konzept, welcheSprachen lassen sich entscheiden und fur welche Sprachen ist das Konzeptnicht mehr ausreichend? Diese Betrachtungsweisen werden uns in dieser Vor-lesung sicher helfen.

Nicht alle vorgestellten Algorithmen waren wirklich effizient. Beispielsweisehat der Algorithmus von Ford und Fulkerson eine Laufzeit von O(C · m)benotigt oder beim Rucksackproblem ergab die Dynamische Programmie-rung eine Laufzeit von O(n · G) hierbei gehorten C (Summe aller Kan-tengewichte) und G (Gesamtkapazitat des Rucksackes) eigentlich nicht zurEingabegroße der m Kanten und n Gegenstande. Bei solchen Ergebnissenspricht man auch von pseudopolynomieller Laufzeit. Gibt es Algorithmen,die ohne eine solche Beschrankungen auskommen? Oder kann man zeigen,dass bestimmte Probleme wohl gar nicht besser gelost werden konnen? Gibtes Probleme, die grundsatzlich gar nicht mit modernen Computern gelostwerden konnen?

Es gibt erstaunlicherweise tatsachlich Problemstellungen die mit modernenComputern nicht gelost werden konnen. Dazu gehort beispielsweise das soge-nannte Halteproblem. Es lasst sich kein Java-Programm schreiben, dass alsEingabe ein beliebiges anderes Java-Programm erhalt und fur dieses Pro-gramm entscheidet, ob es terminiert oder nicht. Hier ist eine Grenze derBerechenbarkeit erreicht. Und zwar nicht, weil bislang noch Niemand einenpassenden Trick gefunden hat, das Problem zu losen. Nein, es lasst sich for-mal beweisen, dass es so ein Programm nicht geben kann. Es geht also indieser Vorlesung um die Berechenbarkeit und auch um eine Charakterisie-rung von Schwere-Klassen der Problemstellungen je nach Komplexitat.

Zunachst brauchen wir dazu ein formales Modell eines Rechners. Wir mussensicher beschreiben konnen, was wir unter der Berechnung einer Problemlosungmit einem Computer verstehen wollen.

Dazu verwenden wir die nach Alan Turing (Britischer Mathematiker) be-nannten Turingmaschinen. Alles was im intuitiven Sinne (zum Beispiel durchein Java-Programm) berechenbar ist, kann auch durch eine Turingmaschinemit entsprechender Kodierung berechnet werden und umgekehrt. Unser for-males Konzept ist also gar keine Einschrankung, gibt uns lediglich sicherenBoden fur unsere Beweise.

Wir beginnen mit der formalen Modellierung von Problemen durch geeigneteFunktionen f : IINr → IIN auf den naturlichen Zahlen. Außerdem werden wirddie Zahlen binar kodieren.

Das vorliegende Skript setzt sich aus verschiedenen Quellen zum Themazusammen und versucht fur diese eine einheitliche Bezeichnung durchzuhal-ten. Da das Skript erst im Laufe des Semesters entsteht, sind Hinweise derStudierenden uber Fehler oder Ungereimtheiten sehr willkommen.

1.1. MODELLIERUNG UND KODIERUNG VON PROBLEMEN 3

1.1 Modellierung und Kodierung von Problemen

Alle bisher von uns betrachteten Berechnungsprobleme lassen sich wie folgtklassifizieren. Gegeben ist eine Eingabe und dafur soll eine Ausgabe berech-net werden. Ein- und Ausgaben sind dabei im wesentlichen Worter ubereinem festgelegten Alphabet Σ. Es ist fur uns keine Einschrankung, wennwir grundsatzlich das Alphabet Σ = 0, 1 verwenden und die Ein- undAusgaben daruber definieren. Zur Beschreibung der Mengen von Worternund deren Langen verweisen wir auf die vorhergehende Veranstaltung.

Anhand von ein paar Beispielen wollen wir zunachst sehen, wie wir uns dieKodierung der Ein- und Ausgabe eine Problems durch Binarzahlen vorstel-len konnen. Dabei fangen wir sehr simpel an. Es kommt hier im wesentli-chen nur darauf an, zu erkennen, dass sich jedes beliebiges Rechenproblementsprechend kodieren lasst. Wie geschickt oder effizient die Kodierung ist,spielt zunachst keine Rolle.

Beispiel 1: Addition zweier Zahlen

Eingabe: Zwei binar kodierte Zahlen a und b

Ausgabe: Die binar kodierte Zahl c = a+ b

Dieses Problem konnen wir direkt mit einer Funktion f : Σ∗ → Σ∗ beschrei-ben. Um bei der Eingabe a und b zu trennen, erweitern wir das Alphabetdurch ein Symbol # und konnen somit die beiden Eingabewerte vonein-ander trennen. Mit bin(a) bezeichnen wir die Binardarstellung von a. Bei-spielsweise ist bin(7) = 111 und bin(1) = 1. Das Ergebnis fur die Eingabebin(7)#bin(1) ist dann bin(8) = 1000.

Klassischerweise werden in der Komplexitatstheorie zunachst Entscheidungs-probleme gelost. Genauer wird dann als Ausgabe lediglich eine Ja/Nein Ant-wort benotigt, diese lasst sich durch 1 respektive 0 kodieren.

Beispiel 2: Einfache Rundtour in einem Graphen (Hamilton Circle)

Eingabe: Ein binar kodierter Graph G = (V,E) und ein Startknoten v

Ausgabe: Das Zeichen 1, falls es einen Weg in V gibt, der bei v startet undendet und jeden Knoten von V exakt einmal besucht. Das Zeichen 0, fallsein solcher Weg nicht existiert.

Den Graphen konnen wir bequem durch das Alphabet Σ = 0, 1,# be-schreiben indem wir zum Beispiel zunachst die Zahl bin(n) fur die Anzahlder Knoten eintragen und dann die Werte einer n × n Matrix sukzessive(spalten- oder reihenweise) fullen. Eine 1 beschreibt dann fur einen Ein-trag (i, j), dass die Kante zwischen Knoten i und j exitiert. Entsprechendbeschreibt eine 0, dass die Kante nicht in E liegt.

4 KAPITEL 1. EINFUHRUNG

Beispiel 3: Tiefensuche in einem Graphen

Eingabe: Ein binar kodierter Graph G = (V,E) und ein Startknoten v

Ausgabe: Die Folge von Knoten, die von v aus per Tiefensuche sukzessiveerreicht werden.

Der Graph wird wie im vorherigen Beispiel kodiert, die Knoten werden durchihre binaren Identifier sukzessive angegeben.

Die in diesem Abschnitt verwendete allgemeine Kodierung werden wir imnachsten Abschnitt fur die Beschreibung eines allgemeinen Rechners benut-zen. Wir wissen jetzt, dass wir jedes Berechnungsproblem im Prinzip als eineFunktion f : Σ∗ → Σ∗ betrachten konnen. Genau genommen betrachten wirFunktionen vom Typ f : IINr → IINl.

Kapitel 2

Turingmaschinen

Wir fuhren ein formales Modell eines Computers ein. Einen solchen Rechnerkann man naturlich nicht im nachsten Laden kaufen. Das Modell der Tu-ringmaschine wurde 1936 von Alan Turing als Modell fur die Beschreibungvon Berechenbarkeit entworfen und zwar bereits vor der Entwicklung ersterelektronischer Rechenanlagen. Das Modell mag zunachst sehr eingeschrankterscheinen, wird sich aber als sehr machtig herausstellen.

2.1 Formale Definition

Als Speicher dient der einfachen Turingmaschine (TM) ein nach rechts of-fenes unendliches Band auf dem Zeichen in einzelnen Zellen geschriebenwerden konnen. Diese Zeichen entstammen einem endlichen BandalphabetΣ. Nach den obigen Voruberlegungen fordern wir 0, 1,# ⊆ Σ. Außerdemist es sinnvoll, die Zeichen $ und t fur den Beginn des Bandes und fur leereZellen zu reservieren. Die Turingmaschine verwendet eine sogenannte end-liche Kontrolle. Diese besteht aus einem Lese-/Schreibkopf fur die Zellendes Bandes. Es lassen sich die Zeichen der Zellen auslesen und verandern.Der Kopf kann schrittweise uber das Band bewegt werden. Die Kontrollehandelt deterministisch und die Maschine befindet sich zu jedem Zeitpunktin einem Zustand q aus einer endlichen Zustandsmenge Q. Mittels einerZustandsubergangsfunktion δ regelt die Kontrolle die Arbeit der Turingma-schine. Der Lese-/Schreibkopf kann in einem Schritt nach links oder rechtsauf die Nachbarzellen bewegt werden oder auf der Zelle verweilen. DieseVerhalten kodieren wir entsprechend durch die Zahlen −1, 1 und 0 odergelegentlich aus Bequemlichkeit auch durch L (links), R (rechts) und N(neutral).

Die Abbildung 2.1 zeigt die schematische Darstellung einer Turingmaschinewahrend der Arbeit. Formal wird die Maschine wie folgt definiert.

5

6 KAPITEL 2. TURINGMASCHINEN

$ 1 1 1 1 0 10 0 tt#

q

δ

δ(q, 0) = (1, q1,−1)

Abbildung 2.1: Die Darstellung einer Turingmaschine M .

Definition 1 Eine deterministische Turingmaschine (DTM) M ist ein 5-Tupel M = (Σ, Q, δ, q0, F ) mit:

1. Σ ist ein endliches Bandalphabet mit 0, 1,#, $,t ⊆ Σ.

2. Q ist die endliche Zustandsmenge mit Q ∩ Σ = ∅.

3. q0 ∈ Q ist der Startzustand.

4. δ : Q× Σ→ Q× Σ× −1, 1, 0 die Zustandsubergangsfunktion.

5. F := q ∈ Q|∀a ∈ Σ : δ(q, a) ist undefiniert ist die Menge der End-zustande.

Die Maschine arbeitet schrittweise wie folgt. Das Zeichen a ∈ Σ unter demLese-/Schreibkopf wird gelesen und wenn sich die Maschine im Zustandq ∈ Q befindet, wird δ(q, a) = (q′, b, d) ∈ Q× Σ× −1, 1, 0 ausgewertet:

• Die Maschine schreibt b ∈ Σ auf die aktuelle Zelle.

• Die Maschine bewegt den Lese-/Schreibkopf nach links (d = −1), nachrechts (d = 1) oder verbleibt auf der aktuellen Zelle (d = 0).

• Die Maschine wechselt in den Zustand q′.

Die folgende Abbildung zeigt den Nachfolgezustand der DTM aus Abbildung2.1 falls δ(q, 0) = (1, q1,−1) gilt.

Weiterhin legen wir zunachst folgende Konventionen fest. Wenn das Zei-chen $ gelesen wird, dann darf die Maschine im nachsten Schritt den Lese-/Schreibkopf nur nach rechts bewegen und auch das Zeichen $ nicht uber-schreiben. Andere Zustandsubergange fur das Zeichen $ sind in δ verboten.

Der Kopf bewegt sich gemaß der oben angegebenen Aktion. Ein einzelnersolcher Schritt wird als Rechenschritt bezeichnet. Die Anzahl der Rechen-schritte, bis die Maschine in einem Endzustand landet, wird als Laufzeit

2.1. FORMALE DEFINITION 7

$ 1 1 1 1 1 10 0 tt#

q1

δ

δ(q, 0) = (1, q1,−1)

Abbildung 2.2: Die Turingmaschine M nach der Ausfuhrung von δ(q, 0) =(1, q1,−1).

bezeichnet. Die Anzahl der insgesamt aktiv verwendeten Zellen ergibt denbenotigten Speicherplatz. Die Maschine terminiert, wenn ein Endzustand er-reicht wird. Zu Beginn steht der Lese-/Schreibkopf auf dem ersten Zeichenhinter dem Bandanfang $.

Unter der Konfiguration einer DTM verstehen wir eine Momentaufnahmeder Rechnung zu einem bestimmten Zeitpunkt. Die Konfiguration beschreibtdie gesamte Situation der Maschine, den Zustand, die Position des Lese-/Schreibkopfes und die gesamte signifikante Bandinschrift.

Formal konnen wir die Konfiguration als String definieren und eine Schreib-weise fur Folgekonfigurationen festlegen.

1. Die Konfiguration einer DTM ist ein String α q β mit q ∈ Q, α, β ∈ Σ∗.Auf den Band steht αβ eingerahmt links vom Startzeichen $ und rechtsvom ersten t Zeichen auf dem Band. Der Kopf steht auf dem erstenElement von β und der Zustand ist q.

2. Die Konfiguration α′ q′ β′ ist die Nachfolgekonfiguration von α q β, fallsα′ q′ β′ durch einen Rechenschritt aus α q β entsteht. Wir schreibenα q β ` α′ q′ β′.

3. Ist α′′ q′′ β′′ eine Nachfolgekonfiguration, die aus endlich vielen Schrit-ten aus α q β entsteht so schreiben wir α q β `∗ α′′ q′′ β′′ bzw. α q β `kα′′ q′′ β′′, falls genau k Rechenschritte zwischen α q β und α′′ q′′ β′′ lie-gen.

In der Literatur finden sich alternative Beschreibungen von Turingmaschi-nen, bei denen Beispielsweise die Menge der Spezialbuchstaben t,#, $strikt vom eigentlichen Alphabet getrennt wird. Dann wird zwischen Ban-dalphabet (Menge aller Zeichen auf dem Band) und dem Eingabealphabet(Alphabet fur die explizite Eingabe) unterschieden. Wir machen diese Un-terscheidung nicht. Weiterhin finden sich gelegentlich Beschreibungen von

8 KAPITEL 2. TURINGMASCHINEN

Turingmaschinen mit einer expliziten Angabe von akzeptierenden und nicht-akzeptierenden Endzustanden. Wir verzichten auf diese Einteilung und wer-den das Akzeptieren oder Verwerfen explizit durch das Ergebnis der Berech-nung festlegen. Außerdem werden Turingmaschinen gelegentlich auch durchein beidseitiges unendliches Band definiert. Die Eingabe ist dann rechts undlinks mit jeweils einem t-Zeichen eingeschlossen.

Fur den Leser sei hier erwahnt, dass die verschiedenen Konzepte allesamtaquivalent sind.

2.2 Berechnungen und Beispiele

Eine DTM, die fur jede Eingabe terminiert berechnet eine totale FunktionfM : Σ∗ → Σ∗. Das berechnete Ergebnis konnen wir uns beispielsweise wiefolgt vorstellen. Die letzte Position des Lese-/Schreibkopfes ist der Anfangdes Ergebnisses und das Ergebnis setzt sich nach rechts fort, bis das er-ste t-Zeichen erscheint. Steht der Lese-/Schreibkopf auf einem t-Zeichen,gilt auch das leere Wort ε als Antwort. Bei Terminierung befindet sich dieMaschine in einem Endzustand.

Es kann passieren, dass die Maschine gar nicht terminiert, in diesen Fallist das Ergebnis nicht definiert und die Funktion fM : Σ∗ → Σ∗ ist partielldefiniert. In diesem Fall konnen wir auf ein Symbol ⊥ verweisen und machendie Funktion durch fM : Σ∗ → Σ∗ ∪ ⊥ total. Falls die DTM fur eineEingabe x nicht terminiert, setzen wir fM (x) = ⊥

Definition 2 Eine Funktion f : Σ∗ → Σ∗ ∪ ⊥ heißt DTM-berechenbar(oder auch rekursiv) falls es eine DTM M gibt mit fM = f .

Der alternative Begriff der Rekursivitat geht darauf zuruck, dass durch be-stimmte einfache Regeln (ohne ein Rechnermodell) eine Klasse von Funktio-nen entworfen werden kann, die genau der Klasse der DTM-berechenbarenFunktionen entspricht. Diese Regeln beinhalten auch rekursives Verschach-teln. Man kann dann formal zeigen, dass die Funktionenklassen identischsind. Wir verzichten hier auf die Einfuhrung dieser rekursiven Funktionen,wollen aber DTM-berechenbar und rekursiv als Synonym verwenden.

Bei Terminierung halt die Maschine in einem der Endzustande. Da wir es wiebereits erwahnt in der Komplexitatstheorie vorrangig mit Entscheidungspro-blemen zu tun haben, wird die Ausgabe 1 fur die Antwort Ja verwendet undauch als Akzeptieren bezeichnet. Wenn die Maschine terminiert und dasErgebnis nicht 1 ist (in der Regel 0) sprechen wir dann von Verwerfen (Ab-lehnen) und meinen damit auch die Antwort Nein. Bei Terminierung wird inder Regel das Eingabeband geloscht und die Antwort 1 oder 0 fur Akzeptie-ren bzw. Verwerfen(Ablehnen) in einem Endzustand aufs Band geschrieben.

2.2. BERECHNUNGEN UND BEISPIELE 9

Wie bereits erwahnt kann das Akzeptieren und Verwerfen(Ablehnen) auchexplizit uber entsprechende Zustande qa und qv geregelt werden.

Mit diesem Sprachgebrauch konnen wir festlegen, was es fur eine Maschineheißt, dass sie eine Sprache L ⊆ Σ∗ akzeptiert bzw. sogar entscheidet.

Definition 3 Sei M = (Σ, Q, δ, q0, F ) eine DTM.

Die Menge aller von M akzeptierten w ∈ Σ∗ ist die von M akzeptierteSprache L. Wir schreiben auch L = L(M).

Die DTM M entscheidet die von ihr akzeptierte Sprache L(M), falls M alleWorte, die nicht in L(M) liegen, ablehnt.

Umgekehrt konnen wir nun definieren, was es heißt, dass eine Sprache Lentscheidbar ist.

Definition 4 Eine Sprache L ⊆ Σ∗ heißt DTM-entscheidbar (oder rekur-siv), wenn es eine DTM M gibt, die die Sprache L entscheidet.

Entscheidungsprobleme konnen nun prinzipiell als Sprachen L verstandenwerden. Eine DTM lost dann ein Entscheidungsproblem L, wenn die Ma-schine die Sprache L entscheidet. Dazu betrachten wir nun ein paar expliziteBeispiele.

Beispiel 1: Wir betrachten die Sprache L = w|w1 ∈ 0, 1∗ aller Binar-worter, die mit einer 1 enden. Das Entscheidungsproblem fur L losen wirmit einer DTM M = 0, 1,#, $,t, q1, q2, q3, δ, q1, q3, wobei δ durchdie folgende Tabelle beschrieben wird.

Q 0 1 tq1 (q1, 0, 1) (q2, 1, 1) (q3, 0, 0)

q2 (q1, 0, 1) (q2, 1, 1) (q3, 1, 0)

Die Maschine liest sukzessive die Zeichen von links nach rechts und bleibtoder wechselt in den Zustand q1, wenn das gelesene Zeichen eine 0 war. Istdas zuletzt gelesene Zeichen eine 1, so verweilt oder wechselt die Maschine inden Zustand q2. Falls das Endymbol t des Wortes gelesen wird, konnen wiranhand des vorherigen Zustandes erkennen, welcher Buchstabe zuletzt gele-sen wurde und notieren die richtige Antwort (1 fur Zeichen 1 bzw. Zustandq2 und 0 fur Zeichen 0 bzw. Zustand q1). Ist das Band zu Beginn schon leer,hilft uns der Startzustand q1.

Eine Wechsel von Konfigurationen konnen wir nun beispielsweise wie folgtbeschreiben. Falls wir eine Eingabe 101 bearbeiten erhalten wir:

10 KAPITEL 2. TURINGMASCHINEN

q1101 ` 1q201 ` 10q11 ` 101q2 ` 101q31

Sinnvoll ist es, sich die Vorgehensweise einer DTM anhand eines Stufenpla-nes oder einer Idee zurechtzulegen und danach entsprechend umzusetzen.Ein spezielles Zeichen kann man sich leicht durch einen entsprechenden Zu-stand merken.

Beispiel 2: Ein Palindrom ist ein Wort w = w1w2 · · ·wn−1wn ist ein Wort,dass von hinten nach vorne gelesen wieder w ergibt, also wnwn−1 · · ·w2w1 =w. Isnbesondere ist wi = wn−i+1 fur i = 1, . . . , n. Gesucht ist eine DTM M ,die L = w ∈ 0, 1∗|w ist Palindrom entscheidet.

Unser Plan bzw. unsere Idee ist die Folgende. Hier haben wir die Zustandeebenfalls notiert.

1. Lese das erste Zeichen (rechts) in w im Zustand q0. Falls es ein t istnotieren wir das positive Ergebnis im Zustand q6.

2. Sonst merke Dir dieses Zeichen in einem Zustand q1 fur 0 oder q2 fur1 und ersetze das Zeichen durch ein t-Zeichen.

3. Gehe weiter nach rechts zum nachsten Zeichen, das ein t ist. Uberprufeob das vorherige Zeichen mit dem vorab gemerkten Zeichen uberein-stimmt, Zustand q3 fur 0 und Zustand q4 fur 1. Ersetze es im positivenFall durch einen t oder notiere das negative Ergebnis in Zustand q6.Falls gar kein Zeichen mehr da war (ungerade Anzahl) notiere daspositive Ergebnis in Zustand q6.

4. Im positiven Fall gehe durch Zustand q5 nach links zum ersten t Zei-chen und Zustand q0. Wiederhole Schritt 1.

Wir benotigen eine DTMM = 0, 1,#, $,t, q0, q1, q2, q3, q4, q5, q6, δ, q0, q6und verwenden eine Zustandsubergangsfunktion δ wie folgt:

Q 0 1 tq0 (q1,t, R) (q2,t, R) (q6, 1, N)

q1 (q1, 0, R) (q1, 1, R) (q3,t, L)

q2 (q2, 0, R) (q2, 1, R) (q4,t, L)

q3 (q5,t, L) (q6, 0, N) (q6, 1, N)

q4 (q6, 0, N) (q5,t, L) (q6, 1, N)

q5 (q5, 0, L) (q5, 1, L) (q0,t, R)

Beispielsweise geht der Ubergang von 0100 (kein Palindrom) wie folgt. Linkswird das Wort immer von $ begrenzt, rechts vom ersten t hinter dem Rest-wort.

2.2. BERECHNUNGEN UND BEISPIELE 11

q00100 ` tq1100 ` t1q100 ` t10q10 ` t100q1 ` t10q30 ` t1q50 ` tq510 `q5t10 ` tq010 ` ttq20 ` tt0q2 ` ttq40 ` ttq60

Manchmal ist es sinnvoll, beim Stufenplan die Zustande zunachst wegzulas-sen, um die allgemeine Idee zu verdeutlichen. Das ganze ist sehr ahnlich zumProgrammieren. Zunachst uberlegt man sich eine allgemeinen Vorgehens-weise, die dann durch die zur Verfugung stehenden Konstrukte umgesetztwerden.

Beispiel 3: Wir wollen eine DTM konstruieren, die die Sprache L =0n1n|n ≥ 1 entscheidet. Wir losen das Problem in zwei Schritten:

1. Stelle fest, ob die Eingabe von der Form 0i1j fur i ≥ 0 und j ≥ 1 ist.

2. Teste dann ob auch i = j gilt.

Fur die erste Phase benutzen wir die Zustande q0, q1, q2 und q3, wobei q2den erfolgreichen Ubergang in Phase 2. beschreibt und q3 als (negativer)Endzustand gedacht ist. Der Ubergang sieht wie folgt aus:

Q 0 1 tq0 (q0, 0, R) (q1, 1, R) (q3, 0, N)

q1 (q3, 0, N) (q1, 1, R) (q2,t, L)

Die Maschine lauft in dieser Phase von links nach rechts uber das Band undverbleibt in Zustand q0 solange Nullen gelesen werden. Wenn dieses Einlesenmit einem Blank endet wird das Wort verworfen. Endet die Phase mit einerEins, geht es in den Zustand q1. Wird hier eine Null gelesen, konnen wir dasWort ebenfalls verwerfen. Erst wenn wir nach dem Lesen lauter Einser aneinem Blank enden, ist klar, dass das Wort die gewunschte Form 0i1j furi ≥ 0 und j ≥ 1 hat und wir wechseln in die zweite Phase mit Zustand q2.

Fur die zweite Phase betrachten wir den folgenden Ubergang. Die Maschinesteht im Zustand q2 zu Beginn mit dem Kopf rechts und muss nun die Anzahlder Einsen mit der Anzahl der Nullen vergleichen. Analog zum vorherigenBeispiel loschen wir eine Eins, gehen zum linken Rand und loschen dorteine Null. Dann gehen wir wieder nach rechts und starten mit der Prozedurerneut. Falls irgendwann das Wort leer ist, sind wir fertig. Sonst fehlt unsentweder eine Eins auf der rechten Seite oder eine Null auf der linken Seite.In diesen Fallen verwerfen wir das Wort.

12 KAPITEL 2. TURINGMASCHINEN

Q 0 1 t $

q2 (q3, 0, N) (q4,t, L) (q3, 0, N)

q4 (q4, 0, L) (q4, 1, L) (q5,t, R) (q5, $, R)

q5 (q6,t, R) (q3, 0, N) (q3, 0, N)

q6 (q7, 0, R) (q7, 1, R) (q3, 1, N)

q7 (q7, 0, R) (q7, 1, R) (q2,t, L)

2.3 Erweiterte Programmiertechniken

Wie wir bereits an den vorangegangenen Beispielen gesehen haben, kann diekonkrete Beschreibung einer Turingmaschine und die Argumentation uberihre korrekte Arbeitsweise sehr muhsam sein. Im Folgenden wollen wir unsklar machen, dass wir mit dem Konzept der Turingmaschine sehr leicht auchStrukturen hoherer Programmiersprachen entwerfen konnen.

Wir hatten bereits festgestellt, dass wir uns durch das Verwenden speziellerZustande etwas merken konnen. Zum Beispiel ob eine 1 oder eine 0 gelesenwurde, siehe Beispiel 2. Im Prinzip haben wir dabei eine binare Variable miteinem Wert belegt. Das konnten wir auch direkt machen. Wir konnen eineZustandsraum Q leicht zu einen Zustandsraum Q′ = Q × 0, 1 erweiternund haben dann stets eine binare Variable zur Verfugung. Im Beispiel 2.hatten wir die Zustande (q1, 1) uns (q1, 0) statt q1 und q2 verwenden durfen.

Etwas allgemeiner konnten wir sogar einen endlichen Zahler mit Wertenzwischen 0 und k durch Q′ = Q × 0, . . . , k verwenden. Hierbei muss kallerdings eine feste Konstante sein, die nicht von der Eingabegroße abhangt.Es gibt namlich in der DTM nur endlich viele Zustande.

Analog konnen wir den folgenden Trick auf dem Eingabeband durch dieErweiterung des Bandalphabets verwenden. Statt eines einzelnen Zeichensverwenden wir ein Zeichentupel das vom Lese-/Schreibkopf vollstandig ge-lesen werden kann. Dadurch hat unsere Maschine quasi mehrere Spuren diegleichzeitig gelesen werden. In der Bandzelle steht also ein k-Tupel aus Zei-chen.

Beispiel fur mehrere Spuren: Wollen wir beispielsweise zwei Zahlenmiteinander addieren, so haben in Abschnitt 1.1 bereits erwahnt, dass wir dieZahlen b1 und b2 binarkodiert durch bin(b1)#bin(b2) auf das Band schreibenkonnen. Zur Berechnung wollen wir drei Spuren verwenden und deshalbVerwenden wir das Alphabet

Σ =

0, 1,#, $,

000

,

001

,

010

, . . . ,

111

2.3. ERWEITERTE PROGRAMMIERTECHNIKEN 13

mit insgesamt 12 Zeichen. Fur das Aufaddieren von 1101 und 1001 schreibenwir nun stattdessen

$

000

110

100

000

110

tauf das Band und das Ergebnis soll am Ende in der dritten Spur einge-tragen werden. Die Berechnung wird durch das klassische Additionsverfah-ren mit Ubertragen realisiert. Die Ubertrage konnen wir uns beispielsweisein Zustanden qj und qn merken. Zunachst bewegt die Maschine den Lese-/Schreibkopf auf das am weitesten rechts liegende Element. Dann realisierenwir den Ubergang zum Beispiel wie folgt:

000

110

100

000

qn

110

`

000

110

100

qj

000

110

`

000

110

qn

100

001

110

Als Ergebnis erwarten wir dann zunachst

q

001

110

101

001

110

fur einen Zwischenzustand q.

Mochte man dann das Ergebnis wieder rechts von einem Endzustand schrei-ben, muss die letzte Zeile noch entsprechend auf das Band ubertragen wer-den. Das bereitet aber prinzipiell keine Schwierigkeiten.

Wir konnen also simple Arithmetik auf der Maschine bequem durch mehre-re Spuren realisieren. Andere Konstrukte aus hoheren Programmiersprachenlassen sich ebenfalls nachbilden. Beispielsweise kann fur eine FOR-Schleifedie Anzahl der Schleifendurchlaufe auf die erste Spur geschrieben werdenund diese Zahl wird dann sukzessive inkrementiert. Oder aber, falls Unter-programme aufgerufen werden sollen, so kann ebenfalls dafur eine Spurdes Bandes reserviert werden, durch den ein Prozedurstack realisiert wer-den kann.

Insgesamt halten wir fest, dass wir mit Turing-Maschinen auch bekannteAlgorithmen wie das Sortieren von Zahlen oder das Traversieren vonGraphen im Prinzip umsetzen konnen.

14 KAPITEL 2. TURINGMASCHINEN

2.4 Mehrbandmaschinen und Simulation

Anschließend wollen wir die Turingmaschinen etwas erweitern und erlau-ben mehrere Lese-/Schreibkopfe, die sich sogar jeweils in unterschiedlicheRichtungen bewegen durfen. Dadurch lassen sich viele Programme einfacherformulieren. Beispielsweise konnen einzelne Bander fur die Eingabe oder dieAusgabe reserviert werden. Es wird sich zeigen, dass diese k-Band Turing-maschinen nicht machtiger sind als eine einfache 1-Band Maschine.

Definition 5 Eine deterministische k-Band Turingmaschine (k-Band DTM)M ist eine Verallgemeinerung der DTM mit k statt einem Band. Jedes Bandhat einen unabhangigen Lese-/Schreibkopf. Das erste Band wird als Ein-gabeband verwendet. Die verbleibenden k − 1 Bander sind zu Beginn mitt-Zeichen gefullt. Die Kopfe stehen zu Beginn jeweils auf der ersten Zellenach dem $ Zeichen.

Die Zustandsubergangsfunktion ist nun von der Form:

δ : Q× Σk → Q× Σk × −1, 1, 0k .

Die Funktionsweise der Maschine sowie die Laufzeit und der Speicherplatz-bedarf sind analog.

Auch bei der k-Band Maschine hat man etwas Gestaltungsspielraum. Haufigwird verlangt, dass das Ergebnis der Berechnung am Ende auch auf das ersteBand geschrieben wird, die anderen Bander geloscht werden und die Kopfein die Ausgangsposition zuruckkehren. Im folgenden Beispiel wollen wir dasso realisieren.

Beispiel 2-Band DTM: Wir wollen die Nachfolgefunktion f(x) = x+ 1fur alle x ∈ IIN berechnen. Die Idee der 2-Band Maschine M ist die Folgende:

• Kopiere Band 1 auf Band 2. Losche Band 1.

• Addiere binar 1 zum Inhalt von Band 2 von rechts nach links. Ubertragdurch qj , kein Ubertrag durch qn.

• Falls am Ende qj , schreibe 1 auf Band 1.

• Hange Inhalt von Band 2 an Band 1. Losche Band 2.

• Bringe die Kopfe nach vorne.

Wir benutzen zur konkreten Beschreibung eine etwas andere Tabellenschreib-weise die selbsterklarend ist.

2.4. MEHRBANDMASCHINEN UND SIMULATION 15

Band 1 auf Band 2 kopieren und Band 1 loschen.

q z1 z2 q′ z′1 z′2 m1 m2

q0 0/1 t q0 t 0/1 1 1

q0 t t q1 t t −1 −1

Kopf 1 nach links, Kopf 2 bleibt rechts.

q z1 z2 q′ z′1 z′2 m1 m2

q1 t 0/1 q1 t 0/1 −1 0

q1 $ 0/1 qj $ 0/1 1 0

Addiere 1 zu Band 2, qj Ubertrag, qn kein Ubertrag.

q z1 z2 q′ z′1 z′2 m1 m2

qj t 1 qj t 0 0 −1

qj t 0 qn t 1 0 −1

qn t 0/1 qn t 0/1 0 −1

qn t $ q4 t $ 0 −1

Falls am Ende qj (dann Input 111 . . . 1), schreibe fuhrende 1 auf Band 1.

q z1 z2 q′ z′1 z′2 m1 m2

qj t $ q4 1 $ 1 1

Hange Band 2 an Band 1 an. Losche Band 2.

q z1 z2 q′ z′1 z′2 m1 m2

q4 t 0/1 q4 0/1 t 1 1

q4 t t q5 t t −1 −1

Kopf 1 nach links und Kopf 2 nach links.

q z1 z2 q′ z′1 z′2 m1 m2

q5 0/1 t q5 0/1 t −1 0

q5 $ t q6 $ t 1 0

q6 0/1 t q6 0/1 t 0 −1

q6 0/1 $ q7 0/1 $ 0 1

Da wir nun die Funktionsweisen der jeweiligen Maschinen kennen, wollenwir zeigen, dass die Maschinen die gleichen Funktionen berechnen konnen.

16 KAPITEL 2. TURINGMASCHINEN

Dafur verwenden wir den Begriff der Simulation. Wir simulieren die Vor-gehensweise einer k-Band Maschine auf einer 1-Band Maschine. Das heißt,jeder Rechenschritt der k-Band Maschine wird auf der 1-Band Maschinenachgebildet. Die Laufzeit andert sich dadurch allerdings entsprechend.

Theorem 6 Eine k-Band DTM M , die mit Rechenzeit t(n) und Platz s(n)auskommt, kann durch eine 1-Band DTM M ′ mit Rechenzeit O(t2(n)) undSpeicherplatz O(s(n)) simuliert werden.

Wird die Sprache L ⊆ Σ∗ von einer k-Band DTM entschieden (akzeptiert),so gibt es auch eine 1-Band DTM, die die Sprache L entscheidet (akzeptiert).

Beweis. Die DTM M ′ verwendet statt k Bander 2k Spuren, derart, dass

• die ungeraden Spuren 1, 3, . . . , 2k− 1 enthalten den Inhalt der Bander1, . . . , k von M .

• in den geraden Spuren 2, 4, . . . , 2k wird die Kopfposition von M aufden Bandern 1, . . . , k durch das Zeichen # festgehalten.

Die Abbildung 2.3 zeigt eine Momentaufnahme der Simulation einer 3-BandMaschine durch eine 1-Band Maschine mit 6 Spuren. Wir nutzen aus, dassk eine feste Konstante ist.

Simulation eines Rechenschrittes:

1. Der Kopf vom M ′ steht auf dem linkesten #-Zeichen. Der Zustandvon M ist bekannt.

2. Die Maschine lauft zum rechtesten #-Zeichen. Wir merken uns die An-zahl der uberschrittenen #-Zeichen durch eine Zustandserweiterung(Zahler, Q′ = Q × 1, . . . , k). Außerdem werden sich die dabei gele-senen k Zeichen und das jeweilige Band durch eine weitere Zustand-serweiterung (· · · × Σk) gemerkt, siehe dazu auch die Abbildung 2.3.

3. Am rechtesten # angekommen, kennt die Maschine M ′ den Bandinhaltund den Zustand der Maschine M . Die Ubergangsfuktion von M kanndann ausgewertet werden. Die Maschine M ′ weiß nun bereits, wie dieSpuren zu andern sind. Die Ubergangsfunktion vom M ist eindeutig.

4. Der Kopf der Maschine M ′ lauft zuruck und manipuliert dabei lokaldie Werte auf den Bandern gemaß der Ubergangsfunktion von M . Da-bei werden auch die # Positionen entsprechend verschoben. Das wirdin der Ubergangsfunktion von M ′ festgelegt. Lokal werden dazu (furdie Verschiebung der #-Zeichen) nur konstant viele Hin-und-Her Be-wegungen gebraucht, die durch eine konstante Anzahl von Zustande

2.4. MEHRBANDMASCHINEN UND SIMULATION 17

$ a tt

$ b c tt

$ tt

ttb b b

b b b

t

c

c c c

a a

a

a a a a

ab

b

b

$ tt$ b c tt

$ tt

tb b b

t

c

c c c

a

a a a a

ab

b

$ a ttttb b ba ab

# ttttttt

$ ttt#tttttt

$ ttt# tttt

t

tt t

M

M ′

Abbildung 2.3: Die Maschine M ′ simuliert die Maschine M . Falls Msich im Zustand q befindet, befindet sich M ′ nach dem Durchlaufzum rechtesten # beispielsweise im Zustand (q, 3, (b, a, c)) und simu-liert dann den Ubergang von M durch einen Durchlauf nach links. Fallδ(q, (b, a, c)) = (q′, (b, a, a), (0, 0, 1)) gilt, muss die Ubergangsfunktion δ′

von M ′ sicherstellen, dass beim Durchlauf nach links auf der funftenSpur der Buchstabe c durch a uberschrieben und dann das #-Zeichenauf der sechsten Spur nach rechts verschoben wird. Das kann beispiels-weise durch einen lokalen Ubergang δ′((q′, 2, (b, a, c)), (·, ·, ·, ·, c,#)) =((q′(r,6), 1, (b, a, c)), (·, ·, ·, ·, a,t), 1) realisiert werden, wobei q′(r,6) festhalt, dasgleich nur ein Blank auf der sechsten Spur durch ein # ersetzt wird unddann nach links weitergegangen wird, wobei dann wieder in den Zustand(q′, 1, (b, a, c)) gewechselt wird, der auf das letzte t-Zeichen wartet.

18 KAPITEL 2. TURINGMASCHINEN

realisiert werden. Von rechts kommend wird ein Zeichen # mit seinerPosition gelesen und bevor wir weiter nach links gehen muss das Zei-chen ggf. noch nach rechts verschoben werden. Siehe dazu auch dieAbbildung 2.3 und das in der Bildunterschrift angegebene Beispiel.

5. Am Ende steht der Kopf der Maschine M ′ wieder am linkesten #-Zeichen und kennt den aktuellen Zustand von M . Der nachste Schrittkann simuliert werden.

Alles, was sich die Maschine M ′ hierbei merken musste, hangt nicht von derLange des aktuell vorhandenen Bandinhaltes vom M ab, sondern nur vonk. Also konnen wir uns alle O(k) Informationen in einem Zustand von M ′

merken. Die Zustandsmenge erhoht sich insgesamt auch nur endlich, das istaber kein Effizienzkriterium an dieser Stelle. Die Anzahl der Zustande hangtaber nicht von der Anzahl der Rechenschritte ab. Fur einen in M verwendeteZustand mussen wir einige zusatzliche Zustande generieren, deren Anzahlvon k und Σ abhangen. Das gilt auch fur die oben beschriebenen lokalenHin-und-Her Bewegungen.

Fur die Laufzeitanalyse ist eigentlich nur wichtig, wie viele Bewegungen derKopf der 1-Band Maschine in einem Rechenschritt macht. Im wesentlichenlauft der Kopf (abgesehen von maximal k vielen lokalen Hin-und-Her Laufen)zweimal zwischen den beiden am weitesten entfernten #-Zeichen hin undher. Falls d die Anzahl der Bandzellen zwischen den am weitesten entferneten#-Zeichen ist, betragt die Laufzeit eines Schrittes vom M ′ somit O(d).

Wie weit konnen die #-Zeichen also auseinander liegen? Nach t Rechen-schritten konnen sich je zwei #-Zeichen maximal 2t voneinander entfernthaben. Jede Markierung kann sich in einem Schritt nur um eine Zelle nachlinks oder rechts bewegen. Der Abstand ist also direkt mit der Laufzeit ver-bunden. Fur t(n) Schritte der Maschine M kann die Machine maximal t(n)-mal C × t(n) Arbeitsschritte gemacht haben. Folglich hat M ′ die LaufzeitO(t2(n)).

Die Maschine M ′ benotigt nicht mehr als O(s(n)) Bandzellen, da fur jedeBandzelle, die M ′ besucht, auch mindestens eine Bandzelle aus M gehort,man bedenke, dass k konstant ist. 2

2.5 Universelle Turingmaschine

Die Turingmaschinen die wir bislang betrachtet haben wurden stets zurspeziellen Losung genau eines festen Problems formuliert. Diese speziali-sierte Vorgehensweise entspricht der Historie. Zunachst wurden im Umfeldvon Alan Turing durch den Einsatz der ersten Rechner sehr spezielle (mi-litarische) Aufgaben gelost. Beispielsweise war Turing an der Dechiffrie-

2.5. UNIVERSELLE TURINGMASCHINE 19

rung des ENIGMA-Codes beteiligt. Auch die ersten Maschinen von Zusein Deutschland bearbeiteten spezielle (teilweise militarische) Problemstel-lungen.

Heutige Rechnern lassen sich beliebig programmieren. Die Eingabe bestehtsomit aus einem Programm (eine spezielle Maschine) und einer Eingabe furdas die Maschine. Es lassen sich beliebige Maschinen und Eingaben verar-beiten. In diesem Sinne sind heutige Rechner universell.

Wir wollen nun auch diese universellen Rechner durch Turingmaschinen for-malisieren. Dazu benotigen wir eine eindeutige Beschreibung einer einzelnenspeziellen Maschine mit seiner Eingabe.

Genau genommen wird unsere universelle Turingmaschine U die Arbeit einerbeliebigen Maschine M und mit einer Eingabe w simulieren.

Wir betrachten ohne Einschrankung eine 1-Band Turingmaschine mit nZustanden q1, q2, . . . , qn wobei q1 der Startzustand und qn der Endzustandist. Insgesamt gibt es also n− 1 signifikante Zustande.

Zunachst werden wir einen binaren String 〈M〉w kodieren, der die MaschineM und die Eingabe w ∈ 0, 1∗ eindeutig charakterisiert. Diesen Vorgangnennt man Godelnummerierung.

Definition 7 Als Godelnummerierung bezeichnen wir eine injektive Abbil-dung aus der Menge der DTMs in die Menge 0, 1∗.

Wir stellen eine Godelnummerierung vor und mussen dabei im wesentlichendie Ubergangsfunktion kodieren. Implizit ist dadurch auch die Anzahl derZustande gegeben.

Wir beschranken uns auf die 5 Zeichen x1 = 0, x2 = 1, x3 = t x4 = $ undx5 = # und die Bewegungen b1 = 1, b2 = −1 und b3 = 0. Fur n Zustandeq1, q2, . . . , qn sei q1 der Startzustand und qn der einzige Endzustand. Ins-gesamt gibt es also n− 1 signifikante Zustande.

Der Kodierungsstring startet und endet mit der Ziffernfolge 111, die Ubergangewerden durch Strings 11 getrennt. Jeder Ubergang δ(qi, xj) = (qk, xl, bm)wird durch den Binarstring 0i 1 0j 1 0k 1 0l 1 0m kodiert. Die Ubergangewerden durchnummeriert und code(i) beschreibt die Binarkodierung des i-ten Ubergangs. Eine Turingmaschine M wird dann durch

〈M〉 := 111 code(1) 11 code(2) 11 · · · 11 code(s) 111

eindeutig kodiert.

Beispiel: Die Sprache L = w|w1 ∈ 0, 1∗ aller Binarworter, die mit ei-ner 1 enden wurde durch die DTMM = 0, 1,#, $,t, q1, q2, q3, δ, q1, q3mit Ubergangen δ durch die folgende Tabelle beschrieben.

20 KAPITEL 2. TURINGMASCHINEN

Q 0 1 tq1 (q1, 0, 1) (q2, 1, 1) (q3, 0, 0)

q2 (q1, 0, 1) (q2, 1, 1) (q3, 1, 0)

In der Tabelle wurden nur die relevanten Ubergange dargestellt. Da dieMaschine zu Beginn das erste Zeichen rechts vom $-Zeichen liest, wird dasZeichen $ nie gelesen.

Die Kodierung der Ubergange geht nun wie folgt:

Nummer i des Ubergangs Ubergang i code(i)

1 δ(q1, 0) = (q1, 0, 1) 0 1 0 1 0 1 0 1 0

2 δ(q1, 1) = (q2, 1, 1) 0 1 00 1 00 1 00 1 0

3 δ(q1,t) = (q3, 0, 0) 0 1 000 1 000 1 0 1 000

4 δ(q2, 0) = (q1, 0, 1) 00 1 0 1 0 1 0 1 0

5 δ(q2, 1) = (q2, 1, 1) 00 1 00 1 00 1 00 1 0

3 δ(q2,t) = (q3, 1, 0) 00 1 000 1 000 1 00 1 000

Die Maschine wird nun durch

〈M〉 = 111 0 1 0 1 0 1 0 1 0 11 0 1 00 1 00 1 00 1 0 11

0 1 000 1 000 1 0 1 000 11 00 1 0 1 0 1 0 1 0 11

00 1 00 1 00 1 00 1 0 11 00 1 000 1 000 1 00 1 000 111

kodiert.

Ubungsaufgabe: Zeigen Sie, dass es sich bei der oben angegebenen Kodierungum eine Godelnummerierung handelt.

Definition 8 Eine Turingmaschine MU heißt universell, falls fur jede 1-Band DTM M und fur jedes w ∈ 0, 1∗ gilt:

• MU gestartet mit 〈M〉w halt genau dann, wenn M gestartet mit whalt.

• Falls M gestartet mit w halt, dann berechnet MU gestartet mit 〈M〉wdie gleiche Ausgabe wie M gestartet mit w.

Theorem 9 Es existiert eine universelle Turingmaschine MU .

Beweis. Wir geben MU als 3-Band Turingmaschine an, die die Arbeitsweisejeder beliebigen Maschine M mit Eingabe w simuliert.

Dazu wird zunachst uberpruft, dass es sich bei 〈M〉w um eine korrekteTuringmaschine mit korrekter Eingabe handelt. Der String 〈M〉w steht aufdem ersten Band und wird mit der Turingmaschine uberpruft.

2.5. UNIVERSELLE TURINGMASCHINE 21

• Zunachst wird gepruft ob zwei Teilfolgen 111 existieren, die ein Wortw′ einschließen, dass keine Teilfolge 111 enthalt und mit 0 beginnt undendet. Dann wird gepruft, ob nach dem zweiten Vorkommen von 111ein Wort w ∈ 0, 1∗ steht. Falls keine solche zwei Substrings existierenoder das Wort w nicht die entsprechende Form hat, wird das gesamteWort verworfen.

• Zwischen den ersten beiden Teilfolgen der Form 111 wird gepruft obzwischen je zwei Teilfolgen 11 jeweils ein String 0i 1 0j 1 0k 1 0l 1 0m

mit i, j, k, l,m ≥ 1 steht, also mit 4 Einsen und zwischen den Einsenwiederum eine positive Anzahl an Nullen.

• Falls die obigen Anforderungen erfullt sind, hat der String das richtigeFormat. Nun uberprufen wir noch, ob die Ubergange die richtige Formhaben. Zum Beispiel soll nach dem Lesen von $ der Kopf nicht nachlinks gehen durfen. Das heißt, in einem String 0i 1 0j 1 0k 1 0l 1 0m

mit j = 4 darf nicht m = 2 sein.

Es ist leicht einzusehen, dass es eine Turingmaschine gibt, die alle notwen-digen Uberprufungen durchfuhrt. Der Zeitbedarf liegt in O(n), wenn n dieLange der Eingabe 〈M〉w ist.

Nun kopieren wir den String 〈M〉 auf das zweite Band und schreiben wlinksbundig auf das erste Band. Alle Kopfe rucken nach links. Wir verwendenfolgende Idee:

• Band 1 simuliert die Maschine M .

• Band 2 enthalt 〈M〉.

• Band 3 speichert den aktuellen Zustand von M .

Zur Simulation eines Schrittes von M durch MU wird wie folgt realisiert.

• Auf Band 1 wird aktuell ein Zeichen gelesen.

• Auf Band 3 wird der Zustand gelesen.

• Auf Band 2 wird der entsprechende Ubergang gesucht.

• Die Inschrift auf Band 1 wird gemaß Ubergang aktualisiert.

• Der Kopf auf Band 1 wird gemaß Ubergang geandert.

• Der Zustand auf Band 3 wird gemaß Ubergang geandert.

• Kopfe von Band 2 und 3 kehren zuruck auf die Ausgangsposition(links).

22 KAPITEL 2. TURINGMASCHINEN

Die Laufzeit eines solchen Schrittes ist proportional zur Große der Eingabe〈M〉. 2

Die Simulation kann naturlich auch durch eine 1-Band DTM erfolgen, da wirin Theorem 6 gezeigt haben, dass jede k-Band Maschine durch eine 1-BandMaschine simuliert werden kann.

Kapitel 3

Berechenbarkeit

Nachdem wir uns im vorherigen Abschnitt mit einem konkreten Maschinen-modell befasst haben, wollen wir uns nun uberlegen, was mit diesem Modellprinzipiell berechnet werden kann und wie machtig das betrachtete Kon-zept insgesamt ist. Den Begriff der Berechenbarkeit oder Entscheidbarkeitwerden wir wiederum uber die Sprachen fuhren.

Zunachst prazisieren wir nochmal den Unterschied zwischen dem Akzeptie-ren einer Sprache und dem Entscheiden einer Sprache. Danach betrach-ten wir strukturelle Eigenschaften der entsprechenden Sprachen. Mittels derGodelnummerierung konnen wir Eigenschaften von Turingmaschinen auchunter dem Aspekt von entscheidbaren oder rekursiv aufzahlbaren Sprachenuntersuchen.

Danach werden wir feststellen, dass es Sprachen gibt, die nicht entscheid-bar sind. Das wichtiges Beispiel ist dabei das sogenannte Halteproblem. DieSprache

H := 〈M〉x|M ist DTM , die bei Eingabe von x haltist nicht entscheidbar.

Außerdem betrachten wir noch eine alternative Beschreibung eines Rechners,die sich als aquivalent herausstellen wird. Insgesamt fuhrt uns dass zu derThese, dass die im intuitiven Sinne berechenbaren Funktionen genau dieFunktionen sind, die auch eine Turingmaschine berechnen kann (Church-Turing These).

3.1 Entscheidbare und rekursiv aufzahlbare Spra-chen

Wir hatten zwar bereits den Begriff DTM-entscheidbar definiert, greifendiesen Ausdruck hier aber nochmal auf und gehen etwas genauer auf den

23

24 KAPITEL 3. BERECHENBARKEIT

Unterschied zwischen akzeptieren und entscheiden ein.

Definition 10 Sei Σ eine endliche Menge und L ⊆ Σ∗.

• Die Sprache L heißt rekursiv aufzahlbar genau dann, wenn es eineDTM gibt, die L akzeptiert.

• Die Sprache L heißt entscheidbar genau dann, wenn es eine DTMgibt, die L entscheidet.

Nach Theorem 6 konnen wir in der obigen Definition beliebige Mehrband-maschinen verwenden. Wie bereits erwahnt wird entscheidbar gelegentlichauch rekursiv genannt. Fur eine Sprache L ⊆ Σ∗ sei L := Σ∗ \ L die Kom-plementarsprache von L.

3.2 Eigenschaften entscheidbarer und rekursiv aufzahl-barer Sprachen

In diesem Abschnitt wollen wir zeigen, inwieweit die Begriffe entscheidbarund rekursiv aufzahlbar abgeschlossen bezuglich klassischer Mengenopera-tionen wie Schnitt, Vereinigung und Komplementbildung sind. Diese Eigen-schaften wollen wir dann beispielsweise fur die sprachliche Betrachtung vonTuringmaschinen verwenden.

Lemma 11 Seien L1 und L2 entscheidbare Sprachen, dann gilt:

1. L1 ∩ L2 ist entscheidbar

2. L1 ∪ L2 ist entscheidbar

3. L ist entscheidbar

Beweis.

Zu 1.: Seien M1 = (Σ1, Q1, δ1, q1, F1) und M2 = (Σ2, Q2δ2, q

2, F2) diejeweiligen 1-Band DTMs, die L1 und L2 entscheiden. Wir konstruieren eine2-Band DTM M , die L1 ∩ L2 entscheidet. Die Maschine arbeitet wie folgt:

• Bei Eingabe von w wird das Verhalten von M1 auf Band 1 simuliertund das Verhalten von M2 auf Band 2.

• Falls M1 und M2 das Wort w akzeptieren, so auch M . Sonst wird dasWort verworfen.

3.2. EIGENSCHAFTEN 25

Konkreter mussen wir dazu zunachst die Eingabe w auch auf das zweiteBand kopieren. Dazu benotigen wir ein paar extra Zustande. Daruberhinausenthalt die Maschine M die Zustandsmenge Q1 × Q2. Die Zustandsuber-gangsfunktion δ vonM fur die Simulation kann konkret wie folgt beschriebenwerden. Fur q1 ∈ Q1, q2 ∈ Q2, a1 ∈ Σ1, a2 ∈ Σ2 und d1, d2 ∈ 1,−1, 0 seiδ((q1, q2), a1, a2) := ((p1, p2), b1, b2, d1, d2), falls δ1(q1, a1) = (p1, b1, d1) undδ1(q2, a2) = (p2, b2, d2) gilt.

Ein paar weitere Regeln und Zustande sind notwendig, wenn M1 oder M2

in einen akzeptierenden oder ablehnenden Zustand halt und die andere Ma-schine noch weiterlaufen muss. Abschließend akzeptiert M das Wort w, fallsbei der Simulation, sowohl M1 als auch M2 das Wort akzeptieren. Sonst wirddas Wort verworfen.

Zu 2.: Leichte Ubungsaufgabe fur den Leser.

Zu 3.: Sei M = (Σ, Q, δ, q, F ) die Maschine, die L entscheidet. Fur Mandern wir lediglich die Ausgabe fur die akzeptierenden Endzustande auf 0und fur die ablehnenden Endzustande auf 1.

Da M auf jeder Eingabe halt, halt auch M auf jeder Eingabe und akzeptiertgenau die Worter aus Σ∗, die M verwirft. 2

Lemma 12 Seien L1 und L2 rekursiv aufzahlbare Sprachen, dann gilt:

1. L1 ∩ L2 ist rekursiv aufzahlbar

2. L1 ∪ L2 ist rekursiv aufzahlbar

Beweis. Der Beweis kann analog wie in Lemma 11 gefuhrt werden. DerUnterschied ist lediglich, dass beispielsweise eine Maschine Mi, die simuliertwird, nicht zwangslaufig halten muss. In diesem Fall halt beispielsweise beimSchnitt, die simulierende Maschine ebenfalls nicht. Bei der Vereinigung darfdie simulierende Maschine halten, wenn eine der simulierten Maschinen Mi

halt. 2

Jetzt wollen wir die intuitive Beziehung zwischen rekursiv aufzahlbar undentscheidbar formalisieren.

Lemma 13 L ist genau dann entscheidbar, wenn L und L rekursiv aufzahlbarsind.

Beweis. ”⇒”: Es ist zu zeigen, dass L und L rekursiv aufzahlbar sind.Dass L rekursiv aufzahlbar ist, ist trivial, da entscheidbar die strengere

26 KAPITEL 3. BERECHENBARKEIT

Eigenschaft ist. Nach Lemma 11 (3.) ist auch L entscheidbar und somitebenfalls rekursiv aufzahlbar.

”⇐”: Seien hier M1 und M2 die zugehorigen 1-Band DTMs, die L respektiveL akzeptieren. Wir lassen M1 und M2 wie im Beweis von Lemma 11 (1.)parallel laufen. Die zugehorige Maschine M halt in jedem Fall fur mindestenseine simulierte Maschine in einem akzeptierenden Zustand, da jede Eingabew entweder zu L oder L gehort. Falls die Maschine M1 akzeptiert, akzeptiertM das Wort und halt. M verwirft das Wort und halt, falls die Maschine M2

das Wort akzeptiert. 2

Eine weitere Folgerung ist:

Lemma 14 Ist L nicht entscheidbar, dann ist auch L nicht entscheidbar.

Beweis. Der Beweis ergibt sich durch Umkehrung aus Lemma 11 (3.).

Ubungsaufgabe: Fuhren Sie einen Widerspruchsbeweis explizit uber DTMs.

2

3.3 Turingmaschinen-Eigenschaften als Sprachen

Insbesondere durch die eindeutige Kodierung von Turingmaschinen und mit-tels der Verwendung der universellen Turingmaschine MU konnen wir auchdie Eigenschaften von Turingmaschinen durch die Begriffe entscheidbar undrekursiv aufzahlbar bequem charakterisieren. Als Beispiele verwenden wirhier das Halteproblem H. Etwas einfacher ist folgendes Problem Z.

Z := 〈M〉n|M ist eine DTM mit mindestens n Zustanden

Lemma 15 Die Sprache Z ist entscheidbar.

Beweis. In einem ersten Schritt wird uberpruft, ob das Wort 〈M〉n derKodierung einer Turingmaschine mit angehangten binar kodierten n ∈ IINentspricht. Falls das nicht der Fall sein sollte, wird das Wort verworfen.Ansonsten uberprufen wir im String 〈M〉 ob es dort n − 1 verschiedeneZustande gibt. Der Endzustand wird bekanntlich nicht kodiert. Dazu mussin den 11 getrennten Strings, jeweils die Anzahl der Nullen im Zustandsteilgezahlt werden, das Maximum gespeichert und mit n−1 verglichen werden.

2

Ein Ziel unserer Betrachtungen wird es sein, zu zeigen, dass das aus prakti-schen Sicht sehr wichtige Halteproblem nicht entscheidbar ist, die zugehorigeSprache laßt sich allerdings rekursiv aufzahlen.

Lemma 16 Die Sprache H ist rekursiv aufzahlbar.

3.4. EXISTENZ UNENTSCHEIDBARE PROBLEME 27

Beweis. Wir konstruieren eine DTM M und verwenden dabei intern als Un-terprogramm die universelle TuringmaschineMU , die stets zunachst uberpruft,ob der String einer Kodierung entspricht. Die Vorgehensweise ist somit wiefolgt:

• Simuliere M mit Eingabe x gemaß Beweis von Theorem 9 mittels MU .Falls die Eingabe nicht die Form w = 〈M〉x hatte, lehnt die Maschinedas Wort ab.

• Falls die Maschine MU die Eingabe 〈M〉x (und damit M die Eingabex) verwirft oder akzeptiert, akzeptiere 〈M〉x.

Zu zeigen ist, dass M nur die Worter akzeptiert, die in H liegen. Falls w ∈ Hgilt, halt die Maschine M fur die Eingabe x (akzeptieren oder verwerfend)und somit halt auch M fur die Eingabe 〈M〉x und akzeptiert das Wort w.Falls w 6∈ H gilt, dann halt M fur die Eingabe x nicht und somit terminiertauch die Maschine M fur die Eingabe 〈M〉x nicht. 2

3.4 Existenz unentscheidbare Probleme

Zunachst wollen wir nun zeigen, dass es tatachlich Sprachen gibt. die nichtentscheidbar sind. Das Ergebnis werden wir dann fur unser wichtiges Pro-blem H verwenden. Die Tatsache, dass es nicht entscheidbare Sprachen gibt,werden wir uber ein Abzahlargument fuhren.

Definition 17 Eine Menge M heißt abzahlbar, falls es eine surjektive Ab-bildung f : IIN→M gibt. Nicht abzahlbare Mengen heißen uberabzahlbar.

Jede endliche Menge ist abzahlbar. Jede surjektive Abbildung f : IIN →M liefert automatisch eine Nummerierung der Menge M . Dabei lassen wirdoppelte Vorkommen aus M einfach weg. Bei unendlichen Mengen M liefertdie surjektive Abbildung f : IIN → M eine laufende Nummerierung derMenge M . Mathematisch gesehen erhalten wir so eine Bijektion f ′ zwischenIIN und M . Dann spricht man auch von einer abzahlbar unendlichen MengeM . In diesem Sinne sind dann M und IIN dann gleichmachtig.

Beispiele:

• Die Menge aller rationalen Zahlen IQ abzahlen. Dazu benutzen wir bei-spielsweise zunachst eine surjektive Abbildung durch Paare

(1, 01), (2, 11), (3,−11), (4, 12), (5,−1

2), (6, 22), (7,−22), (8, 21), (9,−2

1),

(10, 13), (11,−13), (12, 23), (13,−2

3), (14, 33) . . . und zahlen dann tatsachlichnur die nicht vollstandig gekurzten Bruche, also

(1, 01), (2, 11), (3, 12), (4,−12), (5, 13), . . .

28 KAPITEL 3. BERECHENBARKEIT

• Die Menge der Worter uber 0, 1 ist abzahlbar unendlich, eine nat-urliche Aufzahlung ist:

0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100, 101, 110, 111, 1000, . . .

• Die Menge aller Turingmaschinen ist abzahlbar unendlich, weil wir dieMaschinen durch ihre Godelnummern beschreiben konnen und es sichdabei um eine Teilmenge von 0, 1∗ handelt.

Wir betrachten die Menge aller Abbildungen f : IIN→ 0, 1 und bezeichnendiese mit 0, 1IIN.

Theorem 18 Die Menge 0, 1IIN ist uberabzahlbar.

Beweis. Offensichtlich ist 0, 1IIN unendlich. Angenommen, die Menge 0, 1IINsei abzahlbar unendlich, dann gibt es eine Bijektion ϕ : IIN → 0, 1IIN, diejedem n ∈ IIN eine Funktion fn : IIN → 0, 1 zuordnet. Wir schreiben danndie abzahlbar vielen Funktionen und die Funktionswerte abgezahlt in eineTabelle. Fur die Nummerierung verwenden wir eine nach Annahme existie-rende Bijektion zwischen IIN und 0, 1IIN.

f1(1) f1(2) f1(3) f1(4) f1(5) . . .f2(1) f2(2) f2(3) f2(4) f2(5) . . .f3(1) f3(2) f3(3) f3(4) f3(5) . . .f4(1) f4(2) f4(3) f4(4) f4(5) . . .f5(1) f5(2) f5(3) f5(4) f5(5) . . .

......

......

... . . .

Nun definieren wir eine Funktion fdiag aus 0, 1IIN mit

fdiag(i) :=

0 falls fi(i) = 11 falls fi(i) = 0

Falls 0, 1IIN abzahlbar ist, so gibt es ein k mit fk = fdiag. Andererseits ist

aber fk(k) 6= fdiag(k). Die Bijektion kann nicht existieren. Ein Widerspruch,

0, 1IIN ist uberabzahlbar. 2

Den obigen Trick im Beweis nennt man auch Diagonalisierungstrick. Wirkonnen jetzt auch leicht zeigen, dass die Potenzmenge (Menge aller Teil-mengen) von IIN, kurz P (IIN) ebenfalls uberabzahlbar ist.

Lemma 19 Die Menge P (IIN) ist uberabzahlbar.

3.5. KONKRETE UNENTSCHEIDBARE PROBLEME 29

Beweis. Es existiert eine einfache Bijektion zwischen P (IIN) und 0, 1IIN.Fur jedes f in 0, 1IIN sei Mf = j|f(j) = 1. Offensichtlich existiert zujedem f aus 0, 1IIN genau ein Mf und umgekehrt. 2

Genauso gilt die folgende Aussage bezuglich aller Sprachen uber 0, 1.

Lemma 20 Die Menge aller Sprachen uber 0, 1 ist uberabzahlbar.

Beweis. Jede Sprache uber 0, 1 ist eine binar kodierte Teilmenge von IINund umgekehrt. Also gibt es eine einfache Bijektion zwischen P (IIN) und derMenge der Sprachen uber 0, 1. 2

Jetzt ziehen wir den finalen Schluss. Da die Menge aller Turingmaschinenabzahlbar unendlich ist, die Menge aller Sprachen uber 0, 1 aber nicht, gibtes mehr Sprachen als Maschinen und deshalb muss es zwangslaufig Sprachengeben, die nicht entschieden werden konnen.

Theorem 21 Es existieren Sprachen, die unentscheidbar sind.

3.5 Konkrete unentscheidbare Probleme

Wir wollen den obigen Trick der Diagonalisierung zu Nutze machen, umkonkrete unentscheidbare Probleme zu konstruieren. Aus der obigen Be-trachtung wissen wir bereits, dass wir die Menge der Turingmaschinen unddie Menge der Worter uber 0, 1 abzahlen konnen. Fur die Menge 0, 1∗ istbereits eine konkrete Aufzahlung durch die Binarkodierung gegeben. DassWort wi sei somit die Binarkodierung von i. Wir wollen auch die Turing-maschinen aufzahlen. Dazu verwenden wir die Godelnummerierungen derMaschinen. Falls bin(i) keine Kodierung einer Turingmaschine ist, verwen-den wir eine einfache Maschine MR, die alle Worter ablehnt und nur dasleere Wort akzeptiert.

Sei also

Mi =

M falls bin(i) Godelnummer von M istMR falls bin(i) keine Godelnummer ist

(3.1)

Wir betrachten die folgende Diagonalsprache:

Diag := w ∈ 0, 1∗|w = wi und Mi akzeptiert winicht

Konkret ist das i-te Wort aus 0, 1∗ in Diag enthalten, falls es von deri-ten Maschine Mi nicht akzeptiert wird. Die Zugehorigkeit der Worter wizu Diag konnen wir aus der Diagonalen einer Matrix A ablesen, daher auchder Name der Sprache.

Aij =

1 falls Mi akzeptiert wi0 sonst

30 KAPITEL 3. BERECHENBARKEIT

w0 w1 w2 w3 w4 w5

M0 0 1 0 0 1 . . .M1 1 1 1 0 1 . . .M2 1 0 1 1 1 . . .M3 0 0 1 1 0 . . .M4 0 1 1 1 0 . . .

......

......

... . . .

Es ist leicht zu sehen, dass Diag = wi|Aii = 0 gilt.

Theorem 22 Die Sprache Diag ist nicht entscheidbar.

Beweis. Angenommen Diag ist entscheidbar. Dann gibt es eine DTM Mj ,die Diag entscheidet. Wir wenden Mj auf wj an.

Falls wj ∈ Diag gilt, dann akzeptiert Mj das Wort wj . Dann kann aber wjnach Definition nicht in Diag gewesen sein. Ein Widerspruch!

Falls wj 6∈ Diag gilt, dann verwirft Mj das Wort wj . Dann muss wj abernach Definition in Diag liegen, ein Widerspruch!

Insgesamt kann es keine TM geben, die Diag entscheidet. 2

Lemma 23 Das Komplement Diag der Sprache Diag ist nicht entscheidbar.

Beweis. Folgt direkt aus Lemma 14 und Theorem 22. 2

3.6 Unentscheidbarkeit des Halteproblems

Kommen wir nun zu unserer zentralen Aussage.

Theorem 24 Das Halteproblem

H := 〈M〉x|M ist DTM , die bei Eingabe von x halt

ist nicht entscheidbar.

Beweis. Angenommen H ware entscheidbar. Dann sei MH die zugehorigeMaschine, die H entscheidet. Mit dieser Maschine konnen wir dann aberauch Diag durch die folgende Maschine M

Diagentscheiden, sei dabei w die

Eingabe fur MDiag

.

• Die Eingabe w entspricht einem wi. Berechne i und die Godelnummer〈Mi〉 der i-ten Maschine.

3.7. REDUKTIONEN 31

• Starte die Maschine MH mit der Eingabe 〈Mi〉w.

• Falls MH die Eingabe verwirft, verwerfe w.

• Falls MH die Eingabe akzeptiert, so verwende die universelle MaschineMU und simuliere das Verhalten von Mi bezuglich w. Ubernehme dieAusgabe!

Die Maschine MDiag

verwendet MH und MU als Unterprogramme.

Nun zeigen wir, dass unter den obigen Annahmen, die Maschine MDiag

die

Sprache Diag entscheidet, ein Widerspruch zu Lemma 23.

Falls w ∈ Diag liegt, dann gilt dass Mi das Wort w = wi akzeptiert. Somitakzeptiert MH das Wort 〈Mi〉w und die Simulation durch MU fuhrt dazu,dass M

Diagdas Wort w akzeptiert.

Falls w 6∈ Diag liegt, dann gilt dass Mi das Wort w = wi verwirft oder nichthalt. Falls Mi nicht halt, verwirft MH das Wort 〈Mi〉w und M

Diagverwirft

das Wort w dann auch. Falls Mi halt und verwirft, halt zunachst MH aberdurch Simulation wird M

DiagWort w verwerfen.

Diag ware entscheidbar! 2

3.7 Reduktionen

Im vorhergehenden Abschnitt haben wir gesehen, dass das Halteproblemnicht entscheidbar ist, dabei haben wir die Unterprogrammtechnik verwen-det. Falls das Halteproblem entscheidbar ist, dann kann mittels der univer-sellen Maschine MU und mit der dann existierenden Maschine MH auch dieSprache Diag entschieden werden. Ein Widerspruch entstand.

Wir wollen hier eine formalere Methode vorstellen, durch die sich Kom-plexitatsaussagen ableiten lassen. Wir wollen ein Problem in funktionellerWeise auf ein bekanntes Problem ubertragen. Haben wir beispielsweise eineMaschine, die fur zwei Zahlen a, b ∈ ZZ das Produkt a·b berechnet, so konnenwir das Problem der Berechnung von a3 ebenfalls leicht losen, in dem wiraus der Eingabe a zunachst das Produkt a′ = a · a berechnen und dannnochmal das Produkt a · a′. In diesem Sinne ist a3 intuitiv leichter zu losenals a · b oder anders ausgedruckt a3 wird auf das Problem a · b reduziert. DasProblem a · b ist mindestens so schwer zu losen wie das Problem a3. Wennich a · b losen kann, so auch a3. Die Umkehrung gilt namlich offensichtlichnicht. Aus einer Berechnung von a3 laßt sich direkt keine Berechnung vona · b ableiten.

32 KAPITEL 3. BERECHENBARKEIT

Wir hatten es bislang in erster Linie mit Entscheidungsproblemen und dendazugehorigen Sprachen zu tun. Im obigen Sinne muss es bei einer Reduktioneine geeignete Ubertragung von Wortern einer Sprache L′ in eine Sprache Lgeben. Formal definieren wir eine Reduktion wie folgt.

Definition 25 Seien L′ und L Sprachen uber 0, 1. Die Sprache L′ heißtreduzierbar auf L, falls es eine totale Funktion f : 0, 1∗ → 0, 1∗ gibt,fur die gilt:

1. Fur alle w ∈ 0, 1∗ gilt: w ∈ L′ ⇔ f(w) ∈ L

2. Die Funktion f ist DTM-berechenbar, d.h. es gibt eine DTM Mf , dief berechnet (siehe auch Definition 2).

Die Funktion f wird dann auch als Reduktion von L′ auf L bezeichnet. Ist L′

auf L reduzierbar, so schreiben wir L′ ≤ L. Wir sprechen insgesamt davon,dass L′ auf L mittels f reduzierbar ist.

Fur diese (und nicht nur fur diese) Definition ist es wichtig, dass stets dieBedingungen vollstandig uberpruft werden. Wir verlangen eine totale DTM-berechenbare Funktion f : 0, 1∗ → 0, 1∗, die entsprechende Maschinehalt also auf jedem Input und ist nicht durch eine Erweiterung des Wertebe-reiches auf Σ∗ ∪⊥ total erganzt worden. Es reicht andererseits auch nichtaus, nur w ∈ L′ ⇒ f(w) ∈ L zu zeigen, das ist ja stets fur L = 0, 1∗ erfullt.Es genugt insgesamt nicht, intuitiv mindestens so schwer wie als Argumentzu verwenden.

Bevor wir zu einem Beispiel ubergehen, zweigen wir, dass die obige Relation≤ schone Eigenschaften hat.

Lemma 26 Die Relation ≤ aus Definition 25 ist transitiv und reflexiv. Esgilt fur alle Sprachen L,L′ ∈ 0, 1∗:

1. L ≤ L (reflexiv)

2. Aus L′ ≤ L und L ≤ L′′ folgt L′ ≤ L′′ (transitiv)

3. L′ ≤ L mittels f ⇔ L′ ≤ L mittels f

Beweis.

Zu 1. Hier kann die Funktion id : 0, 1∗ → 0, 1∗ mit id(x) = x verwen-det werden.

3.7. REDUKTIONEN 33

Zu 2. Sei L′ ≤ L mittels f und L ≤ L′′ mittels g, dann gilt L′ ≤ L′′ mittelsg f , denn fur jedes w ∈ 0, 1∗ gilt:

w ∈ L′ ⇔ f(w) ∈ L⇔ g(f(w)) ∈ L′′ ⇔ (g f)(w) ∈ L′′ .

Zu 3. Die Aussage

∀w ∈ 0, 1∗w ∈ L′ ⇔ f(w) ∈ L

ist aquivalent zu

∀w ∈ 0, 1∗w 6∈ L′ ⇔ f(w) 6∈ L .

Daraus folgt die Behauptung. 2

Das Ziel der Reduktion ist es, Berechenbarkeitsaussagen zu ubertragen.

Lemma 27 Seien L′ und L Sprachen uber 0, 1. Es gilt:

1. Falls L entscheidbar ist und L′ ≤ L gilt, ist auch L′ entscheidbar.

2. Falls L rekursiv aufzahlbar ist und L′ ≤ L gilt, ist auch L′ rekursivaufzahlbar.

Beweis.

Zu 1.: Da L entscheidbar ist, gibt es eine DTM ML die L entscheidet. DieMaschine ML halt auf jedem Input. Sei L′ ≤ L mittels f . Dann existiert eineDTM Mf , die die totale Funktion f berechnet und somit auf jeder Eingabehalt. Daraus konstruieren wir eine Maschine ML′ , die eine Eingabe w wiefolgt verarbeitet.

• Berechene v = f(w) mit Mf .

• Lasse ML auf v laufen. Falls ML das Wort v akzeptiert, akzeptiere dasWort w. Falls ML das Wort v verwirft, verwerfe das Wort w.

Es gilt:

ML′ akzeptiert w ⇔ML akzeptiert v = f(w) ⇔ f(w) ∈ L⇔ w ∈ L′

34 KAPITEL 3. BERECHENBARKEIT

Zu 2.: Analog zu 1. Der Unterschied ist, dass ML nicht auf allen Eingabenhalt und somit ML′ ebenfalls nicht. 2

Insgesamt laßt sich festhalten, dass die Reduktion eine spezielle Form derUnterprogrammtechnik darstellt. Naturlicherweise lassen sich die Konklu-sionen negieren.

Lemma 28 Seien L′ und L Sprachen uber 0, 1 mit L′ ≤ L. Es gilt:

1. Falls L′ nicht entscheidbar ist, ist auch L nicht entscheidbar.

2. Falls L′ nicht rekursiv aufzahlbar ist, ist auch L nicht rekursiv aufzahlbar.

Wir betrachten nun ein Beispiel. Die Sprache

A := 〈M〉x|M ist DTM , die die Eingabe von x akzeptiert

sei das sogenannte Akzeptanzproblem.

Wir wollen zeigen, dass H ≤ A gilt, das Halteproblem laßt sich auf dasAkzeptanzproblem reduzieren. Aus Lemma 28 und Theorem 24 folgt dann,dass die Sprache A nicht entscheidbar ist.

Dazu definieren wir eine totale DTM-berechenbare Funktion f wie folgt:

f(w) =

w : falls w nicht von der Form 〈M〉x fur DTM M

〈M〉x : falls w = 〈M〉x fur DTM M,

wobei die DTM M sich aus M wie folgt ergibt

M arbeitet bei Eingabe y ∈ 0, 1∗ wie folgt:

• Simuliere M mit Eingabe y

• Falls M Eingabe y akzeptiert, akzeptiere y

• Falls M Eingabe y ablehnt, akzeptiere y

Falls w ∈ 0, 1∗ nicht von der Form 〈M〉x ist, dann gilt offensichtlich gleich-zeitig w 6∈ H und w = f(w) 6∈ A. Es bleibt zu zeigen, dass

w = 〈M〉x ∈ H ⇔ f(w) = f(〈M〉x) = 〈M〉x ∈ Agilt.

”⇒”: Aus w = 〈M〉x ∈ H folgt, dass M bei Eingabe von x halt, nachDefinition von M akzeptiert M die Eingabe x und es ist 〈M〉x ∈ A.

3.8. CHURCHSCHE THESE UND REGISTERMASCHINE 35

”⇐”: Aus 〈M〉x ∈ A folgt, dass M die Eingabe x akzeptiert. Dann mussaber M auf der Eingabe x halten. Dann ist 〈M〉x ∈ H.

Insgesamt haben wir gerade das folgende Theorem bewiesen.

Theorem 29 Das Halteproblem laßt sich auf das Akzeptanzproblem redu-zieren, H ≤ A. Das Akzeptanzproblem ist nicht entscheidbar.

Ahnliche Reduktionen bezuglich des Halteproblems gibt es fur die Sprachen

Hε := 〈M〉|M ist DTM , die bei Eingabe von ε halt

Hall := 〈M〉|M ist DTM , die bei Eingabe jedes x ∈ 0, 1∗ halt

Ubungsaufgabe: Formulieren Sie die Reduktionsbeziehungen unter H, Hε

und Hall und beweisen Sie diese durch die Angabe entsprechender Funktio-nen.

3.8 Churchsche These und Registermaschine

Die Chruchsche These wurde in den 30er Jahtren von dem MathematikerAlonzo Church aufgestellt und besagt, dass davon ausgegangen werden kann,dass alle im intuitiven Sinne berechenbaren Funktionen genau die Funktio-nen sind, die sich durch die Turingmaschinen berechnen lassen.

Diese These ist nicht beweisbar, das sich der Begriff im intuitiven Sinneberechenbar gar nicht formalisieren laßt. Es ist nicht klar, wo dieser Begriffenden soll. Sobald man ein formales Rechen- oder Funktionenmodell ent-wickelt hat, hat man sich darauf festgelegt. Da der Phantasie keinen Grenzengesetzt sind musste man de facto jede andere vernunftige Beschreibung vonFunktionen oder Maschinen darauf zuruckfuhren konnen. Es gibt dafur aberunendlich viele Beschreibungsmoglichkeiten. Also begnugen wir uns damit,dass schon sehr viele Aquivalenzen gezeigt wurden und die These dadurchimmer weiter untermauert werden konnte. Es wird stets eine These bleiben.

Wir hatten bislang die Aquivalenz zwischen 1-Band und Mehrbandmaschi-nen bewiesen und darauf hingewiesen, dass man sich der Berechenbarkeitauch durch die formale Beschreibung von rekursiven Funktionen nahernkann (was dann wiederum zu den DTM-berechenbaren Funktion fuhrt). Wirhaben das hier nicht getan aber wie bereits bemerkt ist die Bezeichnung derrekursiven (entscheidbaren) Sprachen historisch damit verknupft.

Wir wollen uns nochmal ein alternatives, etwas moderneres Maschinenmo-dell kurz anschauen und die Aquivalenz zu den Turingmaschinen skizzieren.Das macht die These fur uns ggf. noch etwas glaubhafter.

36 KAPITEL 3. BERECHENBARKEIT

Chursche These: Die durch eine Turingmaschine berechenbaren Funktio-nen und sind genau die Funktionen, die sich im intuitiven Sinne berechnenlassen.

Wir betrachten eine sogenannte Registermaschine RAM (Random AccessMaschine), die der maschinennahen Assembler-Sprache auf modernen Rech-nern nachempfunden ist. Auf dem maschinennahem Assembler-Sprachen ba-sieren dann wiederum auf einer Meta-Ebene alle modernen Programmier-sprachen. Die RAM hat einen unbeschrankten Speicher der durch Register-zellen R(0), R(1), R(2), . . . realisiert wird. In jedem Register kann eine ganzeZahlen abgelegt werden. Die Maschine arbeitet auf einem Programm miteiner beliebig aber festen Anzahl an durchnummerierten Programmzeilenmit entsprechenden Befehlen aus einer vorgegebenen Befehlsmenge. Ein Be-fehlszahler b der Maschine legt fest, welche Befehlszeile als nachstes aus-gefuhrt wird. Die Befehle durfen den Befehlszahler und die Registerinhalteandern. Zu Beginn steht der Befehszahler b auf 1. Ein Programm und Para-meter konnen zu Beginn in der Maschine geladen werden; siehe Abbildung3.1.

Wie bei den Turingmaschinen, gibt es verschiedene Arten von Registerma-schinen. Es handelt sich dabei wieder um Abwandlungen, die durch Kon-ventionen bestimmt sind. Beispielsweise werden haufig die RegisterzellenR(1), R(2), R(3), . . . , R(n) zu Beginn als jeweilige Eingabe vorsehen. Einekonkrete Rechnung findet dann immer nur im Register R(0) (dann auchAkkumulator genannt) statt; siehe Abbildung 3.1. Die restlichen Registerkonnen aber uberschrieben werden. Die Berechnungsmoglichkeiten auf demAkkumulator sind Additition, Subtraktion, Multiplikation und ganzzahligeDivision. Die Register konnen auch relativ angesprochen. Der Befehlssatzund die zugehorige Semantik der hier betrachteten Maschine befindet ist inder folgenden Tabelle 3.8 zusammengefaßt. Es gibt Befehle zum Speichernund Laden, fur die Arithmetik, fur Programmsprunge und das Ende.

Das folgende Registerprogramm berechnet die Summe von n Zahlen ai furi = 1, . . . , n. Die Registereingabe ist dabei R(1) = n und in den RegisternR(4), R(5), . . . , R(4 + R(1)) sind die Zahlen R(i) = ai−3 fur i = 4, . . . n+ 3abgelegt. Das Ergebnis befindet sich am Ende in R(2) und R(3) ist jeweilsdie Adresse des nachsten Summanden.

Ubungsaufgabe: Schreiben Sie ein Registerprogramm, dass (i) das Maxi-mum von n Zahlen berechnet und (ii) n Zahlen sortiert ausgibt.

Jetzt Vergleichen wir die beiden doch sehr unterschiedlichen Rechnermodel-le. Die RAM beendet die Berechnung sobald ein ENDE Befehl erreicht wird.Wir stellen zunachst fest, dass die Registermaschinen Funktionen der Art

3.8. CHURCHSCHE THESE UND REGISTERMASCHINE 37

Syntax Registeranderung Befehlszahler

LOAD i R(0) := R(i) b := b+ 1

CLOAD i R(0) := i b := b+ 1

INDLOAD i R(0) := R(R(i)) b := b+ 1

STORE i R(i) := R(0) b := b+ 1

INDSTORE i R(R(i)) := R(0) b := b+ 1

ADD i R(0) := R(0) +R(i) b := b+ 1

CADD i R(0) := R(0) + i b := b+ 1

INDADD i R(0) := R(0) +R(R(i)) b := b+ 1

SUB i R(0) := R(0)−R(i) b := b+ 1

CSUB i R(0) := R(0)− i b := b+ 1

INDSUB i R(0) := R(0)−R(R(i)) b := b+ 1

MULT i R(0) := R(0) ·R(i) b := b+ 1

CMULT i R(0) := R(0) · i b := b+ 1

INDMULT i R(0) := R(0) ·R(R(i)) b := b+ 1

DIV i R(0) := bR(0)/R(i)c b := b+ 1

CDIV i R(0) := bR(0)/ic b := b+ 1

INDDIV i R(0) := bR(0)/R(R(i))c b := b+ 1

GOTO j b := j

IF R(0) rel x GOTO j b :=

j : falls R(0) rel x

: b+ 1 sonst

END Ende der Berechnung

Tabelle 3.1: Der Befehlssatz einer Registermaschine mit Relation rel ∈ <,>,=,≤,≥. In der IF-Anweisung ist x eine feste Konstante.

R(1) R(2) R(4) R(5)R(3)

bProgrammR(0)

Akkumulator Zahler

Speicher

Abbildung 3.1: Die Komponenten einer Registermaschine mit Akkumulator,Programme und Parameter in den Registern konnen geladen werden.

38 KAPITEL 3. BERECHENBARKEIT

Zeile Befehl Kommentar

1 CLOAD 0 Initialisierung2 STORE 23 CLOAD 44 STORE 35 LOAD 2 Schleife6 INDADD 3 Nachster Summand hinzu7 STORE 2 Abspeichern8 LOAD 1 Zahler9 IF R(0) > 1 GOTO 11 Letzter Summand?10 END Fertig11 CSUB 1 Zahler inkrementieren12 STORE 1 Abspeichern13 LOAD 3 Summand Index14 CADD 1 Index erhohen15 STORE 3 Abspeichern16 GOTO 5 Schleifenanfang

Tabelle 3.2: Ein RAM-Programm zur Berechnung der Summe von n Zahlen.

f : ZZk → ZZl ∪ ⊥ berechnen, wobei hier wie bei der DTM das Zeichen ⊥fur das Nichtterminieren einer Berechnung steht. Da wir die ganzen Zahlenauch eins zu eins binar kodieren konnen, gibt es bezuglich der Funktionsbe-schreibung zwischen DTMs und RAMs keinen Unterschied.

Ein Unterschied herrscht allerdings im Speicherverhalten. Die Registerma-schine darf beliebig große Zahlen abspeichern. Wie wir bereits wissen, kannman dann in einem Register zum Beispiel eine vollstandige DTM kodieren.Diesen Vorteil mussen wir bezuglich eines Laufzeitvergleichs ein bisschenabschwachen. Zur Kodierung einer ganzen Zahl der Große n brauchen wirin der Turingmaschine log n-Bits, die wir auch noch lesen mussen. Deshalbhaben wir folgende verschiedene Kostenmaße:

• Uniformes Kostenmaß: Jeder Rechenschritt zahlt eine Zeiteinheit.

• Logarithmisches Kostenmaß: Die Laufzeitkosten eines Rechenschrittessind proportional zur binaren Lange der Zahlen der dabei verwendetenRegister.

Die RAM ist offensichtlich machtig genug, um die klassischen Algorithmen,die wir im ersten Teil der Veranstaltung kennengelernt haben, zu realisieren.Schleifen, rekursive Aufrufe und auch komplexere Datenstrukturen lassensich offensichtlich abbilden.

3.8. CHURCHSCHE THESE UND REGISTERMASCHINE 39

Theorem 30 Jede t(n)-laufzeitbeschrankte DTM M mit Eingabegroße nkann durch eine RAM simuliert werden, die im uniformen KostenmodellO(t(n)+n)-laufzeitbeschrankt und im logarithmischen Kostenmodell O((t(n)+n) log(t(n) + n))-laufzeitbeschrankt ist.

Beweis. Wir skizzieren ein RAM-Programm, das eine 1-Band Maschinesimuliert. Das erste Register speichert die Kopfposition als Nummer. daszweite Register speichert den Zustand als Nummer. Ab Register 3 werdendie aktuellen Bandinhalte der DTM an den Positionen 1, 2, 3, . . . exakt inR(3), R(4), R(5), . . . abgespeichert.

Die Simulation eines Schrittes wird wie folgt durchgefuhrt. Falls die DTMin den Endzustand geraten ist, beendet die RAM die Berechung ebenfalls.Ein einfacher Test im Akkumulator bezuglich der Zustandsnummer reichtdazu aus. Ansonsten muss der Berechnungschritt uniform in konstanter Zeitausgefuhrt werden. Zunachst gibt es |Q| viele IF-Abfragen bezuglich des Zu-standes und |Σ| viele Abfragen bezuglich des Zeichens der entsprechendenbeiden Register. Je nach Ausgang dieser Abfragen, wir Register 2 (Zustand),Register 1 (Bandposition) und der Registerinhalt der Bandposition geandert.Dazu sind jeweils konstant viele Operationen mit dem Akkumulator notwen-dig.

Die Initialisierung benotigt O(n) viel Zeit, jeder Rechenschritt der DTMwird in konstanter Zeit umgesetzt. Daraus ergeben sich die LaufzeitenO(t(n)+n) (uniform) und im logarithmischen Kostenmodell O((t(n) + n) log(t(n) +n)). Beachten Sie, dass die Konstanten von |Q| und |Σ| abhangen. 2

Die umgekehrte Simulation ist ein wenig komplizierter, die Laufzeiten andernsich polynomiell.

Theorem 31 Jede im logarithmischen Kostenmaß t(n)-laufzeitbeschrankteRAM mit Gesamteingabegroße n (Inhalt aller Register im logarithmischenMaß) kann fur ein Polynom P durch eine O(P (t(n)+n))-laufzeitbeschrankteDTM M simuliert werden.

Beweis. Wir verwenden eine 2-Band DTM M mit Zustandsmenge Q =Q0 ∪Q1 ∪Q2 ∪ · · · ∪Qm wobei m die Anzahl der Programmzeilen der RAMist. Durch die Zustandsmenge Q0 erzeugen wir die Ausgangssituation, dieZustandsmenge Qm stellt die Ausgabe zur Verfugung. Jede Programmzei-le hat eine Zustandsmenge Qb und durch eine Ubergangsfunktion wird dieArbeitsweise der Programmzeile simuliert. Durch den jeweiligen Zustands-bereich wird sich automatisch auch der Befehlszahler b gemerkt, unabhangigvon der Eingabe. Die Bander sind wie folgt belegt:

• Band 1 enthalt die aktuelle Registerbelegung in der binar kodiertenForm

40 KAPITEL 3. BERECHENBARKEIT

###bin(R(0)##bin(R(i0))#bin(i0)##bin(R(i1))#bin(i1)## · · ·##bin(ik)#bin(ik)###, wobei i0, i1, . . . , ik die laufenden Nummernder verwendeten Register darstellt.

• Band 2 enthalt stets die aktuell betroffenen Registerinhalte und diedazugehorigen Indizes. Hier wird die Rechnung simuliert (Akkumula-tor).

Wir simulieren nun die Konfigurationsanderungen der RAM wie folgt. Wirbefinden uns fur Befehlszahler b in Zustandsmenge Qb und simulieren durchein Unterprogramm Mb die Registermaschine:

1. Mb kopiert die Inhalte der in Befehlszeile b angesprochenen Registerund deren Nummern auf Band 2.

2. Mb fuhrt die notwendigen Veranderungen auf Band 2 aus (Umsetzungdes Befehls).

3. Mb kopiert das Ergebnis zuruck auf die Registerkonfiguration auf Band1 und loscht Band 2.

4. Mb wechselt in die Folgezustandsmenge Qa fur die nachste Befehszeilea.

Offensichtlich laßt sich die RAM durch die o.a. DTM simulieren. Die Langedes ersten Bandes ist stets durch O(n+t(n)) beschrankt, da wir fur jedes neugenerierte Bit in der RAM eine Zeiteinheit berechnen konnen. Auch mussdie RAM die gesamte Eingabe lesen. Alle Unterprogramme vollziehen einekonstante Anzahl von Rechenschritten, die im schlimmsten Fall von der ma-ximalen Lange des ersten Bandes abhangt aber polynomiell beschrankt ist(zum Beispiel fur eine Multiplikation). Ein einzelnes Unterprogramm machtsomit nicht mehr als cb× (n+ t(n))kb Rechenschritte fur feste Konstanten cbund kb. Diese Konstanten hangen nicht von n, sondern fest von der Befehls-zeile b ab. Fur nicht mehr als t(n) Rechenschritte der RAM gibt es danninsgesamt stets feste Konstanten C und k, so dass die Laufzeit der DTMC × (n+ t(n))k nicht ubersteigt. 2

In einem weiteren Schritt konnten wir nun die Vergleichbarkeit von Tu-ringmaschinen mit modernen Programmiersprachen untersuchen. Das wirdin einigen Quellen auch gemacht. Wir verzichten hier darauf. Zunachst istklar, dass die hoheren Programmiersprachen im wesentlichen auf Assembler-Code beruhen und deshalb nicht machtiger sein konnen als eine RAM odereine DTM. Deshalb wird in der Regel nur untersucht, ob sich mit den Kern-regeln der jeweiligen Sprache auch die DTM-berechenbaren Funktionen be-schreiben lassen. Eine solchen Analyse beschrankt sich auf die wesentlichen

3.9. DER SATZ VON RICE 41

Programmierelemente, komfortable Befehle fur Ein- und Ausgabe sind bei-spielsweise nicht relevant fur die eigentliche Rechenleistung. Beispielsweisewerden WHILE-Programme untersucht, deren spartanische Syntax eine ge-zielte Analyse erlaubt.

3.9 Der Satz von Rice

Godel’s Unvollstandigkeitssatze besagen, dass es fur keine komplexe mathe-matische Theorie einen Algorithmus gibt, der alle darin formulierbaren Aus-sagen auf Richtigkeit beweist. So ist beispielsweise die Pradikatenlogik zwei-ter Ordnung (mit Quantifizierung uber Relationen) unvollstandig, wahrendes fur die einfache Aussagenlogik ein einfaches Kalkul gibt, das jede Aussageentscheidet.

Ubertragen auf Aussagen uber das Verhalten von Turingmaschinen bzw.uber die Eigenschaften der von den DTMs berechneten Funtkionen ergibtsich der Satz von Rice. Die nicht-trivialen Eigenschaften der von Turingma-schinen berechneten Funktionen sind nicht entscheidbar.

Jede Turingmaschine M berechnet formal gesehen eine (moglicherweise par-tielle) Funktion fM : 0, 1∗ → 0, 1∗, die wir leicht auf eine totale FunktionfM : 0, 1∗ → 0, 1∗∪⊥ erweitern konnen, wobei ⊥ das Nichthalten derMaschine interpretiert.

Sei also R := fM : 0, 1∗ → 0, 1∗ ∪ ⊥|M ist eine Turingmaschine dieMenge aller von DTMs berechneten Funktionen. Jede Sprache einer nicht-trivialen Teilmenge S von R ist unentscheidbar. Zum Beispiel sind

• T := 〈M〉|M ist DTM, die auf jeder Eingabe halt

• Ek := 〈M〉|M ist DTM, die auf genau k Eingaben halt

nichttriviale Teilmengen.

Theorem 32 Sei S ⊂ R mit S 6= R und S 6= ∅. Die Sprache

L(S) = 〈M〉|M berechnet eine Funktion aus Sist nicht entscheidbar.

Beweis. Wir benutzen eine Reduktion und nutzen aus, dass in einer Ubungs-aufgabe bereits gezeigt wurde, dass

Hε := 〈M〉|M ist DTM , die bei Eingabe von ε halt

nicht entscheidbar ist.

42 KAPITEL 3. BERECHENBARKEIT

Wir nehmen zunachst an, dass die nirgendwo definierte Funktion undef inS enthalten ist. Da S 6= R gilt, gibt es eine Funktion g ∈ R \ S. Sei Mg dieMaschine, die g berechnet.

Wir konstruieren die folgende Maschine Mw fur eine Eingabe w:

1. Falls w keine korrekte Godelnummer ist, halte bei keiner Eingabe x

2. Sonst simuliere w = 〈M〉 auf der leeren Eingabe. Halt diese Simulation,wird danach die Maschine Mg fur beliebige Eingaben x simuliert.

Das bedeutet: Mw kann auf Worter x angewendet werden und berechnet diefolgende Funktion fw fur w:

fw =

undef : falls M auf leerem Band nicht halt

oder w keine TM darstellt, also w 6∈ Hε

g : sonst, also w ∈ Hε

Die Funktion h : 0, 1∗ → 0, 1∗ , die jedem w die Godelnummer derMaschine Mw zuordnet ist DTM-berechenbar. Der erste Teil der Maschinewird aus der universellen Maschine MU gebaut, die die Maschine w = 〈M〉simuliert, der zweite Teil besteht aus der Maschine Mg. Nun ist sogar Mw =Mh(w).

Wir zeigen, dass w ∈ Hε ⇔ h(w) 6∈ L(S) gilt.

w ∈ Hε ⇒ fw = g

⇒ von Mh(w) berechnete Funktion liegt nicht in S

⇒ h(w) 6∈ L(S)

w 6∈ Hε ⇒ fw = undef

⇒ von Mh(w) berechnete Funktion in S

⇒ h(w) ∈ L(S)

Nun gilt aber auch w ∈ Hε ⇔ h(w) ∈ L(S). Nach Definition 25, Theorem14 und Lemma 27 gilt, dass Hε ≤ L(S) und L(S) ist nicht entscheidbar.

Der Fall undef 6∈ S geht analog! 2

Ubungsaufgabe: Fuhren Sie den obigen Beweis auch fur undef 6∈ S.

Der Satz hat sehr starke Konsequenzen. Insbesondere kann man keine au-tomatische Programmverifikation programmieren. Ein solcher Algorithmusmusste fur alle Programme und einer gegebene Spezifikation (Funktion) ent-scheiden, ob das Programm diese Funktion berechnet. Vorsicht! Im Einzelfallist das naturlich immer moglich.

3.10. UNENTSCHEIDBARE PROBLEME OHNE SELBSTBEZUG 43

3.10 Unentscheidbare Probleme ohne Selbstbezug

Alle bisher betrachteten unentscheidbaren Probleme hatten eigentlich im-mer etwas mit einer Aussage uber bestimmte (Turing)Programme zu tun.Insgesamt resultierte daraus der Satz von Rice, der besagt, dass alle allge-meinen nicht-trivialen Aussagen uber Turingmaschinen nicht entscheidbarsind.

Wir stellen hier ein paar Beispiele von klassischen unenscheidbaren Pro-blemen vor, die zunachst (scheinbar?) gar nicht aus dem Umfeld von Tu-ringmaschinen stammen. Es sind in der Tat wichtige Allerweltsprobleme,die ebenfalls unentscheidbar sind. Die Forschungsrichtung, die sich mit sol-chen Problemen befaßt nennt man auch Rekursionstheorie. Naturlicherweisegeht es dabei letztendlich immer um Aussagen uber die Berechenbarkeit vonFunktionen.

Das Postsche Korrespondenzproblem, kurz PKP, ist ein Entscheidungspro-blem, das an ein spezielles Domino erinnert. Gegeben ist eine Menge vonPaaren (x1, y1), (x2, y2), . . . , (xk, yk), wobei xi und yi Worter uber einemendlichen Alphabet Σ (bei uns wiederum Σ = 0, 1) sind. Es soll entschie-den werden, ob eine Folge von Indizes i1, i2, . . . , in ∈ 1, 2, . . . , k existiert,so dass xi1xi2 · · ·xin = yi1yi2 · · · yin gilt. Die Folge von Indizes soll minde-stens ein Element enthalten, die Elemente durfen sich sich aber wiederholen.Die Elemente sind in diesem Sinne verwendbare Bausteine.

Fur eine Menge w solcher Paare, die die Eigenschaft erfullt, schreiben wirdann auch w ∈ PKP . Das Wort w gehort zur Sprache aller Worter, die eineentsprechende Bausequenz ermoglichen. Offensichtlich laßt sich die Mengeder Bausteine auch problemlos binar kodieren.

Bildlich lassen sich die Tupel als Bausteine interpretieren, die in einer be-stimmten Reihenfolge hintereinandergelegt, oben und unten das gleiche Wortergeben sollen; siehe Abbildung 3.2.

Eine beliebte Modifikation bzw. Vereinfachung dieses Problems ist die Fest-legung, dass die Folge mit einem fest vorgegebenen Startelement (x1, y1)beginnen muss. Beim Modifizierten Postschen Korrespondenzproblem, kurzMPKP, ist eine Menge von Paaren (x1, y1), (x2, y2), . . . , (xk, yk), und einStartpaar (x1, y1) gegeben, wobei xi und yi Worter uber einem endlichenAlphabet Σ sind. Es soll entschieden werden, ob eine Folge von Indizesi2, . . . , in ∈ 2, . . . , k existiert, so dass x1xi2 · · ·xin = y1yi2 · · · yin gilt. Ana-log schreiben wir auch w ∈MPKP .

Wir zeigen zunachst, dass sich MPKP auf PKP im Sinne der Sprachen re-duzieren laßt.

Lemma 33 Das Modifizierte Postsche Korrespondenzproblem laßt sich aufdas Postsche Korrespondenzproblem reduzieren, d.h. MPKP ≤ PKP .

44 KAPITEL 3. BERECHENBARKEIT

0

100

01

00

10

1

10

1

10

1

01

00

0

100

(x1, y1) (x2, y2) (x3, y3)

Abbildung 3.2: Eine Instanz des PKPs mit drei Bausteinen und eine Losung.

Beweis. Eine Instanz des MKPK wollen wir mittels einer Funktion f in eineInstanz des PKPs uberfuhren, so dass die Eigenschaft der Konstruktion einerentsprechenden Bausequenz erhalten bleibt.

Wir verwenden zwei zusatzliche Symbole # und $ und transformieren dieBausteine mittels einer Funktion f wie folgt.

Der Startbaustein (x1, y1) mit x1 = x11x21 · · ·x

lx11 und y1 = y11y

21 · · · y

ly11 wird

zu

(x∗1, y∗1) := (#x11#x

21# · · ·#x

lx11 #,#y11#y21# · · ·#yly11 )

transformiert. Der einzige Baustein, der mit # in xi und yi beginnt undsomit als Startbaustein des PKPs gewahlt werden muss.

Weiterhin werden alle Bausteine (xi, yi) fur i = 1, 2, . . . , k mit xi = x1ix2i · · ·x

lxii

und yi = y1i y2i · · · y

lyii zu

(x′i, y′i) := (x1i#x

2i# · · ·#x

lxii #,#y11#y21# · · ·#yly11 )

transformiert.

Fur den Abschluss der Sequenz erstellen wir einen Extrabaustein

(x′k+1, y′k+1) = ($,#$) .

Er ist der einzige Baustein, der mit dem gleichen Buchstaben in xi und yiendet und somit als Endbaustein des PKPs gewahlt werden muss.

Zunachst ist klar, dass die Funktion f DTM-berechenbar ist. Fur eine (ko-dierte) Menge von Bausteinen, konnen wir eine (kodierte) Menge von neuenBausteinen konstruieren. Die zugehorige Funktion ist total. Jedes falsch ko-diertes Wort wird auf ein falsch kodiertes Wort ubertragen.

Es bleibt zu zeigen: w ∈ MPKP⇔ f(w) ∈ PKP gilt.

3.10. UNENTSCHEIDBARE PROBLEME OHNE SELBSTBEZUG 45

⇒: Fur w ∈ MPKP existiert eine Sequenz von Indizes i2, . . . , in ∈ 1, . . . , kmit x∗1xi2 · · ·xin = y∗1yi2 · · · yin .

Offensichtlich gilt: x′1x′i2· · ·x′inx′k+1 = y′1y

′i2· · · y′iny′k+1 und somit ist f(w) ∈

PKP.

⇐: Fur f(w) ∈ PKP kann die Sequenz per Konstruktion nur mit x∗1 undy1∗ beginnen und mit x′k+1 und y′k+1 enden. Also gibt es Indizes 1, i2, . . . , in, k+1 ∈ 1, . . . , k+1mit x∗1x

′i2· · ·x′inx′k+1 = y∗1y

′i2· · · y′iny′k+1. In beiden Sequen-

zen wechseln sich bis auf das Endzeichen $ die # Zeichen mit den Zeichenaus 0, 1 jeweils ab. Falls die Zeichen # und $ jeweils entfernt werden, dannergibt sich x1xi2 · · ·xin = y1yi2 · · · yin , also w ∈ MPKP. 2

Jetzt wollen wir noch A ≤ MPKP zeigen, aus der Transitivitat der Redukti-on folgt dann sogleich auch A ≤ PKP und damit ist dann die Unentscheid-barkeit von PKP gezeigt. Zur Erinnerung:

A := 〈M〉x|M ist DTM , die die Eingabe von x akzeptiert .

Lemma 34 Es gilt: A ≤ MPKP.

Beweis. Fur die Reduktion ist eine geeignete Transformation des Akzep-tanzproblems auf ein MPKP Problem vermoge einer Funktion f notwendig.Konkret wird fur eine Maschine 〈M〉 die Ubergangsfunktion fur eine ge-gebene Eingabe x in eine Reihe von Bausteinen ubersetzt, so dass jederakzeptierende Ubergang genau durch eine Losung des korrespondierendenMPKP gegeben ist. Wir werden dabei den Konfigurationen der Maschinefolgen, die Startkonfiguration ist stets q1x fur den Startzustand q1

Wir nehmen der Einfachheit halber an, dass der Buchtstabe # in der DTMzur Kodierung nicht benutzt wird und Blanks nur fur das Ende der Eingabeverwendet werden. Das Konzept laßt sich leicht erweitern. Wir benutzen #als Hilfsbuchstabe zur Konstruktion der Bausteine (auch aus Konsistenz-grunden zu andere Literaturquellen). Im allgemeinen sei 〈M〉x gegeben undq1 der Startzustand und qn der Endzustand. Der Startbaustein ist:[

#

#q1x#

]Wir erzwingen dadurch, das oben als erstes q1x hinzugefugt werden muss.Versetzt darunter werden wir dann die Konfigurationen nachbilden. Da wirdie Konfiguration schrittweise nachbauen wollen, gibt es Kopierbausteine furdie Elemente: [

#

#

] [qiqi

] [a

a

]fur a ∈ 0, 1

46 KAPITEL 3. BERECHENBARKEIT

Nur das Kopieren wird nicht ausreichen, da dann unten immer wieder eineneue zusatzliche Kopie entsteht. Deshalb mussen die Ubergange wahrenddes Kopierens unten bereits mitkodieren. Fur jedes δ(q, a) = (q′, b,N) mitq 6= qn konstruieren wir (qa, q′b), fur jedes δ(q, a) = (q′, b, R) mit q 6= qnkonstruieren wir (qa, bq′) und fur jedes δ(q, a) = (q′, b, L) mit q 6= qn kon-struieren wir (cqa, q′cb) fur alle a, b, c ∈ 0, 1.Ubergangsbausteine fur q 6= qn, a, b, c ∈ 0, 1:[

qa

q′b

] [qa

bq′

] [cqa

q′cb

]Am Ende des Bandes mussen auch Blanks behandelt werden, das machenwir implizit durch Weglassen. Fur jedes δ(q,t) = (q′, b,N) mit q 6= qn kon-struieren wir (q#, q′b#), fur jedes δ(q,t) = (q′, b, R) mit q 6= qn konstruierenwir (q#, bq′#) und fur jedes δ(q,t) = (q′, b, L) mit q 6= qn konstruieren wir(cq#, q′cb#) fur alle a, b, c ∈ 0, 1.Spezielle Ubergangsbausteine fur q 6= qn, a, b, c ∈ 0, 1:[

q#

q′b#

] [q#

bq′

] [cq#

q′cb#

]Mit den bisherigen Bausteinen konnen wir die Konfigurationswechsel un-ten realisieren. Falls wir unten eine Endkonfiguration erreicht haben, mussdas Wort oben noch damit komplettiert werden, dazu benotigen wir dieLoschbausteine fur den Endzustand qn fur a ∈ 0, 1:[

aqnqn

] [qna

qn

]Um die Simulation abzuschließen, ist der Abschlussbaustein notwendig:[

#qn#

#

]Wir verdeutlichen die Konstruktion an einem Beispiel. Betrachte dazu dieDTMM = 0, 1,#, $,t, q1, q2, q3, δ, q1, q3, die die Sprache L = w|w1 ∈0, 1∗ entscheidet. Die Sprache aller Binarworter, die mit einer 1 enden.

δ 0 1 tq1 (q1, 0, 1) (q2, 1, 1) (q3, 0, 0)

q2 (q1, 0, 1) (q2, 1, 1) (q3, 1, 0)

Eine akzeptierende Konfiguration sieht wie folgt aus:

q1101 ` 1q201 ` 10q11 ` 101q2 ` 101q31

3.10. UNENTSCHEIDBARE PROBLEME OHNE SELBSTBEZUG 47

Ubersetzt in die Bausteinwelt erhalten wir dafur:

[#

#q1101#

] [q11

1q2

] [0

0

] [1

1

] [#

#

][

1

1

] [q20

0q1

] [1

1

] [#

#

][

1

1

] [0

0

] [q11

1q2

] [#

#

][

1

1

] [0

0

] [1

1

] [q2#

q31#

]Wir sehen, dass fur die Berechnungsschritte die Konfiguration jeweils un-ten textuell aufgefuhrt wird und die Vorgangerkonfiguration jeweils obensteht. Damit die Konstruktion erfolgreich beendet werden kann, werden dieLoschbausteine verwendet:

· · ·[

1

1

] [0

0

] [1

1

] [q2#

q31#

][

1

1

] [0

0

] [1

1

] [q31

q3

] [#

#

][

1

1

] [0

0

] [1q3q3

] [#

#

][

1

1

] [0q3q3

] [#

#

][

1q3q3

] [#q3#

#

]Es ist allgemein zu zeigen, dass A ≤ MPKP gilt. Zunachst ist klar, dassdie Funktion f DTM-berechenbar ist, jedes Wort 〈M〉x kann in das ent-sprechende MPKP Problem uberfuhrt werden. Wir mussen nun allgemeinzeigen, dass 〈M〉x ∈ A⇔ f(〈M〉x) ∈ MPKP gilt.

⇒: Fur 〈M〉x ∈ A gibt es eine Folge von Konfigurationen K1 ` K2 `· · ·Kt−1 ` Kt wobei K1 im Startzustand q1 und Kt im Endzustand qn liegt.

Wir konnen wie oben erwahnt beginnend mit dem Startbaustein die Kon-figurationsfolge unten mit Hilfe der Kopier- und Ubergangsbausteine durchden String

#K1#K2# · · ·#Kt−1#Kt#

48 KAPITEL 3. BERECHENBARKEIT

nachbauen. Oben steht dann nach Konstruktion der String

#K1#K2# · · ·#Kt−1# .

Dieser laßt sich nun durch die Loschbausteine zum ersten String bis auf den

fehlenden Abschluss #qn# erweitern. Nach Hinzufugen von[#qn##

]sind

beide Strings identisch, also f(〈M〉x) ∈ MPKP.

⇐: Sei nun 〈M〉x 6∈ A. Wenn 〈M〉 keine gultige Maschine ist, kann f aufeine Instanz des MPKP abbilden, die nicht losbar ist und wir sind fertig.

Sonst kann nach Konstruktion von f(〈M〉x) eine Losung nur mit dem Start-baustein beginnen und muss dann irgendwann entweder den Endbausteinoder einen ersten Loschbaustein enthalten. Ansonsten kann die Anzahl derBuchstaben der beiden Strings niemals gleich sein.

Sei also 1, i1, i2, . . . is die Teilfolge einer MPKP Losung, so dass is der ersteLosch- oder Abschlussbaustein ist. Hier taucht im oberen String zum erstenMal der Endzustand auf.

Dazwichen kann es dann nur Kopier- oder Ubergangsbausteine gegeben ha-ben. Diese Bausteine sind so konzipiert, dass sie nur richtige Konfigurati-onsfolgen versetzt um eine Konfiguration sukzessive schreiben konnen. Deruntere String ist stets eine Konfiguration weiter. Dann muss die Maschineeine Konfigurationsfolge haben, die in einem Endzustand gerat. Somit haltdie Maschine auf der Eingabe, ein Widerspruch. 2

Weitere unendscheidbare Probleme sind beispielsweise das Game of Life.Dabei geht es um die Frage, ob Vorhersehbar ist, wie sich eine Populationmit einfachen Veranderungsregeln entwickeln wird.

Ein anderes mathematisch motiviertes unentscheidbares Problem ist das Fol-gende:

Gegeben sind funf affine Abbildungen f1, f2, . . . , f5. Eine affine Abbildungf ist definiert durch eine 2 × 2 Matrix A und einem Vector B mit jeweilsrationalen Koeffizienten durch f : IQ2 → IQ2 mit f(v) = A · v +B.

Das zugehorige unentscheidbare Entscheidungsproblem lautet: Seien q =(qx, qy) und q′ = (qx, qy). Gibt es ein endliches Produkt von Abbildungenaus f1, f2, . . . , f5 so dass q = (qx, qy) auf q′ = (qx, qy) abgebildet werdenkann. Wie man sich ggf. leicht vorstellen kann, gibt es eine Reduktion vonPKP auf dieses Problem.

Kapitel 4

Komplexitat und die KlassenP und NP

Nachdem wir uns in den vorherigen Abschnitten zunachst konkrete Maschi-nenmodelle eingefuhrt und danach formell gezeigt haben, dass es Problem-stellungen gibt, die grundsatzlich nicht durch ein Computerprogramm gelostoder entschieden werden konnen, wenden wir uns nun der Frage der Zeit-komplexitat entscheidbarer Probleme zu. Entscheidbare Problemstellungenkonnen so schwer zu losen sein, so dass aus praktischer Sicht keine effiziente(bezuglich Laufzeit und/oder Speicherplatz) Implementierung moglich ist.

Im Vorlesungsteil Algorithmen und Datenstrukturen hatten wir als Zeit- undPlatzkomplexitatsmaß die O-Notation eingefuhrt, Algorithmen im Pseu-docode formuliert und einzelne Berechnungsschritte durch Konstanten ab-geschatzt. Wir haben dabei festgestellt, dass viele klassische Problemstellun-gen in Polynomialzeit in Bezug auf die Eingabegroße gelost werden konnen.

Ubertragen auf unsere Maschinenmodelle entspricht diese Vorgehensweiseim wesentlichen einer RAM im uniformen Kostenmaß. Solang die verwen-deten Objekte und Zahlen nicht zu groß werden, ist die Annahme, dass eineeinzelne Rechenoperation in konstanter Zeit ausgefuhrt werden kann insge-samt sinnvoll. Die Programme, die wir im Pseudocode formulieren konnen,lassen sich stets durch eine RAM oder eine Turingmaschine in annahernd(polynomieller Faktor) gleicher Laufzeit realisieren und umgekehrt. Deshalbverwenden wir im Folgenden auch gelegentlich Pseudocode. Im Vorlesungs-teil Algorithmen und Datenstrukturen waren obere und untere polynomielleLaufzeitschranken von Interesse. Das wird hier unerheblich sein, wir wolleneher wissen, ob es polynomielle obere Schranken gibt oder nicht. Wir konnendaher großzugiger mit den Laufzeiten umgehen.

Es ist außerdem aus praktischer Sicht sinnvoll anzunehmen, dass eine ein-zelne Rechnenoperation fur angemessen große Zahlen in konstanter Zeit

49

50 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

ausfuhrbar ist. Alle modernen Rechner verwenden beispielsweise eine festeingebaute Floating-Point Arithmetik nach IEEE Standard die in einemvorgegebenen relativ großen Zahlenbereich sehr effizient arbeitet.

Vorsicht ist allerdings geboten. Es ist nicht erlaubt, beliebig große Zahlen zuverwenden. Dadurch ließen sich vollstandige (exonentiell große) Losungen ineinzelnen Zahlen konstant kodieren. Wenn wir also beispielsweise eine RAMverwenden, mussen wir im Prinzip das logarithmische Kostenmaß verwen-den.

4.1 Entscheidungs- und Optimierungsprobleme

Berechenbarkeitsfragen haben wir formal durch die Entscheidbarkeit vonSprachen durch Maschinen beantwortet. Dabei wurde durch die Maschinenentschieden, ob ein bestimmtes Wort zu einer Sprache gehort oder nicht.Wir wollen hier motivieren, dass es auch bei der Einteilung von Proble-men in Berechnungskomplexitatsklassen im wesentlichen darum geht, dieBerechnungskomplexitat von Entscheidungsproblemen zu untersuchen. An-dere Problemstellungen lassen sich daraus leicht ableiten.

In der Praxis ist man nicht nur an ja/nein Antworten interessiert, sondernauch an der optimalen Antwort oder an einer optimalen Losung eines Op-timierungsproblems. Wir wollen hier am Beispiel des Travelling-Salesman-Problems (TSP) zeigen, dass diese unterschiedlichen Problemstellungen auf-einander reduziert werden konnen. Effiziente Algorithmen fur ein Entschei-dungsproblem garantieren effiziente Algorithmen fur das Optimierungspro-blem, da die Reduktionen in der Laufzeit beschrankt sind.

Zu beachten ist, dass wir formal definierte Reduktionen bislang zwischenSprachen betrachtet haben. Das werden wir auch so beibehalten und des-halb bei formalen Reduktionen stets nur uber Entscheidungsprobleme ar-gumentieren. Hier soll nur gezeigt werden, dass die Betrachtung von Ent-scheidungsproblemen keine Einschrankung darstellt, da sich dann auch Op-timierungsprobleme losen lassen. Die Reduktion ist daher hier eine direkteUnterprogrammtechnik.

Traveling Salesman Problem: Gegeben sind n Orte s1, s2, . . . , sn undKosten cij ∈ IIN fur die Reise von si nach sj . Gesucht wird die kostengunstigsteRundreise (jeder Ort wird genau einmal besucht). Die Eingabe kann einGraph G = (V,E) sein mit einer Kostenfunktion fur die Kanten.

Naturlich lasst sich diese Eingabe binar kodieren und es stellt sich danndie Frage, ob das zugehorige Wort zu einer bestimmten Sprache gehort. Diewesentliche Aufgabe wird es sein, das folgende Entscheidungsproblem zulosen. Dazu wird entschieden, ob ein Eingabewort der entsprechende Spracheangehort.

4.1. ENTSCHEIDUNGS- UND OPTIMIERUNGSPROBLEME 51

TSP-Entscheidungsproblem: Gegeben G = (V,E) mit Kantengewichts-funktion c : E → IIN und t ∈ IIN.Frage: Gibt es eine Rundreise mit Gesamtkosten ≤ t?Falls es eine Turingmaschine M oder eine RAM gibt, die dieses Problementscheidet, dann lassen sich auch Maschinen beschreiben, die das folgendeOptimierungsproblem losen. Wir verwenden dazu ein kleines Programm imPseudocode einer hoheren Programmiersprache.

TSP-Optimierungsproblem: Gegeben G = (V,E) mit Kantengewichts-funktion c : E → IIN.Problem: Bestimme die Kosten der gunstigsten Rundreise.

Dieses Problem kann wie folgt auf das Entscheidungsproblem reduziert wer-den. Wir berechnen k :=

∑e∈E c(e) und benutzen binare Suche.

1: Min := 0; Max := k;2: while Max−Min ≥ 1 do

3: t :=⌊

Min+Max2

⌋4: Lose Entscheidungsproblem mit t;5: if Antwort JA then6: Max := t;7: else8: Min := t+ 1;9: end if

10: end while

Zur Losung des Optimierungsproblems mussen somit nur dlog ke viele TSP-Entscheidungsprobleme gelost werden. Da log k ≤ ∑

e∈E log c(e) gilt, istlog k durch die Eingabgroße beschrankt. Falls ein polynomieller Algorith-mus fur das TSP-Entscheidungsproblem existiert, dann gibt es auch einenpolynomiellen Algorithmus fur das TSP-Optimierungsproblem.

Naturlich ist man nicht nur an der Lange der optimalen Losung, sondernauch am optimalen Rundweg selbst interessiert. Das fuhrt zu folgender funk-tionalen Problembeschreibung:

Funktionales TSP-Optimierungsproblem: Gegeben G = (V,E) mitKantengewichtsfunktion c : E → IIN.Problem: Bestimme eine Rundtour mit minimalen Kosten.

Auch dieses Problem konnen wir auf das TSP-Entscheidungsproblem re-duzieren. Zunachst verwenden wir das TSP-Optimierungsproblem, um dieminimalen Kosten t0 zu bestimmen.

1: Bestimme optimale Kosten t0;2: for alle e ∈ E do3: c(e) := c(e) + 1;4: Bestimme optimale Kosten t′0;5: if t′o > t0 then

52 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

6: c(e) := c(e)− 1; // Kante e wird gebraucht7: end if8: end for

Nach der Terminierung sind genau die Kanten, die zu einer optimalen Rund-tour gehoren nicht erhoht worden. Maximal (n2 + 1) mal wurde das TSP-Optimierungsproblem aufgerufen. Falls ein polynomieller Algorithmus furdas TSP-Entscheidungsproblem existiert, dann gibt es auch einen polyno-miellen Algorithmus fur das funktionale TSP-Optimierungsproblem.

Im Folgenden gehen wir davon aus, dass sich alle funktionalen Berechnungs-probleme durch entsprechende Entscheidungsprobleme losen lassen und einepolynomielle Laufzeit nur vom jeweiligen Entscheidungsproblem abhangt.Die (optimale) Laufzeit hangt naturlich auch von der Reduktion selbst ab,es geht aber, wie gesagt, nicht um optimale Laufzeiten, sondern um dieGroßenordnung der Laufzeiten.

Ubungsaufgabe: Formulieren Sie fur das Sortieren von n naturlichen Zah-len ein Entscheidungsproblem und eine Reduktion. Das Sortieren soll alsfunktionales Problem mittels des Entscheidungsproblems gelost werden.

4.2 Zeitkomplexitat von Turingmaschinen

Zunachst prazisieren wir nochmal den Laufzeitbegriff verwenden dazu Tu-ringmaschinen und gehen davon aus, dass eine Sprache L von einer MaschineM entschieden werden kann. Die Maschine halt also bei jeder Eingabe!

Fur ein Wort w ∈ Σ∗ sei mit TM (w) die Anzahl der Rechenschritte von Mbei Eingabe w definiert. Fur n ∈ IIN sei dann

TM (n) := maxTM (w)|w ∈ Σ∗, |w| ≤ nund die Funktion TM : IIN→ IIN heißt die Laufzeit oder Zeitkomplexitat vonM .

Durch die obige Definition ist automatisch sichergestellt, dass TM eine mono-ton wachsende Funktion ist. Wir sagen auch, dass die DTM M eine Laufzeitoder Zeitkomplexitat O(f(n)) hat, falls TM (n) ∈ O(f(n)) liegt.

Betrachten wir zum Beispiel nochmal die Maschine aus Beispiel 3 im Ab-schnitt 2.2, die die Sprache L = 0k1k|k ≥ 1 entscheidet. Wir verzichtenim Folgenden auf die genaue Maschinenbeschreibung bzw. auf Implementie-rungsdetails und erlautern systematisch, was die Maschine tut.

1. Durchlaufe die Eingabe. Falls eine Null nach einer Eins auftaucht,lehne ab.

2. Wiederhole die folgenden Schritte, solange noch eine Eins und eineNull auf dem Band stehen.

4.2. ZEITKOMPLEXITAT VON TURINGMASCHINEN 53

3. Durchlaufe das Band von links nach rechts, losche dabei die letzte Einsund die erste Null. Gehe nach rechts zum letzten Zeichen.

4. Falls alle Zahlen geloscht wurden, akzeptiere die Eingabe. Falls nurnoch Einsen und keine Null mehr auf dem Band steht oder falls nurnoch Nullen und keine Eins mehr auf dem Band steht, lehne das Wortab.

Fur die Laufzeitanalyse ist zunachst klar, dass im 1. Schritt in O(n) gepruftwird, ob w mit |w| = n von der Form 0i1j ist. Danach wird in jedem Schritt3. das aktuelle Wort vollstandig durchlaufen und um zwei Zahlen gekurzt.Jeder dieser Schritte benotigt maximal O(n) Schritte. Da aber in jedemSchritt 2 Zahlen außen geloscht werden kann Schritt 3. maximal n/2 malausgefuhrt werden. Danach kann die Eingabe ggf. akzeptiert werden oderdie Eingabe wurde bereits vorher verworfen. Die Laufzeit betragt also ma-ximal O(n) + O(n2) = O(n2). Die Sprache L ist also in quadratischer Zeitentscheidbar.

Definition 35 Sei t : IIN → IIN eine monoton wachsende Funktion. DieKlasse DTIME(t(n) ist definiert als:

DTIME(t(n)) :=

L

∣∣∣∣ L ist eine Sprache, die von einer DTM Min Zeit O(t(n)) entschieden wird.

.

Wir haben uns hier auf Sprachen beschrankt, uber funktionale Optimie-rungsprobleme machen wir aber ohne Einschrankung ahnliche Aussagen.

Die obige Betrachtung zeigt nun L ∈ DTIME(n2). Die folgende informelleBeschreibung einer DTM besagt, dass L sogar mit geringerer Zeitkomple-xitat entschieden werden kann.

Beschreibung einer DTM M :

1. Durchlaufe die Eingabe. Falls eine Null nach einer Eins auftaucht,lehne ab. Sonst geh zuruck zum Anfang des Bandes.

2. Wiederhole die folgenden Schritte, solange noch eine Eins und eineNull auf dem Band stehen.

3. Durchlaufe das Band von rechts nach links und stelle dabei fest, obdie Anzahl Einsen und Nullen beide gerade oder beide Ungerade sind.Lehne ab, falls dies nicht der Fall ist. Sonst gehe zurck zum Beginnder Eingabe.

4. Durchlaufe das Band und streich jede zweite Null und jede zweite Eins,beginnend mit der ersten Null und der ersten Eins.

54 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

5. Falls nur noch Einsen und keine Null mehr auf dem Band steht oderfalls nur noch Nullen und keine Eins mehr auf dem Band steht, lehnedas Wort ab.

Bei dieser Programmabarbeitung ist es so, dass Schritt 3. und 4. wieder-um O(n) Aufwand bedeuten, aber insgesamt nur O(log n) mal aufgerufenwerden. In jedem Schritt wird die Halfte der Zahlen gestrichen. Es gilt alsoL ∈ DTIME(n log n).

4.3 Die Klasse P

Die Theoreme 30 und 31 zeigen, dass die folgende Definition effizient losbarerProbleme unabhangig vom jeweiligen Maschinenmodell (1-Band DTM, Mehr-band DTM, RAM) betrachtet werden kann.

Definition 36 Die Klasse P ist definiert als

P =⋃k∈IIN

DTIME(nk).

Die Klasse P ist also die Menge aller Sprachen, fur die es ein beliebiges aberfestes k gibt, so dass eine DTM M existiert, die die Sprache L in LaufzeitO(nk) entscheidet. Die Klasseneinteilung ist sinnvoll, es handelt sich umProblemstellungen fur die

• · · · wir eine mathematisch konkrete polynomielle Abschatzung vor-nehmen.

• · · · die aus praktischer Sicht effizient losbar sind.

Fur die effiziente Losbarkeit aus praktischer Sicht ist es notwendig, dass derzugehorige konstante Exponent k nicht zu groß wird. k = 1000 ist zum Bei-spiel aus praktischer Sicht fur große n definitiv nicht mehr effizient. Es zeigtsich aber aus Erfahrung, dass fur alle klassischen Problemstellungen auchrelativ kleine konstante k = 2, 3, 4, . . . gefunden werden konnen. Beispielefur (funktionale) Problemstellungen aus P sind:

• Sortieren von Zahlen

• Berechnen eines minimalen Spannbaumes

• Maximaler Fluss in einem Netzwerk

• Zusammenhang eines Graphen

4.3. DIE KLASSE P 55

• Tiefensuche und Breitensuche

• Kurzeste Wege im Graphen

• · · ·

Wir wollen zwei Beispiele nochmal explizit betrachten und dabei unserebisher vorgestellten Maschinenmodelle verwenden.

Beispiel 1: Gegeben ist ein gerichteter Graph G = (V,E) und zwei Knotens, t aus V . Gibt es in G einen gerichteten Pfad von s nach t.

Zunachst kann G = (V,E) mit s und t binar als 〈V,E, s, t〉 kodiert werden.Als Sprache ausgedruckt suchen wir eine DTM M , die die Sprache

PATH :=

〈V,E, s, t〉

∣∣∣∣ G = (V,E) ist ein gerichteter Graph mit s, t ∈ Vund einem gerichteten Pfad von s nach t

entscheidet.

Lemma 37 PATH ∈ P .

Beweis. Wir geben eine DTM M an, die PATH entscheidet. Diese DTMimplementiert eine Breitensuche.

1. Verwalte eine Menge S = s und markiere s.

2. Wiederhole die folgenden Schritte, bis die Menge S leer ist oder terreicht wird.

3. Fur alle a ∈ S betrachte alle Kanten (a, b) ∈ E in denen b nichtmarkiert ist, fuge alle diese bs in S ein, markiere alle diese bs undlosche die as aus S.

4. Falls t ∈ S zu einem Zeitpunkt gilt, akzeptiere, sonst lehne ab.

Offensichtlich werden alle von s aus erreichbaren Knoten irgendwann in Sgefuhrt, wobei beim i-ten Durchlauf von Schritt 3. alle Knoten die mit iSchritten von s aus erreichbar sind, in S eingefugt und markiert werden.Falls diese Knoten spater nocheinmal erreicht werden sollten, werden dieKanten ignoriert.

Die relevanten Informationen mussen sinnvoll auf ein Band gespeichert wer-den, um Schritt 3. auszufuhren. Fur jeden Knoten wird markiert, ob eraktuell in der Menge S liegt und nach Schritt 3. liegen wird. Fur jede Kantewird notiert, ob der Endknoten markiert wurde.

56 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Schritt 1. und Schritt 4. werden nur einmal durchlaufen. In Schritt 3. werdenim schlimmsten Fall immer alle Kanten |E| = m und alle Knoten |V | = nbetrachtet. Wir mussen dann stets die gesamte Eingabe der Große O(n+m)fur alle aktuellen Knoten durchlaufen. Jeder Knoten ist aber nur genaueinmal aktuell. Also ergibt sich eine Laufzeit von O(n(n + m)) fur eineEingabe der Große O(n+m). 2

Beispiel 2 (Sortieren): Gegeben N binar kodierte Zahlen a1, a2, . . . , aN ∈IIN. Gesucht ist die aufsteigend sortierte Folge dieser Zahlen.

Lemma 38 Sortieren liegt in P .

Beweis. Wir verwenden eine RAM und bilden beispielsweise Insertionsort-Algorithmus durch die RAM ab. Sei dazu n die Eingabelange, also die An-zahl aller Bits zur Kodierung der N Eingabezahlen a1, a2, . . . , aN .

Im uniformen Kostenmaß erhalten wir eine Laufzeit von O(N2) im worst-case. Fur l = max1≤i≤N log ai kann jeder uniforme Schritt in Zeit O(l) aufder RAM ausgefuhrt werden. Dann ist die Laufzeit der RAM im logarith-mischen Zeitmaß O(l · N2). Aus l ≤ n und N ≤ n folgt l · N2 ≤ n3. DieLaufzeit auf der RAM ist somit polynomiell beschrankt. 2

4.4 Nichtdeterministische Turingmaschinen

Es gibt Problemstellungen, die vermutlich nicht in P liegen. Sei beispielswei-se G = (V,E) ein ungerichteter Graph mit Knotenmenge V = 1, 2, . . . , n,den wir durch eine Adjazenzmatrix binar kodieren konnen. Eine k-Cliqueim Graphen ist eine Teilmenge V ′ ⊆ V mit |V ′| = k, so dass (i, j) ∈ E furalle i, j ∈ V ′ mit i 6= j gilt. Also ein Teilmenge von Knoten, so dass die-se allesamt untereinander mit Kanten verbunden sind. Anders ausgedrucktsuchen wir nach einer Permutation π der Knotenmenge, so dass in der Ad-jazenzmatrix eine k × k-Submatrix entsteht, die nur mit Einsen gefullt ist.Das Problem sei durch die folgende Sprache definiert:

Clique :=

〈V,E, k〉

∣∣∣∣ G = (V,E) ist gerichteter Graph und k ∈ IIN,so dass G eine k − Clique enthalt

.

Es ist kein polynomieller Algorithmus bekannt, der die Sprache Clique ent-scheidet. Fallls wir aber einen Kandidaten von k Knoten haben, fur denwir die Cliqueneigenschaft uberprufen wollen, dann geht das sehrwohl inpolynomieller Zeit. Alle momentan bekannten Algorithmen zur Losung desCliquenproblems testen im wesentlichen die Beweiskandidaten. Nehmen wir

4.4. NICHTDETERMINISTISCHE TURINGMASCHINEN 57

also an, wir hatten einen Mechanismus, der fur uns den richtigen Beweis-kandidaten rat. Dann konnen wir das Problem in polynomieller Zeit losen.Das fuhrt zur Definition der nichtdeterministischen Turingmaschinen NTM.

Definition 39 Eine nichtdeterministische k-Band Turingmaschine (NTM)ist ein 5-Tupel N = (Σ, Q, δ, q1, F ) wobei Σ, Q, q0 und F genauso definiertsind wie bei der DTM und die Zustandsubergangsfunktion ist von der Form

δ : Q× Σk → P (Q× Σk × −1, 1, 0k),

wobei P (Q× Σk × −1, 1, 0k) die Potenzmenge, also die Menge aller Teil-mengen der Menge von Q× Σk × −1, 1, 0k bezeichnet.

Fur eine 1-Band NTM ist die Interpretation eines Tupels der Form δ(q, a) =(q1, c1, b1), (q2, c2, b2), . . . , (ql, cl, bl) so, dass die Maschine nach dem Lesendes Buchstaben a im Zustand q in eine der Folgekonfigurationen ubergehendarf. Der Ubergang ist nicht deterministisch festgelegt, die Ubergangsfunktionkann auch als Relation betrachtet werden.

Wir betrachten das folgende Beispiel eine NTM N . Wie bislang ist q1 derStartzustand und q3 der Endzustand.

δ 0 1 tq1 (q1, 0, 1), (q3, 0, 0) (q2, 1, 1) (q3, 0, 0)

q2 (q1, 0, 1), (q3, 0, 0) (q3, 1,−1) (q3, 0, 0)

Konfigurationsanderungen werden nun nicht als einfache Ketten dargestellt,sondern durch Baume, die den Nichtdeterminismus beschreiben. Wir spre-chen dann also von einem Berechnungsbaum. Beispielsweise ergibt sich einBerechungsbaum fur die obige Maschine N bei einem Wort w = 0011 wiefolgt.

Der Baum enthalt ablehnende und akzeptierende Blatter. Bezuglich des Ak-zeptanzverhaltens reicht ein akzeptierender Pfad aus.

Definition 40 Eine NTM N akzeptiert die Eingabe x ∈ Σ∗, falls es min-destens eine Berechnung gibt, die in eine akzeptierende Endkonfigurationfuhrt.

Die von N akzeptierte Sprache L(N) ist definiert durch

L(N) := w ∈ Σ∗|N akzeptiert w.

Die NTM N akzeptiert die Sprache L falls L = L(N). Die NTM N ent-scheidet L falls N immer halt und N die Sprache L akzeptiert. Worter, dienicht in L liegen werden verworfen.

58 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

$q10011

$0q1011$q30011

$0q3011 $00q111

$001q21

$00q311

Abbildung 4.1: Der Berechnungsbaum der Maschine N .

Fur Laufzeitabschatzungen der NTM berucksichtigen wir nur die Eingabenw ∈ L(N). Wir gehen davon aus, dass sich die NTM immer den kurzestenakzeptierenden Pfad wahlt, die Maschine rat somit den besten akzeptieren-den Pfad.

Definition 41 Sei N eine NTM. Die Laufzeit TN (w) von N bei einer Ein-gabe w ∈ Σ∗ ist definiert durch:

TN (w) :=

Lange des kurzesten akzept. Pfades falls w ∈ L(N)0 sonst

.

Fur n ∈ IIN ist dann

TN (n) := maxTN (w)|w ∈ Σ∗, |w| ≤ n

und die Funktion TN : IIN→ IIN heißt Laufzeit oder Zeitkomplexitat von N .

Durch die obigen Definition ist automatisch sichergestellt, dass TN eine mo-noton wachsende Funktion ist. Wir sagen auch, dass die NTM N eine Lauf-zeit oder Zeitkomplexitat O(f(n)) hat, falls TN (n) ∈ O(f(n)) liegt. Nun lasstsich analog zu den DTMs die Klasse NTIME(t(n) definieren.

Definition 42 Sei t : IIN → IIN eine monoton wachsende Funktion. DieKlasse NTIME(t(n) ist definiert als:

NTIME(t(n)) :=

L

∣∣∣∣ L ist eine Sprache, die von einer NTM Nin Zeit O(t(n)) akzeptiert wird.

.

4.5. DIE KLASSE NP 59

Ubungsaufgabe: Welche Sprache entscheidet die NTM N aus dem obigenBeispiel und welche Zeitkomplexitat hat die Maschine?

4.5 Die Klasse NP

Erinnern wir uns an die Ausgangssituation der Uberprufung von Beweiskan-didaten. Eine Maschine kann nichtderterministisch einen beliebigen Beweis-kandidaten erzeugen, den wir dann nur noch effizient uberprufen mussen.Problemstellungen in denen das insgesamt effizient moglich ist, fassen wirin der folgenden Klasse zusammen.

Definition 43 Die Klasse NP ist definiert als

NP =⋃k∈IIN

NTIME(nk).

Die Klasse NP ist also die Menge aller Sprachen, fur die es ein beliebigesaber festes k gibt, so dass eine NTMN existiert, die die Sprache L in LaufzeitO(nk) akzeptiert. NP steht hierbei fur nichtdeterministisch polynomiell. Alserstes wollen wir zeigen, dass Clique eine Problem der Klasse NP ist.

Lemma 44 Clique ∈ NP .

Beweis. Wir beschreiben eine NTM N mit L(N) = Clique. Falls w =〈V,E, k〉 nicht dem Eingabeformat (kein Graph, keine entsprechende Zahl)entspricht, verwirft die Maschine. Ansonsten arbeitet die Maschine wie folgt.

1. Fur G = (V,E) sei L die Anzahl der Knoten, also V = 1, 2, . . . , L.Wir schreiben das Wort #L hinter die Eingabe, der Kopf bewegt sichauf das erste # Zeichen.

2. Die Maschine lauft von links nach rechts und ersetzt den String #L

nichtdeterministisch durch einen String aus 0, 1L. Dadurch lassensich alle Strings aus 0, 1L in ZeitO(L) erzeugen. Sei x = (x1, x2, . . . , xLder erzeugte String.

3. Betrachte Vx = i ∈ V |xi = 1 ⊆ V . Uberprufe, ob es sich um einek−Clique handelt. Es wird getestet, ob es zwischen allen Knotenpaarenaus Vx Kanten in E gibt. Akzeptiere, falls es so ist, sonst verwerfe dieEingabe.

Offensichtlich ist L(N) = Clique. Genau wenn G eine k − Clique enthalt,dann existiert ein String x = (x1, x2, . . . , xL so dass Vx diese k − Clique

60 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

darstellt. Die Laufzeit ist polynomiell in der Eingabe beschrankt. Schritt 1.und das Uberprufen der Eingabe konnen in O(|E|+ |V |) durchgefuhrt wer-den. Schritt 3. benotigt fur jedes Knotenpaar Vx O(|E|+ |V |) = O(|E|) Zeitzur Uberprufung, insgesamt als O(|V |2|E|) = O(|E|2) Zeit. Jeder nichtde-terministische Berechnungspfad aus Schritt 2. hat Lange |V |. Das Problemlasst sich nichtdeterministisch polynomiell losen. 2

Das Problem der Clique haben wir mit Hilfe des Nichtdeterminismus gelost.Dazu wurde der richtige Beweiskandidat geraten. Ein generierter Beweiskan-didat kann also in diesem Sinn auch als Zertifikat bezeichnet werden, dasswir in polynomieller Zeit mit der jeweiligen Maschine uberprufen konnen.Diese Sicht der Dinge werden wir im Folgenden prazisieren.

Vorher formulieren wir noch einige Beispiele fur Sprachen bzw. Problemstel-lungen, die in NP liegen.

4.5.1 Beispiele fur Probleme aus NP

Rucksackproblem: Gegeben ist eine Menge von Gewichten w1, w2, . . . , wN ∈1, 2, . . . , bmit einem Rucksack der Kapazitat b ∈ IIN und Preisen p1, p2, . . . , pN .Gesucht ist eine zulassige Losung mit maximalen Preis, also eine TeilmengeK ∈ 1, 2, . . . , N mit

∑i∈K wi ≤ K mit maximalen Wert

∑i∈K pi unter

allen solchen Teilmengen K.

Das Rucksackproblem kann auch als Entscheidungsproblem definiert wer-den, dabei wird entschieden, ob es fur die Eingabe eine Losung einer be-stimmten Gute gibt oder nicht. Wie in jedem Fall kann durch die Losungdes Entscheidungsproblems auch eine Losung des Optimierungsproblemsoder des obigen Funktionalen Optimierungsproblems gefunden werden. Derzusatzliche Aufwand ist polynomiell beschrankt.

Hamilton-Circle: Gegeben ist ein ungerichteter Graph G = (V,E).Frage: Gibt es eine Rundtour in G, so dass jeder Knoten genau einmalbesucht wird?

Ein sehr wichtiges Problem stammt aus dem Bereich der Aussagenlogik, diein der Vorlesung Logik und diskrete Strukturen behandelt wurde. Dazu seiV = x1, x2, . . . eine unendliche Menge aussagenlogischer Variablen, dieden Wert 1 (wahr, true) oder 0 (nicht wahr, false) annehmen konnen.

Eine aussagenlogische Formel (oder auch aussagenlogischer Ausdruck) kannnun wie folgt als Konjunktion (Und-Verbindung) von Disjunktionen (Oder-Verbindung) definiert werden.

4.5. DIE KLASSE NP 61

• Fur xi ∈ V seien xi und ¬xi Literale. Jedes Literal yi ist eine aussa-genlogische Formel.

• Seien y1, y2, . . . yk Literale so ist der Ausdruck (y1 ∨ y2 ∨ · · · ∨ yk) eineKlausel vom Grad k und eine aussagenlogische Formel.

• Seien k1, k2, . . . , kl Klauseln vom Grad ≤ k, dann ist der Ausdruck k1∧k2 ∧ · · · ∧ kl eine aussagenlogische Formel in konjunktiver Normalformmit hochstens k Literalen pro Klausel.

Eine Belegung der in einer Formel in konjunktiver Normalform verwendetenVariablen ist eine Zuordnung dieser Variablen xi in die Wahrheitswerte 0oder 1.

Fur eine gegebene Belegung gilt folgende Interpretation:

• Sei xi = 1(xi = 0) dann ist das Literal xi true (false) und das Literal¬xi false (true).

• Fur Literale y1, y2, . . . yk ist die Klausel (y1 ∨ y2 ∨ · · · ∨ yk) true, fallsmindestens ein Literal fur die Belegung true ist. Sonst ist die Klauselfalse.

• Der aussagenlogische Ausdruck k1∧k2∧· · ·∧kl fur Klausel k1, k2, . . . , klist true, falls alle Klauseln true sind. Sonst ist der Ausdruck false.

SAT (Satisfiability): Gegeben: Ein aussagenlogischer Ausdruck k1 ∧ k2 ∧· · · ∧ kl mit Klauseln vom Grad ≤ k in konjunktiver Normalform mit insge-samt m verwendeten Variablen x1, x2, . . . , xm.Frage: Gibt es eine Belegung der Variablen, so dass der Ausdruck k1 ∧ k2 ∧· · · ∧ kl true ist?

Im obigen Problem kann fur jedes Wort, dass zu entscheiden ist, der Gradk verschieden sein. Wenn wir k vorab festlegen, ist das ein interessanterSpezialfall des Problems.

k-SAT: Gegeben: Ein aussagenlogischer Ausdruck k1 ∧ k2 ∧ · · · ∧ kl mitKlauseln vom Grad ≤ k mit fest vorgegebenen k in konjunktiver Normalformmit insgesamt m verwendeten Variablen x1, x2, . . . , xm.Frage: Gibt es eine Belegung der Variablen, so dass der Ausdruck k1 ∧ k2 ∧· · · ∧ kl true ist?

Ein weiterer Spezialfall ist:

62 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Max-k-SAT: Gegeben: Ein aussagenlogischer Ausdruck α = k1∧k2∧· · ·∧k`mit Klauseln vom Grad ≤ k in konjunktiver Normalform mit insgesamt mverwendeten Variablen x1, x2, . . . , xm, und eine Zahl t.Frage: Gibt es eine Belegung der Variablen, so dass mindestens t Klauselnaus k1, k2, . . . , kl true sind?

Beim funktionalen Optimierungsproblem von Max-k-SAT wird eine Bele-gung der Variablen gesucht, so dass die maximale Anzahl an Klauseln ausk1, k2, . . . , kl true ist.

Ubungsaufgabe: Zeigen Sie 2-SAT liegt in P .

Set-Cover: Gegeben ist eine Menge von Elementen S = e1, e2, . . . em undeine Menge T = T1, T2, . . . , Tk von Teilmengen Ti mit Elementen aus S.Gesucht: Eine Teilmenge aus T , die exakt die Menge die Menge S abdeckt,also eine Menge T ′ = Ti1 , Ti2 , . . . Til ⊆ T mit fur jedes ej ∈ S existiertgenau ein Tij ∈ T ′ mit ej ∈ Tij .

Auch fur Set-Cover gibt es Spezialfalle:

3-Exakt-Cover: Gegeben ist eine Menge von Elementen S = e1, e2, . . . emmit m = 3n und eine Menge T = T1, T2, . . . , Tk von 3-elementigen Teil-mengen Ti.Gesucht: Eine Teilmenge aus T , die exakt die Menge die Menge S abdeckt,also eine Menge T ′ = Ti1 , Ti2 , . . . Til ⊆ T mit fur jedes ej ∈ S existiertgenau ein Tij ∈ T ′ mit ej ∈ Tij .

Knotenuberdeckung (Vertex-Cover): Geben ist ein Graph G = (V,E)und eine Zahl k ∈ IIN.Frage: Gibt es eine Kontenmenge V ′ ⊆ V mit |V ′| = k, so dass fur jedeKante (v, w) ∈ E gilt: v ∈ V ′ oder w ∈ V ′?

Knotenfarbung (Coloring): Gegeben ist ein Graph G = (V,E) und eineZahl k ∈ 1, 2, . . . , |V |.Frage: Gibt es eine Farbung c : V → 1, 2, . . . , k der Knoten von V mitk Farben, so dass benachbarte Knoten verschiedene Farben haben, d.h., furalle (v, w) ∈ E gilt c(v) 6= c(w)?

4.5. DIE KLASSE NP 63

Probleme aus NP konnen auch explizit etwas mit Zahlenberechnungen zutun haben. Als Beispiele gelten die folgenen Problemstellungen:

Partition: Gegeben ist eine Menge vonN naturlichen Zahlen a1, a2, . . . , aNmit ai ∈ IIN.Frage: Gibt es eine Teilmenge T der Menge 1, 2, . . . , N so dass

∑i∈T ai =∑

j∈1,2,...,N\T aj gilt, also eine Aufteilung der Zahlen, so dass die Summenidentisch sind?

Subset-Sum: Gegeben ist eine Menge vonN naturlichen Zahlen a1, a2, . . . , aNmit ai ∈ IIN und ein b ∈ IIN. Frage: Gibt es eine Teilmenge T ⊆ 1, 2, . . . , Nso dass

∑i∈T ai = b gilt?

Wir zeigen nochmal exemplarisch an zwei Beispielen, warum die beschrie-benen Probleme in NP liegen.

Lemma 45 SAT liegt in NP .

Beweis. Eine NTM mit der Eingabe k1 ∧ k2 ∧ · · · ∧ kl mit Klauseln vomGrad ≤ k und insgesamt m Variablen kann zunachst eine Belegung durchden Nichtdeterminismus in Laufzeit O(m) raten.

Danach werden sukzessive die Klauseln uberpruft. In jeder Klausel wird jedeVariable abgefragt. Man konnte fur diese Uberprufung beispielsweise eine 2-Band DTM verwenden, die auf dem zweiten Band die geratene Belegungenthalt und auf dem ersten Band die Eingabe. Sowohl die Belegung als auchdie Eingabe wird zur Kodierung der Variablenindizes zusatzlich einen log-Faktor benotigen.

Fur jede Variable, die auf dem ersten Band besucht wird, wird im zwei-ten Band die Belegung durchsucht. Falls eine Klausel nicht erfullt ist, wirdabgelehnt. Falls alle Klauseln erfullt sind, wird akzeptiert.

Die Laufzeit betragt O(m · (k · l)) mit m ≤ k · l und ist polynomiell durchdie Eingabegroße C · k · l beschrankt. Berucksichtigen wir die Lange der Ko-dierung der Variablenindizes, so wird ein zusatzlicher log2 Faktor benotigt.Die Laufzeit ist aber polynomiell. 2

Lemma 46 Subset-Sum liegt in NP .

Beweis. Durch eine nichtdeterministische NTM konnen wir die richtige Teil-menge T in maximal N Schritten raten.

64 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Danach addieren wir die Elemente in deterministischer Weise, beispiels-weise durch eine RAM auf. Im uniformen Kostenmaß geht das auch inZeit O(N). Eine weitere Operation und ein Vergleich mit b liefert die Ant-wort. Im logarithmischen Kostenmaß muss l := max1,2,...,N log(ai) be-trachtet werden. Jeder Rechenschritt der RAM wird in O(l) ausgefuhrt.Da n =

∑1,2,...,N log(ai) + log b ≥ l die Eingabegroße ist, wird insgesamt

eine Laufzeit von C · l ·N ∈ O(n2) erzielt. 2

4.6 Klasse NP durch Zertifikate charakterisieren

Bei der Einfuhrung der Klasse NP hatten wir bereits uber das Verifizie-ren von Beweiskandidaten gesprochen und in den eben gefuhrten Beweisen,haben wir stets zunachst einen Kandidaten geraten und diesen dann deter-ministisch uberpruft. Dieses Beweisidee lasst sich schon verallgemeiner, einklassisches Prinzip in der Theorie.

Definition 47 Fur eine Sprache L heißt eine DTM V polynomieller Veri-fizierer von L, falls es Polynome p und q gibt mit der folgenden Eigenschaftexistiert:

x ∈ L⇔ ∃y ∈ 0, 1∗ mit |y| ≤ p(|x|) : V akzeptiert y#x in Laufzeit q(|y#x|).

Die Sprache L heißt dann polynomiell verifizierbar.

Lemma 48 Eine Sprache L liegt genau dann in NP , falls die Sprache po-lynomiell verifizierbar ist.

Beweis. Sei L ∈ NP . Dann gibt es einen NTM N , die x ∈ L mit |x| = nin polynomieller Zeit p(n) akzeptiert. Wir vereinfachen die nichtdetermi-nistische Ubergangsfunktion dadurch, so dass immer maximal zwei nicht-deterministische Ubergange existieren. Die beiden alternativen Ubergangebezeichnen wir dann respektive mit 0 oder 1. (Die Anzahl der Ubergangeist allgemein stets durch die konstante Anzahl von Elementen aus Σ undQ beschrankt, deshalb lasst sich diese Betrachtung entsprechend ohne Ein-schrankung realisieren. Der Verzweigungsgrad der Maschine ist durch eineKonstante k beschrankt und hierfur wurden log k Bits reichen. Die untenangesprochene Lange des Zertifikats y und die Laufzeit von V bleiben poly-nomiell. )

Bei einer Eingabe xmit |x| = n verwenden wir ein Zertifikat y ∈ 0, 1p(n)mit|y| ≤ p(|x|). Der zu erstellende Verifizierer V erhalt als Eingabe y#x undsimuliert einen Rechenweg deterministisch fur die Starteingabe x, indem im

4.6. KLASSE NP UND ZERTIFIKATE 65

i-ten Ubergang der Ubergang yi auf x angewendet wird. Fur jeden Simu-lationsschritt muss maximal die Eingabe |y#x| konstant mal durchlaufenwerden. Deshalb kann der Verifizierer V die Eingabe y#x in polynomiellerZeit q(|y#x|) akzeptieren:

x ∈ L ⇔ N akzeptiert x in polynomieller Zeit

⇔ ∃y ∈ 0, 1∗ mit |y| ≤ p(|x|) : V akzeptiert y#x in Laufzeit q(|y#x|).

Umgekehrt existiere ein Verifizierer V von L mit der angegebenen Eigen-schaft. Wir wollen L ∈ NP zeigen. Wir konstuieren eine NTM N , die x ∈ Lin polynomieller Zeit akzeptiert. Dabei rat N das Zertifikat y ∈ 0, 1∗ mit|y| ≤ p(|x|) in Zeit p(n) und fuhrt dann V auf dem Wort y#x deterministischin Zeit q(|y#x) aus, falls V das Wort y#x auch akzeptiert. Die Maschine Nakzeptiert die Eingabe x genau dann, wenn mindestens einer der moglichenRechenwege akzeptiert. Also gilt:

x ∈ L ⇔ ∃y ∈ 0, 1∗ mit |y| ≤ p(|x|) : V akzeptiert y#x in Laufzeit q(|y#x|)⇔ N akzeptiert x in polynomieller Zeit.

2

Ubungsaufgabe: Prazisieren Sie den obigen Beweis fur beliebige Ubergangsfunktionenmit maximal k Verzweigungen.

Wir wenden das Lemma an einem Beispiel an.

Lemma 49 Das TSP-Entscheidungsproblem liegt in NP .

Beweis. Als Sprache formulieren wir das Problem durch:

TSP :=

〈V,E, c, t〉

∣∣∣∣ G = (V,E) Graph mit Kantenkosten c(i, j) ∈ IIN fur (i, j) ∈ Eund es gibt eine Rundreise durch V mit Kosten ≤ t

.

Der Verifizierer VTSP fur diese Sprache konnte wie folgt aussehen. Ei-ne beliebige Rundreise kann durch eine Permutation π mit Knotenfolgeπ(1), π(2), . . . , π(|V |) beschrieben werden. Die Lange dieser Beschreibungliegt in O(|V | log |V |).Der deterministische Verifizierer V erhalt als Eingabe die Permutation 〈π〉#xund uberpruft zunachst, ob π eine Permutation ist. Da x die Beschreibungdes Graphen darstellt, gilt |〈π〉| ∈ O(|V | log |V |) ≤ |x| =: n. Danach wird

|V |−1∑i=1

c(π(i), π(i+ 1)) + c(π(|V |), π(1)) ≤ t

66 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

getestet und akzeptiert, falls die Aussage stimmt, sonst wird abgelehnt.

Offensichtlich ist V ein polynomieller Verifizierer fur L mit p(n) ∈ O(n) undmit einer Laufzeit q(|〈π〉#x|). Wir konnen namlich annehmen, dass fur l =∑

(i,j)∈E log(c(i, j)) ≤ n die Addition und Subtraktion in Zeit C · l2 ∈ O(n2)durchgefuhrt werden kann. Fur das jeweilige finden der Kosten in x wirdjeweils maximal O(|〈π〉#x|) Zeit benotigt. Somit ist q(n) ∈ O(n3). 2

4.6.1 P und NP

Offensichtlich gilt P ⊆ NP , da jeder deterministische Maschine ein Spezial-fall einer nichtdeterministischen Maschine ist.

Das vielleicht bekannteste Problem der Informatik lautet wie die Frage

P = NP?

zu beantworten ist. Ist also P eine echte Teilmenge von NP (P ⊂ NP )oder sind die Klassen identisch. Daruber wurde in den letzten Jahrzehntenintensiv diskutiert. Die Mehrheit der Forscher geht heute eher davon aus,dass die Klassen nicht identisch sind aber es gibt bislang keinen Beweisdafur. Es gibt auch eine Gruppe von Forschern, die glauben, dass diese Fragevielleicht gar nicht beweisbar sein kann bzw. die notwendige Theorie zurgenaue Beschreibung des Sachverhaltes noch nicht gefunden wurde. Wiederanderer glauben, dass polynomielle Algorithmen mit in der Praxis volligirrelevanten großen Exponenten arbeiten werden.

Im Prinzip stellt sich die Frage, ob man durch eine intelligente Vorgehenswei-se auf die Generierung exponentiell vieler Beweiskandidatn verzichten kann,eine solche Vorgehensweise ist unbekannt. Fur die Losung des Problems kannman mit einer Belohnung von 1 Millionen US Dollar rechnen.

4.7 NP -Vollstandigkeit

Aus P ⊆ NP folgt, dass nicht alle Probleme in NP schwer zu losen sind.Deshalb mochten wir gerne eine Aufteilung der Probleme in NP vorneh-men und der Begriff der NP -Vollstandigkeit wird diesen Aspekt abdeckenund NP vollstandig sind dann die schweren Probleme aus der Klasse NP .Das Konzept wird dadurch beschrieben, dass es ausreicht nur fur eine NP -vollstandige Sprache einen deterministischen polynomiellen Algorithmus zuentwerfen, um vollstandig alle anderen solche Probleme polynomiell zu losen.Wir werden zeigen das SAT NP -vollstandig ist und daraus die NP -Vollstan-digkeit weiterer Problem folgern wie zum Beispiel TSP oder Clique.

4.7. NP -VOLLSTANDIGKEIT 67

4.7.1 Polynomielle Reduktion

Reduktionen hatten wir bereits im Umfeld der Sprachen und der Frage derEntscheidbarkeit verwendet, um die Komplexitat der Berechenbarkeit vonSprachen zu vergleichen. Wir wollen dieses Konzept nun durch eine Zeit-komplexitatskomponente erweitern und sprechen dann von polynomiellenReduktionen.

Definition 50 Seien L1 und L2 zwei Sprachen uber 0, 1.L1 ist polynomiell reduierbar auf L2, wenn es eine Reduktion von L1 nachL2 mittels einer Funktion f mit f : Σ∗ → Σ∗ gibt und f in polynomiellerZeit berechenbar ist. Wir schreiben dann auch L1 ≤p L2.

Wenden wir den Begriff der Reduktion mittels f an, so mussen wir furL1 ≤p L2 eine totale DTM-berechenbare Funktion f : Σ∗ → Σ∗ finden, furdie

w ∈ L1 ⇔ f(w) ∈ L2

gilt und fur f gibt es eine DTMM , die f in polynomieller Laufzeit berechnet.Die Definition ermoglicht es, einfache Ubertragungen von Komplexitatenvorzunehmen.

Lemma 51 Falls L1 ≤p L2 und L2 ∈ P , dann gilt auch L1 ∈ P .

Beweis. Fur L2 gibt es einen polynomiellen Algorithmus A und es gibt eineFunktion f , die L1 auf L2 reduziert. Daraus entwerfen wir einen AlgorithmusB. Dieser berechnet zunachst aus einer Eingabe x fur L1 die Eingabe f(x)fur L2, startet dann A auf f(x) und ubernimmt das Akzeptanzverhalten.

Dieser deterministische Algorithmus B ist in der Laufzeit polynomiell be-schrankt. Zunachst ist f durch ein Polynom p beschrankt. Das heißt auch|f(x)| ≤ p(|x|)+ |x|, zumindest die Eingabe muss berucksichtigt werden undjedes Schreiben einer weiteren Ausgabe kostet auch eine Zeiteinheit. DieLaufzeit von A wiederum ist polynomiell in der Große der Eingabe |f(x)|durch ein Polynom q beschrankt. Die Gesamtlaufzeit von B fur eine Eingabex der Große |x| ist dann beschrankt durch p(|x|)+q(p(|x|)+ |x|) ≤ C ·h(|x|)fur eine Polynom h. 2

Ubungsaufgabe: Ist A ≤p B und B ≤p C so gilt auch A ≤p C.

Beispiele fur polynomielle Reduktionen werden wir im ubernachsten Ab-schnitt behandeln.

68 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

4.7.2 Definition der NP -Vollstandigkeit

Wir definieren zunachst die Klasse schwerer Probleme, auf diese Problemelassen sich alle Probleme aus NP reduzieren. Es handelt sich dann quasi umeinen Stellvertreter der Komplexitat.

Definition 52 Ein Problem L heißt NP -schwer (NP -hard im Englischen),falls gilt:

Fur alle L′ ∈ NP gilt: L′ ≤p L.

Daraus folgt sofort:

Theorem 53 L NP -schwer und L ∈ P , dann folgt P = NP .

Beweis. Sei L′ ein beliebiges Problem aus NP . Es gilt L′ ≤p L. Aus L ∈ Pfolgt nach Lemma 51, dass auch L′ ∈ P gilt. Dann gilt NP ⊆ P und somitNP = P . 2

Definition 54 Ein Problem L heißt NP -vollstandig (NP -complete im Eng-lischen), falls gilt:

1. L ∈ NP

2. L ist NP -schwer.

Wir haben also eine Teilmenge der Probleme aus NP beschrieben, die dieschweren Problem aus NP darstellen. Gelegentlich gibt es auch Problem-stellungen, die nur NP -schwer sind, also die Tatsache, dass diese Problemeauch in NP liegen, ist nicht unbedingt gegeben.

4.7.3 Beispiele polynomieller Reduktionen

In diesem Abschnitt zeigen wir fur ein paar ausgewahlte Probleme, dass sieNP -vollstandig sind gemaß Definition 54. Grundsatzlich muss man hierfurfur ein Problem L ∈ NP zeigen, das alle anderen Probleme L′ ∈ NP poly-nomiell auf L reduziert werden konnen. Nutzen wir die Aussage aus obigerUbungsaufgabe (nach Lemma 51), dann genugt es zu zeigen, dass ein beliebi-ges NP -schweres Problem L′ auf L reduziert werden kann. Das Theorem 57wird uns sagen, dass SAT NP -vollstandig ist. Im folgenden Beweis wirddann zunachst SAT ≤p 3-SAT gezeigt. Den Beweis des Theorems 57 fuhrenwir im Anschluss an diesen Abschnitt.

Wir beweisen nun das folgende Theorem. Die angegebenen Reduktionenkonnen auch in dem Buch [1] von Blum nachgelesen werden.

4.7. NP -VOLLSTANDIGKEIT 69

Theorem 55 Diese Probleme sind NP -vollstandig:

1. 3-SAT

2. Clique

3. Knotenuberdeckung

Beweis. Wir reduzieren zunachst SAT ≤p 3-SAT , dann 3-SAT ≤p Cliqueund schließlich Clique ≤p Knotenuberdeckung. Der Beweis des Theoremsfolgt dann aus Theorem 57.

Fur eine Reduktion L′ ≤p L muss eine durch eine polynomiell zeitbe-schrankte Turingmaschine berechenbare Funktion f angegeben werden, furdie gilt

w ∈ L′ ⇔ f(w) ∈ L .

Wir gehen im Folgenden davon aus, dass in Polinomialzeit uberpruft wer-den kann ob w eine gultige Instanz fur die Sprache L′ kodiert, und be-schranken uns daher auf die Beschreibung der Funktion f fur den Fall, dassw tatsachlich eine solche Instanz kodiert.

1. Der Beweis 3-SAT ∈ NP kann analog zum Beweis SAT ∈ NP gefuhrtwerden. Wir zeigen nun, dass 3-SAT NP -schwer ist durch die Reduk-tion SAT ≤p 3-SAT . Unser Ziel ist die Angabe einer turingberechen-baren Funktion f , so dass gilt

(α, k) ∈ SAT ist erfullbar⇔ (α′, 3) = f((α, k)) ∈ 3-SAT ist erfullbar,

wobei α, α′ aussagenlogische Formeln in konjunktiver Normalform sind,jeweils bestehend aus Klauseln vom Maximalgrad k bzw. 3. Sei α =k1 ∧ · · · ∧ k` eine gultige SAT -Instanz uber m Variablen x1, . . . , xm,und sei ki = L1 ∨ · · · ∨ Ln, 4 ≤ n ≤ k, eine beliebige Klausel inα. Wir fuhren n − 3 neue Variablen A0, . . . , An−4 ein, und ersetzenki durch eine Konjunktion k von n − 2 Klauseln vom Grad 3, uberden Variablen x1, . . . , xn, A0, . . . , An−4. Durch die Konstruktion wirdsichergestellt sein, dass k genau dann durch eine Belegung der Va-riablen A0, . . . , An−4 erfullt werden kann, wenn ki bereits durch eineBelegung der Variablen x1, . . . , xn erfullt ist. Wir definieren nun

k = (L1 ∨ L2 ∨A0) ∧ (¬A0 ∨ L3 ∨A1) ∧ . . .∧ (¬Aj−3 ∨ Lj ∨Aj−2) ∧ . . .∧ (¬An−5 ∨ Ln−2 ∨An−4) ∧ (¬An−4 ∨ Ln−1 ∨ Ln)

Da die Konstruktion von k offensichtlich in Polynomialzeit moglichist, genugt es nun zu zeigen, dass genau dann wenn ki durch eine

70 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Belegung der Variablen x1, . . . , xm erfullt ist, k durch eine Belegungder Variablen A0, . . . , An−4 erfullt werden kann. Wir zeigen zunachst,dass wenn ki nicht erfullt ist, k auch nicht erfullt werden kann.

Wir nehmen fur einen Widerspruch an, dass eine Belegung B der xiund Aj , 1 ≤ i ≤ n und 0 ≤ j ≤ n − 3 gibt, so dass ki nicht erfullt istwohingegen k erfullt ist. Da durch B alle Li false sind, folgt zunachst,dass A0 true sein muss, da sonst die erste Klausel von k nicht erfulltist. Foglich ist ¬A0 false, also muss weiterhin A1 true sein. Widerholenwir dieses Argument, so mussen letztendlich auch An−5 und An−4 truesein. Da nach Voraussetzung alle Li false sind fur 1 ≤ i ≤ n, ist dieKlausel (¬An−4∨Ln−1∨Ln) nicht erfullt. Dies ist ein Widerspruch zurAnnahme k sei durch Belegung B erfullt. Somit ist k nicht erfullbar,wenn ki durch die Belegung der Variablen x1, . . . , xm nicht erfullt ist.

Nehmen wir jetzt an, dass ki durch eine Belegung B der Variablenx1, . . . , xm erfullt ist. Es verbleibt zu zeigen, dass k dann auch durcheine Belegung der Variablen A0, . . . , An−4 erfullt werden kann. Da kidurch Belegung B erfullt ist, muss es einen Index j, 1 ≤ j ≤ n gebenmit Lj = true gemaß B. Wir verfahren nun wie folgt.

• j ∈ 1, 2: Setze Ai = false ∀i, 1 ≤ i ≤ n.

• j ∈ n− 1, n: Setze Ai = true ∀i, 1 ≤ i ≤ n.

• 2 < j < n − 1: Durch Lj wird die Klausel (¬Aj−3 ∨ Lj ∨ Aj−2)erfullt. Setze daher alle Variablen A0, . . . , Aj−3 = true und alleVariablen Aj−2, . . . , An−4 = false.

Wir konnen leicht verifizieren, dass k durch die Belegung der VariablenA0, . . . , An−4 erfullt wird.

2. Wir haben Clique ∈ NP bereits zuvor bewiesen. Wir zeigen nun,dass Clique NP -schwer ist durch die Reduktion 3-SAT ≤p Clique.Wir konstruieren nun aus einer gegebenen 3-SAT Instanz α = k1 ∧· · · ∧ k` einen Graphen G = (V,E), so dass G genau dann eine k-Clique enthalt wenn α erfullbar ist. Falls in α eine Klausel weniger alsdrei Literale enthalt, duplizieren wir zunachst in jeder dieser Klauselnein Literal, so dass wir annehmen konnen, dass jede Klausel genaudrei Literale enthalt. Nun nummerieren wir die Literale derart, dassin Klausel ki genau die Literale L3i−2, L3i−1, L3i enthalten sind. Inder ersten Klausel sind folglich die Literale L1, L2, L3 enthalten, inder zweiten Klausel die Literale L4, L5, L6 und so weiter. Hierbei stehtjedes Literal Lj jeweils entweder fur einen Ausdruck xr oder ¬xr, wobeider Index r naturlich in j variieren kann.

Wir konstruieren nun zunachst die Kontenmenge V des Graphen G.Fur jede Klausel ki, 1 ≤ i ≤ k erstellen wir eine Knotenmenge Ki =

4.7. NP -VOLLSTANDIGKEIT 71

L3i−2, L3i−1, L3i. Schließlich sei V =⋃ki=1Ki. Die Kantenmenge E

wird wie folgt konstruiert. Zwei Knoten u ∈ Ki und v ∈ Kj werdengenau dann durch eine Kante e ∈ E verbunden, wenn gilt

(a) i 6= j (d.h. u und v stammen aus verschiedenen Klauseln) und

(b) (u ∧ v) kann erfullt werden durch eine Belegung der Variablenx1, . . . , xm (d.h., angenommen i 6= j, wenn u = xr, dann wird umit v verbunden falls v 6= ¬xr, und wenn u = ¬xr, dann wird umit v verbunden falls v 6= xr).

Wir zeigen nun, dass α genau dann erfullbar ist, wenn G eine k-Cliqueenthalt.

Sei zunachst α erfullbar. Dann konstruieren wir eine Belegung B derVariablen x1, . . . , xm welche α erfullt. Da jede Klausel in α erfullt ist,konnen wir in jeder Klausel ki einen Knoten vi ∈ Ki wahlen, dessenzugehoriges Literal gemaß B erfullt ist. Nennen wir das zu Knoten vizugehorige Literal L`(i). Da durch B die Formel α′ = (L`(1)∧· · ·∧L`(k))erfullt ist, und keine zwei in α′ vorkommenden Literale aus derselbenKlausel in α stammen, sind in G auch alle Knotenpaare mit Knotenaus v1, . . . , vk durch eine Kante verbunden. Somit existiert in G einek-Clique.

Nehmen wir nun an, dass G eine k-Clique C enthalt. Nach Definitionder Kantenmenge E stammen alle Knoten in C aus verschiedenenKlauseln, da andernfalls zwei Knoten aus einer Klausel mit einer Kanteverbunden waren – im Widerspruch zur Definition von E. Bezeichnenwir somit die Knoten in C mit v1, . . . , vk wobei vi ein Knoten ist,dessen Literal in der i-ten Klausel von α enthalten ist, fur 1 ≤ i ≤k. Wir bezeichnen weiterhin wie zuvor mit L`(i) das Literal, welchesdem Knoten vi zugeordnet ist. Wir konstruieren nun eine Belegung Bder Variablen x1, . . . , xm, welche alle Literale L`(1), . . . , L`(k) erfullt.Gemaß B ist dann auch α erfullt, da jede Klausel in α ein Literal ausder Menge L`(1), . . . , L`(k) enthalt.

Fur jeden Knoten vi ∈ C gilt entweder (i) L`(i) = xr oder (ii) L`(i) =¬xr fur ein r ∈ 1, . . . ,m. Da vi in G mit allen Knoten in C durch eineKante verbunden ist, gilt (i) ¬xr /∈ L`(1), . . . , L`(k) oder (ii) xr /∈L`(1), . . . , L`(k). Wahlen wir folglich L`(i) = true, dann wird keinLiteral der Menge L`(1), . . . , L`(k) false; ggf. werden neben L`(i) nochweitere dieser Literale ebenfalls true. Somit konnen wir alle den Kontenv1, . . . , vk entsprechenden Literale durch eine Belegung der Variablenx1, . . . , xm erfullen. Variablen xr mit xr,¬xr∩L`(1), . . . , L`(k) = ∅,d.h. die in C nicht vorkommen, konnen beliebig true oder false gesetztwerden. Da nach Konstruktion jede einzelne Klausel in α erfullt ist,haben somit insbesondere eine Belegung B der Variablen x1, . . . , xkkonstruiert, welche α erfullt.

72 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

3. Eine nichtdeterministische Turingmaschine kann (nichtdeterministisch)eine beliebige k-elementige Knotenmenge des gegebenen Graphen Gauswahlen und verifizieren, ob diese eine Knotenuberdeckung von Gist. Somit gilt Knotenuberdeckung ∈ NP . Wir zeigen nun durch dieReduktion Clique ≤p Knotenuberdeckung, dass KnotenuberdeckungNP -vollstandig ist.

Definition 56 Fur einen beliebigen Graphen G = (V,E) bezeichneG = (V, V × V \ E) den Komplementargraphen von G.

Zwei Knoten im Komplementargraphen G von G sind somit genaudann in G durch eine Kante verbudnen, wenn sie in G nicht adjazentsind. Es gelten daher folgende Aquivalenzen, wobei C immer eine k-elementige Teilmenge von V bezeichnet.

G enthalt eine k-Clique C⇔

Je zwei Knoten in C sind in G durch eine Kante verbunden⇔

Keine zwei Knoten in C sind in G durch eine Kante verbunden⇔

V \ C ist eine Knotenuberdeckung von G der Große |V | − k

Fur jede Clique-Instanz 〈V,E, k〉 kann in Polynomialzeit sowohl derKomplementargraph G von G = (V,E), als auch die Zahl |V | − k be-rechnet werden. Wir haben somit das Clique-Problem auf das ProblemKnotenuberdeckung reduziert.

2

4.7.4 Der Satz von Cook und Levin

Die zentrale Aussage, dass SAT NP -vollstandig ist, wurde unabhangig vonStephen Cook (1971) und Leonid Levin (1973) bewiesen. Er beinhaltet eineReduktion, die zeigt, dass jedes Problem aus NP in polynomieller Zeit aufdas Erfullbarkeitsproblem reduziert werden kann.

Theorem 57 (Satz von Cook und Levin) Das Problem SAT ist NP -vollstandig.

Bevor wir mit dem Beweis beginnen, beschreiben wir ein paar Hilfskonstruk-te zur besseren Beweisfuhrung. Der folgende Beweis stammt aus Blum [1].

Die Erfullbarkeit einer aussagenlogischen Formel A mit VariablenmengeV = x1.x2, x3, . . . und einer Belegung beschreiben wir rekursiv durch eineFunktion ϕ(A), die entweder 0 (falsch) oder 1 (wahr) ausgibt.

4.7. NP -VOLLSTANDIGKEIT 73

• Fur die Variablenmenge V = x1.x2, x3, . . . legt ϕ mit ϕ : V → 0, 1eine Belegung fest.

• Sei y ein Literal, dann ist

ϕ(y) :=

ϕ(xi) falls y = xi1− ϕ(xi) falls y = ¬xi

• Fur Literale y1, y2, . . . yk und die Klausel (y1 ∨ y2 ∨ · · · ∨ yk) gilt:

ϕ((y1 ∨ y2 ∨ · · · ∨ yk)) := maxϕ(yi)|1 ≤ i ≤ k .

• Fur den aussagenlogischen Ausdruck k1 ∧ k2 ∧ · · · ∧ kl fur Klauselk1, k2, . . . , kl gilt:

ϕ(k1 ∧ k2 ∧ · · · ∧ kl) := minϕ(kj)|1 ≤ j ≤ l .

Der aussagenlogische Ausdruck A ist genau dann erfullbar, falls eine Bele-gung ϕ existiert mit ϕ(A) = 1.

Desweiteren benotigen wir das folgende Hilflemma. Wir wollen fur eine Va-riablenmenge x1, x2, . . . , xl einen Ausdruck A in konjunktiver Normalformmit l2 Literalen konstruieren, der genau dann erfullbar ist, falls genau einedieser Variablen wahr ist.

Lemma 58 Fur die Variablenmenge V = x1, x2, . . . , xl ist der aussagen-logische Ausdruck

ExactOne(x1, x2, . . . , xl) :=

∧1≤i<j≤l

(¬xi ∨ ¬xj)

∧ (x1 ∨ x2 ∨ · · ·xl)

genau dann erfullbar, wenn genau eine Variable aus V wahr ist. Der Aus-druck ExactOne(x1, x2, . . . , xl) enthalt genau l2 Literale.

Ubungsaufgabe: Beweisen Sie das Lemma 58.

Beweis.(Theorem 57, siehe auch [1]) Offensichtlich gilt, dass SAT in NPliegt, siehe Lemma 45.

Es muss gezeigt werden, dass L ≤p SAT fur alle L ∈ NP gilt. Sei also Lein beliebiges Problem aus NP . Dann existiert eine NTM N mit L = L(N)und polynomieller Laufzeit.

Wir nehmen an, dass es sich bei N um eine 1-Band NTM handelt. Analogzum Beweis von Theorem 6 uber die Simulation einer k-Band DTM durch

74 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

eine 1-Band DTM ist diese Annahme bezuglich der Laufzeiten gestattet. Wirbenutzen zwei ausgewiesene Endzustande fur das Akzeptieren und Verwer-fen, das erleichtert die Konstruktion und ist keine Einschrankung. Sei nunp(n) = C · nd die zu N = (Σ, Q, δ, q0, F ) und L zugehorige Laufzeitfunktionund

• Q = q0, q1, . . . , qu

• Σ = a1, a2, . . . , ar mit a1 = t

• F = qu−1, qu wobei qu den akzeptierenden und qu−1 den verwerfen-den Zustand beschreibt.

Fur eine Eingabe x ∈ Σ∗ fur N wollen wir einen aussagenlogischen Aus-druck A(x) in polynomieller Zeit konstuieren, so dass ”x ∈ L ⇐⇒ A(x) isterfullbar” gilt. Fur die polynomieller Konstruktion spielt die Laufzeitfunk-tion p von N ein entscheidende Rolle. Die Laufzeitabschatzung von N uberdie Funktion p ist eine obere Schranke, mehr wissen wir leider uber einzelneAkzeptanzpfade der Worter nicht. Deshalb lassen wir die Maschine stets mitmaximaler Laufzeit weiterlaufen. Das realisieren wir, indem wir die Halte-konfigurationen der beiden Zustande qu und qu−1 beliebig oft wiederholenlassen.

• Fur δ(qi, aj) = ∅ und i = u, u − 1 fuge δ(qi, aj) = (qi, aj , 0) zurUbergangsfunktion hinzu.

Bemerkung: Falls es in δ andere Haltezustande ohne definierte Ubergangegibt, konnen diese prinzipiell genauso erweitert werden.

Sei nun x ∈ Σ∗ eine Eingabe fur N mit |x| = n. Nun gilt x ∈ L(N) ge-nau dann, wenn es Konfigurationen K0,K1, . . . ,Kp(n) gibt, mit folgendenBedingungen:

• K0 ist die Startkonfiguration von N bei Eingabe x.

• Ki+1 ist die Folgekonfiguration von Ki fur 1 ≤ i ≤ p(n).

• Der Zustand in Kp(n) ist qu.

Die Ubergangsfunktion von N kann als Relation mit einer endlichen Anzahlm an Tupeln aus (Q × Σ) × (Q × Σ × −1, 1, 0). Wir numerieren diese mverschiedenen Tupel durch und konnen somit eindeutig auf die Ubergangedurch eine Nummer zugreifen.

Jetzt wollen wir die Konfigurationsubergange durch eine Formel in konjukti-ver Normalform eindeutig beschreiben, dafur benotigen wir Variablen, die in

4.7. NP -VOLLSTANDIGKEIT 75

Typ Variable Intendierte Bedeutung

Zustande qt,k 0 ≤ t ≤ p(n), 0 ≤ k ≤ u qt,k = 1⇔ qk Zustand von Kt

Inhalt at,i,j 0 ≤ t, i ≤ p(n), 1 ≤ j ≤ r at,i,j = 1⇔ aj Inhalti− tes Bandquadrat in Kt

Kopfpos. st,i 0 ≤ t, i ≤ p(n) st,i = 1⇔ In Kt stehtL/S Kopf auf Bandpos. i

Ubergang bt,l 0 ≤ t < p(n), 1 ≤ l ≤ m bt,l = 1⇔ Ubergang l wird von Kt

nach Kt+1 angewendet

Tabelle 4.1: Bedeutung der Variablen. Die Anzahl der Variablen liegt inO(p(n)2), da r und m unabhangig von n durch Konstanten beschrankt sind.

der Tabelle 4.7.4 angegeben sind. Die Anzahl der Variablen ist polynomiellbeschrankt.

Jetzt wollen wir den gesamten Konfigurationswechsel durch Formeln in kon-junktiver Normalform beschreiben. Insgesamt wird fur ein Eingabewort x =aj1aj2 . . . ajn mit der Lange n und fur die Maschine N ein aussagenlogischerAusdruck

A(x) = S ∧R ∧ U ∧ qp(n),u

mit folgenden Bedeutungen entworfen. Zunachst beschreibt qp(n),u den ak-zeptierende Endzustand fur x ∈ L. A(x) kann nur dann erfullt werden, wennqp(n),u = 1 gilt. Die weiteren Bedeutungen sind:

Startbedingung S : Die Startkonfiguration K0 mit Zustand q0. Der L/S-Kopf steht auf dem ersten Bandquadrat und xtp(n)−n ist der Bandin-halt. Durch die Hinzunahme der t-Zeichen stellen wir sicher, dass nurwirklich verwendete Bandquadrate betrachtet werden mussen. Die Ma-schine kann bei p(n) Schritten nur maximal bis zum letzten t-Zeichenvorlaufen.

Randbedingungen R : Fur jedes Kt mit 1 ≤ t ≤ p(n): Die MaschineN befindet sich in genau einem Zustand, der L/S-Kopf steht aufgenau einer Kopfposition, jedes signifikante (siehe oben) Bandqua-drat enthalt genau einen Inhalt. Falls t < p(n) gilt, gibt es fur denUbergang zu Kt+1 genau ein Tupel aus δ, das anwendbar ist.

Ubergangsbedingungen U : Fur 1 ≤ t < p(n) wird der Zustand, dieKopfposition und die Bandinschrift fur die Anwendung des Ubergangsvon Kt nach Kt+1 festgelegt.

Zunachst kann die Startkonfiguration leicht durch

76 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

S := q0,0∧s0,1∧a0,1,j1∧a0,2,j2∧· · ·∧a0,n,jn∧a0,n+1,1∧a0,n+2,1∧· · ·∧a0,p(n),1beschrieben werden.

Fur einen Zeitpunkt t konnen die Randbedingungen R(t) nach Lemma 58durch

Rzustand(t) := ExactOne(qt,0, qt,1, . . . , qt,u)

Rposition(t) := ExactOne(st,1, st,2, . . . , st,p(n))

Rinhalt(t) :=∧

0≤i≤p(n)

ExactOne(at,i,1, at,i,2, . . . , at,i,r)

Rubergang(t) := ExactOne(bt,1, bt,2, . . . , bt,m)

beschrieben werden. Nach Lemma 58 konnen diese Ausdrucke mit insgesamth(u, r,m, n) := (u + 1)2 + p2(n) + (p(n) + 1)r2 + m2 ∈ O(p2(n)) Literalenbeschrieben werden. Insgesamt ergibt sich daraus der Ausdruck

R :=∧

0≤t≤p(n)

(Rzustand(t) ∧Rposition(t) ∧Rinhalt(t) ∧Rubergang(t))

mit (p(n) + 1) · h(u, r,m, n) ∈ O(p3(n)) vielen Literalen.

Analog wollen wir nun mit U(t) einen Ausdruck beschreiben, der den kor-rekten Ubergang von Kt nach Kt+1 fur 0 ≤ t < p(n) beschreibt.

Folgendes muss zum Zeitpunkt t fur ein Bandquadrat i geleistet werden.

1. Falls N das i-te Bandquadrat nicht liest, darf hier in diesem Bandqua-drat nichts geandert werden.

2. Falls N das i-te Bandquadrat liest und beim Ubergang zur Konfigura-tion Kt+1 das l-te Tupel ((qkl , ajl), (qkl , ajl , vl)) der Ubergangsfunktion

anwendet, dann ist der Ubergang wie folgt:

Zeitpunkt t : qkl ist der Zustand und ajl ist der gelesene Inhalt imBandquadrat i.

Zeitpunkt t+ 1 : qkl ist der Zustand, ajl der Inhalt im Bandqua-drat i und i+ vl die Kopfposition.

U(t, i) muss beispielweise ausdrucken, dass (¬st,i∧at,i,j)→ at+1,i,j gultig ist.Implikationen der Art (X → Y ) ersetzen wir aquivalent durch ¬X ∨ Y undsomit (¬st,i ∧ at,i,j)→ at+1,i,j durch die aquivalente Klausel (st,i ∨ ¬at,i,j ∨at+1,i,j .

Die Bedingung 1. von U(t) fur ein spezielles i lautet somit:

U1(t, i) :=∧

1≤j≤r(¬st,i ∧ at,i,j)→ at+1,i,j =

∧1≤j≤r

(st,i ∨ ¬at,i,j ∨ at+1,i,j)

4.7. NP -VOLLSTANDIGKEIT 77

Solche Implikationen lassen sich nun auch fur die Bedingung 2. und dasTupel l umsetzen. Die Implikationen haben die Form (st,i ∧ bt,l) → ·) undwerden entsprechend umgesetzt durch (¬st,i ∨ ¬bt,l ∨ ·)

U2(t, i) :=∧

1≤l≤m

[(¬st,i ∨ ¬bt,l ∨ qt,kl)∧(¬st,i ∨ ¬bt,l ∨ at,i,jl)∧(¬st,i ∨ ¬bt,l ∨ qt+1,kl

)

∧(¬st,i ∨ ¬bt,l ∨ at+1,i,jl)

∧(¬st,i ∨ ¬bt,l ∨ st+1,i+vl)]

Fur einen Zeitpunkt t muss dass fur alle Bandquadrate i gepruft werden:

U(t) :=∧

0≤i≤p(n)

U1(t, i) ∧ U2(t, i) .

Da U1(t, i) aus 3r Literalen und U2(t, i) aus 15m Literalen besteht, bestehtU(t) aus (p(n) + 1)× (3r + 15m) Literalen.

U(t) muss wiederum fur alle Zeitpunkte gelten. Insgesamt ist dann

U =∧

0≤t<p(n)

U1(t) ∧ U2(t)

und enthalt fur p(n) + 1 Zeitpunkte insgesamt (p(n) + 1)2 × (3r + 15m)Literale.

Aus den obigen Konstruktionen ergibt sich, dass S ∧ R ∧ U ∧ qp(n),u ausO(p3(n)) vielen Literalen besteht. Offensichtlich ist es auch moglich aus derMaschine N und dem existierenden nichtdeterministischen Rechenweg dasWort A(x) in polynomieller Zeit abhangig von n = |x| zu berechnen. Wirmussen die Maschine kodieren und beim Ablauf das Wort erstellen.

Falls die Maschine N das Wort x verwirft, dann wird als Ausdruck A(x)ein nicht-erfullbarer Ausdruck zuruckgegeben. Wir konnen dabei auch dieFunktion p(n) verwenden, um die Konstruktion nach mehr als p(n) Schrittenabzubrechen.

Insgesamt gibt es eine DTM-berechenbare Funktion f , die jede Eingabe xin einen Ausdruck A(x) ubertragt. Die Konstruktion kann in polynomielleLaufzeit durchgefuhrt werden und benotigt O(p3(n) log n) viel Platz.

Es bleibt zu zeigen:

78 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

x ∈ L⇔ A(x) ∈ SAT .

”=⇒”:

Fall x ∈ L liegt, existiert eine Berechnung von N bezuglich x, die x in p(|x|)Schritten akzeptiert. Dass heißt dass eine Folge von Konfigurationen mitK0,K1, . . . ,Kp(n) existiert mit:

• K0 ist die Startkonfiguration von N bei Eingabe x.

• Ki+1 ist die Folgekonfiguration von Ki fur 1 ≤ i < p(n).

• Der Zustand in Kp(n) ist qu.

Fur das Wort A(x) konnen wir eine Belegung ϕ der Variablen angeben, dieA(x) erfullt. Wir verwenden exakt die in Tabelle 4.7.4 intendierte Belegung,diese erfullt den Ausdruck A(x) gemaß Konstruktion.

Fur 0 ≤ t ≤ p(n), 1 ≤ k ≤ u qt,k =

1 falls qk Zustand von Kt

0 sonst

Fur 0 ≤ t, i ≤ p(n), 1 ≤ j ≤ r at,i,j =

1 falls aj Inhalt i-tes

Bandquadrat in Kt

0 sonst

Fur 0 ≤ t, i ≤ p(n) st,i =

1 In Kt steht

L/S Kopf auf Bandpos. i0 sonst

Fur 0 ≤ t < p(n), 1 ≤ l ≤ m bt,l =

1 Ubergang l wird von Kt

nach Kt+1 angewendet0 sonst

”⇐=”:

Sei nun umgekehrt A(x) konstruiert worden. Sei ϕ eine Belegung der Varia-blen, die A(x) erfullt.

Da ϕ(R) = 1 gilt, gilt fur jedes 0 ≤ t ≤ p(n):

• ExactOne(qt,0, qt,1, . . . , qt,u)

• ExactOne(st,1, st,2, . . . , st,p(n))

• ∧0≤i≤p(n) ExactOne(at,i,1, at,i,2, . . . , at,i,r)

• ExactOne(bt,1, bt,2, . . . , bt,m)

Dann gibt fur jedes t genau ein k(t) mit ϕ(qt,k(t)) = 1 und genau ein i(t) mitϕ(st,i(t)) = 1 und genau ein l(t) mit ϕ(bt,l(t)) = 1 und fur 1 ≤ i ≤ p(n) genauein j(t, i) mit ϕ(at,i,j(t,i)) = 1. Dann beschreiben diese wahren Variablengenau die Konfiguration Kt:

4.7. NP -VOLLSTANDIGKEIT 79

• Zustand: qk(t)

• Kopfposition: st,i(t)

• Bandinhalt: (aj(t,1), aj(t,2), . . . , aj(t,p(n)))

• Ubergang: ((qk(t), ajl(t)), (qk(t), ajl(t) , vl(t)))

Wegen ϕ(S) = 1 ist k(0) = 0 und i(0) = 1 etc. also K0 die Startkonfigura-tion. Wegen ϕ(qp(n),u) = 1 ist Kp(n) eine akzeptierende Konfiguration.

Da auch ϕ(U) = 1 gilt, ist U(t) = 1 fur alle 0 ≤ t < p(n). Dann folgtaus U1(t), dass j(t + 1, i) = j(t, i) fur alle i 6= i(t) ist. Somit wird dieBandinschrift stets nur unter der Position i(t) geandert.

Fur i(t) und l(t) folgt aus ϕ(st,i(t)) = 1 und ϕ(bt,l(t)) = 1, dass in U2(t) nunϕ(at+1,i(t),jl(t)

) = 1 und ϕ(st+1,i+vl(t)) = 1 gelten muss. Also ist das l(t)-te

Tupel der Ubergangsfunktion anwendbar und findet beim Ubergang von Kt

nach Kt+1 eine korrekte Anwendung.

Insgesamt ist K0,K1, . . . ,Kp(n) eine akzeptierende Konfigurationsfolge furx bezuglich N und es gilt x ∈ L.

2

4.7.5 NP -Vollstandigkeit arithmetischer Probleme

Zunachst mochten wir hier noch die NP -Vollstanigkeit zweier arithmetischerProbleme zeigen, so dass wir im nachsten Abschnitt leicht zeigen konnen,dass die Optimierungsprobleme des Rucksackproblems und des Bepackensvon Behaltern ebenfalls schwere Probleme sind, fur die wir bestenfalls schnellApproximationen berechnen konnen.

Subset-Sum: Gegeben ist eine Menge vonN naturlichen Zahlen a1, a2, . . . , aNmit ai ∈ IIN und ein b ∈ IIN. Frage: Gibt es eine Teilmenge T ⊆ 1, 2, . . . , Nso dass

∑i∈T ai = b gilt?

Theorem 59 Subset-Sum ist NP -vollstandig.

Beweis. (Skizze) Zunachst ist klar, dass Subset-Sum in NP liegt, da dieMenge T als Zertifikat verwendet werden kann. Wir beschreiben eine Po-lynomialzeitreduktion von 3-SAT . Dazu muss eine Formel in konjunktiverNormalform mit n Variablen x1, . . . , xn und m Klauseln c1, . . . , cm inpolynomieller Zeit in eine Subset-Sum Konfiguration uberfuhrt. werden.

Danach muss gelten: Die Klausel ist genau dann erfullbar, wenn das zu-gehorige Subset-Sum Problem eine Losung hat.

80 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Zur Reduktion benutzen wir (2n+2m) Dezimal-Nummern der Lange n+m,die Zahl b besteht aus n Einsen gefolgt von m Dreien.

Fur jede Variable xi wird eine Dezimal-Zahl yi und fur ¬xi eine Dezimal-Zahl zi verwendet. Die Belegung 1 an der Stelle i legt das jeweils fest. DieZiffern von n + 1 bis n + m legen durch 0 und 1 fest, ob das Literal in cjvorkommt oder nicht vorkommt. In jedem cj kommen maximal drei Literalevor. Da nur eins davon erfullt sein muss, fuhren wir Dezimalzahlen si undti fur jedes ci ein, so dass in jedem Fall an dieser Stelle die Spaltensumme 3erzielt werden kann.

Wie geben ein Beispiel fur die Formel

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ x2 ∨ ¬x3)

an.

x1 x2 x3 c1 c2y1 1 0 0 1 0z1 1 0 0 0 1y2 0 1 0 1 1z2 0 1 0 0 0y3 0 0 1 0 0z3 0 0 1 1 1

s1 0 0 0 1 0t1 0 0 0 1 0s2 0 0 0 0 1t2 0 0 0 0 1

b 1 1 1 3 3

Genau dann gibt es eine Auswahl T von Zahlen aus der gesamten Zah-lenmenge y1, z1, . . . , yn, zn, s1, t1, . . . , sm, tm mit

∑x∈T x = b, wenn die

zugehorige 3-SAT -Formel erfullbar ist.

Beachten Sie, dass die Konstruktion polynomiell in (n + m) ist. Die Ein-gabelange der 3-SAT -Formel hatte gerade diese Lange. Die konstruiertenZahlen sind nun zwar nicht zur Basis 2 binar kodiert aber zur Basis 10 ko-diert und sind somit im Vergleich zu ihrer Zahlengroße in logarithmischerGroße (und nicht unar) gespeichert. 2

Partition: Gegeben ist eine Menge vonN naturlichen Zahlen a1, a2, . . . , aNmit ai ∈ IIN.Frage: Gibt es eine Teilmenge T ⊆ 1, 2, . . . , N so dass die Teilsummen∑

i∈T ai und∑

j∈1,2,...,N\T aj identisch sind.

4.7. NP -VOLLSTANDIGKEIT 81

Partition ist ein Spezialfall von Subset-Sum, fur b = 12

∑j∈1,2,...,N aj und

ist nicht einfacher zu losen als Subset-Sum.

Theorem 60 Partition ist NP -vollstandig.

Beweis. Partition liegt offensichtlich inNP , da es ein Spezialfall von Subset-Sum ist.

Wir zeigen Subset-Sum ≤p Partition mit polynomieller Reduktion p.

Fur a1, a2, . . . , aN mit ai ∈ IIN und b ∈ IIN sei A :=∑N

i=1 ai. Wir konstru-ieren eine Eingabe fur Partition durch a′1, a

′2, . . . , a

′N+2 mit

• a′i := ai fur i = 1, . . . , N

• a′N+1 := 2A− b, und

• a′N+2 := A+ b

Es folgt:∑N+2

i=1 a′i = 4A. Dann fragt Partition danach, ob es eine Aufteilungvon a′1, a′2, . . . , a′N+2 gibt, die jeweils 2A ergibt oder analog, ob es eineTeilmenge von a′1, a′2, . . . , a′N+2 gibt, die die Summe 2A ergibt. In poly-nomieller Zeit lasst sich diese Reduktion berechnen. Beachten Sie, dass dieZahlen binar kodiert sind.

Es gilt offensichtlich: Genau dann hat das Partition-Problem eine Losung,wenn auch das Subset-Sum Problem eine Losung hat.

⇒: Hat das Partition-Problem eine Losung, so konnen a′N+1 := 2A−b unda′N+2 := A + b nicht in einer gemeinsamen Teilmenge sein, dann ware dieSumme zu groß. Die Zahlen aus a′1, a′2, . . . , a′N die sich mit a′N+1 := 2A−bin einer Teilmenge befinden, summieren sich zu dann zu b auf und ergebeneine Subset-Sum Losung.

⇐: Wenn eine Teilmenge von a1, a2, . . . , aN = a′1, a′2, . . . , a′N den Sum-menwert b ergibt, so konnen wir a′N+1 = 2A − b hinzufugen und erhalteneine Losung fur das Partition-Problem. 2

82 KAPITEL 4. KOMPLEXITAT UND KLASSEN P UND NP

Kapitel 5

Approximation undRandomisierung

Da wir nun das Prinzip der NP -Vollstandigkeit kennen gelernt haben, stelltsich unweigerlich die Frage, welche Vorgehensweise ratsam ist, wenn ein Pro-blem schwer zu losen ist. Unter losen verstehen wir dabei, eine Losung deter-ministisch exakt zu berechnen. Ist nicht klar, wie die Losung eines Problemseffizient berechnet werden kann, dann bieten sich hier zwei Alternativen an,namlich die Entwicklung eines randomisierten Algorithmus und / oder einesApproximationsalgorithmus. Die folgenden beiden Abschnitte basieren aufentsprechenden Kapiteln aus dem Buch [1] von Blum.

5.1 Randomisierte Algorithmen

Im Gegensatz zu einem deterministischen Algorithmus kann ein randomi-sierter Algorithmus Zufallsentscheidungen verwenden. Der Verlauf einer Be-rechnung ist somit nicht eindeutig durch die Eingabe bestimmt. Ein nahelie-gender Ansatz ist, durch Randomisierung im Mittel eine gute Laufzeit beimLosen eines Problems zu erhalten. Dies motiviert die folgende Definition.

Definition 61 Ein randomisierter Algorithmus, dessen Laufzeit moglicher-weise von seinen Zufallsentscheidungen abhangt, der aber stets eine korrekteLosung berechnet, heißt Las-Vegas-Algorithmus.

Weiterhin gibt es die Moglichkeit, dass ein Algorithmus zwar effizient ist,aber nicht immer eine korrekte Losung berechnet.

Definition 62 Ein randomisierter Algorithmus, der manchmal – mit ge-ringer Wahrscheinlichkeit – ein falsches Ergebnis produzieren kann, heißtMonte-Carlo-Algorithmus.

83

84 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

Wir stellen nun zunachst einen Las-Vegas-Algorithmus vor, und im An-schluss einen Monte-Carlo-Algorithmus. Wir beginnen mit dem Las-Vegas-Algorithmus Randomisiertes QuickSort. Es handelt sich hierbei um einenSortieralgorithmus.

Da wir schon optimale deterministische Sortieralgorithmen kennen, stelltsich zunachst die Frage, warum wir einen randomisierten Sortieralgorithmusbetrachten. Es handelt sich jedoch beim randomisierten QuickSort um einen

• einfach zu implementierenden Algorithmus,

• der (in einer optimierten Variante) real implementiert deutlich schnel-ler lauft als deterministische Algorithmen, und

• der mit wenig zusatzlichem Speicherplatz auskommt.

Randomisierter Algorithmus QuickSort(Z)Eingabe: n Zahlen Z = z1, . . . , znAusgabe: Die Zahlen in Z aufsteigend sortiert.

• Wahle ein zi ∈ Z

• return QuickSort(Z<zi), Z=zi , QuickSort(Z>zi),

wobei

• Z<zi = z ∈ Z | z < zi

• Z=zi = z ∈ Z | z = zi

• Z>zi = z ∈ Z | z > zi

Die Korrektheit des Algorithmus ist offensichtlich, daher analysieren wirjetzt die erwartete Laufzeit des Algorithmus. Zunachst uberlegen wir uns,dass die Laufzeit nicht geringer wird, wenn alle Zahlen in Z verschiedensind. Dann konnen die rekursiv zu sortierenden Teilmengen nur großer unddie Laufzeit entsprechend langer sein.

Wir stellen zunachst eine Rekursionsgleichung fur die Laufzeit auf fur denFall, dass das Element zi deterministisch gewahlt wird, und leiten dann eineAbschatzung fur die erwartete Laufzeit her. Wir betrachten im Folgendendie Anzahl der Vergleiche die durch den Algorithmus ausgefuhrt werden, dadiese die Laufzeit dominieren. Wenn das gewahlte Element zi das k-kleinsteElement von Z ist, dann ist (bei entsprechender Implementierung)

T (n) = T (k − 1) + T (n− k − 1) + (n+ 1) (5.1)

die Laufzeit von QuickSort. Wir beobachten zunachst, dass wenn immerk ≈ n/2 gilt, auch T (n) ∈ O(n log n) gilt. Wenn allerdings immer k nicht

5.1. RANDOMISIERTE ALGORITHMEN 85

großer als eine Konstante C ist, dann ist T (n) ∈ Ω(n2). Da eine zufalligeAuswahl des Elements zi einen zufalligen Wert von k impliziert, ist die Fragewie die Laufzeit bei zufallig gewahltem k ist.

Da jedes Element zi ∈ Z mit der gleichen Wahrscheinlichkeit 1/n gewahltwird, erhalten wir fur die erwartete Laufzeit Te des randomisierten Quick-Sort Algorithmus, wegen Gleichung 5.1,

Te(0) = Te(1) = 0 (5.2)

Te(n) =1

n

n∑k=1

(n+ 1) + Te(k − 1) + Te(n− k) (5.3)

Multiplizieren wir beide Seiten der Gleichung 5.3 mit n, erhalten wir

n · Te(n) = n(n+ 1) + 2n−1∑k=0

Te(k) . (5.4)

Da wir einen geschlossenen Term fur Te(n+1) aufstellen mochten, beginnenwir nun mit der Differenz

(n+ 1) · Te(n+ 1)− n · Te(n)

Nach Gleichung 5.4 gilt

(n+ 1) · Te(n+ 1)− n · Te(n) = (n+ 1)(n+ 2) + 2

n∑k=0

Te(k)−[n(n+ 1) + 2

n−1∑k=0

Te(k)

]= 2(n+ 1) + 2 · Te(n)

Dies ist aquivalent zu

Te(n+ 1) = 2 +n+ 2

n+ 1· Te(n) (5.5)

Per Induktion kann man nun leicht zeigen, dass fur 0 ≤ k ≤ n− 1

Te(n) =

k+1∑j=1

2 · n+ 1

n− k + j

+n+ 1

n− k · Te(n− k − 1) (5.6)

Somit gilt, fur k = n− 2

Te(n) = 2(n+ 1)n−1∑j=1

1

2 + j(5.7)

= 2(n+ 1)

n+1∑j=3

1

j(5.8)

86 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

Die Zahl Hk =∑k

j=11j ist die k-te harmonische Zahl, und es gilt Hk ≤

1 + ln(k), und somit

Te(n) ≤ 2(n+ 1) ·(Hk+1 −

3

2

)(5.9)

≤ 2(n+ 1) ln(n+ 1) (5.10)

Wir haben somit das folgende Ergebnis bewiesen.

Theorem 63 Die erwartete Laufzeit des randomisierten QuickSort ist O(n log n).

Nun stellen wir den Monte-Carlo-Algorithmus Primzahltest vor.

Ein naives Verfahren wurde beispielsweise testen, ob fur eine gegebene Zahl neine Division von n mit jeder ganzen Zahl aus 1, . . . ,

√n einen Rest 0 ergibt.

Ist der Rest immer 0, dann ist n prim, andernfalls ist n zusammengesetzt.Fur große Zahlen n ist diese Vorgehensweise jedoch nicht effizient.

Unser randomisierter Algorithmus Primzahltest verwendet folgenden Testals Subroutine.

Algorithmus Test(n,a)Eingabe: Eine ungerade naturliche Zahl n, und eine Zahl a ∈ 1, . . . , n−1.Ausgabe: prim oder nicht prim

• Da n ungerade ist, gilt n − 1 = 2sd fur genau ein s ∈ IIN, wobei dungerade ist.

– Ist a 6≡ 1 mod n und

– ∀ r ∈ 1, . . . , n− 1 gilt a2rd 6≡ −1 mod n

⇒ dann gebe nicht prim zuruck, ansonsten prim.

Wir verwenden die folgenden zwei Theoreme ohne Beweis.

Theorem 64 Ist n prim, dann ist das Ergebnis von Test(n, a) prim, un-abhangig von der Eingabe a ∈ 1, . . . , n− 1.

Theorem 65 Sei n > 9 eine ungerade zusammengesetzte Zahl. Dann gibtes in 1, . . . , n − 1 hochstens 1/4(n-1) Zahlen mit ggT(a, n) = 1 und dasErgebnis von Test(n, a) ist prim.

Die obigen Theoreme motivieren die folgende Vorgehensweise. Es wird k Malzufallig eine Zahl aus 1, . . . , n− 1 ausgewahlt. Gilt fur eine dieser ZahlenggT (a, n) > 1, dann ist n nicht prim. Andernfalls betrachten wir fur jedes aden Test Test(n, a). Ist das Ergebnis eines Tests nicht prim, dann ist n nichtprim. Sagt jeder Test prim, dann ist das Ergebnis unseres Primzahltestsebenfalls prim.

5.2. APPROXIMATIONEN FUR NP -SCHWERE PROBLEME 87

Es gilt, dass wenn n prim ist jeder Test Test(n, a) auch das Ergebnis primzuruckgibt. Wir wollen nun die Wahrscheinlichkeit abschatzen, dass wenn nnicht prim ist, alle k Tests Test(n, a) das Ergebnis prim zuruckgeben. Nachobigem Theorem 65 ist fur jedes beliebige a die Wahrscheinlichkeit fur dieAussage prim maximal 1/4. Somit ist die Wahrscheinlichkeit, dass alle Testsdas Ergebnis prim zuruckgeben, maximal (1/4)k. Wahlen wir die Konstan-te k entsprechend groß, dann konnen wir fur den folgenden AlgorithmusPrimzahltest eine beliebig große Erfolgswahrscheinlichkeit garantieren.

Monte-Carlo-Algorithmus Primzahltest(n)Eingabe: Eine (große) Zahl nAusgabe: prim oder nicht prim, je nachdem ob n eine Primzahl ist odernicht (mit hoher Wahrscheinlichkeit).

• Ist n ≤ 9, dann gebe prim aus wenn n ∈ 2, 3, 5, 7, ansonsten nichtprim

• Ist n gerade, dann return nicht prim

• for i = 1 to k do

– Wahle zufallig ein a ∈ 1, . . . , n− 1– if (ggT (a, n) > 1) return nicht prim

– if (Test(n, a) = nicht prim) return nicht prim

• return prim

Wir fassen obige Analyse in folgendem Theorem zusammen.

Theorem 66 Algorithmus Primzahltest ist immer korrekt wenn die Ein-gabe n eine Primzahl ist, und er ist mit Wahrscheinlichkeit ≥ 1 − (1/4)k

korrekt, falls n zusammengesetzt ist.

5.2 Approximationen fur NP -schwere Probleme

Fur uns ist ein Optimierungsproblem NP -schwer, wenn das zugehorige Ent-scheidungsproblem NP -schwer ist. Wir haben schon das TSP kennenge-lernt, das in NP liegt. Einen Beweis der NP -Vollstandigkeit dieses Problemsfindet sich beispielsweise in [8].

Außerdem haben wir im Abschnitt 4.7.5 gezeigt, dass Subset-Sum und Par-tition NP -vollstandige Probleme. Daraus werden wir ableiten, dass auchdie bereits im ersten Teil der Vorlesung behandelten ProblemstellungenRucksackproblem (Knapsack) und Optimales Bepackens von Behalter (BinPacking) NP -vollstandig sind.

88 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

Wie bereits im ersten Teil dieser Vorlesung erahnt, sprechen wir von einerApproximationslosung, wenn sich die berechnete Losung eines Algorithmusstets nur um einen Faktor von der optimalen Losung unterscheidet. Dabeimussen wir die eigentliche Losung bei der Analyse manchmal gar nicht genaukennen und konnen trotzdem eine Performanzaussage beweisen. Sei opt(I)die Optimale Losung einer Instanz I eines Problems Π.

Wir mussen zwischen Minimierungs- und Maximierungsproblemen unter-scheiden.

• Sei α > 1: Ein Algorithmus A berechnet eine α-Approximation fur einMinimierungsproblem Π, falls A fur jedes I ∈ Π eine zulassige Losungmit Wert hochstens α · opt(I) berechnet.

• Sei α < 1: Ein Algorithmus A berechnet eine α-Approximation fur einMinimierungsproblem Π, falls A fur jedes I ∈ Π eine zulassige Losungmit Wert mindestens α · opt(I) berechnet.

5.2.1 Approximationsschemata PTAS und FPTAS

Neben oben angegebenen festen Werten der Approximationen, gibt es gele-gentlich auch die Moglichkeit, eine beliebig gute Approximationsgute einesNP -schweren Problems zu erzielen. Die Gute der Approximation beeinflusstdabei die Laufzeit des Algorithmus. Wir sprechen dann auch von einem Ap-proximationsschemata und die gewunschte Approximation ist dann durcheinen Parameter ε beschrieben.

Genauer: Bei Eingabe einer Probleminstanz I und des Guteparameters εwollen wir bei einem Maximierungsproblem eine zulassige Losung berech-nen, die nur um den Faktor (1 − ε) von der optimalen Losung abweicht.Entsprechend wird bei einem Minimierungsproblem eine Abweichung vonum den Faktor (1 + ε) gefordert. Typischerweise (bei NP -schweren Proble-men) geht dabei der Parameter ε mit in die Laufzeitbetrachtung ein.

Es werden zwei verschiedene Varianten unterschieden:

• FPTAS (fully polynomial time approximation scheme): Ein Approxi-mationsschemata, dessen Laufzeit polynomiell von n und von 1

ε abhangt.

• PTAS (polynomial time approximation scheme): Ein Approximations-schemata, dessen Laufzeit fur Konstante ε polynomiell von n abhangt.

Offensichtlich ist das Vorhandensein eines FPTAS die starkere Aussage.Laufzeiten in O-Notation von O((1/ε)2n log n), O(n2/ε) oder auch O(n2 +1/ε2) verdeutlich die polynomielle Abhangigkeit bei einem FPTAS. Da-hingegen sind Laufzeiten fur PTAS der Großenordungen O(21/εn2) oder

5.2. APPROXIMATIONEN FUR NP -SCHWERE PROBLEME 89

O(n1/ε + n2) exponentiell wachsend in 1/ε. Dadurch werden Approxima-tionen schnell sehr teuer.

5.2.2 Approximationsalgorithmus fur TSP

In diesem Abschnitt werden wir einen Approximationsalgorithmus vorstel-len, der eine Rundtour entlang der gegebenen Punktmenge berechnet, dienicht viel schlechter ist als eine optimale Tour. Allerdings setzen wir vor-aus, dass die Kostenfunktion c, welche die Kosten fur die Reise von einemzum anderen Punkt festlegt, gewisse Eigenschaften erfullt. Wir definierenzunachst zwei Spezialfalle des allgemeinen TSP .

Definition 67 Beim ∆-TSP ist die Aufgabe, eine gunstigste Rundreise zubestimmen, die jeden von n Punkten P = p1, . . . , pn genau ein Mal besucht,wobei gilt:

• Symmetrie: c(pi, pj) = c(pj , pi)

• Dreiecksungleichung: c(pi, pj) ≤ c(pi, pk) + c(pk, pj)

Definition 68 Eine TSP -Instanz heißt Euklidisch, falls es Punkte in ei-nem IRd gibt, deren Euklidische Abstande denen der Kostenfunktion c ent-sprechen.

Wir merken noch an, dass die Abstande zwischen den Punkten als Teil derEingabe betrachtet werden, und diese nicht implizit durch Angabe der Funk-tion c – zum Beispiel in Abhangigkeit der Punktkoordinaten – angegebenwerden. Weiterhin gilt, dass die Kosten c(pi, pj) fur eine Reise von pi nach pjganzzahlig und nicht-negativ sind.

Zunachst machen wir zwei einfache Beobachtungen.

1. Jede Euklidische TSP -Instanz ist auch eine ∆-TSP -Instanz.

2. Wenn es bei einer ∆-TSP -Instanz uberhaupt eine Rundtour mit endli-chen Kosten gibt, dann sind die Reisekosten zwischen je zwei beliebigenPunkten <∞.

Da es sich beim Euklidischen TSP um einen Spezialfall des allgemeinen TSPhandelt, konnte man meinen, es ware einfacher, eine optimale Rundreisezu bestimmen. Dies ist aber nicht der Fall, wie Papadimitriou festgestellthat [6]:

Theorem 69 Das Euklidische TSP ist NP -vollstandig.

90 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

Wir beschreiben nun den Approximationsalgorithmus fur das ∆-TSP .

Algorithmus Approx-∆-TSP

1. Bestimme einen minimalen Spannbaum T der Punktmenge P (dieKnoten in T entsprechen folglich den Punkten in P ).

2. Von Knoten p1 aus bestimme eine Besuchsreihenfolge R der Knotenin T gemaß einer Tiefensuche.

3. Modifiziere R zu einer Tour R wie folgt:

• Streiche aus R alle Vorkommen von p1, abgesehen vom erstenund letzten Vorkommen am Anfang und am Ende von R.

• Fur alle p ∈ p2, . . . , pn streiche alle Vorkommen in R bis aufdas Erste (d.h. wenn die Tiefensuche den Knoten das erste Malbesucht).

Wir beobachten zunachst, dass R genau die Kosten 2 · |T | hat, wenn |T |das Gewicht des minimalen Spannbaums T bezeichnet. Aber R ist noch kei-ne Rundtour, welche jeden Knoten genau einmal besucht. Wir betrachtendas Streichen eines Vorkommens eines Punktes pi in R als das Ersetzen derBewegung entlang der Kanten (pj , pi) und (pi, pk) durch die Bewegung ent-lang der Kante (pj , pk), wobei pj und pk der Vorganger bzw. Nachfolger desVorkommens von pi in der aktuellen Tour R ist. Gemaß der Dreiecksunglei-chung haben wir somit die Kosten von R nicht erhoht, und weiterhin istdie resultierende Tour R eine Rundtour, welche jeden Punkt aus P genaueinmal besucht. Weiterhin gilt, dass wenn wir aus einer beliebigen optima-len Rundreise eine Kante entfernen, ein Spannbaum von P resultiert. Daalle Kantengewichte nicht-negativ sind, folgt hieraus, dass die Kosten eineroptimalen Tour mindestens |T | sein mussen. Somit sind die Kosten von Rmaximal doppelt so groß wie die einer optimalen Rundtour.

Theorem 70 Der Algorithmus Approx-∆-TSP berechnet in polynomiellerZeit eine 2-Approximation fur jede ∆-TSP -Instanz.

5.2.3 Ein Approximationsschemata des Rucksackproblem

Wir wollen nun eine FPTAS fur das Rucksackproblem vorstellen. Wir be-trachten das Problem des optimalen Befullens eines Rucksackes mit Ge-samtgewichtskapazitat G. Dazu sei eine Menge von n Gegenstanden ai mitGewicht gi und Wert wi gegeben. Wir wollen den Rucksack optimal fullen.Wir gehen davon aus, dass alle Daten naturliche Zahlen sind.

Wir hatten im ersten Teil der Vorlesung bereits einen Algorithmus vorge-stellt, der das Problem in Laufzeit O(n·G) Rechenschritten gelost hat, wobei

5.2. APPROXIMATIONEN FUR NP -SCHWERE PROBLEME 91

wir dabei mit dynamischer Programmierung eine Matrix mit n ·G Eintragengefullt haben, siehe [7]. Da G aber binar kodiert nur logG Eingabeplatzverbraucht, ist ein solcher Algorithmus bezuglich der Eingabe nicht(!) poly-nomiell und wir hatten schon damals ohne weiteres Wissen von einem pseu-dopolynomiellen Algorithmus gesprochen. Jetzt wissen wir, was das heißensoll. Ist G konstant, dann haben wir lineare Laufzeit. Im logarithmischenKostenmodell hat der Algorithmus exponentielle Laufzeit.

Zunachst wollen wir zeigen, dass das zugehorige Entscheidungsproblem NP -vollstandig ist. Die Entscheidungsvariante des Problems bedeutet, dass ge-fragt wird, ob es eine Teilmenge mit zulassigem Gewicht G und Wert min-destens W gibt?

Theorem 71 Die Entscheidungsvariante des Rucksackproblems ist ein NP -vollstandiges Problem.

Beweis. Wir reduzieren Subset-Sum auf die Entscheidungsvariante. Dazuwird fur die Instanz a1, a2, . . . , an mit ai ∈ IIN und b ∈ IIN des Subset-SumProblems gi = wi = ai gesetzt und W = G = b.

Falls das Subset-Sum Problem eine Losung hat existiert eine Teilmenge derZahlen a1, a2, . . . , an mit Gewicht hochstens G = b und Wert mindestensW = b.

Falls umgekehrt eine Teilmenge der Zahlen a1, a2, . . . , an mit Gewichthochstens G = b und Wert mindestens W = b existiert, muss dieser Wertschon exakt erreicht werden, da Gewichte und Wert identisch sind. 2

Wir geben jetzt eine weiteren pseudopolynomiellen Algorithmus fur das Ent-scheidungsproblem des Rucksackproblem an.

Theorem 72 Das Rucksackproblem kann pseudopolynomiell in O(n2 ·W )(uniformen) Rechenschritten fur W = maxi=1,...,nwi gelost werden.

Beweis. Wir schlagen folgenden dynamische Programmierung vor. Der op-timale Wert kann nur zwischen 0 und n ·W liegen. Fur i ∈ 0, . . . , n undw ∈ 0, . . . , n ·W sei nun A(i, w) das kleinstmogliche Gesamtgewicht, mitdem der Wert w exakt erreicht werden kann, wobei man nur Objekte ausa1, . . . , ai verwenden darf.

Wenn der Wert w gar nicht durch a1, . . . , ai erreicht werden kann, dannsetzen wir A(i, w) =∞. Außerdem sei A(0, w) =∞ fur w > 0 und A(i, w) =∞ fur w < 0 und i ∈ 0, . . . , n Es sei A(i, 0) = 0 fur i = 1, . . . , n.Fur i ∈ 1, . . . , n und w ∈ 1, . . . , n ·W gilt dann die folgende Rekursi-onsgleichung:

A(i+ 1, w) = min(A(i, w), A(i, w − wi+1) + gi+1) .

92 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

Den Wert w erreichen wir mit kleinstmoglichem Gesamtgewicht entwederdurch eine Losung, in der der Gegenstand ai+1 eine Rolle spielt, oder aber derGegenstand wird nicht verwendet. Die Losung mit dem kleinerem Gesamt-gewicht wird ausgewahlt. Entweder kann man also die Losung fur A(i, w)bereits verwenden oder aber A(i, w − wi+1) + gi+1 muss berechnet werden.Dabei wird der Wert um wi+1 reduziert. Dieser wird dann durch den Ge-genstand ai+1 mit wi+1 genau auf w vergroßert.

Wie ublich konnen wir von links nach rechts und von oben nach unteneine Matrix mit den entsprechenden Werten fullen. Jeder Eintrag kostetnur konstant viele Operationen. Die Laufzeit entspricht einer Tabelle derGroße O(n2 ·W ) und der optimal zu erreichenden Wert ist

maxw|A(n,w) ≤ G .

Dieser kann aus der Tabelle abgelesen werden. Man kann außerdem zeigen,dass die optimale Rucksackbelegung ebenfalls leicht mit abgespeichert wer-den kann. Wir merken uns eine Tabelle von Zeigern, die die optimale Losungwiedergibt. 2

Wir wollen einen FPTAS entwerfen. Der Algorithmus hangt linear von denWerten wi ab, diese Werte sind naturliche Zahlen und der Algorithmuskann nur mit naturlichen Zahlen arbeiten. Beachten Sie, dass im Prinzipnur sehr, sehr große Werte wi fur uns problematisch sind. Sofern die wisin der Großenordnung von n liegen, haben wir gar kein Problem mit derLaufzeit.

Wollen wir die Laufzeit verringern, mussen wir die Werte nach unten ska-lieren und dabei auf jeden Fall runden. Die Idee ist, alle Werte wi um demgleichen Faktor α (z.B. α = 0.005) kleiner zu machen und nach unten abzu-runden.

Die Losung ist dann ggf. nicht mehr optimal aber die Laufzeit hat sichauch um einen Faktor von mindestens α verringert. Wir wollen eine (1− ε)erreichen, deshalb muss der Skalierungsfaktor α geschickt in Abhangigkeitvon n, W und ε gewahlt werden.

Theorem 73 Fur das Rucksackproblems existiert ein FPTAS. In (unifor-mer) Laufzeit O(1/ε · n3) kann eine (1 − ε)-Approximation der optimalenWertes berechnet werden. Die Laufzeit ist auch im logarithmischen Kosten-modell polynomiell in 1/ε und n beschrankt.

Beweis. Fur den FPTAS skalieren wir die Werte mit dem Faktor α = nεW

mit W = maxi=1,...,nwi und runden dann ab. Also w′i = bαwic. Dann be-rechnen wir eine optimale Indexmenge L ⊆ 1, . . . , n mittels dynamischerProgrammierung fur die Werte w′1, w

′2, . . . , w

′n. Es gilt W ′ = bαW c = bnε c

5.2. APPROXIMATIONEN FUR NP -SCHWERE PROBLEME 93

und der Algorithmus hat eine Laufzeit von O(n2 · n/ε) = O(1/ε · n3) imuniformen Kostenmodell. Die im Algorithmus verwendeten Additionen undVergleiche erhohen die Laufzeit allerdings nur um einen Faktor, der in der lo-garithmischen Große der Eingabe liegt. Also bleibt die Laufzeit polynomiellin 1/ε und n.

Wir mussen noch den Approximationsfaktor von (1− ε) beweisen. Sei dazuL∗ ⊆ 1, . . . , n die optimale Indexmenge des Ausgangsproblems. Wir wollendie Losung von L∗ und L vergleichen. Fur eine Teilmenge S ⊆ 1, . . . , n seiw(S) =

∑i∈S wi der Wert dieser Teilmenge. Wir mussen

w(L) ≥ (1− ε)w(L∗)

beweisen. Fur den Beweis schauen wir uns eine Zwischenlosung an. Wir ska-lieren die Werte w′i wieder hoch durch den Faktor 1/α, den Rundungsfehler

lassen wir allerdings nun weg. Das heißt konkret w′′i :=w′

iα = bαwic

α .

Die Belegung L ist optimal fur die Werte w′i und somit auch fur die Wertew′′i , da die Werte w′i alle um den gleichen Faktor α angehoben wurden.Im Vergleich zur optimalen Losung L hat der Algorithmus aber durch dieRundungsfehler eine andere Auswahl getroffen. Die Rundungsfehler konnenwir abschatzen:

wi − w′′i = wi −bαwicα≤ wi −

αwi − 1

α=

1

α.

Sei nun w′′(S) =∑

i∈S w′′i , dann lasst sich der Rundungsfehler einer opti-

malen Losung L∗ abschatzen durch

w(L∗)− w′′(L∗) ≤∑i∈L

1

α≤ n

α= ε W ≤ ε w(L∗) .

Die letzte Ungleichung folgt daraus, dass der Gegenstand mit dem maxima-len Wert auf jeden Fall auch in den Rucksack passt, sonst hatten wir diesenauch sofort weglassen konnen.

Jetzt haben wir

w(L∗)− w′′(L∗) ≤ ε w(L∗)⇔ w′′(L∗) ≥ (1− ε) w(L∗)

und wir wissen bereits, dass w′′(L) ≥ w′′(L∗) ist. Da die Ausgangswerte wigroßer sind als die w′′i gilt auch w(L) ≥ w′′(L), es ist insgesamt:

w(L) ≥ w′′(L) ≥ w′′(L∗) ≥ (1− ε)w(L∗)

und die berechnete Losung liefert mit den Ausgangswerten die gewunschteApproximationsgute. 2

Die hier verwendete Skalierung und Abschatzung ist ein klassischer Trickzum Design und zur Analyse von Approximationsguten.

94 KAPITEL 5. APPROXIMATION UND RANDOMISIERUNG

5.2.4 Approximation von Bin Packing

Das Problem des optimalen Bepackens von mehreren Behaltern gleicher Ge-wichtskapazitat G mit verschiedenen Paketen (Bin Packing) hatten wir be-reits im letzten Semester betrachtet.

Die Pakete p haben keinen Preis sondern lediglich verschiedene Gewichte g.Insgesamt haben wir zunachst n Behalter bj fur j = 1, . . . , nmit KapazitatGund n Gegenstande pi mit Gewichten gi fur i = 1, . . . , n. Wir konnen gi ≤ Gannehmen, sonst brauchen wir einen Gegenstand gar nicht zu betrachten.

Ziel der Aufgabenstellung ist es, die Anzahl der benotigten Behalter zuminimieren. Im Prinzip bestimmen wir eine Zuordnung Z : 1, . . . , n 7→1, . . . , k die jedem pi einen Behalter bj uber Z(i) = j zuweist. Wir suchendas minimale k, fur das es eine gultige Zuordnung Z gibt. Gultig heißt, dassdie Summe aller gi mit Z(i) = j nicht großer als G ist.

Aufgabenstellung: Minimiere k, so dass eine Zuordnung Z : 1, . . . , n 7→1, . . . , k existiert mit∑

Z(i)=j

gi ≤ G fur alle i ∈ 1, . . . , n . (5.11)

Der Algorithmus First-Fit liefert eine 2-Approximation, das nehmen wir alsbekanntes Ergebnis aus der letzten Vorlesung zur Kenntnis, siehe [7].

First-Fit: Unter allen Behaltern wahle den ersten aus, in den ai noch hin-einpasst. Genauer: Finde kleinstes j, so dass gi +

∑1≤l≤(i−1),Z(l)=j gl ≤ G

gilt.

Wir zeigen nun lediglich, dass es sich um ein NP -vollstandiges Problemhandelt und die Approximation somit gerechtfertigt ist.

Theorem 74 Die Entscheidungsvariante von Bin Packing ist NP -vollstandig.

Beweis. Die Entscheidungsvariante lautet, ob fur eine vorgegebene Anzahlvon Behalter K eine zulassige Zuordnung existiert.

Wir reduzieren Partition auf dieses Problem. Dafur setzen wir gi = ai furi = 1, . . . , n, setzen K = 2 und G := 1

2

∑ni=1 gi.

Genau dann, wenn es eine Teilmenge T ⊆ 1, . . . , n mit∑

i∈T gi = G gibt,kann das Bin Packing Problem mit 2 Behaltern gelost werden. 2

Literaturverzeichnis

[1] Norbert Blum. Algorithmen und Datenstrukturen: Eine anwendungsori-entierte Einfuhrung. Oldenbourg Verlag, 2004.

[2] Berthold Vocking Berechenbarkeit und Komplexitat Vorlesungsskript,RWTH Aachen 2009.

[3] Johannes Blomer Einfuhrung in Berechenbarkeit, Komplexitat und for-male Sprachen Vorlesungsskript, Universitat Paderborn 2012.

[4] Uwe Schoning Theoretische Informatik – kurzgefasst Teubner, 2004.

[5] C. H. Papadimitirou Computational Complexity Addison-Wesley 1994.

[6] C. H. Papadimitirou The Euclidean Traveling Salesman Pro-blem is NP-Complete Theoretical Computer Science, 1977. URL:http://dx.doi.org/10.1016/0304-3975(77)90012-3

[7] Elmar Langetepe und Heiko Roglin Algorithmen und Berechnungskom-plexitat I Vorlesungsskript, Universitat Bonn 2013.

[8] M. R. Garey, D. S. Johnson Computers and Intractability: A Guide tothe Theory of NP-Completeness W. H. Freeman, 1979.

95