Komplexitaet-WS-2010.. - Parallele Systeme

parsys.informatik.uni.oldenburg.de

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitätstheorie

Vorlesungsskript

von

E. Best

Stand: 17. Januar 2011


Vorwort

Das vorliegende Skript beruht auf verschiedenen, teils handschriftlichen, Vorgängern vom Autor und von

Monika Söding, Javier Esparza und Hans Fleischhack.

Oldenburg, September 2010 E. Best

Das Skript wird ständig gepflegt. Wenn Ihnen beim Lesen Fehler auffallen, geben Sie diese bitte schriftlich

im Sekretariat der Theoretischen Informatik bekannt oder schicken Sie eine Mail an

Stand der Änderungen (Version): 17. Januar 2011.

eike.best@informatik.uni-oldenburg.de.

ACHTUNG: Das Skript wird in mehreren Teilen verteilt. Inhaltsverzeichnis und Index werden zum

Schluss der Vorlesung hin berechnet und aktualisiert zur Verfügung gestellt.

Literatur:

• Rüdiger Reischuk: Komplexitätstheorie - Band I: Grundlagen: Maschinenmodelle, Zeit- und

Platzkomplexität, Nichtdeterminismus. 2. Auflage. Teubner, Stuttgart/Leipzig 1999, ISBN 3-519-

12275-8.

• Christos H. Papadimitriou: Computational Complexity. Addison-Wesley, Reading/Mass. 1995,

ISBN 0-201-53082-1.

• Lance Fortnow, Steve Homer: A Short History of Computational Complexity. Online-

Manuskript (PDF, 225 kB).

• Ding-Zhu Du, Ker-I Ko: Theory of Computational Complexity. John Wiley & Sons, New York

2000, ISBN 0-471-34506-7.

• Michael R. Garey, David S. Johnson: Computers and Intractability: A guide to the theory of

NP-completeness. Freeman, New York 2003, ISBN 0-7167-1045-5.

• S. Homer and A. Selman: Computability and Complexity Theory. Springer, 2000.

• Hopcroft/Ullmann: ” Introduction to Automata Theory, Languages and Computation“;

Addison-Wesley (1979, ∃ deutsche Übersetzung)

• Balcázar/Diaz/Gabarró: ” StructuralComplexityI“;EATCSMonographsonTheoreticalComputer

Science (2nd ed.), Springer-Verlag

i


Inhaltsverzeichnis

1 Grundlagen 1

1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 O-Notationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 Beispiele zur Zeitkomplexität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Ein Fahrplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Alphabete, Wörter und Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6 Entscheidungsprobleme und Instanzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.7 Codierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Algorithmenmodelle 17

2.1 Endliche Automaten: Definition und Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2 Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.1 Aufbau einer Turingmaschine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.2 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.2.3 Das Verhalten einer Turingmaschine . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.2.4 Umwandlung einer NTM in eine DTM . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.2.5 Turingmaschinen als Sprachakzeptoren . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3 Erweiterte TM-Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.3.1 Mehrspurmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

2.3.2 Mehrbandmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3.3 Offline-Maschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.4 Eingeschränkte TM-Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.5 Random-Access-Maschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.6 Universelle Turingmaschinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3 Raum- und Zeitkomplexität 41

3.1 Zeit- und Platzkomplexitätsbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2 Komplexitätsklassen und Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

i


ii Vorlesungsskript von E. Best / Stand: 17. Januar 2011

3.3 Reduktionssätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.4 Band- und Zeithierarchiesätze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.5 Wichtige Komplexitätsklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.6 Alternative Definitionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4 Die Klassen P, NP, NPC und PSPACE 67

4.1 Zwei Beispiele für Probleme aus der Klasse NP . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.2 Polynomielle Reduzierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.3 Harte und vollständige Probleme, und die Klasse NPC . . . . . . . . . . . . . . . . . . . . . 72

4.4 SAT und der Satz von Cook-Levin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4.5 Einige NP-vollständige Probleme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.6 Weitere NP-vollständige Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.7 PSPACE-vollständige Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4.8 Padding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.9 Einige weitere Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

4.10 Zusätze und Berichtigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4.10.1 Inklusionsbeziehungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4.10.2 Translationen und feinere Hierarchiebeziehungen . . . . . . . . . . . . . . . . . . . 114

4.10.3 Kleine Zeitschranken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.10.4 Co-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

5 Schaltkreiskomplexität 121

5.1 Boolesche Schaltkreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

5.2 Einige Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.2.1 Addition von zwei Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5.2.2 Addition von 3 Variablen (Volladdierer) . . . . . . . . . . . . . . . . . . . . . . . . 126

5.2.3 Addition von zwei Binärzahlen der Länge n . . . . . . . . . . . . . . . . . . . . . . 126

5.2.4 Carry-Look-Ahead-Addierer (Vorausberechnung des Übertrags) . . . . . . . . . . . 127

5.2.5 Produkt zweier Boolescher Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . 128

5.2.6 Produkt zweier quadratischer Boolescher Matrizen . . . . . . . . . . . . . . . . . . 128

5.2.7 Transitive Hülle einer Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

5.3 Boolesche Schaltkreise für die ” Berechnung“ von Sprachen . . . . . . . . . . . . . . . . . . 131

5.4 Schaltkreise polynomieller Größe – die Sprachklasse P/POLY . . . . . . . . . . . . . . . . . 134

5.5

” Durchschnittliche“ Komplexität Boolescher Funktionen . . . . . . . . . . . . . . . . . . . 138

5.6 Die Klasse NC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

5.7 Ergänzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142


Kapitel 1

Grundlagen

1.1 Einleitung

Thema dieses Skriptums ist die Berechnungskomplexität algorithmischer Probleme. Darunter versteht

man die folgenden Fragen:

• wie viel Rechenzeit,

• wie viel Speicherplatz

• und wie viele Prozessor- (oder Hardware-)Ressourcen

werden benötigt, um ein algorithmisches Problem zu lösen? Genaue Antworten auf diese Fragen sind in

der Regel sehr schwer zu geben. Deshalb ist man an annäherungsweisen Aussagen interessiert, z.B. an

oberen und unteren Schranken oder an Durchschnittswerten. Außerdem werden Zeit- und Platzschranken

in Abhängigkeit von der Größe einer Eingabe, im Folgenden meist mit n bezeichnet, studiert. Abhängigkeiten

von einer konkreten Eingabe als solcher sind sehr schwer zu geben und außerdem in der Regel

wenig aussagekräftig.

Man unterscheidet zwei Arbeitsrichtungen:

a) Für konkrete Probleme möchte man möglichst effiziente Algorithmen entdecken:

- dies ist wichtig für praktische Problemlösungen

- und theoretisch interessant als Nachweis von oberen Schranken für ein Problem: z.B. besagt

ein existierender n 3 -Algorithmus (etwa für die Multiplikation zweier n×n-Matrizen), dass das

Problem ” höchstens n 3 schwer“ ist.

b) Für ein Problem möchte man aber auch, sofern möglich, eine untere Schranke nachweisen; dann

ist nämlich garantiert, dass jeder Algorithmus mindestens die Komplexität der unteren Schranke

annimmt, und je höher solche unteren Schranken sind, umso schwieriger gestaltet sich die Suche

nach effizienten Lösungen.

1


2 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

In der Komplexitätstheorie trifft man noch eine weitere vereinfachende Vereinbarung: ein Problem wird

als ” leicht“ (oder zumindest als ” behandelbar“) bezeichnet, wenn es eine Lösung gibt, die polynomiell

von der Form n b ist, selbst wenn der Exponent b eine sehr große Zahl ist. Dagegen wird ein exponentieller

Algorithmus der Form a n als ” schwer“ bezeichnet, selbst wenn a eine sehr kleine (positive) Zahl ist. Die

Gründe sind

- sowohl mathematisch, denn für feste Zahlen a > 0 und b gibt es stets eine natürliche Zahl n, so dass

a n > n b gilt (d.h. dass jeder exponentielle Algorithmus jeden polynomiellen ab einer bestimmten

Problemgröße übertrifft),

- als auch praktisch, denn die meisten effizienten praktischen Algorithmen sind polynomiell und die

(relativ) wenigen praktisch interessanten exponentiellen Algorithmen sind nur für (relativ) kleine

Probleme interessant.

Eine triviale untere Schranke für die Zeitkomplexität eines Problems ist n, die Größe der Eingabe, da

diese üblicherweise zumindest ganz gelesen werden muss. Oft ist es jedoch sehr schwer, nicht-triviale

untere Schranken zu finden.

Vereinfachend gilt in der Komplexitätstheorie die Daumenregel:

polynomiell=leicht und exponentiell oder höher=schwer.

Noch plakativer könnte man sagen, dass in der Komplexitätstheoriealles, was sich ” höchstens polynomiell

unterscheidet“, gleichwertig ist.

Aussagen über die Komplexität scheinen vom benutzten algorithmischen Modell abzuhängen. Man kann

beispielsweise Turingmaschinen, aber auch Java- oder C-Programme, und noch viele andere Berechnungsmodelle

in Betracht ziehen. In der Theorie (so auch in diesem Skript) bezieht man sich meistens

auf deterministische oder nichtdeterministische Turingmaschinen. Das ist keine wirkliche Einschränkung,

weil – wie wir später im Detail noch teilweise sehen werden – alle ” vernünftigen“ Berechnungsmodelle bis

auf einen polynomiellen Faktor ineinander umrechenbar und daher gleichwertig sind.

In den folgenden Abschnitten finden sich ein paar Beispiele zur Erläuterung der schon verwendeten

Begriffe. Um diese Begriffe etwas präziser verwenden zu können, benötigen wir zuerst noch den Abschnitt

1.2. Dort wird erläutert, was unter ” annäherungsweisen Aussagen“ zur Abschätzung von Komplexität

mathematisch zu verstehen sein soll.

1.2 O-Notationen

Wichtig ist es, zu wissen, wie stark Zeit- und Platzverbrauch mit der Problemgröße n wachsen. Wir

legen deswegen Funktionen f: N → N zu Grunde, d.h., Funktionen, die natürliche Zahlen (typischerweise

die Längen irgendwelcher Problem-Eingaben) als Argumente und natürliche Zahlen (typischerweise

Schrittzahlen oder Speichergrößen) als Ausgabe haben.

Um asymptotische Abschätzungen vorzunehmen, definiert man:


Komplexitätstheorie - Wintersemester 2010/2011 3

Definition 1.2.1 O-Notationen

Sei f: N → N. Im Folgenden soll die Zahl r ein Element von Q sein.

O(f) ist die Menge der Funktionen g, für die ein r > 0 derart existiert, dass für fast alle (d.h.: alle bis

auf endlich viele) n ∈ N die Ungleichung g(n) < r·f(n) gilt.

o(f) ist die Menge der Funktionen g, für die für alle r > 0 und für fast alle n ∈ N gilt: g(n) < r·f(n).

ω(f) ist die Menge der Funktionen g, für die für alle r > 0 und für fast alle n ∈ N die Ungleichung

g(n) > r·f(n) gilt.

Θ(f) ist die Menge der Funktionen g, für die es r1,r2 > 0 derart gibt, dass für fast alle n ∈ N die

Ungleichung r1 ·f(n) ≤ g(n) ≤ r2 ·f(n) gilt. 1.2.1

Beispiel: Liegen die angegebenen Funktionen gi, 1 ≤ i ≤ 4 (Spalten) in den angegebenen Klassen

(Zeilen)?

g1 : n 3 g2 : n 2 +1 g3 : n 2 −1 g4 : n

O(n 2 ) Nein Ja (r = 3) Ja (r = 1) Ja (r = 1)

o(n 2 ) Nein (r = 1) Nein (r = 1) Nein (r = 0.5) Ja

ω(n 2 ) Ja Nein (r = 2) Nein (r = 1) Nein (r = 1)

Θ(n 2 ) Nein Ja (r1 = 0.5, r2 = 2) Ja (r1 = 0.5, r2 = 1) Nein

Hier bedienen wir uns einer in der Komplexittstheorie üblichen Kurzschreibweise. Zum Beispiel lautet

der zweite Eintrag in der ersten Zeile dieser Tabelle ausgeschrieben folgendermaßen:

n 2 +1


g2

∈ O(n 2 ),

vorher wurde allerdings nur der Begriff g ∈ O(f) erklärt, wobei g und f Funktionen von N nach N sind.

Es handelt sich um die folgende Abkürzung:

n 2 +1 ∈ O(n 2

N → N

) bedeutet g ∈ O(f) mit g:

n ↦→ n2

N → N

und f:

+1 n ↦→ n2 Der Schreibweise n 2 +1 für eine Funktion kann man implizit entnehmen, dass die Funktion von N nach N

geht und explizit, dass das Argument n heißt und der Funktionswert für ein gegebenes n ∈ N als n 2 +1

berechnet wird.

Ende des Beispiels

Informell kann man sich die Symbole etwa so veranschaulichen:

g ∈ O(f) : g

g ∈ o(f) : g

g ∈ ω(f) : g

g ∈ Θ(f) : g

” wächst maximal so schnell wie“ f

” wächst langsamer als“ f

” wächst schneller als“ f

” wächst genauso schnell wie“ f.

Der Begriff O(f) (im Englischen manchmal teils spöttisch, teils hochachtungsvoll als ” Big-Oh-Notation“

bezeichnet) ist bei Weitem der Wichtigste für komplexitätstheoretische Zwecke. Es gibt Beziehungen

zwischen den in Definition 1.2.1 eingeführten Begriffen. Wir erwähnen eine davon.


4 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Lemma 1.2.2

f ∈ Θ(g) ⇔ f ∈ O(g)∧g ∈ O(f).

Beweis:

(⇐): Mit r1 = 1

r ′ und r2 = r, wobei Zahlen r und r ′ wegen den Voraussetzungen f ∈ O(g) und g ∈ O(f)

existieren.

(⇒):

f ∈ Θ(g) ⇔ ∃r1,r2 > 0: für fast alle n ∈ N gilt r1 ·g(n) ≤ f(n) ≤ r2 ·g(n)

⇔ ∃r1,r2 > 0: für fast alle n ∈ N gilt g(n) ≤ 1

r1 ·f(n)∧f(n) ≤ r2 ·g(n)

⇒ ∃ǫ > 0 ∃r1,r2 > 0: r1 −ǫ > 0 und für fast alle n ∈ N gilt

g(n) ≤ 1 1 ·f(n) < r1 r1−ǫ ·f(n)∧f(n) ≤ r2 ·g(n) < (r2 +1)·g(n)

⇒ g ∈ O(f),f ∈ O(g)

1.3 Beispiele zur Zeitkomplexität

Im diesem Skript wird die ” inhärente“ (unvermeidbare) Komplexität von algorithmischen Problemen untersucht.

Dabei geht es um Zeitkomplexität, Speicherplatzkomplexität, und Prozessor- (bzw. Hardware-)

Komplexität. Am einfachsten ist vielleicht das Problem der Zeitkomplexität zu verstehen. Wir betrachten

drei Beispiele.

Beispiel 1: Sortieren

InAbbildung 1.1ist einAlgorithmuszurSortierungeinesFeldesAangegeben,dasnganzeZahlenenthält.

Nach Beendigung des Algorithmus stehen die anfänglich in A gegebenen, nicht notwendigerweise schon

sortierten Zahlen aufsteigend sortiert in A.

proc bubblesort(A : array [0..n−1] of integer);

for i := 0 to n−2 do

for j := n−2 downto i do

if A[j] ≥ A[j +1] → swap(A[j],A[j +1])

A[j] ≤ A[j +1] → skip

fi

end for

end for

Abbildung 1.1: Algorithmus bubblesort

Wie steht es mit der Zeitkomplexität dieses Algorithmus? Wir nehmen an, dass die innere if-Anweisung

eine konstante Zeit benötigt, weil sie keine Schleife enthält und alle Feldzugriffe ungefähr gleich schnell

1.2.2


Komplexitätstheorie - Wintersemester 2010/2011 5

gehen. 1 Die Gesamtzeit ergibt sich, indem gezählt wird, wie oft die innere if-Anweisung insgesamt wiederholt

wird. Für i = 0 (äußere Schleife) wird die innere Schleife (n−1)-mal ausgeführt, für i = 1 dann

(n−2)-mal, usw. bis i = n−2, in welchem Fall die innere Schleife genau einmal ausgeführt wird. Die Zahl

der Wiederholungen lässt sich deswegen einfach als folgende Summe schreiben:

Anzahl der Wiederholungen = (n−1)+(n−2)+...+1

= 1

2 ·n·(n−1)

∈ O(n 2 ).

Die zweite Zeile (Ausrechnen der Summe) ergibt sich nach einer aus der Mittelstufe bekannten arithmetischen

Formel. Die dritte Zeile ergibt sich analog wie in den Beispielen in Abschnitt 1.2, mit der gleichen

Kurzschreibweise. Man sagt auch, dass dieser Algorithmus polynomiell ist (genauer gesagt: quadratisch,

d.h. polynomiell mit Exponent 2).

Dass auch schneller sortiert werden kann, ist Stoff des ersten Fachsemesters in der Informatik. Für

großen können spürbare Verbesserungen durch etliche bekannte O(nlogn)-Verfahren erzielt werden, z.B.

durch Quicksort, das die Komplexität O(n 2 ) nur im schlechtesten Fall ( ” worst case“) hat, dagegen aber

O(nlogn) im durchschnittlichen Fall ( ” averagecase“). Da nlogn ∈ O(n 2 ) gilt (wieder in Kurzschreibweise!),

ist auch Quicksort ein polynomieller Algorithmus. Es gilt aber n 2 /∈ O(nlogn). So gesehen, ist der

zweite Algorithmus im Durchschnitt tatsächlich besser ist als der erste. Im Sinne der Komplexitätstheorie

dieses Skripts sind aber beide Algorithmen gleich gut, nämlich polynomiell.

Ende des Beispiels 1

Beispiel 2: Erfüllbarkeit einer aussagelogischen Formel

Das Problem SAT (für Engl. satisfiability) besteht darin, eine Boolesche Formel F mit n Variablen

daraufhin zu untersuchen, ob es eine F erfüllende Belegung der Variablen gibt oder nicht. Es handelt sich

um ein Entscheidungsproblem, das charakterisiert ist durch eine Eingabe und durch eine Ja/Nein-Frage:

• Eingabe: Eine Boolesche Formel F mit n Variablen x1,...,xn.

• Frage: Gibt es eine erfüllende Belegung für F?

Beispiele:

Eingabeformel F Anzahl der Variablen Antwort

(x1 ∨x2 ∨x3)∧(¬x1 ∨¬x2) 3 Ja, z.B. durch (x1,x2,x3) = (1,0,1)

x1 ∧¬x2 ∧(¬x1 ∨x2) 2 Nein

Ein (konzeptuell) einfacher Algorithmus zur Lösung dieses Problems ist die Wahrheitstafelmethode. Danach

bildet man die Wahrheitstafel und sucht nach einer 1 in der Resultatspalte der gegebenen Formel.

Dieser Algorithmus ist allerdings exponentiell, d.h. von der Zeitkomplexität O(2 n ), wobei n Anzahl der

Variablen ist. Denn die Wahrheitstafel hat genau 2 n viele Zeilen und diese müssen im Schnitt wenigstens

zur Hälfte berechnet werden. Für Formeln mit vielen Variablen (n ≥ 200) ist der Algorithmus

1 Diese Annahme kann im Prinizip angezwifelt werden. Was wäre zum Beispiel der Fall, wenn das Feld riesig groß wäre

und verteilt auf mehreren Maschinen läge? Oder wenn die Feldeinträge beliebig große Zahlen sein könnten? Wir sehen

zunächst von solchen Problemen ab und nehmen einen zentral organisierten Speicher an, sowie Zahlgrößen, die sich an den

Wortgrößen einer von-Neumann-Maschine orientieren. Dann ist die Annahme, dass die innere if-Anweisung konstante Zeit

benötigt, durchaus gerechtfertigt.


6 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

” undurchführbar“, da er Jahrtausende Rechenzeit benötigt. Das steht in starkem Gegensatz zu den Sortieralgorithmen,

die auch für Eingabelängen einer Größenordnung im Hunderterbereich nur Sekunden

brauchen.

Es gibt sehr viele algorithmische Lösungen für das SAT-Problem, aber bislang ist jede von exponentieller

Zeitkomplexität. Bisher ist noch kein korrekterAlgorithmus bekannt, der in Zeit O(n k ) für ein konstantes

k arbeitet. Die Frage, ob ein solcher Algorithmus existiert oder nicht, gilt als eines der berühmtesten

offenen Probleme der Informatik.

Ende des Beispiels 2

Beispiel 3: Das Postsche Korrespondenzproblem (gestellt von Emil Post, ca. 1935)

Bei diesem Problem handelt es sich um ein Entscheidungsproblem der folgenden Art:

• Eingabe: Zwei Listen gleicher Länge von Wörtern über dem Alphabet {0,1}, A = w1,...,wk und

B = x1,...,xk.

• Frage: Gibt es eine Indexfolge i1,...,im mit wi1wi2 ...wim = xi1xi2 ...xim?

Drei Beispiele sind in Abbildung 1.2 angegeben.

A B

i wi xi

1 1 111

2 10111 10

3 10 0

A B

i wi xi

1 10 101

2 1011 11

3 101 011

A B

i wi xi

1 001 0

2 01 011

3 01 101

4 10 001

Ja: w2w1w1w3 = x2x1x1x3 Nein! Ja: Hat Lösung, aber kürzeste mit m = 66!

Abbildung 1.2: Drei Instanzen des Korrespondenzproblems von E. Post

Das PostscheKorrespondenzproblemhat eine extrem hohe ” (Zeit-)Komplexität“: es ist semientscheidbar,

aber nicht entscheidbar. Das bedeutet:

• Semientscheidbarkeit: Es gibt einen Algorithmus, der, angesetzt auf zwei Listen wie oben,

– mit Ausgabe ” Ja“ hält, genau dann, wenn eine Indexreihe der gesuchten Art existiert;

– eine unendliche Schleife eingeht, genau dann, wenn keine solche Indexreihe existiert.

• Unentscheidbarkeit: Es gibt aber keinen Algorithmus, der, angesetzt auf zwei solcher Listen,

– mit Ausgabe ” Ja“ hält, genau dann, wenn eine Indexreihe der gesuchten Art existiert;

– mit Ausgabe ” Nein“ hält, genau dann, wenn keine solche Indexreihe existiert.

Ende des Beispiels 3

Offenbar sind die drei Beispiele von ” leicht“ nach ” schwer“ geordnet. Es entstehen Fragen der folgenden

Art: Gibt es ” Klassen“ solcher Probleme, evtl. mit ” Zwischenproblemen“? Bilden diese Hierarchien?

Wieviele davon gibt es? Und wie kann man zu einem gegebenen Problem herausfinden, wie schnell ein

effizientester Lösungsalgorithmus ist? Vor allem die erstgenannten Fragen sind Gegenstand der Komplexitätstheorie.


Komplexitätstheorie - Wintersemester 2010/2011 7

1.4 Ein Fahrplan

Fast alle Ingredienzen für den Stoff dieses Skriptums sind nun beisammen. Jetzt fassen wir zusammen,

was wir an Definitionen benötigen und an Überlegungen anstellen werden.

• Problem, Instanz und Eingabelänge:Wir betrachtenim Weiteren haupsächlichEntscheidungsprobleme,

die durch die Angabe eines Inputs (bzw. einer Eingabe) und einer Frage gekennzeichnet

sind. Solche Probleme werden in Abschnitt 1.6 vorgestellt und anderen Problemen gegenüber abgegrenzt.

Im vorigen Abschnitt wurden bereits zwei Entscheidungsprobleme vorgestellt, SAT und das Postsche

Korrespondenzproblem. Das Sortierproblem ist dagegen kein Entscheidungsproblem. UnentscheidbareProblemewiedasKorrespondenzproblemwerdenunsvonnunannichtmehrinteressieren

(im Gegensatz zum Modul Theoretische Informatik II, wo viele unentscheidbare Probleme im Detail

untersucht wurden). Eine konkrete Ausprägung (d.h. ein Input) eines Entscheidungsproblems

heißt eine Instanz. Zum Beispiel sind in Abbildung 1.2 drei Instanzen des Korrespondenzproblems

angegeben, zwei ” Ja“-Instanzen und eine ” Nein“-Instanz. Jede Instanz hat eine Größe, die oft auch

Länge genannt wird, weil man sie sich als eine Zeichenkette aufgeschrieben vorstellt. Instanzen sind

die Eingaben gesuchter Algorithmen, deren Komplexität (Zeit, Speicher usw.) als Funktion der

Eingabelänge betrachtet wird.

• Formale Sprachen und Codierungen: Zur Darstellung von Entscheidungsproblemen sind formale

Sprachen vorteilhaft. Jede Instanz wird als ein Wort über einem geeigneten Alphabet beschrieben.

Das Wort gehört zur Sprache des Problems per definitionem genau dann, wenn es sich bei der

Instanz, die es beschreibt, um eine ” Ja“-Instanz handelt. Die elementare Mathematik formaler

Sprachen wird aus diesem Grund gleich im nächsten Abschnitt 1.5 vorgestellt.

Die Darstellung eines Entscheidungsproblems, bzw. genauer gesagt, seiner ” Ja“-Instanzen als formale

Sprache, nennt man eine Codierung des Problems. Es gibt gute und schlechte Codierungen.

In Abschnitt 1.7 wird erläutert, was unter einer guten Codierung eines Entscheidungsproblems zu

verstehen ist.

• Algorithmus: Die Turingmaschine (TM) bietet sich als ein günstiges Algorithmenmodell an, weil

aufihrem Rechenband die Wörter einer formalen Spracheals Eingaben notiert werden können. Eine

Maschine wird als ein korrekter Algorithmus für ein Entscheidungsproblem angesehen, wenn sie die

korrekte Antwort liefert, d.h., wenn sie mit einem ” Ja“ bzw. mit einem ” Nein“ stehenbleibt, sofern

ein Eingabewort eine ” Ja“-Instanz bzw. eine ” Nein“-Instanz ist. Dieses Algorithmenmodell wird in

Kapitel 2 ausführlich definiert und untersucht.

• Zeitverbrauch, Speicherverbrauch: Man untersucht den Zeit- und den Speicherverbrauch von

Rechnungeneiner Turingmaschineund schätztaufdiese Weise den Zeit-und Speicherbedarfdesvon

ihr dargestellten Algorithmus ab. Entsprechende Definitionen und Untersuchungen finden sich im

Kapitel3.HierwerdenauchwichtigeKomplexitätsklassen eingeführt, wodurchProblemein ” leichte“

und ” schwere“ eingeteilt werden.

In Kapitel 4 gehen wir auf eine besonders wichtige dieser Klassen ein, die NP-vollständigen Probleme.

Diese scheinen quasi die Grenze zwischen den polynomiellen (also den guten) und den exponentiellen

(also den schlechten) Algorithmen zu bilden. Es handelt sich um eine relativ leichte Klasse

unter relativ schweren Problemen. Das Problem SAT gehört zu den NP-vollständigen Problemen.


8 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Die Klasse der NP-vollständigen Probleme hat die Eigenschaft, dass ein polynomieller Algorithmus

für nureines dieserProblemeauch einen polynomiellen Algorithmusfür jedes andereProblemdieser

Klasse nach sich ziehen würde. Aber bislang ist trotz intensiver Suche noch kein einziger polynomieller

Algorithmus für irgend eines der Tausende bekannter NP-vollständiger Probleme entdeckt

worden!

• Prozessorverbrauch: Im abschließenden Kapitel 5 gehen wir noch auf ein anderes Berechnungsmodell

ein, das in gewissem Sinn eine Einteilung von Problemen in ” leicht parallelisierbare“ liefern

soll, gegenüber solchen, die sozusagen ” inhärent sequentiell“ sind. In diesem Kapitel benutzen wir

keine Turingmaschinen mehr, sondern Boolesche Schaltkreise, weil man sich einen solchen Schaltkreis

(im Gegensatz zu einer Turingmaschine) durchaus als Mehrprozessorsystem vorstellen kann.

1.5 Alphabete, Wörter und Sprachen

Ein Alphabet ist eine beliebige, nichtleere, endliche Menge. Die Elemente eines Alphabets heißen Zeichen

(oder Buchstaben oder Symbole). Wir benutzen Σ, Γ (oder auch A, B) als typische Namen für Alphabete.

Beispiel:

Σ1 = {a,...,z,A...,Z}

Σ2 = {0,1}

Σ3 = {(x,y) ∈ N×N | x ≤ 5∧y ≤ 9}

sind drei Alphabete.

Ende des Beispiels

Ein Wort (Kette, String) über einem Alphabet Σ ist eine endliche Folge von Zeichen aus Σ. Ist w ein

Wort, bezeichnet |w| seine Länge, d.h., die Anzahl der Zeichen im Wort.

Ein Wort w ist also eine Aneinanderreihung von genau |w| Buchstaben. Es ist überaus sinnvoll, auch die

Aneinanderreihung von genau 0 Buchstaben zuzulassen. Das dann entstehende Wort heißt das leere Wort

und wird mit ε bezeichnet.

Beispiel:

Liebe (Wort über Σ1) |Liebe| = 5

011 (Wort über Σ2) |011| = 3

(0,0)(0,9) (Wort über Σ3) |(0,0)(0,9)| = 2 (!)

ε (Wort über jedem Alphabet) |ε| = 0

Ende des Beispiels

Die Menge aller Wörter über Σ wird mit Σ ∗ bezeichnet.

Beispiel:

{a,...,z} ∗ = {ε,a,...,z ,aa,ab,...,az,ba,bb,...,zz ,aaa, ..., ... }


Länge 1 Länge 2

{0,1} ∗ = {ε,0,1,00,01,10,11,000,001,..., ... }.

Ende des Beispiels


Komplexitätstheorie - Wintersemester 2010/2011 9

Die Menge Σ stimmt genau mit den Wörtern der Länge 1 über Σ überein und wird deswegen als eine

Teilmenge von Σ ∗ aufgefasst. Man beachte aber, dass Σ per definitionem stets endlich ist, während Σ ∗

aufgrund der Forderung Σ = ∅ stets unendlich ist. Es gilt jedoch:

Lemma 1.5.1 Abzählbarkeit von Σ ∗

Σ ∗ ist abzählbar unendlich.

Beweis: Wir verallgemeinerndie oben für {a,...,z} ∗ angewandte Abzählungsweise. Für jede Zahl n ∈ N

gibt es genau |Σ| n Wörter der Länge n über Σ. Man zähle Σ ∗ so ab, dass zuerst das leere Wort, dann alle

Wörter der Länge 1, danach alle Wörter der Länge 2, usw., vorkommen; da diese Teilmengen jedesmal

endlich sind, liefert dies eine vernünftige Abzählung.

Des Weiteren ist Σ ∗ eine unendliche Menge, weil Σ nicht leer ist. 1.5.1

Eine grundlegende binäre Operation auf Wörtern ist die Verkettung oder Konkatenation, die für zwei

Worte v = a1...an und w = b1...bm in Σ ∗ als das Wort

v·w = vw = a1...anb1...bm in Σ ∗ ,

also einfach als die ” Hintereinanderschreibung“ von v und w, definiert ist. Das leere Wort ε ist beidseitig

neutral bezüglich dieser Operation, d.h. εv = v = vε. Außerdem ist die Konkatenation assoziativ, d.h.

u(vw) = (uv)w für beliebige Wörter u, v und w. Wir definieren die n-fache Hintereinanderschreibung

eines Wortes v induktiv: v 0 = ε und v n+1 = vv n . Beispielsweise ist (01) 3 = 010101. Ebenso kann die

Menge der Wörter einer gegebenen Länge n induktiv definiert werden:

Σ 0 = {ε}

Σ n+1 = {av | a ∈ Σ,v ∈ Σ n }.

Beispielsweise ist {0,1} 2 = {00,01,10,11}. Es gilt Σ ∗ =

n∈N Σn . Mit Σ + bezeichnen wir die Menge

aller nicht leeren Wörter über Σ, d.h. Σ + =

n∈(N\{0}) Σn .

Ein Wort v heißt Teilwort eines Wortes w, falls gilt: ∃u1,u2 ∈ Σ ∗ : w = u1vu2. Es gibt hiervon zwei

wichtige Spezialfälle. Ein Wort w heißt Präfix (bzw. Suffix) von v, wenn gilt: ∃u ∈ Σ ∗ : v = wu (beziehungsweise

∃u ∈ Σ ∗ : v = uw). Beispielsweise kommt das Wort 0101 in dem Wort 01010101 dreimal als

Teilwort, einmal als Präfix und einmal als Suffix vor.

Das zu v reverse Wort (oder Spiegelwort) v R ist induktiv definiert: ε R = ε und (av) R = v R a mit a ∈ Σ.

Beispielsweise ist (0101) R = 1010.

Eine Sprache über einem gegebenen Alphabet Σ ist eine Teilmenge von Σ ∗ , d.h. L ⊆ Σ ∗ . Wir verwenden

L (für language) als typischen Buchstaben für Sprachen.

Beispiel: Wir betrachten das Alphabet Σ2 = {0,1}.

L1 = ∅ ( die leere Sprache )

L2 = {ε} ( die Einheitssprache )

L3 = {0,1} ∗ ( = {ε,0,1,00,01,...}, die volle Sprache über {0,1} )

L4 = {0 n | n ∈ N} ( = {ε,0,00,000,...} )

L5 = {w0w | w ∈ {1} ∗ } ( = {0,101,11011,...} )

L6 = {0 n 1 n | n ∈ N} ( = {ε,01,0011,000111,...} )

L7 = {(01) n | n ∈ N} ( = {ε,01,0101,010101,...} )


10 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

sind Sprachen über diesem Alphabet.

Ende des Beispiels

Für eine Sprache L ⊆ Σ ∗ ist die charakteristische Funktion von L, χL, folgendermaßen definiert:

χL:


⎪⎨

⎪⎩

Σ∗ → {0,1}


1 falls w ∈ L

w ↦→

0 falls w /∈ L.

Diese Funktion heißt ” charakteristisch“, weil man aus ihr die Sprache L zurückrechnen kann: die Wörter,

für die die Funktion 1 liefert, sind in der Sprache, diejenigen, für die die Funktion 0 liefert, nicht.

Für zwei Sprachen L über Σ und K über Γ sind die folgenden Verknüpfungen definiert:

L∩K = {w | w ∈ L∧w ∈ K} ( der Durchschnitt von L und K )

L∪K = {w | w ∈ L∨w ∈ K} ( die Vereinigung von L und K )

L\K = {w | w ∈ L∧w /∈ K} ( die Differenz von L und K )

L = Σ ∗ \L ( das Komplement von L )

L·K = LK = {uv | u ∈ L∧v ∈ K} ( die Konkatenation von L und K )

L 0 = {ε} ( die Einheitssprache oder nullte Iterierte einer Sprache L )

L n = L·L n−1 ( die nte Iterierte einer Sprache L )

L ∗ =

n∈N Ln ( der ” Sternabschluss“ einer Sprache L )

L + =

n∈(N\{0}) Ln ( der ” Plusabschluss“ einer Sprache L )

L R = {w R | w ∈ L} ( die zu L ” reverse Sprache“ oder ” Spiegelsprache“).

Durchschnitt, Vereinigung und Differenz entsprechen den mengentheoretischen Operationen, ebenso das

Komplement, das bei Sprachen immer in Bezug auf die zu Grunde liegende Menge Σ ∗ gemeint ist. Die

sprachenspezifischen Operationen sind die Konkatenation, die – wie die analoge Operation auf Wörtern

– assoziativ ist und die einelementige Sprache {ε} als beidseitiges Neutrales besitzt (d.h., {ε}·L = L =

L·{ε}), und übrigens auch die leere Sprache als ” Null“: ∅·L = ∅ = L·∅, sowie die iterierte Konkatenation

L 0 , L 1 , L 2 usw. Eine weitere wichtige sprachenspezifische Operation ist die Spiegelsprachenbildung.


Komplexitätstheorie - Wintersemester 2010/2011 11

Beispiel: Für Σ = {0,1}, L1 = {1,00} und L2 = {00,01,11} gilt:

L1 ∩L2 = {00}

L1 ∪L2 = {1,00,01,11}

L1\L2 = {1}

L1 = {0,1} ∗ \{1,00}

L R 2

= {00,10,11}

L1 ·L2 = {100,101,111,0000,0001,0011}

L2 ·L1 = {001,0000,011,0100,111,1100}

L1 ·L R 2 = {100,110,111,0000,0010,0011}

L 0 1

L 1 1

L 2 1

L 3 1

L ∗ 1

L + 2

= {ε}

= {1,00}

Ende des Beispiels

= {11,100,001,0000}

= {111,1100,1001,10000,0011,00100,00001,000000}

= {ε,1,00,11,...,0000,111,...,000000,...}

= {00,01,11,0000,0001,0011,0100,0101,0111,1100,1101,1111,000000,000001,...}.

Man sieht, dass L∪K und LK Sprachen über Σ∪Γ, L∩K eine Sprache über Σ∩Γ, und L\K, L, L n ,

L ∗ und L + Sprachen über Σ sind. Vor einiger Zeit haben wir Σ n als Wörter der Länge n definiert, eben

ist jedoch eine Definition von Σ n hinzu gekommen, wenn Σ als spezielle Sprache (der Wörter der Länge

1) aufgefasst wird. Diese Doppeldeutigkeit von Σ n ist aber harmlos, denn beide Definitionen kommen auf

das Gleiche heraus. Analoges gilt für Σ ∗ und für Σ + .

Eine Klasse 2 von SprachenL heißt abgeschlossen gegenüber einer Operation auf Sprachen, wenn mit den

Argumenten auch immer das Ergebnis in L liegt. Zum Beispiel heißt L heißt abgeschlossen gegenüber

der Konkatenation, wenn aus L ∈ L∧K ∈ L folgt: L·K ∈ L.

Beispiel:

ENDL sei die Klasse der endlichen Sprachen über Σ. Dann ist ENDL abgeschlossen gegenüber der

Konkatenation ·, aber nicht gegenüber dem Sternabschluss ∗ .

Ende des Beispiels

1.6 Entscheidungsprobleme und Instanzen

Unser Ziel ist es, zu untersuchen, wieviel Zeit, Speicherplatz etc. gebraucht wird, um ein Problem zu

lösen. Dafür ist eine formale Definition von ” Problem“ nötig. Wir behaupten, gestützt auf die bisher

angeführten und auch auf die nachfolgenden Argumente, dass

Entscheidungsproblem = Sprache über einem passenden Alphabet

2 D.h. eine Menge. Man verwendet das Wort ” Klasse“ statt ” Menge“ oft dann, wenn es sich um ” große“ Mengen handelt.

Wir verwenden oft kalligrafische Buchstaben wieL für Klassen.


12 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

eine vernünftige Identifikation ist.

Ein Entscheidungsproblem besteht intuitiv aus:

• einer abzählbaren Menge X von Instanzen des Problems (das können beliebige mathematische

Objekte sein, z.B. Graphen; logische Formeln; natürliche Zahlen; Paare von Grammatiken; Paare

von Listen von 0/1-Wörtern; usw.);

• undeinerEigenschaft,diedieseObjekteerfüllenkönnen( ” Ja-Instanz“)odernicht( ” Nein-Instanz“)

(z.B. die Existenz eines Hamiltonschen Kreises in einem Graph; die Erfüllbarkeit einer Formel; die

Eigenschaft einer natürlichen Zahl, gerade zu sein; die Eigenschaft zweier Grammatiken, die gleiche

Sprache zu generieren; eine Postsche Korrespondenz zu haben; usw.).

Dann kann ein Entscheidungsproblem als ein Paar (X,Y) mit Y ⊆ X angesehen werden. Dabei stellt

die Menge X die Menge aller Instanzen dar, die Menge Y die ” Ja“-Instanzen, und die Menge X\Y die

Menge der ” Nein“-Instanzen.

Betrachten wir als Beispiel die Eigenschaft einer natürlichen Zahl, gerade zu sein. In diesem Fall sind

X = N und Y = {0,2,4,...}. Als Paar von Eingabe/Frage formuliert, wie in Abschnitt 1.3, stellt sich

dieses Problem folgendermaßen dar:

• Eingabe: Eine natürliche Zahl x ∈ N.

• Frage: Ist x durch 2 teilbar?

Um X = N darzustellen, benutzt man schon seit langer Zeit Zeichenketten. Üblich ist bei uns die Dezimaldarstellung,

nach der jede natürliche Zahl als Zeichenkette über dem endlichen Alphabet

Σdez = {0,1,2,3,4,5,6,7,8,9}

dargestellt wird. Diese Darstellung ist allerdings noch nicht einmal eine Funktion von N nach

{0,1,2,3,4,5,6,7,8,9} ∗ . Zum Beispiel hat die natürliche Zahl fünf die unendlich vielen Darstellungen

5, 05, 005 etc. Aber das macht nichts; es handelt es sich trotzdem um eine gute Codierung. Auch gut

ist die Codierung natürlicher Zahlen als Dualzahlen über dem Alphabet Σdual = {0,1}, obwohl auch hier

eine Zahl mehrere Darstellungen hat (z.B. 101, 0101, 00101, usw., für die Zahl fünf). Ebenfalls möglich

ist die Darstellung einer natürlichen Zahl über dem ” Strichalphabet“ Σunär = {|}. Man kann die Zahl

null als das leere Wort ε darstellen, die Zahl eins als |, die Zahl zwei als ||, die Zahl fünf als |||||, usw.

Diese Darstellung ist tatsächlich eine (sogar umkehrbare) Funktion, sie ist aber nicht gut. Warum nicht,

wird später erklärt.

Codiert man die Elemente von X also allgemein als eine Menge von Wörtern, dann ist X als Sprache

auffassbar und Y als eine Teilsprache davon. Ein Entscheidungsproblem (X,Y) algorithmisch zu lösen

bedeutet, eine Maschine oder ein Programm anzugeben, das für ein Wort x ∈ X als Eingabe entscheidet,

ob x ∈ Y oder ob x ∈ X\Y.

Auch andere Probleme können unter Umständen als Entscheidungsprobleme aufgefasst werden, z.B. das

Problem ” berechne 2·x für x ∈ N“:

X = N×N und Y = {(x,y) | x,y ∈ N∧y = 2·x}.


Komplexitätstheorie - Wintersemester 2010/2011 13

Dabei ist allerdings eine Unsymmetrie zu beachten. Ein Berechnungsalgorithmusfür 2·x liefert auch einen

Entscheidungsalgorithmus für Y:

input (x,y);

berechne 2·x;

if y = 2·x → output ” (x,y) ∈ Y“

y = 2·x → output ” (x,y) /∈ Y“

fi

Ein Entscheidungsalgorithmusfür Y liefert aber nicht unmittelbar einen Berechnungsalgorithmusfür 2·x.

Zusätzlich wird noch ein Aufzählungsalgorithmus für X benötigt:

input x;

for alle (a,b) ∈ X do

if (a = x)∧((a,b) ∈ Y) → output b und stop

else → skip

fi

end for

1.7 Codierungen

Beim SAT-Problem besteht eine Eingabe aus einer Formel, beim Korrespondenzproblem aus einem

Paar von Listen von Wörtern. Diese Eingaben sind sehr unterschiedlich, und dennoch wollen wir sie

auf geeignete, einheitliche Weise als Wörter codieren, die einer Turingmaschine auf ihr Band geschrieben

werdenkönnen,vielleichtsogaralsWörter,dienurausNullen undEinsenbestehen. FürnatürlicheZahlen

wurdendreiverschiedeneCodierungenimvorigenAbschnittbeschrieben:CodierungenimDezimalsystem,

im Dualsystem und im ” Bierdeckelsystem“ (d.h.: unär).

Beispiel: Das Postsche Korrespondenzproblem.

Jede Instanz des Postschen Korrespondenzproblems kann als ein Wort über dem Alphabet {0,1,#,⊔,$}

dargestellt werden. Dabei trennt das Zeichen # die Wörter einer Liste, das Zeichen ⊔ trennt zwei Listen

und das Zeichen $ schließt die Problem-Instanz ein. Die zur Abbildung 1.2 gehörigen Wörter werden

folgendermaßen codiert (von links nach rechts):

γ1 = $1#10111#10⊔111#10#0$

γ2 = $10#1011#101⊔101#11#011$

γ3 = $001#01#01#10⊔0#011#101#001$

Zur Sprache des Problems gehören, per definitionem, nur die Wörter γ1 und γ3, da beide ” Ja“-Instanzen

sind, aber nicht das Wort γ2, weil γ2 eine ” Nein“-Instanz ist. Allgemein definiert man:

PCP =



$w1#w2#...#wk ⊔x1#...#xk$ ⏐ wi,xi ∈ {0,1} ∗ ,1 ≤ i ≤ k

∧ es existiert eine Korrespondenz“


man nimmt also genau diejenigen Wörter in die Sprache PCP auf, für die die Korrespondenzfrage mit

” Ja“ beantwortet wird.


,


14 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Wörter, die ein Korrespondenzproblem beschreiben und nicht in PCP enthalten sind, liefern ” Nein“ als

Antwort des Postschen Problems, unabhängig davon, ob ein Algorithmus existiert, der dieses ” Nein“ algorithmischberechnet

(und wegen der Unentscheidbarkeit existiert ja keiner). Was geschieht mit Wörtern

über {0,1,#,⊔,$}, die nicht von der Form $w1#...#wk⊔x1#...#xk$ sind? Diese können durch einen

einfachen ” Syntax-Check“ ausgeschieden werden. Man kann sich o.B.d.A. (ohne Beschränkung der Allgemeinheit)

auf Wörter syntaktisch zulässiger Form als Definitionsbereich der Codierung beschränken.

Die gerade angegebene Codierung ist nicht binär, denn sie benutzt fünf Zeichen. Man kann daraus sehr

leicht eine binäre Codierung herstellen, indem man zunächst eine Zahl ℓ sucht, für die 2 ℓ größer als 5 ist,

zum Beispiel ℓ = 3. Dann codiert man jedes der fünf Zeichen als einen Bitstring der Länge 3, z.B. so:

0=000, 1=001, #=010, ⊔=011, $=100,

Dann geht das Wort γ1 in

γ1 = 10000101000100000100100101000100001100100100101000100001000100

über, und analog für die Wörter γ2 und γ3 von oben. Auch hierbei handelt es sich um eine durchaus

vernünftige Codierung des Postschen Korrespondenzproblems.

Ende des Beispiels

Allgemein fassen wir nun eine Codierung eines Entscheidungsproblems als eine Relation auf, welche die

Instanzen des Problems (unsere Menge X von oben) mit den Wörtern über einem geeigneten Alphabet

in Beziehung setzt. Was versteht man allgemein unter einer guten Codierung? Diese Frage wird im

Folgenden, zum Teil nur informell, beantwortet.

• Syntaxprüfbarkeit. Es muss klar (d.h.: leicht algorithmisch prüfbar) sein, ob ein Wort einer

Instanz des codierten Problems entspricht oder nicht. Beispielsweise entspricht das Wort $ ⊔ ⊔$

auf keinen Fall einer Instanz des Korrespondenzproblems, weil es in diesem Problem nur genau

zwei Listen gibt und das Zeichen ⊔ deswegen in jeder Instanz nur genau einmal vorkommen kann.

Ein simpler Syntaxcheck sortiert solche Wörter aus. In der Dezimalcodierung natürlicher Zahlen

entspricht im Unterschied dazu sogar jedes Wort über Σdez einer natürlichen Zahl; ein Syntaxcheck

ist in diesem speziellen Fall also ganz unnötig.

• Injektivität auf Instanzen. Eine gute Codierung muss injektiv auf Instanzen sein, d.h., es dürfen

nicht zwei verschiedene Instanzen auf das gleiche Codewort abgebildet werden. Fatal wäre zum

Beispiel eine Codierung sowohl der Zahl null als auch der Zahl fünf auf das gleiche Wort, z.B. auf

00000. Kein Algorithmus zur Teilbarkeit durch 2 könnte hier korrekt entscheiden, ob bei Eingabe

00000 die Antwort ” Ja“ oder die Antwort ” Nein“ korrekt wäre.

Dagegen wird Injektivität in die andere Richtung nicht allgemein gefordert. Wie bereits angedeutet,

kanneinAlgorithmuszurTeilbarkeitdurch2durchausdamitumgehen,dassdieZahlfünfentweder

durch den Code 101 oder durch den Code 0101 oder durch den Code 00101, etc., dargestellt wird.

Denn die Zahl, die durch diese verschiedenen Eingaben dargestellt wird, ist ja eindeutig.

• Minimalität.Ein Code darf nicht ” zu lange“ Wörter erzeugen. Im Unärsystem werden die natürlichen

Zahlen zwei, vier, acht, sechzehn usw. durch Wörter er Länge zwei, vier, acht, sechzehn

usw. dargestellt, im Binärsystem aber nur durch Wörter der Länge zwei, drei, vier oder fünf.

Das Unärsystem führt also zu exponentiell längeren Zahldarstellungen als das Binärsystem. Wie

steht es mit dem Dezimalsystem? Man macht sich relativ leicht klar, dass jede Zahldarstellung


Komplexitätstheorie - Wintersemester 2010/2011 15

im Binärsystem sich in ihrer Länge von der Dezimaldarstellung der gleichen Zahl höchstens polynomiell

unetrscheidet. Alle p-adischen Zahldarstellungen mit p ≥ 2 sind deswegen im Sinne der

Komplexitätstheorie gleich gut! D.h., sie unterscheiden sich polynomiell. 3 Nur die Unärdarstellung

natürlicher Zahlen ist exponentiell größer und deswegen im Sinne der Komplexitätstheorie keine

gute Zahldarstellung.

Wergarantiert,dassesnicht vielleichteinenochkleinere(eine exponentiellkleinere)Zahldarstellung

als die binäre gibt? (Mit einem endlichen Alphabet, wohlgemerkt!) Nun, das ist nicht zu Hundert

Prozent klar und eindeutig.

Im Sinne der Komplexitätstheoriewählen wir generell eine Codierung, die“gut“ ist, und wirfordern

von allen anderen ” guten“ Codierungen, dass diese sich höchstens polynomiell von der gewählten

guten Codierung unterscheiden.

Ein weiteres wichtiges Beispiel ist die Codierung eines Graphen (mit seinen Knoten und Kanten).

Ein gegebener Graph kann alternativ zumindest folgendermaßen codiert werden:

– Als Liste aller Knoten und aller Kanten (Aufzählung der beiden Mengen);

– als Adjazenzmatrix (Knoten mal Knoten, mit einer 1 als Eintrag bei Nachbarn, sonst einer 0);

– mit Hilfe einer Nachbarschaftsliste (mit Angabe, pro Knoten, welche Knoten Nachbarn sind).

Alle diese Codierungensind polynomiell ineinanderumrechenbar. 4 Da es offenbarkeine exponentiell

bessere Codierung gibt, gelten alle als gut.

Die folgende abschließende Überlegung zeigt, dass auch Paare (und allgemeiner: p-Tupel) von Zahlen

leicht als Zahlen codiert serden können, mit allen oben geforderten Eigenschaften.

Beispiel:

Wir fassen den Beweis des folgenden, bekannten Lemmas algorithmisch.

Lemma 1.7.1 Abzählbarkeit von N×N

Die Menge N×N ist abzählbar unendlich.

Beweis: Der Beweis benutzt ein Diagonalschema. Man stellt sich die Paare in N×N in Matrixform

aufgeschrieben vor:

N×N 0 1 2 ···

0 (0,0) (0,1) (0,2) ···

1 (1,0) (1,1) (1,2) ···

2 (2,0) (2,1) (2,2) ···

.

.

.

.

.

.

.

.

Die Abzählbarkeit zu zeigen, bedeutet nichts anderes, als die Elemente der unteren rechten Viertelebene

dieses Schemas in eine Reihenfolge zu bringen. Der Versuch (0,0), (0,1), (0,2), ..., (1,0), (1,1), (1,2),

..., etc., schlägt fehl, weil nicht ” zwischendurch“ Unendlichkeiten auftauchen dürfen. Deshalb zählt man

3 In Vorlesungen der Technischen Informatik werden äußerst effiziente Algorithmen vorgestellt, um eine im Zehnersystem

dargestellte Zahl ins Zweiersystem und umgekehrt umzuformen.

4 Dies ist nicht ganz offensichtlich!


16 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

z.B. folgendermaßen ab: (0,0), (0,1), (1,0), (0,2), (1,1), (2,0), (0,3), (1,2), (2,1), ..., d.h., bildlich

gesprochen, in Diagonalform ” von rechts oben nach links unten“ durch die Matrix, oder, arithmetisch

gesprochen, erst alle Paare mit der Summe (der beiden Einzelzahlen) 0 (davon gibt es nur eins), dann

alle Paare mit Summe 1 (davon gibt es zwei), dann alle Paare mit Summe 2 (davon gibt es drei), usw., in

lexikografischer Reihenfolge bei gleichen Summen. Es ist klar, dass in dieser Abzählung jedes Paar genau

einmal vorkommt, und deswegen gibt es eine Surjektion von N nach N×N, die in diesem Fall sogar eine

Bijektion ist. 1.7.1

Die in diesem Beweis angegebene Bijektion zwischen N×N und N kann – in beiden Richtungen – leicht

algorithmisch berechnet und somit als eine gute Codierung von Paaren natürlicher Zahlen als natürliche

Zahlen betrachtet werden.

Ende des Beispiels


Kapitel 2

Algorithmenmodelle

2.1 Endliche Automaten: Definition und Beispiele

Einen endlichen Automaten kann man sich vorstellen als eine Maschine, die Wörter über einem Alphabet

Σentwederakzeptiert oderverwirft, d.h.,nichtakzeptiert.ZudiesemZweckwirdmit einem ” Lesekopf“ ein

Eingabewort w ∈ Σ ∗ , dessen Akzeptabilität untersucht werden soll, von links nach rechts Buchstabe für

Buchstabeeingelesen.BeimLeseneinesZeichensbefindetsichderAutomatineinembestimmtenZustand,

der sich nach dem Lesen eines Buchstabens auch ändern kann. Wenn der Automat das Eingabewort w

ganz lesen kann und gelesen hat, gibt der dann vorliegende Zustand darüber Auskunft, ob w akzeptiert

wird. Insgesamt hat der Automat nur eine endliche Menge Q von Zuständen zur Verfügung.

Im Einklang mit dieser Interpretation wird bei endlichen Automaten eine Übergangsrelation δ ⊆ (Q ×

Σ)×Qdefiniert. Qundδ bilden dieendliche Kontrolle desAutomaten. EinElement(q,a,q ′ ) ∈ δ bedeutet:

Im Zustand q wird gerade a gelesen und ein möglicher Folgezustand ist q ′ . Die Abbildung 2.1 zeigt zum

Beispiel einen Automaten, der gerade das erste ” T“ des EingabewortesAUTOMAT im aktuellen Zustand

q abarbeitet.

Definition 2.1.1 Endliche Automaten

Ein nichtdeterministischer endlicher Automat über Σ, kurz NFA (für nondeterministic finite automaton),

ist eine Struktur A = (Q,Σ,δ,Q0,F) mit folgenden Komponenten:

Q ist eine endliche Menge von Zuständen.

Σ ist das Alphabet der Maschine. Intuitiv sind die Zeichen in Σ die ” Eingabezeichen“ von A.

δ ⊆ (Q×Σ)×Q ist die Übergangsrelation.

Q0 ⊆ Q ist eine Menge von Anfangszuständen.

F ⊆ Q ist eine Menge von Endzuständen.

Ein endlicher Automat heißt deterministisch (kurz DFA), wenn Q0 = {q0} eine Einermenge ist und δ (als

Relation δ ⊆ (Q×Σ)×Q) rechtseindeutig und linkstotal (d.h. eine Funktion von Q×Σ nach Q) ist. Statt

(Q,Σ,δ,{q0},F) wird dann auch einfacher (Q,Σ,δ,q0,F) geschrieben. 2.1.1

17


18 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

A U T O M A T


q ∈ Q

endliche

Kontrolle


Leserichtung

Abbildung 2.1: Skizze für die Wirkungsweise eines endlichen Automaten

Die Elemente (q,a,q ′ ) ∈ δ heißen auch manchmal Transitionen und werden als q −→ q ′ geschrieben,

a

manchmal auch als q −→A q ′ , um anzudeuten, dass es sich um den Automaten A handelt. Manchmal

wird deswegen δ selbst als −→ bzw. als −→A bezeichnet.

Ein NFA kann graphisch durch ein Zustandsdiagramm dargestellt werden. Das ist ein gerichteter Graph,

dessen Knotenmenge Q ist und der für jede Transition (q,a,q ′ ) ∈ δ eine gerichtete, mit a beschriftete

Kante von q nach q ′ enthält. Anfangszustände q0 werden durch eingehende Pfeile markiert, Endzustände

q sind durch einen zusätzlichen Kreis gekennzeichnet.

Beispiel A1:

A1 = ({q0,q1},{0,1},δ1,{q0},{q1})

mit δ1 = {(q0,0,q0),(q0,1,q1),(q1,0,q1),(q1,1,q0)}. Dann wird A1 durch das in Abbildung 2.2 gezeigte

Zustandsdiagramm dargestellt.

Ende des Beispiels A1

0 1 0

q0

1

q1

Abbildung 2.2: Zustandsdiagramm von A1

Zur Definition der von einem endlichen Automaten A akzeptierten Sprache L(A) betrachten wir die

Relationen a

a

−→⊆ Q×Q (eine für jedes Zeichen a aus Σ) mit

−→= {(q,q ′ ) | (q,a,q ′ ) ∈ δ} und erweitern

a


Komplexitätstheorie - Wintersemester 2010/2011 19

sie folgendermaßen:

ε

−→ = idQ

wa

−→ = ( w

−→ ◦ a

−→) (w ∈ Σ∗ ,a ∈ Σ).

Demzufolge gilt für a1,...,an ∈ Σ die Beziehung

q a1

−→ ◦...◦ an

−→ q ′

genau dann, wenn es Zustände q0,q1,...,qn gibt mit

Die Folge q0

q = q0, q0

a1

−→ q1

a1

−→ q1, q1

a2

−→ q2

a2

−→ q2, ... , qn−1

a3

−→ ... an−1

−→ qn−1

an

−→ qn, qn = q ′ .

Definition 2.1.2 Akzeptanz und Sprachäquivalenz

an

−→ qn wird auch Transitionenfolge genannt.

Die von einem NFA A = (Q,Σ,δ,Q0,F) akzeptierte Sprache ist definiert als

L(A) = {w ∈ Σ ∗ | ∃q0 ∈ Q0∃q∈F: q0

w

−→ q}.

Mit anderen Worten, ein Wort w = a1...an wird von A akzeptiert, wenn aus einem Anfangszustand

durch sukzessive Anwendung von a1

−→, a2

−→,..., an

−→ ein Endzustand erreicht werden kann, andernfalls

wird w verworfen.

Eine Sprache L ⊆ Σ ∗ heißt endlich akzeptierbar, wenn es einen NFA A mit L = L(A) gibt, und deterministisch

endlich akzeptierbar, wenn es einen DFA A mit L = L(A) gibt.

Zwei Automaten A1 und A2 heißen sprachäquivalent oder nur äquivalent, wenn gilt: L(A1) = L(A2).

2.1.2

Zur Akzeptanz eines Wortes genügt es, dass eine der möglicherweise vielen Transitionsfolgen in einen

Endzustand übergeht. Ein Wort wird nur dann verworfen, wenn es keine einzige der möglichen Transitionsfolgen

in einen Endzustand übergeht.

Beispiel A1 (Fortsetzung):

Für den Automaten A1 des letzten Beispiels gilt

L(A1) = {w ∈ {0,1} ∗ | w enthält ungerade viele Symbole 1}.

Da A1 deterministisch ist, ist diese Sprache deterministisch endlich akzeptierbar.

Ende des Beispiels A1 (Fortsetzung)

Jede deterministisch endliche Sprache ist auch endlich akzeptierbar, da jeder DFA auch ein NFA ist. Wie

aus der GrundvorlesungTheoretische Informatik II bekannt, ist umgekehrt auch jede endlich akzeptierbare

Sprache deterministisch endlich akzeptierbar, so dass zwischen den beiden Begriffen kein Unterschied

besteht und man nur von ” endlicher Akzeptierbarkeit“ spricht.


20 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

2.2 Turingmaschinen

In Abschnitt 1.3 wurde behauptet, dass es keinen Algorithmus geben kann, der, angesetzt auf zwei Listen

des Postschen Korrespondenzproblems PCP,

• mit Ausgabe ” Ja“ hält, genau dann, wenn eine Lösung des Problems existiert;

• mit Ausgabe ” Nein“ hält, genau dann, wenn keine Lösung des Problems existiert.

Will man die Nichtexistenz eines solchen Algorithmus zeigen, muss eine Aussage über alle nur denkbaren

Algorithmen gemacht werden! Man benötigt also ein Modell, das im Prinzip alle Algorithmen ausdrücken

kann, sozusagen ein ” Urmodell“ für Algorithmen.

Alan M. Turing (1912-1954) bemühte sich ca. 1936, ein Modell zu erfinden, das genau diesem Zweck dienen

sollte, und es scheint ihm gut gelungen zu sein. Die heute so bezeichnete Turingmaschine modelliert

das Rechnen mit Bleistift und Papier und orientiert sich an den Papierstapeln, die zum Rechnen nötig

sind. Diesewerdendurchein beschriftbares ” Arbeitsband“,aufdemman Zeicheneintragenundverändern

kann, dargestellt. Das Arbeitsband sollte als potenziell unendlich groß angesehen werden, denn falls sich

eine Rechnung in die Länge zieht, sollte man immer neue Papierstapel benutzen dürfen. Die Rechnungen

werden durch eine endliche Berechnungsvorschrift(ein ” Programm“ bzw. einen ” Algorithmus“)gesteuert.

Mandenkezum Beispielandie hierzulandeüblicheVorschriftzurAddition zweierZahlen.Hierzubenötigt

man die Möglichkeit, zwei Zahlen untereinander zu schreiben, darunter einen Strich zu ziehen, dann stellenweise

von rechts nach links zu addieren, sich den Übertrag zu merken (ihn z.B. auf einem unbenutzten

Stück Papier aufzuschreiben), usw. Die Definition der Turingmaschine, die wir in den Abschnitten 2.2.1

bis 2.2.3 vornehmen werden, geschieht unter dem Eindruck dieser Intuition.

Letzten Endes werden wir Turingmaschinen zur Formalisierung eines Algorithmus für Entscheidungsprobleme

heranziehen, und zwar für solche, die entscheidbar sind, also nicht für unentscheidbare Probleme

wie das PCP, sondern für solche wie zum Beispiel SAT. Deshalb führen wir Turingmaschinen mit genau

zwei Endzuständen ein. Der eine Endzustand bedeutet ” Ja“, der andere ” Nein“. Eine Instanz eines Entscheidungsproblemskann

einer solchen Maschine in der Form eines Wortes als Input gegeben werden, und

wenn die Maschine durch ihre beiden Endzustände entscheiden kann, ob die Instanz eine ” Ja“-Instanz

oder eine ” Nein“-Instanz ist, dann stellt sie, per definitionem, einen guten Entscheidungsalgoritmus dar.

2.2.1 Aufbau einer Turingmaschine

Die Abbildung 2.3 zeigt ein Lese/Schreib-Band einer Turingmaschine, das nach beiden Seiten hin unendlich

ist und aus einer Reihe von Feldern besteht. Auf diesen Feldern befinden sich je ein Zeichen, oder

sie sind leer; den letzten Fall kann man so interpretieren, dass sie mit einem speziellen Zeichen , dem

” Blank“ oder Leerzeichen“, beschriftet sind. Der Lese/Schreibkopf (LSK) einer Turingmaschine steht


immer auf einem bestimmten Feld des Bandes. Die Steuereinheit ist immer in einem bestimmten Zustand

von endlich vielen möglichen, anfänglich im Anfangszustand q0.

Ein Schritt der Maschine besteht aus vier Teilen:

1. Der LSK liest das Zeichen im momentanen Feld.

2. Der LSK schreibt ein Zeichen auf das momentane Feld.


Komplexitätstheorie - Wintersemester 2010/2011 21

beidseitig unendliches Band

endliche Steuereinheit

( ” Algorithmus“

bzw. ” Programm“)

0 # 0 1


Lese/Schreibkopf LSK

alle bis auf endlich viele

Bandfelder sind mit

(Blank) beschriftet

Abbildung 2.3: Schematische Darstellung einer Turingmaschine

3. Der LSK bewegt sich nach links (L), rechts (R), oder bleibt stehen (N wie ” nicht bewegen“).

4. Die Steuereinheit geht in einen nächsten Zustand über (der der gleiche wie der alte sein kann).

Welcher neue Zustand eingegangen wird, welches Zeichen geschrieben wird und wie der Kopf sich bewegt,

hängt vom aktuellen Zustand und vom gerade gelesenen Zeichen ab.

Das Turingband ist sehr flexibel nutzbar. Es kann sowohl für Eingabewörter, als auch für beliebige Zwischenergebnisse,

als auch für Ausgaben verwendet werden. Wir benötigen keine Mengen von Ein- und

Ausgabezuständen mehr, sondern kämen im Prinzip und ohne Beschränkung der Allgemeinheit mit je

einem aus. Ohne Beschränkung der Allgemeinheit kann man auch noch festlegen, dass eine Turingmaschine,

die einen Endzustand erreicht hat, keine weitere Schritte machen kann, im Gegensatz etwa zu

einem endlichen Automaten.

Später interessieren wir uns ausschließlich für entscheidbare Sprachen. Eine solche Sprache L ist dadurch

charakterisiert, dass eine Turingmaschine existiert, die mit einem beliebigen Wort w als Input mit einer

1 (für Ja“) auf dem Band als Output im Endzustand anhält, wenn w zu L gehört, und mit einer 0 (für


” Nein“) auf dem Band als Output im Endzustand anhält, wenn w nicht zu L gehört. Im ersten Fall sagt

man, dass die Maschine das Wort akzeptiert, im zweiten Fall, dass sie es verwirft. Man kann eine solche

Maschine auch so interpretieren, dass sie statt der beiden Ausgaben 1 und 0 mit nur einem Endzustand

zwei verschiedene Endzustände (ohne weitere Ausgaben) hat, einen Zustand qa, der Akzeptanz oder Ja“


bedeutet (der Buchstabe a steht für accept), und einen Zustand qr, der Verwerfen oder Nein“ bedeutet


(mit dem Buchstaben r für reject). In der nächsten Definition werden Turingmaschinen mit genau einem

Anfangszustand und genau zwei Endzuständen gemäß dieser Idee eingeführt. Dies weicht etwas von der

Definition in Theoretische Informatik II ab, lässt sich aber mit der eben genannten Interpretation darauf

zurückführen.

Definition 2.2.1 Turingmaschinen

Eine Turingmaschine (TM oder NTM, für ” nichtdeterministische TM“) ist ein 8-Tupel

M = (Q,Σ,Γ, ,δ,q0,qa,qr) mit folgenden Komponenten:


22 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Q ist eine endliche Menge von Zuständen mit q0 ∈ Q, qa ∈ Q und qr ∈ Q.

Σ ist das Alphabet der Maschine. Intuitiv sind die Zeichen in Σ die ” nach außen sichtbaren“ Zeichen

oder ” Ein/Ausgabezeichen“ der Maschine.

Γ ⊇ Σ ist das Bandalphabet von M. Intuitiv enthält Γ alle diejenigen Zeichen, die als Feldbeschriftungen

von M vorkommen dürfen. Dazu gehören mindestens alle Zeichen in Σ und das spezielle Blankzeichen

. Oft möchte man noch andere spezielle Zeichen verwenden, die nur temporär auf dem Band

stehen; deswegen heißen die Zeichen in Γ\(Σ∪{ }) auch ” Hilfszeichen“ oder ” Sonderzeichen“.

∈ Γ\Σ ist das Leerzeichen oder ” Blankzeichen“ von M.

δ ⊆ ((Q\{qa,qr})×Γ)×(Q×Γ×{L,N,R}) ist die Übergangsrelation. Die Endzustände qa und qr sind

aus dem Definitionsbereich von δ herausgenommen. Somit kann eine Turingmaschine, die sich in

einem dieser Zustände befindet, keine Schritte mehr machen.

q0 ist der Anfangszustand.

qa und qr sind die Endzustände; qa ist der akzeptierende, qr der verwerfende Endzustand.

Eine NTM M heißt deterministisch (DTM), wenn δ eine Funktion δ: (Q\{qa,qr})×Γ → Q×Γ×{L,N,R}

ist. D.h., es kommen die Linkstotalität und die Rechtseindeutigkeit von δ hinzu. 2.2.1

Die Relation δ codiert das ” Programm“ bzw. die Steuereinheit der Turingmaschine M. Ein Element von

δ ist immer ein (Fünf-) Tupel, z.B. ((q1, ),(q2,a,R)). Dieses Tupel bedeutet:

ist der momentane Zustand q1 und ist das momentan unter dem LSK befindliche Zeichen

, dann kann die Turingmaschine das Zeichen a auf die momentane LSK-Position schreiben

(d.h., das mit a überschreiben), mit dem LSK um ein Feld weiter nach rechts rücken und

in den neuen Zustand q2 übergehen.

Ist M nicht rechtseindeutig, dann gibt es mindestens ein Tupel ((q,a),x) und ((q,a),y) mit x = y in δ.

Dies bedeutet, dass bei Vorliegen von q und gelesenem Zeichen a eine Wahl zwischen den beiden nächsten

Schritten xund y möglichist. Ist einesolcheWahlmöglichkeitgegeben,stellt man sicham besten vor,dass

die Maschine völlig autonom entscheidet, welche der möglichen nächsten Schritte eingegangen werden.

Bei einer deterministischen Maschine M gibt es solche Wahlmöglichkeiten nicht. Weil δ rechtseindeutig

ist, ist der nächste Schritt, falls er existiert, stets eindeutig.

Ist M nicht linkstotal, dann gibt es mindestens ein Paar (q,a), für das kein nächster Schritt existiert,

d.h., es gibt kein x, so dass ((q,a),x) in δ liegt. Dies bedeutet, dass es bei Vorliegen von q und gerade

gelesenem Zeichen a keine weitere Aktionsmöglichkeit für M gibt, und man sagt, dass M stoppt. Da es

für die Endzustände q = qa und q = qr bereits nach Definition kein Tupel ((q,a),x) gibt, stoppt die

Maschine stets, wenn qa oder qr erreicht wird. Wegen der Linkstotalität von δ stoppt eine DTM genau

dann, wenn qa oder qr erreicht sind. Eine NTM kann aber auch in anderen Zuständen stoppen.

EineDTM istausdiesenGründen(keineWahlmöglichkeitenundStoppgenaudann,wenneinEndzustand

erreicht ist) leichter zu handhaben als eine NTM.

Manchmal wird δ als fünfspaltige Tabelle dargestellt, deren Zeilen den Elementen von δ entsprechen. Es

gibt immer nur endlich viele solche Zeilen, da alle beteiligten Mengen endlich sind. Diese Darstellung von

δ wird Turingtafel genannt.


Komplexitätstheorie - Wintersemester 2010/2011 23

Eine weitere Darstellungsmöglichkeit für Turingmaschinen ist ein Turingmaschinengraph. Die Abbildung

2.4 zeigt, wie ein solcher Graph aufgebaut ist. Die Knoten des Graphen entsprechen den Zuständen Q.

Die Kanten des Graphen entsprechen den Elementen von δ. Ein Element ((q,a),(q ′ ,b,m)) in δ wird durch

eine Kante dargestellt, die von q nach q ′ führt und mit a : b (Eingabezeichen : Ausgabezeichen) sowie

mit m (der Bewegung, die im entsprechenden Schritt vom LSK ausgeführt wird) beschriftet ist. Wie

bei endlichen Automaten wird der Anfangszustand mit einem kleinen Eingangspfeil versehen und der

Endzustand qa wird durch einen Doppelkreis dargestellt. Den Endzustand qr stellen wir hingegen durch

ein etwas anderes Symbol dar.

alter Zustand

q

a:b (Eingabe:Ausgabe)

m (LSK-Bewegung)

neuer Zustand

q ′

Anfangszustand: q0 Endzustand qa: qa Endzustand qr: qr


((q,a),(q ′ ,b,m))

Abbildung 2.4:Darstellungvon ((q,a),(q ′ ,b,m)) ∈ δ (oben) und vonAnfangs-und Endzuständen (unten)

2.2.2 Beispiele

Der anfängliche Bandinhalt hat offenbar eine ähnliche Funktion wie ein Eingabeparameter bei einem

Programm. Wir lassen zunächst beliebige anfängliche Bandinhalte zu, außer dass wir fordern, dass die

Anzahl der nicht- -Zeichen endlich ist. Diese Forderung ist sinnvoll, um auszuschließen, dass zum Lesen

einer Eingabe schon unendlich viel Zeit verbraucht wird.

Beispiel Mnondet:

Es sei Mnondet = ({q0,q1},{0},{0, }, ,δ2,q0,q1,q2) mit

δ2 = {((q0, ),(q0,0,N)), ((q0, ),(q1,0,L)), ((q0,0),(q2,0,R))}.

Der Graph von Mnondet ist in Abbildung 2.5 gezeigt.

N

q0

: 0

L

: 0

0 : 0

Abbildung 2.5: Der Maschinengraph von Mnondet

R

q1

q2


24 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Beginn

Nach Schritt ((q0, ),(q0,0,N))


0

q0


q0

Abbildung 2.6: Eine Berechnungsmöglichkeit von Mnondet, angesetzt auf das leere Band

Angesetzt z.B. auf das leere Band gibt es für Mnondet zwei Möglichkeiten, einen Schritt zu machen:

entweder eine 0 zu schreiben, den LSK nicht zu bewegen und im Anfangszustand zu bleiben (Abbildung

2.6), oder eine 0 zu schreiben, den LSK nach links zu bewegen und in den akzeptierenden Endzustand q1

überzugehen (Abbildung 2.7).

Angesetzt auf ein Zeichen 0 gibt es für Mnondet nur eine Möglichkeit, einen Schritt zu machen, und zwar

durch ((q0,0),(q1,0,R)) einen Schritt nach rechts zu machen und in den verwerfenden Endzustand q2 zu

gehen.

Ende des Beispiels Mnondet

Beispiel Meven:

Sei Meven die Turingmaschine mit Eingabealphabet Σ = {0,1} und mit folgender Turingtafel:

alter gelesenes neuer neues

Zustand Zeichen Zustand Zeichen Bewegung

q0 0/1 q0 0/1 R

q0 q1 L

q1 0 qa 0 N

q1 1 qr 1 N

Der Maschinengraph von Meven ist in Abbildung 2.8 dargestellt. Wie sich herausstellen wird, entscheidet

diese Maschine zu einer gegebenen natürlichen Zahl mit Binärdarstellung w als Input, ob w eine gerade

oder eine ungerade natürliche Zahl darstellt.


Komplexitätstheorie - Wintersemester 2010/2011 25

Beginn

Nach Schritt

((q0, ),(q1,0,L))


q1


0

q0

Abbildung 2.7: Eine andere Berechnungsmöglichkeit von Mnondet, angesetzt auf das leere Band

q0

0 : 0

R

1 : 1

R

:

L

q1

0 : 0

N

1 : 1

Abbildung 2.8: Der Maschinengraph von Meven

Wir modifizieren Meven durch Einfügen einer weiteren Zeile zu Meven,1:

alter gelesenes neuer neues

Zustand Zeichen Zustand Zeichen Bewegung

q0 0/1 q0 0/1 R

q0 q1 L

q1 0 qa 0 N

q1 1 qr 1 N

q1 q1 N

N

qa

qr


26 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

und durch Anfügen einer etwas anderen Zeile zu Meven,2:

alter gelesenes neuer neues

Zustand Zeichen Zustand Zeichen Bewegung

q0 0/1 q0 0/1 R

q0 q1 L

q1 0 qa 0 N

q1 1 qr 1 N

q1 qa N

Ende des Beispiels Meven

Es handelt sich bei den in diesem Abschnitt betrachteten Turingmaschinen um folgende Typen:

1. Mnondet ist eine NTM, aber keine DTM, da δ2 zwar linkstotal, aber nicht rechtseindeutig ist.

2. Meven ist eine NTM, aber keine DTM, da δeven zwar rechtseindeutig, aber nicht linkstotal ist.

3. Sowohl Meven,1 als auch Meven,2 sind DTMs.

2.2.3 Das Verhalten einer Turingmaschine

Offenbar ist der Begriff ” Schritt“, den wir in den Beispielen benutzt haben, eine Relation zwischen

Konfigurationen, die durch folgende Parameter bestimmt sind:

• den aktuellen Bandinhalt (anfänglich mit einem ” Eingabewort“ beschrieben);

• dieaktuelle Kopfposition(anfänglichüblicherweiseaufdem erstenZeichen desEingabewortes,wenn

dieses nicht leer ist);

• und den aktuellen Zustand (anfänglich q0).

Da wir den nicht- -Teil des Bandes als endlich annehmen, können wir eine solche Situation durch ein

endliches Wort vqaw beschreiben.

Definition 2.2.2 Konfigurationen einer Turingmaschine

Sei M eine Turingmaschine. Eine Konfiguration von M ist ein Wort k = vqaw mit

• v ∈ {ε}∪((Γ\{ })Γ ∗ ) ist der Bandinhalt links des LSK;

• q ∈ Q ist der aktuelle Zustand und a ∈ Γ das gerade unter dem LSK befindliche Zeichen;

• w ∈ {ε}∪(Γ ∗ (Γ\{ })) ist der Bandinhalt rechts des LSK.

Mit K(M) bezeichnen wir die Menge der Konfigurationen von M. Eine Konfiguration k = vqaw heißt

akzeptierende Konfiguration, wenn q = qa gilt, und verwerfende Konfiguration, wenn q = qr gilt.

2.2.2

Es ist nicht ausgeschlossen, dass v oder w (oder beide) das Leerzeichen enthalten können. Die obige

Definition macht natürlich nur Sinn, wenn Q∩Γ ∗ = ∅ gilt, was wir hiermit o.B.d.A. annehmen wollen.


Komplexitätstheorie - Wintersemester 2010/2011 27

Definition 2.2.3 Schritte und Folgekonfigurationen von Turingmaschinen

Sei M = (Q,Σ,Γ, ,δ,q0,qa,qr) eine Turingmaschine. Wir definieren eine Relation

→M ⊆ K(M)×K(M),

die den Begriff erreichbar in einem Schritt“ formalisiert. Wir definieren dazu zunächst eine Relation


k X

−→ k ′ , wobei X ein Element in δ ist, durch die Aufzählung aller solcher Tripel:

(1a) qaw ((q,a),(q′ ,c,L))

−−−−−−−→

(1b) v ′ bqaw ((q,a),(q′ ,c,L))

−−−−−−−→

(2) vqaw ((q,a),(q′ ,c,N))

−−−−−−−→ vq ′ cw

(3a) vqa ((q,a),(q′ ,c,R))

−−−−−−−→

(3b) vqabw ′

((q,a),(q ′ ,c,R))

−−−−−−−→


′ q falls c= und w=ε

q ′

cw falls c= oder w=ε


v ′ q ′ b falls c= und w=ε

v ′ q ′ bcw falls c= oder w=ε


′ q falls c= und v=ε

vcq ′

falls c= oder v=ε


,

q ′ bw ′ falls c= und v=ε

vcq ′ bw ′ falls c= oder v=ε

mit v,v ′ ∈ {ε}∪((Γ\{ })Γ ∗ ), w,w ′ ∈ {ε}∪(Γ ∗ (Γ\{ })), a,b,c ∈ Γ und q,q ′ ∈ Q.

Nun wird ein Schritt von einer Konfiguration k zu einer Konfiguration k ′ folgendermaßen definiert:

(k,k ′ ) ∈→M oder k →M k ′ gdw. ein X ∈ δ mit k X

−→ k ′ existiert.

Man sagt dann auch, dass k ′ eine Folgekonfiguration von k ist. 2.2.3

Die Zeile (1a) beschreibt Linksbewegungen, wobei links vom gerade gelesenen Zeichen a nur Blanks

stehen. Die Zeile (1b) beschreibt Linksbewegungen, wobei es links vom gerade gelesenen Zeichen noch

andere nicht- -Zeichen gibt. Die Zeile (2) beschreibt den Fall, dass der LSK nicht bewegt wird. Die

Zeilen (3a) und (3b) beschreiben Rechtsbewegungen, analog zu (1a) und (1b).

Beispiel:

Die Konfigurationen und die Schritte der Abbildungen 2.6–2.7 fallen unter die Definitionen 2.2.2 und

2.2.3:

Abb. 2.6 (q0 →Mnondet q00):


v=ε

Abb. 2.7 (q0 →Mnondet q1 0): q0

Ende des Beispiels

q0


q=q0

a=


q=q0

a=


w=ε


w=ε

((q0, ),(q0,0,N))

−−−−−−−→

v=ε

((q0, ),(q1,0,L))

−−−−−−−→ q1


q ′ =q1

Wir definieren nun Berechnungen einer TM als Folgen einzelner Schritte.

q0


q ′ =q0

0


c=0

0


c=0


w=ε


w=ε

(mit Zeile (2))

(mit Zeile (1a))


28 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Definition 2.2.4 Schritte und Schrittfolgen von Turingmaschinen

Eine partielle Berechnung ist eine endliche oder unendliche Folge von Konfigurationen,bei der jede Konfiguration

außerder ersten eine Folgekonfigurationder unmittelbar vorhergehendenist. Eine Konfiguration

k ′ heißt erreichbar aus k, wenn es eine partielle Berechnung gibt, die von k nach k ′ führt, oder, anders

ausgedrückt, wenn gilt: (k,k ′ ) ∈ → ∗ M (oder suggestiver: k →∗ M k′ ).

Eine maximale Berechnung (oder nur Berechnung) ist eine endliche partielle Berechnung, die mit einer

Konfiguration endet, in der keine weiteren Schritte mehr möglich sind. Eine Berechnung heißt akzeptierend,

wenn sie in einer akzeptierenden Konfiguration endet, und verwerfend, wenn sie in einer verwerfenden

Konfiguration endet. 2.2.4

Beispiel:

q01011 → 1q0011 → 10q011 → 101q01 → 1011q0 → 101q11 → 101qr1

ist eine verwerfende Berechnung der Maschine Meven.

Ende des Beispiels

Akzeptierende und verwerfende Berechnungen sind stets maximal, da δ weder für qa noch für qr definiert

ist. Für eine DTM sind die maximale Berechnungen stets entweder akzeptierend oder verwerfend.

Gegenbeispiel:

Wird die Maschine Mnondet auf das leere Band angesetzt, kann sie eine 0 auf das Feld unter dem LSK

schreiben und im Zustand q0 stoppen (Abbildung 2.6). Da diese Berechnung nicht fortgesetzt werden

kann, ist sie maximal, da q0 aber kein Endzustand ist, ist sie weder akzeptierend noch verwerfend.

Ende des Gegenbeispiels

2.2.4 Umwandlung einer NTM in eine DTM

Wir wollen uns jetzt auf anfängliche Konfigurationen der Form q0w mit w ∈ Σ ∗ beschränken, d.h.:

• Falls w = ε, steht der LSK auf dem ersten Zeichen des Wortes w, und links von w sowie rechts von

w gibt es nur Blankzeichen.

• Falls w = ε, besteht das Band überhaupt nur aus Blankzeichen, und der LSK steht auf irgend einem

davon; q0ε ist also eine andere Schreibweise für die Konfiguration q0 .

Wir nennen die Konfiguration q0w die Anfangskonfiguration von M, gegeben w; man sagt auch: M ist

auf w angesetzt, und man schreibt dafür in Anlehnung an einen Prozeduraufruf mit einem Parameter:

M(w).

Beispiel Mnondet (Fortsetzung):

Die Gesamtheit der Berechnungen von M(w) ist im allgemeinen baumförmig strukturiert. Beispielsweise

ist in Abbildung 2.9 ein Konfigurationsbaum der Maschine Mnondet gezeigt (mit w = ε). Dieser Baum

entspricht den beiden Berechnungen der Abbildungen 2.6 und 2.7.

Ende des Beispiels Mnondet (Fortsetzung)


Komplexitätstheorie - Wintersemester 2010/2011 29

q00

maximal, aber

nicht akzeptierend

q0 (= q0ε)

q1 0

akzeptierend

Abbildung 2.9: Ein Konfigurationsbaum von Mnondet

Definition 2.2.5 Konfigurationsbaum einer TM auf einem anfänglichen Bandinhalt

Gegeben seien eine Turingmaschine M über Σ und eine anfängliche Konfiguration q0w, wobei w ∈ Σ ∗ ,

von M. Der Konfigurationsbaum von M(w) ist induktiv definiert:

• Die Wurzel des Baumes ist die Konfiguration q0w.

• Die Kinder einer Konfiguration k des Baumes sind die Folgekonfigurationen von k. 2.2.5

Die Blätter eines Konfigurationsbaumes entsprechen denjenigen Konfigurationen, für die M anhält.

Ein Konfigurationsbaum kann unendlich groß sein. Das ist zum Beispiel der Baum von Meven,1(ε). Der

Baum ist aber immer von endlichem Ausgangsgrad, d.h., jeder Knoten hat nur endlich viele unmittelbare

Nachfolgeknoten, denn wegen der Endlichkeit der Relation δ kann jede Konfiguration höchstens endlich

viele Folgekonfigurationen haben. Genauer: Sei

r = max{ |δ(q,a)| | q ∈ Q\{qa,qr}∧a ∈ Γ };

dann ist r eine wohldefinierte natürliche Zahl, da alle beteiligten Mengen endlich sind, und jeder Knoten

in einem beliebigen Konfigurationsbaum von M hat höchstens r Kinder. Deswegen wird r der Grad des

Nichtdeterminismus von M genannt. Bei einer DTM ist r = 1. Nach dem Lemma von König 1 gibt es

in jedem unendlichen Konfigurationsbaum auch einen unendlich langen Pfad, und die beiden Aussagen:

” von q0w aus gibt es eine unendlich lange partielle Berechnung“ bzw. ” der Konfigurationsbaum mit

q0w als Wurzel ist unendlich groß“ sind gleichwertig. Auf Grundlage dieser Bemerkung definieren wir

eine Konstruktion, die jeder Turingmaschine M eine deterministische Turingmaschine det(M) zuordnet.

Später zeigen wir, dass M und det(M) in vielen Fällen ” das Gleiche leisten“.

Definition 2.2.6 NTM ❀ DTM

Sei M = (Q,Σ,Γ, ,δ,q0,qa,qr) eine beliebige Turingmaschine über Σ. Wir konstruieren det(M) so,

dass det(M) für jedes Wort w ∈ Σ ∗ den Konfigurationsbaum von M(w) erzeugt und dabei auch in

Breitensuche durchläuft (und so M simuliert). Genauer geht det(M) folgendermaßen vor:

• Falls r = 0, dann ist δ die leere Relation und M kann durch sehr einfache Maschinen simuliert

werden, je nachdem, ob q0 = qa oder q0 = qr oder keins von beiden. Sei im Folgenden ohne

Beschränkung der Allgemeinheit r ≥ 1.

1 Dieses Lemma besagt, dass jeder unendliche Baum von endlichem Ausgangsgrad einen unendlichen Pfad besitzt.


30 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

• Das Eingabewort w wird an einer sicheren Stelle gespeichert, z.B. eingeschlossen zwischen Sonderzeichen:

$lw$r. Links davon werden Wörter u über dem Alphabet {1,...,r} in systematischer

Reihenfolge gemäß dem Prinzip der Breitensuche, also

” der Länge nach, kürzere zuerst, und bei gleicher Länge in lexikographischer Ordnung“,

also ε, 1, 2, ..., r, 11, 12, ..., 1r, 21, ..., ..., rr, 111, ... usw.,

erzeugt. Da das Band von det(M) nach links unendlich ist, steht stets genug Platz zur Erzeugung

solcher Wörter u zur Verfügung. Jeder endliche Pfad im Konfigurationsbaum von M(w) entspricht

einem solchen u. Z.B. bedeutet u = 1332: an der Wurzel die erste Alternative wählen, danach

die dritte, dann wieder die dritte, danach die zweite. Es kann sein, dass eines der erzeugten u

keine Auswahl darstellt, aber andersherum (und das ist entscheidend) ist jeder Knoten durch eine

solche Auswahl erreichbar. Gegeben ein Wort u ∈ {1,...,r} ∗ , simuliert det(M) rechts neben $lw$r

genau den Pfad des Konfigurationsbaums von M(w) der durch u beschrieben wird (falls ein solcher

Pfad vorhanden ist). det(M) hält im Endzustand, wenn der aktuell simulierte Pfad auf ein Blatt

des Konfigurationsbaums von M mit q0w als Wurzel führt, das eine akzeptierende Konfiguration

darstellt:

input w;

u := ε;

do simuliere M(w) mit Hilfe der Auswahl u;

if Auswahl führt auf ein Blatt mit akzeptierender Konfiguration → halte

else → skip

fi;

generiere nächstes u

od.

Der else-Fall in der inneren if-Anweisung kann eintreten, wenn u zu einer Konfiguration von M

führt, die nicht akzeptiert oder wenn u zu keiner Konfiguration von M führt, weil der tatsächliche

Grad des Nichtdeterminismus in M kleiner ist als r. det(M) kann in der do...od-Anweisung in

eine unendliche Schleife geraten kann, nicht aber in der Simulation von M(w), da diese Simulation

von u kontrolliert wird. 2.2.6

Die Breitensuche wird gewählt, weil gewährleistet werden muss, dass jeder Knoten des Konfigurationsbaums

von M(w) tatsächlich von det(M), angesetzt auf w, erreicht wird; würde stattdessen die Tiefensuche

gewählt, könnte es vorkommen, dass ein unendlich langer Ast des Baumes durchlaufen wird und eine

daneben liegende akzeptierende Konfiguration ” nicht gesehen“ wird. Insbesondere wird von det(M), angesetzt

auf w, jeder akzeptierende Knoten von M(w) auch besucht, und det(M) stoppt dann. Bei anderen

Knoten stoppt det(M) nicht, selbst wenn diese anderen Knoten w verwerfen oder wenn sie Stopp-Knoten

von M(w) sind. D.h., die obige Konstruktion führt zu einer simulierenden deterministischen Maschine,

die genau dann stoppt, wenn ein akzeptierender Knoten der simulierten nichtdeterministischen Maschine

erreicht wird.

2.2.5 Turingmaschinen als Sprachakzeptoren

Wir definieren nun die Verwendung einer Turingmaschine zum Akzeptieren von Sprachen (und kommen

damit zur Signifikanz der Parameter Σ und qa,qr in der Turingmaschinendefinition). Gegeben sei ein


Komplexitätstheorie - Wintersemester 2010/2011 31

festes Alphabet Σ. Wir interessieren uns für die Klasse der Turingmaschinen mit dem Eingabealphabet

Σ, d.h., für Maschinen der Form M = (.,Σ,., ,.,q0,qa,qr).

Definition 2.2.7 Akzeptanz durch eine Turingmaschine

M akzeptiert ein Wort w ∈ Σ ∗ , wenn es eine akzeptierende Berechnung von M gibt, die mit der Konfiguration

q0w beginnt. Die von M akzeptierte (erkannte) Sprache, L(M), ist die Menge aller von M

akzeptierten Eingabewörter w∈Σ ∗ . Zwei Turingmaschinen M und M ′ über Σ heißen sprachäquivalent,

wenn L(M) = L(M ′ ). 2.2.7

Beispiele:

Die Maschine Mnondet ist eine Turingmaschine über dem Eingabealphabet {0}. Sie akzeptiert nur das

leere Wort:

L(Mnondet) = {ε}.

Das leere Wort ε wird von Mnondet beispielsweise durch den Übergang ((q0, ),(q1,0,L)) akzeptiert.

Es gibt zwar auch den Übergang ((q0, ),(q0,0,L)), jedoch genügt zur Akzeptanz die Existenz einer

akzeptierenden Berechnung, unabhängig davon, wie viele nicht-akzeptierende (oder auch unendliche) es

sonst noch geben mag. Kein anderes Wort wird von Mnondet akzeptiert.

Die MaschineMeven ist eineTuringmaschineüberdemEingabealphabet{0,1}.SieakzeptiertalleWörter,

die nicht leer sind und deren letzter Buchstabe eine 0 ist:

L(Meven) = {w ∈ {0,1} ∗ | w = w ′ 0 für ein Wort w ′ ∈ {0,1} ∗ }.

Außerdem gilt:

L(Meven,1) = L(Meven)

L(Meven,2) = L(Meven) ∪ {ε}.

Ende der Beispiele

Satz 2.2.8 M und det(M) sind sprachäquivalent

Sei M eine Turingmaschine. Es gilt L(M) = L(det(M)).

Beweis: In Abschnitt 2.2.4 wurde die Wirkungsweise von det(M) beschrieben. Dadurch hat man:

w ∈ L(M) ⇒ ( Definition von L(M) )

es gibt einen Pfad im Konfigurationsbaum von M(w),

der auf ein Blatt mit einer akzeptierenden Konfiguration führt

⇒ ( Definition von det(M), Breitensuche )

det(M) findet diesen Pfad und simuliert ihn

⇒ ( Definition von det(M), L(det(M)) )

w ∈ L(det(M)).

w /∈ L(M) ⇒ ( Definition von L(M) )

im M(w)-Baum gibt es keine akzeptierende Berechnung

⇒ ( Definition von det(M) )

det(M) läuft unendlich

⇒ ( Definition von L(det(M)) )

w /∈ L(det(M)).


32 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Also w ∈ L(M) genau dann, wenn w ∈ L(det(M)), was L(M) = L(det(M)) bedeutet. 2.2.8

Man kann also stets zu einer nichtdeterministischen Turingmaschine eine sprachäquivalente deterministische

finden:

{ L ⊆ Σ ∗ | es gibt eine nichtdeterministische Turingmaschine M mit L = L(M) }

= { K ⊆ Σ ∗ | es gibt eine deterministische Turingmaschine M ′ mit K = L(M ′ ) }.

2.3 Erweiterte TM-Modelle

Es gibt viele Variationen des TM-Modells. Eine einfache ergibt sich z.B. daraus, daß das ” N“ überflüssig

ist: Jeder N-Schritt kann durch zwei aufeinanderfolgende Schritte – erst R, dann L oder erst L, dann R

– simuliert werden.

Die1-Band-TMistkeinsehrgeeignetesModellfürdieKomplexitätstheorie,dennZeitbedarfundSpeicherbedarf

sind darin ” verquickt“. Wir definieren einige weitere Modelle, die dafür (und für andere Zwecke)

geeigneter sind. Alle diese Modelle sind äquivalent in dem Sinne, daß die Menge der erkannten Sprachen

gleich bleibt.

Im diesem Abschnitt betrachten wir äquivalente Erweiterungen, im nächsten Abschnitt äquivalente Einschränkungen

des TM-Modells.

2.3.1 Mehrspurmaschinen

Eine Turingmaschine M über dem Alphabet Σ mit k-Spur-Band (k ≥ 1) ist dadurch gekennzeichnet,

dass ihr Bandalphabet ein k-Tupel von Elementen aus Γ ist. D.h., M ist ein Achttupel

M = (Q,Σ,Γ k , ,δ,q0,qa,qr)

mit einer Übergangsrelation

δ ⊆ ((Q\{qa,qr})×Γ k )×(Q×Γ k ×{L,N,R}).

Bei einer solchen Maschine steht der Lese/Schreibkopf stets auf einer ” Spalte“ (einem Vektor der Größe

k mit Einträgen aus Γ) der durch die k Spuren definierten, nach links und rechts unendlichen ” Matrix“

(siehe Abbildung 2.10 mit k = 3). In einem Schritt kann sich der LSK auf den Vektor links davon oder

den Vektor rechts davon bewegen, oder er kann auf dem gerade gelesenen Vektor stehen bleiben. Der

Begriff L(M) ⊆ Σ ∗ ist direkt übertragbar. Bildlich stellt man sich vor, dass das ” Ansetzen von M auf

ein Wort w“ bedeutet, dass w auf der ersten Spur geschrieben wird, alle anderen Felder (insbesondere

alle Felder auf allen anderen Spuren) das Blankzeichen tragen und dass die anfängliche Kopfposition der

durch das Anfangszeichen von w bestimmte Vektor (oder irgend einer, wenn w = ε) ist.

Da Mehrspurmaschinen sich nur durch die Tatsache, dass Γ strukturiert ist, von normalen Turingmaschinen

unterscheiden, unterscheidet sich die Klasse der von Mehrspurmaschinen akzeptierten Sprachen

nicht von der Klasse der Turing-akzeptierbaren Sprachen. Genauer:

• Jede 1-Band-Turingmaschine ist auch eine k-Spurmaschine mit k = 1.

• Umgekehrt ist jede k-Spur-TM auch eine 1-Band-TM, indem Elemente a ∈ Σ mit Vektoren

(a, ,..., ) der Länge k identifiziert werden.


Komplexitätstheorie - Wintersemester 2010/2011 33

0

··· 1 0 0 ···

1

1

0

0

LSK

Σ = {0,1}

Γ 3 = {0,1, }×{0,1, }×{0,1, }

Abbildung 2.10: Ein beidseitig unendliches Band mit drei Spuren und einem LSK

2.3.2 Mehrbandmaschinen

Wir verallgemeinern die Klasse der betrachteten Maschinen noch weiter, indem wir zulassen, dass es k

Bänder und für jedes Band einen eigenen Lese/Schreibkopf gibt. Es sei wieder Γ das Bandalphabet für

alle k Bänder. Die Übergangsrelation hat in diesem Fall die Form

δ ⊆ ((Q\{qa,qr})×Γ k )×(Q×Γ k ×{L,N,R} k ).

Der wesentliche Unterschied zu Mehrspurmaschinen besteht darin, dass sich die k Lese/Schreibköpfe

nunmehr in verschiedenen Richtungen bewegen können (siehe Abbildung 2.11). Formal ist dies durch den

Faktor {L,N,R} k (und nicht nur {L,N,R} wie bei Mehrspurmaschinen) in der Definition von δ erfasst.

1

2

.

k

···

···

···

.

Steuereinheit

(endliche Zustandsmenge)

Abbildung 2.11: k beidseitig unendliche Bänder mit k Lese-Schreibköpfen

Eine Mehrbandmaschine wird auf ein Wort w ∈ Σ ∗ genau wie eine Mehrspurmaschine angesetzt:

• Das Wort w steht auf dem ersten Band und der LSK des ersten Bandes steht auf dem Feld, das

durch den linkesten Buchstaben von w definiert wird (bzw. auf einem beliebigen Feld, wenn w = ε).

Alle anderen Felder des ersten Bandes tragen das Blankzeichen.

.

···

···

···


34 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

• Alle Bänder von 2 bis k tragen nur Blankzeichen und ihre Lese/Schreibköpfe stehen auf einem

beliebigen Feld.

Der Begriffe der akzeptierten Sprache lässt sich entsprechend übertragen. Einen Übergang in einer Mehrbandmaschine

stellen wir grafisch wie in Abbildung 2.12 dar. Hierbei sind a1,...,ak die gerade gelesenen

Zeichen der k Bänder, b1,...,bk die neu geschriebenen Zeichen und m1,...,mk die Bewegungen der k

Lese/Schreibköpfe.

a1,...,ak : b1,...,bk

m1,...,mk

Abbildung 2.12: Übergang bei einer Mehrbandmaschine

Konfigurationen von Mehrbandmaschinen bestehen aus:

• dem gerade aktuellen Zustand q (anfänglich q0);

• den k Bandinhalten;

• und den k Kopfpositionen.

2.3.3 Offline-Maschinen

Eine Mehrband-Turingmaschine heißt Offline, wenn das erste Band nur in Richtung von links nach rechts

gelesen wird. Das erste Band heißt hier ” Eingabeband“, alle anderen Bänder heißen ” Arbeitsbänder“. In

diesem Fall hat die Übergangsrelation die Form

δ ⊆ ((Q\{qa,qr})×Γ k )×(Q×Γ k−1 ×({R}×{L,N,R} k−1 )).

Wenn eine Offline-TM nur k = 1 Bänder hat, ist ihre Mächtigkeit auf die eines endlichen Automaten

reduziert. Deshalb nimmt man bei Offline-TMs standardmäßig die Existenz mindestens eines Arbeitsbandes,

d.h. k ≥ 2, an. Man kann auch ein reines Ausgabeband vorsehen, auf das von links nach rechts

nur geschrieben wird. Dann wird standardmäßig k ≥ 3 angenommen, denn ohne Arbeitsband hat man

wieder nur eine Variante des endlichen Automatenmodells.

Satz 2.3.1 Bandreduktion

Sei M eine k-Band-Turingmaschine (k ≥ 1) oder eine Offline-TM mit k (k ≥ 2) Bändern.

Dann gibt es eine 1-Band-Turingmaschine M ′ mit L(M ′ ) = L(M).

Beweis: (Skizze.)

Sei M eine Mehrbandmaschine mit k Bändern. Wir simulieren M durch eine Mehrspurmaschine mit 2·k

Spuren. Dabei simulieren die Spuren mit ungeradem Index (1, 3, ..., 2k−1) genau die k Bänder von M.

Die Spuren mit geradem Index (2, 4, ..., 2k) enthalten genau ein nicht-Blankzeichen, z.B. ∗, das angibt,

wo sich der Lese/Schreibkopf des ” darüber liegenden“ Bandes (d.h., der Spur mit um 1 kleinerem Index)

befindet.


Komplexitätstheorie - Wintersemester 2010/2011 35

Anfänglich (und immer nach einem vollendeten Simulationsschritt) befindet sich die Kopfposition der

simulierenden Maschine auf dem Vektor, der durch ein erstes ∗-Zeichen (von links) bestimmt ist (siehe

Abbildung 2.13 für k = 2.) Um einen Schritt von M zu simulieren,

• bewegt die simulierende Maschine ihren LSK solange nach rechts und speichert die Kopfpositionen

und die dort gelesenen Zeichen, bis genau k Zeichen ∗ gelesen worden sind (hierdurch gewinnt sie

die nötige Information, um M simulieren zu können),

• führtdanndiek TeilschrittevonM aus(SchreibenneuerZeichenundevtl.Versetzender∗-Zeichen),

bis alle k Teilschritte ausgeführt sind,

• und sucht schließlich das erste (von links) mit ∗ markierte Feld auf und ist bereit zum nächsten

Schritt.

Der Fall, dass M eine Offline-TM ist, kann analog behandelt werden. 2.3.1

···

···

1

1 0

0

0

···

···


Abbildung 2.13: Simulation einer 2-Band-TM (links) durch eine Vierspur-TM (rechts)

Für die Untersuchung von Speicherplatzbedarf ist die Offline-TM das günstigste Modell.

2.4 Eingeschränkte TM-Modelle

Nach den Erweiterungen betrachten wir jetzt einige Einschränkungen in Bezug auf das Band, auf das

Bandalphabet, und bezüglich der Anzahl der Zustände.

InderLiteraturfindetmanoftnureinseitig(nachrechts)unendlicheTuringbänder.Maschinenmitsolchen

Bändernkönnen natürlich sofortauch alszweibändigeMaschinen interpretiertwerden, außerdass letztere

stoppen müssen, wenn erstere den linken Rand des Bandes überschreiten würden. Umgekehrt lässt sich

jedes zweiseitig unendliche Band durch zwei einseitig unendliche Bänder (oder auch durch zwei Spuren

auf einem einseitig unendlichen Band) simulieren, indem die linke und die rechte ” Hälfte“ des zweiseitig

unendlichen Bandes getrennt simuliert werden. D.h., statt ihr Band nach links zu überschreiten, geht die

simulierende Maschine in einen speziellen Zustand zum Wechseln der Spur über.

Die nächsten beiden Sätze besagen, dass sowohl das Bandalphabet als auch die Zahl der Zustände erheblich

verringert werden können, wenn auch nicht oder nur eingeschränkt gleichzeitig.

···

···

···

···

1 0


1


0

0

···

···

···

···


36 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 2.4.1 Reduktion des Bandalphabets

Sei M eine TM über dem Alphabet Σ. Es gibt eine TM M ′ mit Γ ′ = { ,1} und Σ ′ = {1}, so daß

h(L(M)) = L(M ′ ) ist, wobei h ein geeigneter (injektiver) Homomorphismus h: Σ ∗ → Σ ′∗ ist.

Beweis: (Skizze.)

M ′ simuliert jeden Schritt von M in mehreren Schritten; siehe Abbildung 2.14. 2.4.1

Es seien Γ = { ,1,2,3} und h( ) = , h(1) = 1, h(2) = 1 , h(3) = 11.

2

3

h

↦−→

1

1 1

Abbildung 2.14: Beispiel für Satz 2.4.1 mit Γ = { ,1,2,3} und geeignetem h

Satz 2.4.2 Reduktion der Anzahl der Zustände

Sei M eine TM. Es gibt eine TM M ′ mit drei Zuständen, so daß L(M) = L(M ′ ) gilt.

Beweis: Nicht gegeben. 2.4.2

Versucht man Bandalphabet und Zustände gleichzeitig zu minimieren und zieht auch noch andere Parameter

in Betracht, gelangt man leicht in ein Gebiet, das als ” TM-Esoterik“ bezeichnet werden könnte

und auf dem es eine ganze Reihe von interessanten Arbeiten gibt.

2.5 Random-Access-Maschinen

In Abschnitt 1.1 wurde behauptet, dass die in der Literatur (und auch in der Realität) üblicherweise

betrachteten Rechenmodelle äquivalent in dem Sinne sind, dass sie höchstens um eine polynomielle

Größenordnung voneinander differieren. Im vorliegenden Abschnitt machen wir uns dies für ein Rechenmodell

klar, das sich auf den ersten Blick ziemlich von einer (Mehrband)-TM unterscheidet und näher

mit existierenden von-Neumann-Rechnerarchitekturen (also mit ganz normalen PCs) verwandt ist. Dieses

Modell heißt RAM, was für Random Access Machine oder auch Random Access Memory steht. Es

wird behauptet, dass es eine Simulation einer RAM durch eine TM gibt, die nur einen polynomiellen

Unterschied beinhaltet.

Eine RAM (s. Abbildung 2.15) besteht aus einer potenziell unendlichen Kette von Speicherzellen, die

binär adressiert werden. Ab Speicherzelle 0 steht dort ein (endliches) Programmund der Programmzähler

verweist auf die Speicherzelle 0 als erste Instruktion. Außerdem gibt es eine endliche Anzahl von Rechenregistern

A, B usw., auf denen arithmetische Operationen ausgeführt werden können. Beispielsweise


Komplexitätstheorie - Wintersemester 2010/2011 37


⎪⎨

Speicher (unendlich)

⎪⎩


⎪⎨

Register (endlich)

⎪⎩

.

.

0

1

10

binäre

Adressen

A

B

Die Wörter enthalten

0’en und 1’en.

Sie können Codierungen

von Anweisungen sein,

z.B. ADD i,A

Ein Programmzähler PC (für program counter) enthält eine Zahl, anfänglich 0.

bedeutet

ADD i,A,

Abbildung 2.15: Das RAM-Modell

dass zum Inhalt des Registers A der Inhalt der Speicherzelle i addiert werden soll. Die Speicherzellen

können auch für Zwischenergebnisse verwendet werden. Genauer besteht ein Schritt der RAM aus den

folgenden Teilen:

• PC lesen;

• Anweisung decodieren (stopp, falls es an der Stelle, auf die PC verweist, keine Anweisung gibt);

• Anweisung ausführen;

• PC um 1 erhöhen, es sein denn, die Anweisung besagt etwas anderes.

Die Zeit- und Platzkomplexitätsmaße einer RAM werden sinnvollerweise folgendermaßen bestimmt:

• Zeitverbrauch: Anzahl der Rechenschritte t.

• Platzverbrauch: Anzahl der benutzten Wörter s.

Abbildung 2.16 zeigt eine Simulation der RAM durch eine Mehrband-TM mit einseitig unendlichen

Bändern. Die folgende Tabelle enthält eine überschlagsmäßige Berechnung der Zeit, die von der simulie-


38 Vorlesungsskript von E. Best / Stand: 17. Januar 2011


Speicher: # 0 ∗ w0 # 1 ∗ w1 # 10 ∗ w10 # 1 1 ...

(Arbeitsband)

5-Band-

Adresse Inhalt

⎪⎬ TM

Register: # A ∗ r1 # B ∗ r2 # C ... (Eingabeband

PC: # z # ...

leer)

Adressenzwischen

# x # ... ⎪⎭

speicher:

Abbildung 2.16: Simulation von RAM durch eine Fünfband-Offline-TM mit leerem Eingabeband

renden Mehrband-TM benötigt wird, um einen Schritt der RAM zu simulieren:

Aktion Zeitbedarf

# z ∗ im Speicher suchen; O(s) (lineare Zeit)

if nicht gefunden → stopp O(1) (konstante Zeit)

else → wz decodieren (z.B. wz = ADD i,A (i Adresse)); O(1)

i in den Adressenspeicher kopieren; O(log 2s) (logarithmische Zeit)

# i ∗ im Speicher suchen; O(s)

wi und A addieren; O(1)

1 zu PC addieren O(log 2s)

fi

O(s) insgesamt

Die TM braucht also höchstens O(s) Platz und O(s · t) Zeit, um eine RAM mit s Platz und t Zeit zu

simulieren. Vom Platz her gesehen ist diese Simulation sehr gut, von der Zeit her gesehen nicht so gut,

aber immer noch polynomiell und nicht exponentiell abhängig von t.

Eine ähnliche Untersuchung kann man übrigens für die Simulation von Mehrband-TM durch Einband-

TM anstellen, die im Beweis von Satz 2.3.1 angegeben wurde. Das wird im nächsten Kapitel noch etwas

genauer untersucht. Insgesamt hat man – zumindest für die bis jetzt betrachteten Berechnungsmodelle

– eine relative Unabhängigkeit der späteren Theorie vom Modell, nämlich relativ bezüglich eines polynomiellen

Unterschieds. Die Sprachklassen, die später definiert werden, sind (zunächst) in diesem Sinne

modellunabhängig, und alle betrachteten Modelle sind komplexitätstheoretisch (zunächst) gleichwertig,

da polynomielle Unterschiede (zunächst) keine Rolle spielen.

2.6 Universelle Turingmaschinen

Es gibt eine ” programmierbare“ TM, genannt U, die alle anderen (inklusive sich selbst!) simulieren kann,

indem das ” Programm“ dieser anderen TM auf dem Band von U angegeben wird.

Sei M eine 1-Band-TM über {0,1}. M wird als Wort uM über einem Alphabet (z.B. wieder über {0,1})

codiert. U akzeptiert das Wortpaar 〈uM,w〉 per definitionem genau dann, wenn die Maschine M das

Wort w akzeptiert. Das Wort uM kann als ” Programm“ angesehen werden, das von U ” ausgeführt“ wird.


Komplexitätstheorie - Wintersemester 2010/2011 39

Hier sind die Details für eine mögliche Codierung einer TM M:

• Zustände von M: {q0,...,qr}

• Zeichen für U: {0,1, ,$}

• Codierung für Bewegungen von M: N ↦→ 00, R ↦→ 01, L ↦→ 10

• Codierung der Zeilen der Übergangsfunktion von M:

z.B. δ(qi,a) = (qj,b,R) ↦→ $$bin(i)$a$bin(j)$xj$b$01


1, falls qj∈F

wobei xj =

0, falls qj/∈F

und, wenn z.B. Q = {q0,...,q10},

bin(2) = 0010,bin(10) = 1010

(bin(i) hat immer die Länge ⌈log 2(r)⌉.)

Die Simulation von M durch U ist in Abbildung 2.17 angegeben.

w B

a0 M

uM $ a0 w B

U

Initialisierung von U:

uM $ 0⌈log2(r)⌉ $ x0

$ a0 w B


⎪⎬ Anfangskonfigu

⎪⎭ rationen

Dann läuft der Algorithmus 1 ab.

Eine allgemeine Konfiguration außerhalb der Simulationsschleife:

w1

a

w2

uM $ $ $ $ bin(i) $ $

qi M

w1 xi a w1 U

Abbildung 2.17: Erläuterung der Simulation von M durch U

Korollar 2.6.1 Abzählbarkeit der Menge der TM

Die Menge der Turingmaschinen ist abzählbar.

Beweis: Die uM bilden eine Abzählung. 2.6.1

Als Indikation dafür, wie viele TM es gibt: Es gibt 63 403 380 965 376 TM mit 5 Zuständen!

Obige Konstruktion kann als Beweisskizze für den folgenden Satz angesehen werden:


40 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 2.6.2

repeat

$$bin(i)$a in uM suchen

if nicht gefunden −→

if xi = 1 −→ halten und akzeptieren

xi = 0 −→ halten und verwerfen

fi

gefunden −→

bin(j), xj, b, Bewegung m zwischenspeichern;

bin(i) mit bin(j) überschreiben;

xi mit xj überschreiben;

a mit b überschreiben;

$uM$bin(j)$xj$ ein Feld in Richtung m verschieben;

Zwischendaten löschen;

Kopf rechts von xj$ bringen

fi

until false.

Algorithmus 1: Simulationsschleife

Es gibt eine universelle TM U, so daß für jede TM M gilt:

M akzeptiert w genau dann, wenn U 〈uM,w〉 akzeptiert, wobei uM eine geeignete Codierung von M ist.

Churchsche These

Alles, was im intuitiven Sinn berechenbar ist, ist auch Turing-berechenbar.

Beleg: Bisher wurde noch keine intuitiv berechenbare Funktion (Sprache) gefunden, die nicht auch

Turing-berechenbar ist.

Weiterer Beleg: Viele Begriffe sind zu ” Turing-berechenbar“ äquivalent: z.B. µ-rekursiv, whileberechenbar.

Vorteile der Beschreibung von Algorithmen mit Hilfe von TM:

• einfache und eindeutige Definition eines Berechnungsschrittes

• einfache und eindeutige Definition einer Speichereinheit

Nachteil:

• umständliche Angabe eines Algorithmus.


Kapitel 3

Raum- und Zeitkomplexität

Dieses Kapitel enthält grundlegende Definitionen über die Laufzeit und über den Speicherbedarf von

Turingmaschinen. Wir legen als Grundmodell die Mehrband-Turingmaschinen zu Grunde, oft auch in der

Offline-Version mit einem Leseband.

Sei M eine DTM, also eine deterministische Mehrband-TM, mit akzeptierter Sprache L(M). Wir interessieren

uns für die Längen der Berechnungen von M (Zeitkomplexität) und für den Bandverbrauch

(Platz- oder Speicherkomplexität). Dazu zählen wir einfach die Anzahl der Schritte bzw. die Anzahl der

besuchten Bandfelder während einer Rechnung, die ja für eine DTM eindeutig ist.

Wenn man den Zeitverbrauch betrachtet, rechnet man üblicherweise auch die Zeit, die mit dem Lesen

einer Eingabe verbracht wird. Deshalb wird das Mehrband-TM-Modell zugrundegelegt, bei dem das

Eingabeband auch als Arbeitsband benutzt werden kann. Wenn man den Speicherbedarf betrachtet, wird

üblicherweise die Eingabe nicht mit zum Bedarf gerechnet. Deshalb wird in diesem Fall das Offline-

Modell zu Grunde gelegt und der Speicherverbrauch nur auf den Arbeitsbändern, aber nicht auf dem

Eingabeband berechnet.

Für Wörter, die nicht in L(M) (mit einer DTM M) liegen, ist die Anzahl der Schritte entweder endlich

groß(wennderZustandqr erreichtwird)oderunendlichgroß(wenneineunendlicheBerechnungentsteht).

Die Anzahl der besuchten Bandfelder mag ebenfalls endlich sein oder auch nicht. Für Wörter, die in

L(M) liegen und für die deshalb der akzeptierende Zustand qa erreicht wird, sind jedoch beide Größen

wohldefiniertenatürlicheZahlen.DieseZahleninteressierenunsinersterLinie.EineNTMhatnochandere

Berechnungsmöglichkeiten und man muss noch genauer festlegen, wie die Schritte und die besuchten

Bandfelder gezählt werden.

Wir machen eine Eingabelänge- und eine worst-case-Abstraktion. Es kann beobachtet werden, dass die

Lauf- und Platzbedarfszeiten mit der Länge (Größe) n der Eingabe w = a1...an im Wesentlichen wachsen.

Wir interessieren uns daher nur für die Abhängigkeit der Komplexitätsgrößen von der Länge der

Eingabe, nicht von der Eingabe selbst. Konkret soll der schlechteste Fall einer Eingabe der festen Länge

n betrachtet werden, d.h., diejenige Laufzeit, die maximal mit gegebener Eingabelänge n erreichbar ist.

Das ergibt eine obere Schranke für die Laufzeit und motiviert insgesamt die Definitionen des folgenden

Abschnitts.

41


42 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

3.1 Zeit- und Platzkomplexitätsbegriffe

Im Folgenden gehen wir von einem geeigneten Alphabet Σ aus. Üblicherweise betrachten wir Σ = {0,1}.

Definition 3.1.1 Zeit- und Platzkomplexität einer DTM

Seien f: N → N eine (totale) Funktion und sei M eine deterministische Mehrband-TM mit Eingabealphabet

Σ.

(i) M heißt f-zeitbeschränkt (oder f(n)-zeitbeschränkt), falls für jedes Wort w ∈ L(M) der Länge

|w| = n gilt: wenn M auf die Eingabe w angesetzt wird, hält die – eindeutige und wegen w ∈ L(M)

endliche – Berechnung in höchstens f(n) Schritten an.

(ii) M heißt f-platzbeschränkt (oder f(n)-platzbeschränkt), falls für jedes Wort w ∈ L(M) der Länge

|w| = n gilt: wenn M auf die Eingabe w angesetzt wird, benutzt die Berechnung auf jedem Arbeitsband

höchstens f(n) Felder. 3.1.1

Wenn M f-zeitbeschränkt ist, sagt man auch, dass f(n) eine Zeitschranke für M ist oder dass M innerhalb

Zeit f(n) arbeitet, und analog für Platzschranken. Statt platzbeschränkt wird auch das Wort

bandbeschränkt benutzt.

Wenn f Turing-berechenbar ist 1 , dann gilt:

Lemma 3.1.2 Deterministisch zeitbeschränkt ⇒ entscheidbar

Sei L eine Sprache, die von einer mit Hilfe einer Turing-berechenbaren (totalen) Funktion f: N → N

zeitbeschränkten DTM akzeptierbar ist. Dann ist L entscheidbar.

Beweis: Wir konstruieren eine DTM mit folgender Wirkungsweise:

a) Gegeben w, wird n = |w| berechnet.

b) Durch Benutzung einer DTM, die f berechnet, wird f(n) auf ein Zusatzband geschrieben.

c) Jetzt wird die Maschine M simuliert, die L akzeptiert, wobei die Zahl auf dem Zusatzband bei

jedem Schritt um 1 vermindert wird.

d) Ist die Zahl auf dem Zusatzband 0, wird die Rechnung abgebrochen. Hat M bis dahin den Endzustand

qa erreicht, wird w akzeptiert (w ∈ L), ansonsten verworfen (w /∈ L).

Offensichtlich entscheidet diese Maschine L, denn wenn nach f(n) Schritten in M kein akzeptierender

Zustand erreicht wird, kann wegen der Zeitschranke auch später keiner mehr kommen. 3.1.2

Im Verbund mit einem Satz aus der Theoretischen Informatik II folgt auch, dass unter den Voraussetzungen

des Lemmas die Sprache L Turing-akzeptierbar ist. Die Funktion f ist aber nicht notwendigerweise

eine Zeitschranke für eine L akzeptierende Maschine, weil im Schritt b) des Beweises, wo f(n) ausgerechnet

wird, viel mehr Zeit vergehen kann, als durch die Schranke f(n) bestimmt ist.

1 Diesen Begriff haben wir in diesem Skriptum bisher nicht definiert. Eine partielle Funktion f: N p → N ist Turingberechenbar,

wenn es eine Offline-2-Band-DTM M gibt, die mit Eingabe einer Codierung von x ∈ N genau dann im Zustand

qa und mit einer Codierung von f(x) auf dem zweiten Band stoppt, wenn x im Definitionsbereich von f liegt. Ist f total,

bedeutet das, dass M für jede Eingabe x ∈ N den Funktionswert f(x) berechnet und in qa stoppt.


Komplexitätstheorie - Wintersemester 2010/2011 43

Die Definition 3.1.1 ist leicht auf DTMs zu übertragen, die partielle Funktionen berechnen, anstatt Sprachen

zu akzeptieren. Zum Beispiel heißt eine Maschine M, die eine partielle, m-stellige Funktion g: N m p →

N berechnet, f-zeitbeschränkt (mit f: N → N), wenn für die Binärdarstellung w = bin(x1,...,xm) eines

m-Tupels als Eingabe gilt: falls |w| = n und g ist auf (x1,...,xm) definiert, dann liefert M in höchstens

f(n) Schritten das Ergebnis g(x1,...,xm).

Nun verallgemeinern wir diese Definition auf nichtdeterministische Turingmaschinen. Wenn L durch eine

NTM M akzeptiert wird, dann sind die Rechnungen nicht notwendigerweise eindeutig. Trotzdem

lassen sich die Zeit- und Bandverbrauchsbegriffeauf Grundlage der folgenden Idee übertragen. Bei möglichen

Verzweigungspunkten einer NTM, d.h., an den Stellen, an denen die Maschine eine Auswahl aus r

Möglichkeiten hat, stellen wir uns vor, dass r gleiche (disjunkte) Kopien der Maschine hergestellt werden

und dass jede dieser Kopien mit einer der r Möglichkeiten weiter rechnet. Das geht am besten mit einer

gedanklichen Abstraktion: dass es so viele Prozessoren gibt, wie man gerade braucht (also potenziell unendlich

viele). Sobald eine dieser möglicherweisesehr vielen Maschinen den Endzustand qa erreicht,lautet

die Antwort ” die Eingabe ist akzeptiert“, und die anderen Zweige könnten im Prinzip ihre Rechnungen

abbrechen. Deshalb wird der Zeitverbrauch hier als das Minimum aller möglichen Schrittlängen definiert,

nach dem Motto: ” die schnellste Maschine (-nkopie) gewinnt“.

Definition 3.1.3 Zeit- und Platzkomplexität einer NTM

Seien f: N → N eine (totale) Funktion und sei M eine (nicht notwendigerweise deterministische)

Mehrband-TM mit Eingabealphabet Σ.

(i) M heißt f-zeitbeschränkt (oder f(n)-zeitbeschränkt), falls für jedes Wort w ∈ L(M) der Länge n

gilt: wenn M auf die Eingabe w angesetzt wird, hält eine kürzestmögliche akzeptierende Berechnung

– und wegen w ∈ L(M) gibt es mindestens eine – in höchstens f(n) Schritten an.

(ii) M heißt f-platzbeschränkt (oder f(n)-platzbeschränkt), falls für jedes Wort w ∈ L(M) der Länge

n gilt: wenn M auf die Eingabe w angesetzt wird, benutzt eine kürzestmögliche akzeptierende

Berechnung auf jedem Arbeitsband höchstens f(n) Felder. 3.1.3

Auf einer Mehrbandmaschine wird für den Platzverbrauch also nur die maximale Ausdehnung der Arbeitsbändernachlinksundrechtsgezählt.Diebenutzten

Felderderk−1Arbeitsbänderkönnteneigentlich

auch addiert werden. Wir sehen später, dass das nur einen konstanten und deswegen asymptotisch vernachlässigbaren

Faktor beitragen würde.

Auch jetzt gilt:

Lemma 3.1.4 Nichtdeterministisch zeitbeschränkt ⇒ entscheidbar

Sei L eine Sprache, die von einer mit Hilfe einer Turing-berechenbaren Funktion f: N → N zeitbeschränkten

NTM akzeptierbar ist. Dann ist L entscheidbar.

Beweis: Der Beweis von Lemma 3.1.2 kann im Wesentlichen übernommen werden. Die simulierende

Maschine muss jetzt im Schritt c) nicht nur eine einzige Rechnung simulieren, sondern einen Berechnungsbaum,

allerdings nur bis zur Tiefe f(n). Es handelt sich also um einen endlichen Baum, und die

Simulation bricht deswegen ab. Günstigerweise kann man in Schritt b) des Beweises gleich zwei neue

Arbeitsbänder einrichten, eins zum Merken der Zahl f(n) und eins zum Steuern der Simulation. Dazu

können (wie in Abschnitt 2.2.4, wo eine Konstruktion NTM❀DTM beschrieben wurde) Wörter über


44 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

{1,...,r} verwendet werden, wobei r der Grad des Nichtdeterminismus ist. Hier brauchen wir allerdings

nur Wörter der Länge ≤ f(n) zu betrachten, also eine endliche Anzahl. Alternativ kann man sich vorstellen,

dass man die gegebene NTM auf einer Eingabe der Länge n parallel (und auf jeder Kopie bis

höchstens zur Schrittzahl f(n)) simuliert. 3.1.4

Es ist im Allgemeinen sehr schwierigund erratisch,den tatsächlichenZeitbedarf einer Maschine herauszufinden.

Deshalb ist man an Abstraktionen und an asymptotischem Verhalten interessiert. Die Definition

ist zu diesem Zweck flexibel gefasst. Zum Beispiel ist mit f auch jede ” größere“ Funktion (etwa die

Funktion g mit g(n) = f(n)+1) eine Zeitschranke für M.

Wir vereinbaren die folgende Sprechweise. Sinnvollerweise kann man für eine Zeitschranke t(n) die Beziehung

t(n) ≥ n annehmen, denn n Schritte werden allein schon dazu gebraucht, die Eingabe zu lesen.

Vereinfachend nehmen wir damit alle Maschinen aus der Betrachtung heraus, die ihre Eingabe nicht ganz

lesen. Genauer vereinbaren wir: wenn von der ” Zeitschranke t(n)“ die Rede ist, ist damit eigentlich

max(n,⌈t(n)⌉)

gemeint. Z.B. ist die Zeitschranke nlog2n gleich 1 bei n = 1 und gleich 2 bei n = 2. Ähnlich ist bei

Platzschranken eine sinnvolle Annahme, dass mindestens eine Speicherzelle benutzt wird. Wenn von der

” Platzschranke s(n)“ die Rede ist, ist damit eigentlich

max(1,⌈s(n)⌉)

gemeint. Damit sind sowohl für Zeit- als auch für Platzschranken die Werte jeder solcher Funktion für

jede Eingabe n ≥ 1 auch natürliche Zahlen ≥ 1.

3.2 Komplexitätsklassen und Beispiele

Wir fassen jetzt Probleme, also Sprachen, die mit gleicher Komplexität akzeptiert werden können, zu

Komplexitätsklassen zusammen.

Definition 3.2.1 Komplexitätsklassen (allgemein)

Seien s,t: N → N.

DTIME(t) = {L | es gibt eine deterministische Mehrband-TM mit Zeitschranke t(n),

die L akzeptiert }

NTIME(t) = {L | es gibt eine nichtdeterministische Mehrband-TM mit Zeitschranke t(n),

die L akzeptiert }

DSPACE(s) = {L | es gibt eine deterministische Offline-Mehrband-TM mit Platzschranke s(n),

die L akzeptiert }

NSPACE(s) = {L | es gibt eine nichtdeterministische Offline-Mehrband-TM mit Platzschranke s(n),

die L akzeptiert }

Weil jede DTM eine NTM ist und weil eine TM in jedem Rechenschritt höchstens ein neues Feld auf

ihren Bändern besuchen kann, gelten die in Abbildung 3.1 dargestellten Beziehungen. Ziel der nächsten

Ausführungen ist die Angabe weiterer Beziehungen dieser Art.

3.2.1


Komplexitätstheorie - Wintersemester 2010/2011 45

⊆ DSPACE(f) ⊆

DTIME(f) NSPACE(f)

⊆ NTIME(f) ⊆

Abbildung 3.1: Einfache Beziehungen zwischen den Komplexitätsklassen der Definition 3.2.1

Beispiel Ldoppelt

Wir betrachten Ldoppelt = {w | w = uu ∧ u ∈ {0,1} ∗ } und wollen eine möglichst effiziente Mehrband-TM

konstruieren, die Ldoppelt akzeptiert. Zunächst gehen wir deterministisch vor.

Lösungsidee: ZueinemgegebenemWortw ∈ {0,1} ∗ stellenwirzuerstdieMitte vonw fest undvergleichen

dann die beiden Hälften. Zum Feststellen der Mitte wird ein 2. Band benutzt. Wir fassen also eine

deterministische 2-Band TM ins Auge und unterteilen die Arbeit der Maschine in mehrere Phasen:

• Phase 1: Hier gehen wir das Eingabewort auf dem oberen Band von links nach rechts einmal ab

und bewegen den unteren Kopf genau halb so schnell. Ein Test, ob n ungerade ist, kann eingebaut

werden; falls ja, wird w verworfen. Falls n gerade ist, steht der obere Kopf auf dem ersten Blank

rechts von w und der zweite Kopf auf dem 1. Buchstaben der zweiten Hälfte von w.

Der Zeitverbrauch dieser Phase ist n, der Platzverbrauchn+1. (Das gilt auch im Spezialfall n = 0.)

• Phase 2: Jetzt wissen wir schon, dass n gerade ist. Der obere Kopf bewegt sich ein Feld nach links,

desgleichen der untere Kopf. Jetzt steht der obere Kopf auf dem letzten Buchstaben von w (wenn

w = ε), und der untere Kopf steht auf dem letzten Buchstaben der ersten Hälfte von w.

Der Zeitverbrauch dieser Phase ist 1. Der Platzverbrauch der Phasen 1 und 2 ist n+1, falls w = ε,

und n+2, also 2, falls w = ε.

• Phase 3: Jetzt wird die zweite Hälfte von w rückwärts vom 1. Band auf das zweite Band kopiert.

Danach steht der obere Kopf auf dem letzten Zeichen der 1. Hälfte von w, der zweite Kopf auf dem

Feld direkt links von w.

Der Zeitverbrauch dieser Phase ist n

2 . Der Platzverbrauch ist bislang insgesamt n+2.

• Phase 4: Jetzt bewegt sich der Kopf des oberen Bandes auf das Feld links neben den Anfang von

w. Danach stehen beide Köpfe direkt links neben dem Anfangsfeld.

Der Zeitverbrauch dieser Phase ist n

2 . Der Platzverbrauch ist bleibt n+2.

• Phase 5: Jetzt werdendie n

2 Buchstaben rechts neben den beiden Köpfen aufGleichheit verglichen.

Falls ja, wird das Wort akzeptiert, falls nein, wird das Wort verworfen.

Der Zeitverbrauch dieser Phase ist n

2 +1. Der Platzverbrauch bleibt insgesamt n+2.

Insgesamt ergibt sich der Zeitverbrauch aus einer Aufsummierung der Verbrauche der 5 Phasen:


n


n


n

(n+1)+(1)+ + +

2 2 2 +1


= 5n

2 +3.

Der Platzverbrauch ist n+2. Also gilt:

Ldoppelt ∈ DTIME( 5n

2 +3),

Ldoppelt ∈ DSPACE(n+2).


46 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Nichtdeterministisch kann man folgendermaßen vorgehen:

• Phase 1: Solange kein Blank gelesen wird, wird zeichenweise vom Band 1 auf das Band 2 kopiert.

Dieser Prozess wird nichtdeterministisch abgebrochen.

• Phase 2: Auf Band 2 wird an den Anfang zurückgekehrt.

• Phase 3: Nun wird zeichenweiseverglichen, ob ab der in Phase 1 erreichten Position auf dem ersten

Band das Gleiche steht wie auf dem zweiten Band. Falls dies zutrifft und beide Lese/Schreibköpfe

gleichzeitig am Ende auf ein Blank stoßen, dann wird akzeptiert.

Dieses Vorgehen benötigt im Erfolgsfall

n

2 +


n

2 +1


n

+

2 +1


= 3n

+2 Schritte,

2

also gilt: Ldoppelt ∈ NTIME( 3n

2

+2). Ende des Beispiels Ldoppelt

Beispiel Mpali

Wir betrachten eine Palindrommaschine über Σ, wobei Σ die Großbuchstaben des deutschen Alphabets

umfassen möge. Sei Mpali eine beidseitig unendliche 2-Bandmaschine mit der Zustandsmenge

Q = {q0,q1,q2,q3,q4}, mit Bandalphabet Γ = Σ∪{ } und mit der folgenden Überführungsfunktion:

Kopiere Eingabe nach Band 2: δ(q0,x, ) = (q0,x,x,R,R) (x ∈ Σ)

δ(q0, , ) = (q1, , ,L,L)

Positioniere neu: δ(q1,x,y) = (q1,x,y,L,N) (x,y ∈ Σ)

δ(q1, ,z) = (q2, ,z,R,N) (z ∈ Σ∪{ })

Vergleiche: δ(q2,x,x) = (q2,x,x,R,L) (x ∈ Σ)

δ(q2,x,y) = (qr,x,y,N,N) (x,y ∈ Σ,x=y)

δ(q2, , ) = (qa, , ,N,N)

Der Maschinengraph von Mpali ist in Abbildung 3.2 gezeigt.

q0

x, : x,x

R,R

Für Mpali gilt:

, : ,

L,L

x,y : x,y

L,N

q1

,z : ,z

R,N

x,x : x,x

R,L

Abbildung 3.2: Der Maschinengraph von Mpali

q2

, : ,

N,N

x,y : x,y (x=y)

Angesetzt auf das Wort OTTO benötigt Mpali Zeit 3·5 = 15

Angesetzt auf das Wort OTTI benötigt Mpali Zeit 2·5+1 = 11

L(Mpali) ∈ DTIME(3·(n+1)) (Kopieren+Positionieren+Vergleichen)

L(Mpali) ∈ DSPACE(n+2) (Rechts und links maximal ein Feld über die Wortgrenze hinaus)

N,N

qa

qr


Komplexitätstheorie - Wintersemester 2010/2011 47

Die für OTTI benötigte Zeit ist nicht relevant für die Zeitschranke 3·(n + 1). D.h., L(Mpali) wäre in

DTIME(3·(n+1)), selbstwenndie Maschinebei OTTI eine unendlicheSchleife einginge,stattzu verwerfen.

Ende des Beispiels Mpali

Die beiden folgenden Lemmata beschreiben einfache Tatsachen über die Erkennung endlicher Mengen.

Lemma 3.2.2

Sei A eine endliche Sprache und sei m = max{|w| | w ∈ A}. Es gibt eine m-zeitbeschränkte und 1bandbeschränkte

TM M mit L(M) = A.

Beweis: Es existiert ein endlicher Automat, der A akzeptiert. Man nimmt diesen Automaten als endliche

Steuerung für eine Offline-2-Band-TM, die nur auf dem ersten Band ihren Kopf bewegt. 3.2.2

Lemma 3.2.3

Seien A,B ⊆ Σ ∗ mit A\B endlich. Wird A von einer t(n)-zeit- und s(n)-bandbeschränkten TM M

akzeptiert, so gibt es ein m ∈ N und eine (t(n)+m)-zeit- und s(n)-bandbeschränkte TM M ′ , die A∩B

akzeptiert.

Beweis: M ′ verhält sich wie folgt. Für eine Eingabe w überprüft M ′ in m Zeit, ob w ∈ A\B. Wenn ja,

verwirft M ′ , andernfalls benimmt M ′ sich wie M. 3.2.3

3.3 Reduktionssätze

Dieser Abschnitt enthält einige Ergebnisse zu den folgenden Fragen:

• Was geschieht mit Zeit- bzw. Platzschranken, wenn die Anzahl der Bänder reduziert wird?

• Kann man den Zeit- bzw. den Platzbedarf einer TM, vielleicht im Austausch mit einem größeren

Bandalphabet, reduzieren?

Satz 3.3.1 Bandreduktionssatz

Kann L durch eine s(n)-bandbeschränkte (s(n) ≥ n) und t(n)-zeitbeschränkte k-Band-TM M akzeptiert

werden, so kann L auch von einer O(s(n))-bandbeschränkten und O(s(n)·t(n))-zeitbeschränkten 1-Band-

TM M ′ akzeptiert werden.

Beweis: Betrachten wir die Simulation einer k-Band-TM M durch eine 2·k-Spur-TM M ′ aus dem Beweis

von Satz 2.3.1 (wiedergegeben für k = 2 in Abbildung 3.3).

Wegen s(n) ≥ n verbraucht M auf Band 2 mindestens so viele Felder, wie die Eingabe lang ist. Daher

ist M ′ auch s(n)-bandbeschränkt.


48 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

···

···

1

1 0

0

0

···

···


Abbildung 3.3: Simulation einer 2-Band-TM M (links) durch eine Vierspur-TM M ′ (rechts)

Die Zeitschranke von M ′ kann folgendermaßen abgeschätzt werden:

Initialisierung: ” Kopfmarken“ setzen O(k) = O(1)

Durchlaufen der Eingabe O(n)

Summe O(n)

Simulation eines Schrittes von M:

Zeichen für Kopf 1 speichern O(1)

Nächste Kopfmarke suchen O(s(n))

Zeichen für Kopf 2 speichern O(1)

··· bis k k·O(s(n)) = O(s(n))

Neues Zeichen schreiben O(1)

Kopf bewegen O(s(n))

... und zurück O(s(n))

O(s(n))

M ′ macht also O(n)+O(s(n)·t(n)) = O(s(n)·t(n)) Schritte. 3.3.1

Korollar 3.3.2 (von Satz 3.3.1)

Kann L von einer t(n)-zeitbeschränkten k-Band-TM M akzeptiert werden, dann auch von einer O(t(n)·

t(n))-zeitbeschränkten 1-Band-TM M ′ .

Beweis: In Zeit t(n) kann M höchstens t(n)+1 Band verbrauchen, und O(t(n)+1) = O(t(n)).

···

···

···

···

1 0

Mit der gleichen Technik (Simulation einer k-Band-Maschine) zeigt man:

Satz 3.3.3 Reduktion auf 2 Bänder bei gleicher Platzschranke

Eine von einer s(n)-bandbeschränkten k-Band-TM (k ≥ 2) akzeptierte Sprache wird auch von einer

s(n)-bandbeschränkten 2-Band-TM akzeptiert.

Die Voraussetzung s(n) ≥ n wird für diesen Satz nicht benötigt.


1


0

0

···

···

···

···

3.3.2


Komplexitätstheorie - Wintersemester 2010/2011 49

Bei s(n)-bandbeschränkten TM kann man also o.B.d.A. 2 annehmen, dass es sich um 2-Band-TM handelt,

und wenn darüber hinaus s(n) ≥ n gilt, dass es sich um 1-Band-TM handelt.

Ziel der strukturellen Komplexitätstheorie ist es, Relationen, z.B. Inklusionen, zwischen Komplexitätsklassen

zu studieren, insbesondere echte Inklusionen.

Die Parameter sind dabei Zeit bzw. Zeitschranken t(n) vs. Band bzw. Platzschranken s(n), sowie Determinismus

vs. Nichtdeterminismus. Gefragt wird beispielsweise:

wann gilt DTIME(t) ⊆ (bzw. ⊆) DSPACE(s) ?

oder NTIME(t) ⊆ (bzw. ⊆) NTIME(t ′ ) ?

oder NSPACE(s) ⊆ (bzw. ⊆) DSPACE(s) ?

Erste positive Antworten (d.h., Antworten zu den Inklusionszeichen) geben die Komprimierungs-und Beschleunigungssätze

(auch Speedup-Sätze genannt) im Rest dieses Abschnitts. Auskunft zu den negierten

Inklusionszeichen geben die Hierarchiesätze in einem späteren Abschnitt.

Der nächste Satz besagt, dass es stets möglich ist, eine TM zu finden, die linear weniger Band braucht

als eine gegebene TM. Das liegt daran, dass das Bandalphabet beliebig viele Zeichen umfassen kann.

Satz 3.3.4 Lineare Bandkomprimierung

Sei M eine s(n)-bandbeschränkte k-Band-TM mit k > 1 und sei c ∈ Q mit 0 < c eine positiv-rationale

Konstante. Dann gibt es eine (c·s(n))-bandbeschränkte k-Band-TM M ′ mit L(M) = L(M ′ ).

Beweis: Es sei r ∈ N so gewählt, dass r·c ≥ 2 gilt.

Nehmen wir an, dass Γ die Zeichen von M sind. Auf dem Eingabeband von M ′ können, per definitionem,

Zeichen aus Γ gelesen werden, auf den k−1 Arbeitsbändern von M ′ jedoch Zeichen aus (Γ∪ Γ) r , wobei

Γ = {x | x ∈ Γ}.

Die Arbeitsbänder von M ′ sind also in r Spuren unterteilt; siehe Abbildung 3.4. M ′ simuliert M, wobei

die Kontrolle von M ′ speichert, wo der Hutsteht. Diese Stelle entspricht der Kopfposition von M.

0 1

1 0

0

0 0 1 1 B

1 0 0 0 B

1 1 1 B B

Band l von M (2 ≤ l ≤ k)

1 1 0 1 1 0 B B ...

Band l von M ′

Abbildung 3.4: Konstruktion zum Beweis von Satz 3.3.4

Wenn M s(n) Felder braucht, braucht M ′ nur ⌈ s(n)

r


s(n) s(n)·c

≤ < c·s(n)

r 2

2 D.h. genauer: ohne Rücksicht auf eventuell größeren Zeitbedarf.

⌉ Felder, und es gilt:

M

M ′ (r = 3)


50 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Damit ist M ′ (c·s(n))-bandbeschränkt. 3.3.4

Korollar 3.3.5

s ∈ O(s ′ ) ⇒ DSPACE(s) ⊆ DSPACE(s ′ ) und NSPACE(s) ⊆ NSPACE(s ′ ). 3.3.5

Es gibt einen analogen Satz in Bezug auf die Zeit anstelle des Platzes. Dieser heißt auch das lineare

Speedup-Theorem. Er besagt, dass es stets möglich ist, eine TM zu finden, die linear weniger Zeit braucht

als eine gegebene TM. Das liegt ebenfalls daran, dass das Bandalphabet beliebig groß sein kann, und

daran, dass es nur endlich viele Zustände gibt.

Satz 3.3.6 Lineare Bandbeschleunigung

Sei M eine t(n)-zeitbeschränkte k-Band-TM mit k > 1, sei c ∈ Q mit 0 < c eine beliebige positivrationale

Konstante, und es gelte n ∈ o(t(n)). Dann gibt es eine (c·t(n))-zeitbeschränkte k-Band TM M ′

mit L(M) = L(M ′ ).

Lemma 3.3.7

Sei M eine TM mit k > 1 Bändern und sei r ∈ N\{0}. Dann gibt es eine k-Band-TM N so, dass für

alle Wörter w gilt:


|w| t

M akzeptiert w in t Schritten ⇔ N akzeptiert w in |w|+ +6· Schritten.

r r

Beweis: (von Satz 3.3.6)

Sei r ∈ N so gewählt, dass sowohl r > 12/c (was äquivalent mit 6/r < c/2 ist) und r ≥ 2. Sei N die TM

wie in Lemma 3.3.7. Dann wird jedes Wort der Länge n aus L(M) von N in höchstens n+

n t(n)

r +6· r

Schritten akzeptiert. Wegen r ≥ 2 gilt


n


t(n) t(n)

n+ +6· ≤ n+n+6·

r r

r +1


= 2n+6+ 6

r ·t(n).

Wegen n∈o(t(n)) und 6/r < c/2 gilt für fast alle n ∈ N

2n+6+ 6 c 6 c c

·t(n) < ·t(n)+ ·t(n) < ·t(n)+ ·t(n) = c·t(n).

r 2 r 2 2

Für die endlich vielen Ausnahmen kann M ′ mittels des endlichen Automaten aus Lemma 3.2.2 in O(n)

Schritten akzeptieren oder verwerfen. Ansonsten ist M ′ wie N. Insgesamt ist M ′ max(n,⌈c · t(n)⌉)zeitbeschränkt,

d.h. — nach unserer Konvention – (c·t(n))-zeitbeschränkt. 3.3.6

Beweis: (von Lemma 3.3.7)

DieGrundideediesesBeweisesistes,rSchrittevonM durcheine ” nochkonstantere“ AnzahlvonSchritten

von N, nämlich nur durch höchstens 6 Schritte, zu simulieren. Dazu werden je r nebeneinander liegende

Zeichen auf den Arbeitsbändern von M (wie bei der Bandkomprimierung) zu einem einzigen Zeichen von

N zusammengefasst. Das geht, weil r eine zwar beliebige, aber fest gewählte Konstante ist. Auf seinen

Bändern arbeitet N also mit Zeichen aus ΣN = Σ r .


Komplexitätstheorie - Wintersemester 2010/2011 51

Die entscheidende Beobachtung ist, dass die Maschine M, wenn sie sich auf einem Feld solchermaßen

zusammengefasster Zeichen befindet, in ≤ r Schritten höchstens links über den Rand auf das davor liegende

Feld oder rechts über den Rand auf das dahinter liegende Feld begeben kann, aber weder darüber

hinaus noch auf beide gleichzeitig. Deshalb genügt es der simulierenden Maschine, bei der Simulation

höchstens ein Feld links neben dem gerade betrachteten oder ein Feld rechts neben dem gerade betrachteten

zu besuchen, aber nicht mehr. Hierdurch werden r Schritte von M zu höchstens 6 Schritten von N

zusammengefasst, dem sogenannten Tanz.

Im Einzelnen besteht die Simulation aus einer Initialisierungsphase und aus der Durchführung mehrerer

Tänze.

• Initialisierung der Simulation:

N fasstje r nebeneinanderliegendeZeichendeserstenBandes(mit Eingabewortw) vonM zueinem

r-Tupel zusammen und schreibt dieses auf das letzte (kte) Band von N (dies benötigt |w| Schritte).

Dann fährt der Kopf des Bandes k auf den Anfang zurück (dies verbraucht ⌈|w|/r⌉ Schritte). Von

jetzt an betrachtet die Maschine N ihr Band k als erstes Band (auf dem das erste Band von M

simuliert wird) und die Bänder 1 bis k−1 als diejenigen, die die Bänder 2 bis k von M simulieren.

(Dies erspart einen zusätzlichen Kopiervorgang von Band k auf Band 1 von N.) Die Abbildung 3.5

erläutert das Prinzip für r = 3.

Band 1 von M

Bänder von N


⎪⎨

a1 a2

a3 a4

a5

a6 a7

⎪⎩ (a1,a2,a3)(a4,a5,a6) (a7, , ) ( , , ) ...

Abbildung 3.5: Anfänglich fasst das kte Band von N das erste Band von M r-fach zusammen

• Idee für die Tänze: (Siehe Abbildung 3.6.)

Steht der Kopf von M auf einem der Zeichen des mittleren, durch 100 beschrifteten Dreierfeldes,

dann kann er in r = 3 Schritten höchstens auf das Dreierfeld links daneben oder auf das Dreierfeld

rechtsdanebenwandern,odererkannaufdemmittlerenDreierfeldstehenbleiben.InderSimulation

muss N also höchstens eine solche Zone (was in N ja einem Feld entspricht) nach links oder nach

rechts gehen.

• Durchführung eines Tanzes:

Die Zustände von N sind Tupel (q,i1,...,ik) mit einem Zustand q von M und 1 ≤ ij ≤ r für

1 ≤ j ≤ k. Die ij geben an, auf welcher Komponente des r-Tupels, auf dem der entsprechende Kopf

von N steht, der Kopf von M stehen würde. (N hat noch weitere Zustände.)

– Phase 1: N speichert die Inhalte der r-Tupel der aktuellen Felder und der Felder links und

rechts davon in einer endlichen Steuerung. Die Köpfe von N bewegen sich dafür einmal nach

...


52 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

110 100 101

r r r

Abbildung 3.6: Erläuterung der Tanz-Schritte

Abbildung 3.7: Die ersten vier Schritte eines Sechser-Tanzes

rechts, dann zweimal nach links, dann wieder nach rechts; siehe Abbildung 3.7. Dafür braucht

N 4 Schritte.

– Phase 2: In einem Schritt (z.B. im letzten der vorigen Phase) findet N heraus, wie M in r

Schritten auf die aktuellen, N bekannten Bandabschnitte reagiert. Dann muß die δN-Funktion

alle Möglichkeiten von r aufeinanderfolgenden Schritten von M beinhalten. N kann in diesen

r Schritten nur die Inhalte von höchstens zwei Feldern von N ändern: den des aktuellen und

den eines (aber nicht beider) daneben liegenden. Für diese Phase benötigt N keine Zeit.

– Phase 3: N ändert die Inhalte der maximal 2 Felder und endet mit den richtigen Kopfpositionen.

Für diese Phase benötigt N 2 Schritte.

Insgesamt gibt es

t

r Tänze à 6 Schritte. 3.3.6

Satz 3.3.6 gilt unter der Voraussetzung n ∈ o(t(n)), also insbesondere dann nicht, wenn t(n) eine lineare

Funktion der Form t(n) = d·n ist. Falls eine Zeitschranke von der Form t(n) = d·n ist, dann gilt

d ≥ 1, weil wir Maschinen, die ihre Eingabe nicht ganz lesen, ausgeschlossen haben. Der nächste Satz

besagt allerdings, dass man eine Konstante d > 1 auch in solchen linearen Schranken beliebig nahe an 1

heranbringen kann.

Satz 3.3.8 Speedup-Theorem für lineare Schranken

Falls L durch eine k-Band-TM mit k > 1 undZeitschranke t(n) = d·n akzeptiert wird und wenn 1 < d ′ < d

gilt, dann wird L auch durch eine (d ′ ·n)-zeitbeschränkte k-Band-TM akzeptiert.

Beweis: Wir benutzen wieder Lemma 3.3.7. Wegen t(n) = d·n hat die dort angegebene Maschine N die

Zeitschranke


n


d·n

n+ +6· .

r r

M

N


Komplexitätstheorie - Wintersemester 2010/2011 53

Sei ε = d ′ −1 > 0. Wir konstruieren eine Zahl n0 ∈ N und eine Zahl r ∈ N, so dass für alle n ≥ n0 die

Ungleichung


n


d·n

n+ +6· < n+ε·n = (1+ε)·n (3.1)

r r

gilt. Das beendet schon den Beweis, denn ab n ≥ n0 hat N mit dieser Wahl von r die Zeitschranke d ′ ·n,

und für die endlich vielen n < n0 kann ein endlicher Automat gemäß Lemma 3.2.2 mit Zeitschranke n

benutzt werden.

Um n0 und r mit obigen Eigenschaften zu finden, schätzen wir folgendermaßen ab:


n


d·n

+6· ≤

r r

n 6·d·n

+1+

r r +6,

und der letzte Term ist genau dann < ε·n, wenn gilt:

n+6·d·n+7·r < ε·r·n. (3.2)

Umformen ergibt

n+6·d·n < r·(ε·n−7),

was nach r aufgelöst werden darf, sofern ε·n−7 größer ist als 0. Es seien n0 und r ∈ N so gewählt:


7

n0 = +1 und r >

ε

n0 +6·d·n0

ε·n0 −7

Dann gilt ε·n−7 ≥ ε·n0 −7 > 0 für alle n ≥ n0. Also gilt die Ungleichung (3.2) – und damit auch die

Ungleichung (3.1) – für alle n ≥ n0, da die Funktion (n+6·d·n)/(ε·n−7) mit steigendem n fällt.

3.3.8

Korollar 3.3.9

t(n) ∈ O(t ′ (n)) ⇒ DTIME(t) ⊆ DTIME(t ′ ) und NTIME(t) ⊆ NTIME(t ′ ). 3.3.9

Später geben wir eine Gesamtschau all solcher Beziehungen (siehe Satz 3.4.5).

Es folgt ein weiterer Satz über eine Reduktion in der Anzahl der Bänder.

Satz 3.3.10 Zeitschranke bei Reduktion auf 2 Arbeitsbänder

Ist L von einer s(n)-bandbeschränkten und t(n)-zeitbeschränkten k-Band-TM M akzeptierbar, dann auch

von einer O(s(n))-bandbeschränkten und O(t(n)·log(t(n)))-zeitbeschränkten off-line-3-Band-TM M ′ .

Beweis: (Skizze):

Das Arbeitsband 1 von M ′ hat 2 Spuren pro Arbeitsband von M.

Das Arbeitsband 2 von M ′ ist nur zum Datentransport da. Zelle B0 des Arbeitsbandes 1 von M ′ hat die

momentan betrachteten k Symbole. M ′ bewegt aber keine ” Kopfmarken“, sondern Daten in umgekehrter

Richtung wie der entsprechende Kopf von M. Das funktioniert in Zeit O(t(n)·log(t(n))), wenn man die

Daten geschickt positioniert. 3.3.10


54 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Es folgt ein Satz über das Platz- und Zeitverhalten von universellen TM.

Satz 3.3.11 Zeitbedarf universeller Turingmaschinen

Es gibt eine universelle TM U, so dass für jede 2-Band-TM M gilt:

M akzeptiert w in t Schritten und besucht s Felder ⇔

U akzeptiert 〈uM,w〉 in O(t) Schritten und besucht O(s) Felder.

Dabei ist uM eine Codierung (z.B. in binär) der Maschine M und 〈uM,w〉 besteht aus einer Codierung

von uM gefolgt von einer Codierung von w, geeignet abgetrennt. Die Konstanten, die in O(t) und O(s)

eingehen, sind von M abhängig.

Beweis: (Skizze.)

U (die universelle Maschine) braucht O(|uM|) Schritte für die Initialisierung und O(|uM|) Schritte für die

Simulation von jedem Schritt von M. Dabei braucht U die Felder, die auch M braucht, und dazu noch

O(|uM|) zur Speicherung der Codierung von M. 3.3.11

3.4 Band- und Zeithierarchiesätze

Im Prinzip sind wir an verschiedenen Arten von Beziehungen interessiert:

• Deterministische Hierarchien:

Zeithierarchie: Wie stehen DTIME(t(n)) und DTIME(t ′ (n)) in Beziehung miteinander?

Platzhierarchie: Wie stehen DTIME(s(n)) und DTIME(s ′ (n)) in Beziehung miteinander?

• Nichtdeterministische Hierarchien:

Zeithierarchie: Wie stehen NTIME(t(n)) und NTIME(t ′ (n)) in Beziehung miteinander?

Platzhierarchie: Wie stehen NTIME(s(n)) und NTIME(s ′ (n)) in Beziehung miteinander?

• Beziehungen zwischen Zeit und Platz:

Wie stehen DTIME(t(n)) / NTIME(t(n)) und DSPACE(s(n)) / NSPACE(s(n)) in Beziehung miteinander?

Wir untersuchen zuerst einige Beziehungen vom Typ Hierarchie.

Gegeben mehr Zeit bzw. mehr Platz, sollte es auch mehr erkennbare Sprachen bzw. berechenbare Funktionen

geben. Aber wieviel mehr Zeit bzw. Platz muss es geben, damit es echt mehr Sprachen/Funktionen

werden? Die Sätze 3.3.4 und 3.3.6 zeigen, dass eine lineare Erhöhung (mit einem konstanten Faktor) nicht

genügt. Wie wäre es mit einem langsam wachsenden Faktor, z.B. mit log(log(n))? Und – eine andere Frage

– gibt es eine vielleicht eine Grenzfunktion f(n), so dass jede rekursive Sprache in DTIME(f(n)), oder

etwa in DSPACE(f(n)) liegt?

Der nächste Satz zeigt, dass die letzte Frage mit ” nein“ zu beantworten ist. Die Fragen davor haben

für eine Klasse von ” gutartigen“ Funktionen (die sogenannten konstruierbaren Funktionen) verschiedene

Antworten, von denen wir einige erklären.


Komplexitätstheorie - Wintersemester 2010/2011 55

Satz 3.4.1 Nichtexistenz einer Grenzfunktion für deterministische Zeit

Sei t: N → N eine beliebige total-rekursive Funktion. Es gibt eine entscheidbare Sprache L, die nicht in

DTIME(t(n)) liegt.

Beweis: Wir können ein Diagonalisierungsargument führen.

Da t total-rekursiv ist, existiert eine stets haltende TM M, die t berechnet. Wir konstruieren eine entscheidbare

Sprache L ⊆ {0,1} ∗ , die nicht in DTIME(t(n)) liegt.

Sei xi das ite Wort in kanonischer Ordnung von {0,1} ∗ .

Sei M0,M1,M2,... eine effektive Abzählung aller Mehrband-TM. D.h.: aus i kann Mi effektiv konstruiert

werden und umgekehrt. Solch eine Abzählung existiert (Stoff des Moduls Theoretische Informatik II).

Betrachten wir die Sprache

L = {xi | Mi akzeptiert xi nicht in ≤ t(|xi|) Schritten}.

L ist entscheidbar. Hier ist ein Algorithmus zur Entscheidung von L:

Input: w ∈ {0,1} ∗ ; berechne n als |w|, die Länge von w;

berechne t(n), indem M auf Eingabe n simuliert wird (hier wird benutzt, dass t total-rekursiv ist);

finde i mit w = xi;

konstruiere Mi;

simuliere Mi auf w, maximal t(n) Schritte lang;

if Mi akzeptiert während dieser Zeit nicht −→ akzeptiere w

fi.

sonst −→ verwerfe w

L liegt nicht in DTIME(t(n)). Dies zeigen wir durch Widerspruch.

Annahme: L ∈ DTIME(t(n)). Dann existiert eine Mehrband-TM Mi mit L = L(Mi), so dass Mi t(n)zeitbeschränkt

ist. Für das ite Wort xi (Diagonalisierung!) gilt aber

xi ∈ L ⇔ ( wegen L = L(Mi) )

xi ∈ L(Mi)

⇔ ( da Mi t(n)-zeitbeschränkt ist )

Mi akzeptiert xi in ≤ t(|xi|) Schritten

⇔ ( nach Definition von L )

xi /∈ L,

ein Widerspruch. Also gilt L /∈ DTIME(t(n)).

Die Sprache L ist entscheidbar, ohne in DTIME(t(n)) zu liegen, was zu zeigen war. 3.4.1

Analog zeigt man, dass für jede total-rekursive Funktion s: N → N eine Sprache L existiert, die nicht in

DSPACE(s(n)) liegt.

Dies zeigt, dass DTIME(t), DSPACE(s) nicht alle Sprachen umfassen, egal welche Funktion t oder s gerade

betrachtet wird. Im nächsten Abschnitt wird gezeigt, dass die (wie schon aus Obigem folgt: unendlich

vielen) Klassen DTIME(t), DSPACE(s) in sich hierarchisch ” geordnet“ sind. Dazu definieren wir eine Klasse

von ” sich wohlverhaltenden“ Funktionen t bzw. s, für die dies der Fall ist.


56 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

EineFunktions: N −→ Nheißtbandkonstruierbar,wenneineO(s(n))-bandbeschränkteDTMM existiert,

die für jede Eingabe der Länge n in einer Konfiguration hält, in der genau s(n) Felder nicht leer ( )

sind.

Bandkonstruierbarkeit ist der ” Normalfall“. Z.B. sind alle Konstanten > 0 und die Funktionen logn, √ n,

n k ,2 n , n!sowiedie Ackermannfunktionbandkonstruierbar.Außerdemgilt,dassmitden Funktionens1(n)

und s2(n) auch die zusammengesetzten Funktionen s1(n) +s2(n), s1(n) · s2(n), 2 s1(n) und (s1(n)) s2(n)

bandkonstruierbar sind.

Lemma 3.4.2

Sei M1 eine s(n)-bandbeschränkte TM mit s(n) ≥ logn und sei s(n) bandkonstruierbar. Dann gibt es

eine s(n)-bandbeschränkte TM M2 mit L(M1) = L(M2), die für alle Eingaben hält.

Beweis: Die Anzahl der Konfigurationen, die Band s(n) benutzen, ist höchstens c s(n) für eine Konstante

c, die von den Bandsymbolen und den Zuständen von M1 abhängt; ohne Beschränkung der Allgemeinheit

sei c ≥ 2. Die Maschine M2 sei folgendermaßen definiert:

- Eingabe w; M2 berechnet |w| = n. Dazu benötigt M2 logn Band, also wegen s(n) ≥ logn auch O(s(n))

Band.

- M2 simuliert die Maschine, die wegen der Bandkonstruierbarkeit von s existiert, und schreibt s(n)

Felder auf einem extra Band mit C’s voll (dabei sei C die höchstwertige Ziffer zur Basis c). Dazu

benötigt M2 wegen der Bandkonstruierbarkeit ebenfalls O(s(n)) Band.

- M2 simuliert M1 und subtrahiert dabei bei jedem Schritt 1 von dem extra Band. Da M1 s(n)bandbeschränkt

ist, geht dies in O(s(n)) Band.

- Wenn M1 das Wort w akzeptiert, bevor der Zähler auf dem extra Band 0 erreicht hat, tut M2 das

Gleiche.

- Wenn andererseits der Zähler auf dem extra Band 0 erreicht, muss M1 mindestens zweimal die gleiche

Konfiguration durchlaufen haben. Dann hält M1 nicht (falls es eine DTM ist) bzw. akzeptiert w nicht

in s(n) Band (weil die Definition fordert, dass eine kürzeste Berechnung betrachtet wird). In diesem

Fall hält M2 und verwirft w.

M2 braucht insgesamt O(s(n)) Band. Auf Grund von Satz 3.3.4 (Bandkomprimierung) gibt es eine Maschine

M2, die das gleiche tut und s(n) Band braucht. 3.4.2

Satz 3.4.3 Deterministische Bandhierarchie

Seien s(n) und s ′ (n) bandkonstruierbare Funktionen mit s ′ ∈ ω(s) und s(n) ≥ log(n). Dann gilt

DSPACE(s(n)) = DSPACE(s ′ (n)).


Komplexitätstheorie - Wintersemester 2010/2011 57

Beweis: Wir zeigen, dass es eine Sprache A mit

(a) A ∈ DSPACE(s ′ (n))

(b) A /∈ DSPACE(s(n))

gibt. Diese Sprache A definieren wir indirekt über eine akzeptierende DTM. Genauer:

• Die Behauptung (a) beweist man durch die Angabe einer s ′ (n)-bandbeschränkten DTM M ∗ und

der Definition A = L(M ∗ ).

• Die Behauptung (b) beweist man durch ” Diagonalisierung“. Man zeigt, dass für alle B ∈

DSPACE(s(n)) ein Wort w mit w ∈ B ⇔ w /∈ A existiert. Dann kann A ∈ DSPACE(s(n)) natürlich

nicht gelten (wir wissen allerdings nicht, ob w ∈ B oder ob w /∈ B).

Für die Maschinen M ∗ und MB, die A bzw. B akzeptieren, heißt w ∈ B ⇔ w /∈ A:

– Wenn MB w akzeptiert, wird w von M ∗ verworfen.

– Wenn MB w verwirft, wird w von M ∗ akzeptiert.

Wir konstruieren M ∗ mit den gewünschten Eigenschaften und setzen dann A = L(M ∗ ).

IdeederKonstruktionvonM ∗ :geradeso,dasssiefürjede ” kürzere“ MaschineaufeinebestimmteEingabe

anders reagiert.

Vorbemerkung: wenn s ′ ∈ ω(s) gilt, dann auch s ′ ∈ ω(s) für alle s ∈ O(s).

M ∗ sei die folgende 2-Band-TM über dem Alphabet {0,1, }:

• Eingabe: w ∈ {0,1} ∗ .

• M ∗ berechnet n = |w|.

• M ∗ kennzeichnet auf einem Arbeitsband s ′ (n) Felder. Dies ist möglich durch Simulation einer

Bandkonstruktionsmaschine für s ′ .

• Eigenschaft (*): Wenn immer M ∗ bei den folgenden Aktionen versucht, auf unmarkierte Felder

zuzugreifen, hält M ∗ und verwirft w. Damit wird garantiert, dass M ∗ s ′ -bandbeschränkt ist.

• M ∗ bestimmt den (eindeutigen) Präfix der Form v = 1 j 0 von w (w = vuw) (und interessiert

sich dann für den ” Rest“ uw). (Die Idee: der Präfix v stellt genügend Band zur Verfügung; die 0

kennzeichnet, ab wann die Codierung einer zu simulierenden Maschine beginnt.)

• M ∗ prüft, ob uw die Codierung einer 2-Band-TM Mw über dem Alphabet Σw ist (die Idee: eine

2-Band-TM genügt wegen Satz 3.3.3, der besagt, dass jede s(n)-bandbeschränkte k-Band-TM von

einer s(n)-bandbeschränkten 2-Band-TM simuliert werden kann).

• Falls nicht: M ∗ verwirft w.

• Falls ja: M ∗ simuliert Mw auf der Eingabe w (!) und verwirft, wenn Mw halten und akzeptieren

würde, und akzeptiert w sonst. (Die Idee: eine stets anhaltende TM Mw genügt auf Grund von

Lemma 3.4.2, und o.B.d.A. gilt auch {0,1} ⊆ Γ für Mw.)


58 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Wegen Eigenschaft (*) arbeitet M ∗ mit Band s ′ (n). Aus der Definition von M ∗ folgt:

L(M ∗ ⎧


⎪⎨


v∈1



) = A = w=vuw


⎪⎩


∗0, uw∈{0,1} ∗ Codierung einer

stets anhaltenden 2-Band-TM Mw mit Bandalphabet Γ

∧ Mw verwirft w

∧ M ∗ kann Mw angesetzt auf w mit s ′ (|w|) Band simulieren

Es ist schon (a) gezeigt, d.h. A ∈ DSPACE(s ′ (n)). Wir müssen noch (b) zeigen, d.h. A /∈ DSPACE(s(n)).

Sei dazu B eine beliebige Sprache in DSPACE(s(n)). Dann gibt es eine 2-Band-DTM M, die B mit s(n)

Band akzeptiert und auf alle Eingaben anhält.

Nun wählen wir ein Wort w mit der Eigenschaft (b) aus. M habe eine binäre Codierung u ∈ {0,1} ∗ und

ein Alphabet Γ der Größe g. Wegen s ′ ∈ ω(s) existiert eine Zahl n > |u| mit |u|+(logg)·s(n) < s ′ (n).

(Die Idee: Bei der Simulation von M durch M∗ braucht man, wegen des kleineren Alphabets von M∗ ,

(logg)·s(n) Felder; |u| Felder verbraucht die Codierung von M.)

Wir ergänzen u durch Vorschalten von 1...10 zu einem Wort w = 1...10u der Länge |w| = n; dies geht

wegen n > |u|. Dadurch hat M∗ genug Platz, um Simulation von M zu Ende zu führen. M∗ akzeptiert

w = 1...10u genau dann, wenn M 1...10u verwirft. Also ist B nicht die Sprache A, und da B beliebig

war, gilt A /∈ DSPACE(s(n)). 3.4.3

Bemerkung 1:Die entscheidendeVoraussetzungdes Satzesists ′ ∈ ω(s). AlleanderenVoraussetzungen

können weggelassen, der Satz also verschärft werden. (Ohne Beweis.)

Bemerkung 2: Gilt außer s ′ ∈ ω(s) auch s∈O(s ′ ), folgt sogar DSPACE(s(n)) DSPACE(s ′ (n)) (mit Hilfe

von Korollar 3.3.5).

Bemerkung 3: Da ω(s) stets eine nicht-leere Menge von Funktionen ist, liefert der Satz eine unendliche

Hierarchie in DSPACE.

Es gibt ein Analogon zum letzten Satz, mit DTIME statt DSPACE. Allerdings hat die Maschine M ∗ ja

eine feste Anzahl Bänder, muß darauf jedoch Maschinen mit beliebig vielen Bändern simulieren. Bei

DSPACE half der Satz 3.3.3, der zeigt, dass man sich ohne Beschränkung der Allgemeinheit auf zwei

Bänder beschränken kann. Bei DTIME kann ein analoger Satz benutzt werden, nämlich Satz 3.3.10. Er

zeigt einerseits, dass man sich auf zwei Arbeitsbänder beschränken kann, andererseits aber auch, dass

man für diesen Zweck ein logarithmisches ” Slowdown“ in Kauf nehmen muss.

Eine Funktion t: N −→ N heißt zeitkonstruierbar, wenn eine O(t(n))-zeitbeschränkte DTM M existiert,

die für jede Eingabe der Länge n nach genau t(n) Schritten hält. Wieder gilt: alle ” normalen“ Funktionen

sind zeitkonstruierbar.

Satz 3.4.4 Deterministische Zeithierarchie

Seien t und t ′ zeitkonstruierbare Funktionen mit t ′ ∈ ω(tlogt). Dann gilt DTIME(t(n)) = DTIME(t ′ (n)).

Beweis: (Skizze.) Man konstruiert A ∈ DTIME(t ′ (n))\DTIME(t(n)) ähnlich wie vorher. 3.4.4

Wir wissen jetzt, dass es Funktionen s und s ′ gibt mit DSPACE(s) = DSPACE(s ′ ), ebenso wie Funktionen t

und t ′ mit DTIME(t) = DTIME(t ′ ). Im nächsten Satz folgen einige ” positive“ Aussagen.


⎪⎬

⎪⎭


Komplexitätstheorie - Wintersemester 2010/2011 59

Satz 3.4.5 Einige Beziehungen zwischen Komplexitätsklassen

Seien s(n),s ′ (n) ≥ 1 und t(n),t ′ (n) ≥ n. Dann gelten:

(a) DTIME(t) ⊆ NTIME(t) und DSPACE(t) ⊆ NSPACE(t)

(b) DTIME(t) ⊆ DSPACE(t) und NTIME(t) ⊆ NSPACE(t)

(c) s∈O(s ′ ) ⇒ DSPACE(s) ⊆ DSPACE(s ′ )∧NSPACE(s) ⊆ NSPACE(s ′ )

(d) s∈Θ(s ′ ) ⇒ DSPACE(s) = DSPACE(s ′ )∧NSPACE(s) = NSPACE(s ′ )

(e) t∈O(t ′ ) ⇒ DTIME(t) ⊆ DTIME(t ′ )∧NTIME(t) ⊆ NTIME(t ′ )

(f) t∈Θ(t ′ ) ⇒ DTIME(t) = DTIME(t ′ )∧NTIME(t) = NTIME(t ′ )

(g) s bandkonstruierbar ∧ s(n) ≥ logn ⇒ NSPACE(s) ⊆ DTIME(2 O(s) )

(h) t zeitkonstruierbar ⇒ NTIME(t) ⊆ DSPACE(t)

(i) s bandkonstruierbar ∧ s(n) ≥ logn ⇒ DSPACE(s) ⊆ DTIME(2 O(s) )

(j) t zeitkonstruierbar ⇒ NTIME(t) ⊆ DTIME(2 O(t) )

Dabei sei DTIME(2 O(s) ) =

s∈O(s) DTIME(2s ).

Beweis:

(a) Jede DTM ist auch eine NTM (siehe auch Abbildung 3.1).

(b) Vergleiche Abbildung 3.1.

(c) Siehe Korollar 3.3.5.

(d) Es gilt s ∈ Θ(s ′ ) ⇔ s ∈ O(s ′ )∧s ′ ∈ O(s). Mit (c) folgt die Behauptung.

(e) Siehe Korollar 3.3.9.

(f) Es gilt t ∈ Θ(t ′ ) ⇔ t ∈ O(t ′ )∧t ′ ∈ O(t). Mit (e) folgt die Behauptung.

(g) M sei eine k-Band-NTM mit Bandverbrauch s(n), mit Bandalphabet Γ und mit Zustandsmenge

Q. Ohne Beschränkung der Allgemeinheit kann man annehmen, dass die Maschine M, wenn sie

akzeptiert, vorher alle Arbeitsbänder gelöscht hat und alle Köpfe zurückgefahren hat, so dass es

genau eine Endkonfiguration vf gibt. Für jedes Wort w ∈ L(M) gibt es eine Berechnung, in der keine

Konfigurationdoppelt vorkommt(außereventuell die erste und die letzte), weil man Zyklen entfernen

kann. Die Anzahl der Konfigurationen einer solchen Berechnung kann (wie schon beim Beweis des

Lemmas 3.4.2) durch c s(n) ∈ 2 O(s(n)) mit einer Konstanten c ≥ 2 abgeschätzt werden (hier gehen

Bandkonstruierbarkeit und die Voraussetzung s(n) ≥ logn ein).

Wir wissen also schon: NSPACE(s) ⊆ NTIME(2 O(s) ).

Sei M ′ eine DTM, die folgendermaßen von M abgeleitet wird:

(0) Input: w; sei n := |w|.


60 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

(1) M ′ konstruiert den Konfigurationsgraphen (nicht den Baum) von M mit Eingabe w. Dieser hat

höchstens 2 O(s(n)) Knoten, weil es höchstens so viele in Platz s besuchbareKonfigurationengibt.

(2) M ′ prüft, ob es einen Weg von der Startkonfiguration v0 zur Endkonfiguration vf gibt.

(3) M ′ akzeptiert w genau dann, wenn ein solcher Weg existiert.

Es ist klar, dass M und M ′ die gleiche Sprache akzeptieren. Der Zeitaufwand von M ′ kann folgendermaßen

abgeschätzt werden:

(1) Von jeder der 2 O(s) Konfigurationen gehen höchstens |Γ| k−1 · |Q| · 3 k Kanten aus, also gibt es

insgesamt höchstens 2 O(s) ·|Γ| k−1 ·|Q|·3 k = 2 O(s) Kanten). Zur Konstruktion des Konfigurationsgraphen

braucht M ′ also höchstens 2 O(s) Schritte.

(2) Finde einen Weg von v0 nach vf:

Input: G = (V,E), v0 ∈ V, vf ∈ V.

Initialisierung: V0 := {v0}

Invariante: ∀v∈V0: existiert ein Weg von v0 nach v

while ∃v∈V0: v • ⊆V0 do (dabei ist v • die Menge der unmittelbaren Nachfolgeknoten von v)

V0 := V0 ∪v • ;

if vf∈V0 then ” Erfolg“ else skip fi

end while

In diesem Algorithmus wird jede Kante wird höchstens einmal betrachtet. Daraus folgt, dass sein

Zeitaufwand O(polynom(2 s )) = O(2 s ) ist.

(3) Dieser Schritt benötigt nur Aufwand O(1).

Der Gesamtaufwand ist also O(2 s ), und da M ′ ist deterministisch ist, bedeutet das insgesamt, dass

NSPACE(s) ⊆ DTIME(2 O(s) ) gilt.

(h) M sei eine nichtdeterministische TM, die A in Zeit t(n) akzeptiert. Wir konstruieren eine DTM

M ′ , die alle Möglichkeiten der Berechnungen der Länge t(n) (wobei n die Eingabegröße ist) von

M nachsimuliert (dazu benötigt man die Zeitkonstruierbarkeit von t(n)), und zwar eine nach der

anderen(dazu mussM ′ wissen,welcheschonvorhandenwaren).M ′ benutzt zurSimulationhöchstens

(k −1)·t ∈ O(t) Felder, die für jede der Simulationen wieder neu benutzt werden können. Für das

Durchzählen der verschiedenen Simulationen braucht M ′ weitere c·t ∈ O(t) Felder, wobei c eine von

M abhängige Konstante ist.

Nach dem Bandkompressionssatz existiert eine DTM, die mit t Feldern auskommt.

(i) DSPACE(s) ⊆ NSPACE(s) (wegen (a))

⊆ DTIME(2 O(s) ) (wegen (g))

(j) NTIME(t) ⊆ NSPACE(t) (wegen (b))

⊆ DTIME(2 O(t) ) (wie (g), nur mit Konfigurationsbaum statt mit Konfigurationsgraph)

3.4.5

Der nächste Satz liefert eine enge Beziehung zwischen nichtdeterministischem und deterministischem

Platz. Er spielt eine Sonderrolle, da kein ähnlich scharfes ” TIME-Äquivalent“ bekannt ist; Teil (j) aus Satz

3.4.5 ist viel schwächer.


Komplexitätstheorie - Wintersemester 2010/2011 61

Satz 3.4.6 Satz von Savitch – Beziehung zwischen NSPACE und DSPACE

Sei s(n) ≥ logn bandkonstruierbar. Dann gilt NSPACE(s(n)) ⊆ DSPACE(s 2 (n)).

Beweis: Sei A ∈ NSPACE(s(n)). Sei M1 eine s(n)-bandbeschränkte NTM mit L(M1) = A. Für jede

Eingabe in A gibt es eine akzeptierende Berechnung mit maximal 2 ⌈c·s(n)⌉ Konfigurationen, wobei jede

einzelne Konfiguration höchstens die Größe c ′ ·s(n) hat, wobei c und c ′ zwei geeignete Konstanten sind.

Die in Abbildung 3.8 angegebene DTM M2 testet, ob es für eine Eingabe w eine solche akzeptierende

Berechnung von M1 gibt und akzeptiert oder verwirft dem entsprechend.

Input: w; n := |w|;

Sei k0 die Anfangskonfiguration von M1 nach Eingabe von w;

for all Endkonfigurationen kf von M1 do

E := erreichbar(k0,kf,⌈c·s(n)⌉)

if E → akzeptieren und halten else → skip fi

end for; verwerfen.

wobei die Funktion erreichbar folgendermaßen definiert ist:

function erreichbar(k1,k2,j) : {false,true} ;

begin if j = 0 → return(k1 = k2 ∨ ” k2 ist von k1 aus in einem Schritt erreichbar“)

j ≥ 1 → for all Konfigurationen k mit |k| ≤ c ′ ·s(n) do

if erreichbar(k1,k,j −1)∧erreichbar(k,k2,j −1)

→ return(true)

else → skip

fi

end for; return(false)

fi

end erreichbar ;

Abbildung 3.8: Definition der DTM M2 aus dem Beweis von Satz 3.4.6

Wegen des doppelt-rekursiven Aufrufs liefert die Funktion erreichbar(k1,k2,j) genau dann true, wenn

k2 aus k1 in ≤ 2 j Schritten erreichbar ist. Deswegen ist klar, dass A = L(M1) = L(M2) gilt.

Es bleibt zu zeigen, dass M2 O(s 2 (n))-bandbeschränkt ist. Dafür zeigen wir durch Induktion über j, dass

erreichbar(k1,k2,j) mit O(s(n)) Band berechnet werden kann:

j = 0: (k1 = k2 ∨ ” k1 → k2 in einem Schritt“) ist innerhalb 2·c ′ ·s(n) Band berechenbar.

j−1 → j: Erst werden k1,k2 und j−1 in 2 · c ′ · s(n) Platz gespeichert. Nacheinander werden

erreichbar(k1,k,j−1) und erreichbar(k,k2,j−1) (nach Induktionsvoraussetzungin jeweils O(s(n))

Platz) berechnet. Für das nächste geeignete k kann der gleiche Platz wieder benutzt werden.

Da jeweils höchstens O(s(n)) Aufrufe aktiv sein können, jeder mit Platz höchstens O(s(n)), braucht M2

höchstens O(s 2 (n)) Platz. 3.4.6


62 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

3.5 Wichtige Komplexitätsklassen

Wir schränken jetzt s(n) und t(n) ein und betrachten die in Tabelle 3.1 definierten Sprachklassen.

Satz 3.5.1

LOG =

DSPACE(c·log2 (n)) NLOG =

NSPACE(c·log2 (n))

c≥1

c≥1

P =

DTIME(ni ) NP =

NTIME(ni )

i≥1

PSPACE =

DSPACE(ni ) NPSPACE =

NSPACE(ni )

i≥1

DEXT =

DTIME(2c·n ) NEXT =

NTIME(2c·n )

c>0

i≥1

i≥1

c>0

EXPTIME =

DTIME(2 (ni

) ) NEXPTIME =

i≥1

EXPSPACE=

DSPACE(2 (ni

) ) NEXPSPACE=

i≥1

NTIME(2

i≥1

(ni ) )

NSPACE(2

i≥1

(ni ) )

Tabelle 3.1: Definition der wichtigsten Komplexitätsklassen

(a) Alle deterministischen Klassen sind Teilklassen der entsprechenden nichtdeterministischen Klassen.

(b) NLOG ⊆ P.

(c) PSPACE = NPSPACE.

(d) NP ⊆ PSPACE und EXPSPACE = NEXPSPACE.

(e) PSPACE ⊆ EXPTIME.

(f) NLOG PSPACE EXPSPACE.

(g) P DEXT EXPTIME.


Komplexitätstheorie - Wintersemester 2010/2011 63

NEXT

P



⊇ DEXT

NLOG

⊆ NP ⊆



PSPACE

⊆ ⊆

EXPTIME EXPSPACE

NEXPTIME

=

NPSPACE


=

NEXPSPACE

Linie 1

Linie 2

Abbildung 3.9: Beziehungen zwischen Komplexitätsklassen

Beweis: Unter Benutzung der vorangegangenen Sätze, insbesondere Satz 3.4.5 und Satz 3.4.6.

Probleme, die oberhalb der Linie 1 in Abbildung 3.9 liegen, betrachten wir als ” effizient lösbar“ ( ” tractable“).

Probleme, die unterhalb der Linie 2 in Abbildung 3.9 liegen, betrachten wir als ” quasi unlösbar“

( ” untractable“). Für Probleme zwischen den Linien 1 und 2 sind momentan keine effizienten Lösungen

bekannt, aber bekanntlich ” stirbt die Hoffnung zuletzt“. Auf alle Fälle enthalten die Klassen NP und

PSPACE höchst interessante Probleme.

Zu jeder der genannten Klassen gibt es auch eine entsprechend co-Klasse. Dabei steht ” co“ für complementary,

und eine co-Klasse ergibt sich aus einer Klasse, indem die komplementären Probleme betrachtet

werden. Zum Beispiel ist

co−NP = {L ⊆ Σ ∗ | Σ ∗ \L ∈ NP}.

Ein Satz aus den späten Achtziger Jahren klärt die Beziehung zwischen nichtdeterministischen Platz

bezüglich Komplementsprachen.

Satz 3.5.2 Immerman und Szelepcsényi [1988]

Für eine bandkonstruierbare Funktion s: N → N mit s(n) ≥ log(n) gilt NSPACE(s) = co−NSPACE(s).

Beweis: Ohne Beweis. (Vielleicht in einer späteren Ausgabe dieses Skriptums.) 3.5.2

Die wichtigsten offenen Fragen sind:

NP ⊆ P ?

PSPACE ⊆ NP ?

Darüber hinaus kennt man auch die Antworten auf

NP = co−NP ?

EXPSPACE ⊆ EXPTIME ?

nicht, und auch einige andere Fragen sind noch offen.

Die Klassen P und NP sind von großer Bedeutung, denn sie markieren den Übergang von praktisch

durchführbarerBerechenbarkeitbzw.Entscheidbarkeitzumehroderwenigernurtheoretischinteressanter

3.5.1


64 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

alle Probleme bzw. Sprachen

berechenbar bzw. sogar entscheidbar

exponentielle Zeit

PSPACE

nichtdet. polyn. Zeit: NP

det. polyn. Zeit: P

Abbildung 3.10: Grobe Klasseneinteilung der entscheidbaren Sprachen

Berechenbarkeit bzw. Entscheidbarkeit. Dieser Übergang ist durch das Diagramm in Abbildung 3.10

veranschaulicht.

Praktisch gut lösbar sind die Probleme in der Klasse P, deren Lösungsprinzip durch folgenden Merksatz

charakterisiert werden kann:

P: Konstruiere in deterministischer Weise und

polynomieller Zeit eine richtige Lösung.

Dabei sollten die zeitbeschränkenden Polynome einen möglichst kleinen Grad wie n, n 2 oder n 3 haben.

Praktisch unlösbar sind dagegen alle Probleme, für die der Zeitaufwand nachweislich exponentiell mit

der Größe n der Eingabe wächst, jedenfalls wenn beliebige Eingabelängen n zugelassen werden. Zwischen

diesen beiden Extremen liegt eine große Klasse von praktisch wichtigen Problemen, für die im Augenblick

nur exponentielle deterministische Algorithmen bekannt sind, die aber durch nichtdeterministische

Algorithmen in polynomieller Zeit gelöst werden können. Dieses ist die Klasse NP, deren Lösungsprinzip

im Vergleich zu P wie folgt formuliert werden kann:

NP: Rate nichtdeterministisch einen Lösungsvorschlag und verifiziere bzw.

prüfe dann in deterministischer Weise und polynomieller Zeit,

ob dieser Vorschlag eine richtige Lösung ist.

Auch diese Probleme sind bis heute in voller Allgemeinheit praktisch unlösbar. In der Praxis behilft man

sich mit sogenannten Heuristiken, die den nichtdeterministischen Suchraum der möglichen Lösungsvorschläge

stark einschränken. Durch diese Heuristiken versucht man, eine gute Lösung zu approximieren.

3.6 Alternative Definitionen

In vielen Lehrbüchern (so auch in Hopcroft/Ullman [1979]) gibt es eine andere Definition für die Zeitund

Platzkomplexität einer Turing-Maschine. Es wird dort z.B. bei der Zeitkomplexität einer NTM nicht


Komplexitätstheorie - Wintersemester 2010/2011 65

nur gefordert, dass wie in Definition 3.1.3(i) die minimale Berechnung die Zeitschranke einhält, sondern

sogar, dass alle Berechnungen die Zeitschranke einhalten. Für zeitkonstruierbare Zeitschranken kommt

dies jedoch auf das Gleiche heraus. Dies sieht man für Zeitschranken analog zu Lemma 3.4.2, wie folgt.

Lemma 3.6.1

Sei M1 eine t(n)-zeitbeschränkte TM mit t(n) ≥ n und sei t(n) zeitkonstruierbar. Dann gibt es eine

t(n)-zeitbeschränkte TM M2 mit L(M1) = L(M2), die für alle Eingaben hält.

Beweis: Die Maschine M2 sei folgendermaßen definiert:

- Eingabe w; M2 simuliert die Maschine, die wegen der Zeitkonstruierbarkeit von t existiert und schreibt

t(n) in Binärdarstellungauf ein extra Band. Dazu benötigt M2 wegen der ZeitkonstruierbarkeitO(t(n))

Zeit.

- M2 simuliert M1 und subtrahiert dabei bei jedem Schritt 1 von dem extra Band. Dies geht – wie wir

in der Vorlesung, aber bisher nicht im Skriptum gesehen haben (aber s.u.) – in O(t(n)) Zeit.

- Akzeptiert M1 das Wort w, bevor der Zähler auf dem extra Band 0 erreicht hat, tut M2 das Gleiche.

- Wenn andererseits der Zähler auf dem extra Band 0 erreicht, akzeptiert M1 w nicht in t(n) Zeit, und

deswegen hält M2 und verwirft w.

M2 braucht insgesamt O(t(n)) Zeit. Auf Grund der Sätze 3.3.6 und 3.3.8 (Zeitbeschleunigung) gibt es

eine Maschine M2, die das gleiche tut und auf allen Inputs der Länge n in t(n) Zeit anhält. 3.6.1

Nachtrag: Herunterzählen eines Binärzählers. Gegeben sei ein Turingband und darauf das Wort 1 n (also

n ≥ 1 Einsen) und einen Kopf, der auf der rechten Eins steht. Dieses Wort stellt binär die Zahl 2 n −1

dar. Behauptung: Herunterzählen in binär bis zur Null geht in Zeit O(2 n ).

Wir zählen die Schritte. Steht auf dem letzten Feld eine 1 (und das ist in 1

2 ·2n aller Fälle der Fall), dann

genügt ein einziger Schritt, die Änderung von 1 zu 0 auf dem letzten Feld. In den anderen 1

2 ·2n Fällen

steht auf dem letzten Feld eine 0. In der Hälfte dieser Fälle (also einem Viertel aller Fälle) steht auf dem

vorletzten Feld eine 1. Dann genügen zwei Kopfbewegungen: ändere die 0 zu 1 und gehe nach links, dort

ändere die 1 zu 0 und gehe nach rechts.Im restlichen Viertel aller Fälle steht auch auf dem vorletzten Feld

eine 0. Diese Fälle unterteilen sich in zwei Achtel: einmal genügen 4 Schritte, und das restliche Achtel

unterteilt sich wieder in zwei Sechzehntel, wobei einmal 6 Schritte genügen, und die restlichen Sechzehntel

sich wieder in Zweiunddreißigstel halbieren, usw. Insgesamt ist die Anzahl der Schritte durch die Summe

2 n ·( 1 2 4 6 8 10

+ + + + + +...) (3.3)

2 4 8 16 32 64

nach oben beschränkt (es könnten etwaswenigerSchritte sein, weil vordem letzten Schritt schon entdeckt

werden kann, dass nur noch Nullen da stehen). Die Summe 1 2 4 6 8 10

2 + 4 + 8 + 16 + 32 + 64 + ... kann so

aufgeschrieben werden:

1

2

1 + 4

+ 1

4

+ 1

8

+ 1

8

+ 1

8

+ 1

8

+ 1

16

+ 1

16

+ 1

16

+ 1

16

.

+ 1

32

+ 1

32

+ 1

32

+ 1

32

... ≤ 1

... ≤ 1/2

... ≤ 1/4

... ≤ 1/4

.

.


66 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

In der rechten Spalte ergibt sich die Summe 1+1/2+2·1/4+2·1/8+2·1/16+..., und diese Summe ist

nach oben beschränkt durch die Zahl 2.5. Insgesamt ist der Zeitbedarf ≤ 2.5·2 n , also in O(2 n ).


Kapitel 4

Die Klassen P, NP, NPC und PSPACE

Dieses Kapitel ist folgendermaßen aufgebaut. Zunächst (Abschnitt 4.1) werden zwei Probleme in NP

definiert. Diese beiden Probleme sind miteinander verwandt. In Abschnitt 4.2 präzisieren wir, was unter

einer solchen ” Verwandtschaft“ zu verstehen sein soll, nämlich die polynomielle Reduzierbarkeit.

Bei den Untersuchungen zur bislang offenen Frage, ob P = NP gilt, stößt man auf eine erstaunliche

Teilklasse von NP, die Klasse NPC der NP-vollständigen (NP-complete) Probleme, die in Abschnitt 4.3 unter

Zuhilfenahme des Begriffs der polynomiellen Reduktion definiert wird. Wir werden sehen, dass gilt:

Wenn ein Problem aus NPC in P liegt, so liegen bereits alle Probleme aus NP in P, d.h., dann

gilt P = NP.

Um die Frage P ? = NP positiv zu lösen, würde es also schon genügen, für ein einziges NP-vollständiges

Problem einen deterministisch-polynomiellen Algorithmus anzugeben. Es wird allerdings als sehr unwahrscheinlich

erachtet, dass ein solches Problem mit einem derartigen Lösungsalgorithmus existiert. Ein

erstes NP-vollständiges Problem wird in Abschnitt 4.4 angegeben. Weitere Probleme in NPC sowie einige

Beweistechniken werden in Abschnitt 4.6 besprochen.

In Abschnitt 4.7 wenden wir uns der Klasse PSPACE zu. Die späteren Abschnitte enthalten verschiedene

weiterführende Bemerkungen und andere Probleme, die zum Teil beweisbar schwerer sind als Probleme

in PSPACE.

4.1 Zwei Beispiele für Probleme aus der Klasse NP

Problem 4.1.1 Hamiltonscher Pfad HP

Gegeben: Ein endlicher (ungerichteter) Graph mit n Knoten.

Frage: Gibt es einen Hamiltonschen Pfad in dem Graphen, d.h. einen Kantenzug, der jeden Knoten

genau einmal trifft? 4.1.1

67


68 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Betrachtenwirz.B.den Graphenin Abbildung 4.1.Dortist derKantenzuge1–e2–e3–e4 ein Hamiltonscher

Pfad. Es ist leicht zu sehen, dass das Problem des Hamiltonschen Pfades in NP liegt: Man rät zunächst

einen Pfad und prüft dann in polynomieller Zeit, ob jeder Knoten genau einmal getroffen wird. Da es

maximal O(n!) in Fragekommende Pfade im Graphen gibt, wäre dieses Verfahren nur mit exponentiellem

Aufwand in deterministischer Weise anwendbar.

Das umgekehrte Problem HP:

Gegeben: Ein endlicher Graph mit n Knoten.

e2

e1

e3

e4

Abbildung 4.1: Ein Graph

Frage: Gibt es keinen Hamiltonschen Pfad in dem Graphen?

ist übrigens ein Beispiel eines Problems in co−NP. Es lässt sich mit der ” Rate-und prüfe“-Methode nicht

(direkt) lösen. Das bedeutet, dass die Mitgliedschaft von HP in NP nicht (direkt) zu sehen ist; tatsächlich

ist unbekannt, ob dieses umgekehrte Problem in NP liegt oder nicht.

Problem 4.1.2 Der Handlungsreisende (travelling salesman, TS )

Gegeben: Ein endlicher Graph mit n Knoten und natürlichzahligen Längenangaben für jede Kante,

sowie eine Zahl k ∈ N.

Frage: Gibt es für den Handlungsreisenden eine Rundreise der Länge ≤ k oder mathematischer: gibt

es einen Kreis, d.h. einen geschlossenen Kantenzug der Länge ≤ k, der jeden Knoten mindestens

einmal trifft? 4.1.2

Auch dieses Problem liegt in NP: Man rät zunächst einen Kreis und berechnet dann dessen Länge. Das

ProblemdesHandlungsreisendenistvonpraktischerBedeutungz.B.beimEntwurfvonTelefonnetzwerken

oder integrierten Schaltungen.

4.2 Polynomielle Reduzierbarkeit

Offenbar sind die beiden Probleme, die in Abschnitt 4.1 vorgestellt wurden, in gewisser Beziehung miteinander

verwandt. Vielleicht kann man eine Lösung für eines der beiden aus einer Lösung für das andere

ableiten? Um diese Idee zu präzisieren und um nachzuprüfen, ob dies tatsächlich der Fall ist, benutzt

man den Begriff der polynomiellen Reduktion, der von Richard Karp 1972 eingeführt worden ist.


Komplexitätstheorie - Wintersemester 2010/2011 69

Definition 4.2.1 Polynomielle Reduzierbarkeit

Seien L1 ⊆ Σ ∗ 1 und L2 ⊆ Σ ∗ 2 zwei Sprachen. Dann heißt L1 auf L2 polynomiell reduzierbar, abgekürzt

L1 ≤p L2,

falls es eine totale und mit der Zeitkomplexität eines Polynoms berechenbare Funktion f: Σ ∗ 1 → Σ ∗ 2 gibt,

so dass für alle w ∈ Σ ∗ 1 gilt: w ∈ L1 ⇔ f(w) ∈ L2. Wir sagen auch: L1 ≤p L2 mittels f. 4.2.1

Anschaulich besagt L1 ≤p L2, dass L1 im Rahmen polynomieller Berechenbarkeit nicht aufwändiger oder

” schwerer“ als L2 ist. Es ist sehr wichtig, dass die Äquivalenz w ∈ L1 ⇔ f(w) ∈ L2 und nicht etwa

nur eine der beiden Implikationen gefordert wird, denn nur mit der Äquivalenz lässt sich das Problem L1

durch eine Reduktion aufdas ProblemL2 lösen.Die Definition ist trotz dieserÄquivalenz unsymmetrisch,

denn die Funktion f muss nicht umkehrbar sein, oder wenn sie es doch ist, muss ihre Umkehrung nicht

auch polynomiell berechenbar sein. Der Index p in ≤p steht natürlich für ” polynomiell“. Manchmal findet

man statt des Symbols ≤p das Symbol ≤m, wobei der Index m für ” many-to-one“ steht.

Lemma 4.2.2 Polynomielle Reduktion

Mit L1 ≤p L2 gilt:

(i) Falls L2 ∈ P, dann auch L1 ∈ P.

(ii) Falls L2 ∈ NP, dann auch L1 ∈ NP.

(iii) Falls L2 ∈ PSPACE, dann auch L1 ∈ PSPACE.

Beweis:

zu (i) und (ii):

Es gelte L1 ≤p L2 mittels einer Funktion f, die durch eine deterministische Turingmaschine M1 berechnet

wird. Das Polynom p1 begrenze die Rechenzeit von M1. Da L2 ∈ P in (i) (bzw. L2 ∈ NP in (ii)) ist, gibt es

eine durch ein Polynom p2 zeitbeschränkte deterministische (bzw. nichtdeterministische) Turingmaschine

M2, die L2 akzeptiert. Wir konstruieren eine Maschine M durch Hintereinanderschalten der beiden

Maschinen M1 und M2:

• Input w;

• simuliere M1 und berechne f(w);

• simuliere M2 auf f(w) und akzeptiere genau dann, wenn M2 akzeptiert.

Dann gilt:

M akzeptiert w ⇔ M2 akzeptiert f(w) (nach Konstruktion von M)

⇔ f(w) ∈ L2 (nach Definition von M2)

⇔ w ∈ L1 (nach Definition von ≤p).

Also gilt L1 = L(M).


70 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Sei |w| = n. Dannberechnet M1 dasWortf(w) in p1(n) Schritten.Diese Zeitschrankebeschränktzugleich

die Länge von f(w), d.h. |f(w)| ≤ p1(n). Also ist M2 auf dem Input f(w) insgesamt

p1(n)+p2(p1(n)) - zeitbeschränkt.

Insgesamt gilt, wie behauptet, L1 ∈ P (bzw. L1 ∈ NP).

zu (iii):

Für L2 ∈ PSPACE beachte man, dass f mit polynomiellem Bandverbrauch berechnet wird, wenn f in

polynomieller Zeit berechnet wird. Ansonsten ist der Beweis ähnlich wie für die beiden anderen Fälle.

4.2.2

Beispiel:

Wir zeigen folgende polynomielle Reduktion:

Hamiltonscher Pfad ≤p Handlungsreisender.

Gegebensei einGraphGmit n Knoten.AlsReduktionsfunktion betrachtenwirdie folgendeKonstruktion

f: G ↦→ G ′ eines neuen Graphen G ′ mit Kantenlängen:

• G ′ übernimmt die n Knoten von G.

• Jede Kante von G wird Kante von G ′ der Länge 1.

• Jede ” Nichtkante“ von G wird Kante von G ′ der Länge 2.

Damit ist G ′ ein vollständig in dem Sinne, dass je zwei Knoten durch eine Kante verbunden sind. Ein

Beispiel ist in Abbildung 4.2 angegeben.

G: n = 5 G ′ : und geeignete Schranke

↦−→ f

2

1

1

1

1

2

2

1

2

1

k = n+1

Abbildung 4.2: Transformation von G (Hamiltonkreisproblem) in G ′ (Handlungsreisendenproblem)

Die Transformationf benötigt polynomielle Zeit. Für das Finden der Nichtkanten kann man zum Beispiel

die Inzidenzmatrix betrachten, die Konstruktion ist also O(n 2 ).

Wir zeigen jetzt die Reduktionseigenschaft von f, d.h.

G hat Hamiltonschen Pfad ⇔ G ′ hat Rundreise der Länge ≤ n+1.

Beweis von ” ⇒“: Man braucht n−1 Kanten der Länge 1 (d.h. ” aus G“), um n verschiedene Knoten zu

verbinden. Um diesen Hamiltonschen Pfad zu schließen, braucht man eine weitere Kante der Länge ≤ 2.

Insgesamt hat die so konstruierte Rundreise die Länge ≤ n+1.


Komplexitätstheorie - Wintersemester 2010/2011 71

Beweis von ” ⇐“: In der Rundreise gibt es mindestens n Kanten (um n Knoten auf einem Kreis zu

verbinden) und höchstens n+1 Kanten (wegen der Kantenlängen ≥ 1).

Auf der Rundreise wird mindestens 1 Knoten zweimal erreicht (Start = Ende). Man muss also auf jeden

Fall eine Kante entfernen, um einen Pfad mit lauter verschiedenen Knoten zu erhalten. Wir untersuchen,

ob das reicht.

Fall 1: Nach dem Entfernen der einen Kante hat der verbleibende Kantenzug die Länge n−1.

Die damit erreichbaren Knoten sind alle verschieden. Man hat also einen Hamiltonschen Pfad gefunden.

Beispiel zu Fall 1: Abbildungen 4.1 und 4.2.

Fall 2: Sonst hat der verbleibende Kantenzug die Länge n.

Dann gibt es in diesem Kantenzug n Kanten und es wird ein Knoten auf einem verbleibenden Kreis

zweimal angetroffen. Dann erhält man einen Hamiltonschen Pfad nach dem Entfernen einer weiteren

Kante.

Die Abbildung 4.3 zeigt ein Beispiel zu Fall 2.

1

1

1

1

Rundreise der Länge 4

↦−→

Hamiltonscher Pfad

Abbildung 4.3: Hier ist n = 3. Zwei Kanten müssen weggenommen werden.

Manerkenntleicht,dass≤p einereflexiveundtransitiveRelationaufSprachenist,damitzweiPolynomen

p1(n) und p2(n) auch p1(p2(n)) ein Polynom ist. Das nächste Lemma fasst diese und ein paar andere

Aussagen zusammen. Für eine Sprache L bezeichne generell L die Komplementsprache.

Lemma 4.2.3 Nochmal die polynomielle Reduktion

a) ≤p ist eine Prä-Halbordnung, also reflexiv und transitiv.

b) L1 ≤p L2 ⇔ L1 ≤p L2.

c) Falls L1 ∈ P und ∅ = L2 = Σ ∗ , dann L1 ≤p L2.

Beweis:

a) ≤p ist reflexiv: Sei L ⊆ Σ ∗ . Wähle f = id: Σ ∗ → Σ ∗ . Dann ist f in Linearzeit berechenbar (kopiere

Input auf Ausgabeband). Außerdem gilt x ∈ L ⇔ id(x) ∈ L, also L ≤p L.

≤p ist transitiv: Sei L1 ≤p L2 via f und L2 ≤p L3 via g. Wähle h = f ◦ g (d.h. h(w) = g(f(w))).

Seien f in O(n l ), g in O(n m ) Zeit berechenbar. Dann ist h in O((n l ) m ) = O(n l·m ) Zeit berechenbar,

und es gilt

w ∈ L1 ⇔ f(w) ∈ L2 ⇔ g(f(w)) = h(w) ∈ L3,

also L1 ≤p L3 via h.


72 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

b) Sei L1 ≤p L2 via f. Dann gilt

w ∈ L1 ⇔ w /∈ L1 ⇔ f(w) /∈ L2 ⇔ f(w) ∈ L2,

also L1 ≤p L2 mit der gleichen Funktion f.

c) Ist ∅ = L2 = Σ ∗ , gibt es ein Wort x ∈ L2 und ein Wort x ′ /∈ L2. Wegen L1 ∈ P ist f mit


x falls w ∈ L1

f(w) =

x ′ falls w /∈ L1

in polynomieller Zeit berechenbar, und es gilt

w ∈ L1 ⇔ f(w) = x ∈ L2,

also L1 ≤p L2 via f. 4.2.3

4.3 Harte und vollständige Probleme, und die Klasse NPC

Die Klasse NPC wurde 1971 von Stephen A. Cook eingeführt. Das schon früher (in Abschnitt 1.3)

vorgestellte Problem SAT wurde von Cook als Erstes (und etwa zeitgleich von Leonid Levin in der

Sowjetunion) als NP-vollständig bestätigt. Ab 1972 hat Richard Karp viele weitere Probleme als NPvollständig

nachgewiesen. Heute kennt man weit über 1000 Beispiele aus der Klasse NPC; man vergleiche

z.B. das Kompendium http://www.nada.kth.se/∼viggo/wwwcompendium/.

Im folgenden wollen wir nicht nur den Begriff der NP-Vollständigkeit definieren, sondern auch den Begriff

der PSPACE-Vollständigkeit, der später vorkommen wird. Deshalb ist die nächste Definition generisch

aufgebaut. Sei C eine Klasse von Sprachen (zum Beispiel P, NP, PSPACE) und sei ≤ eine transitive Reduktionsrelation

(zum Beispiel ≤p).

Definition 4.3.1 Härte und Vollständigkeit

L ⊆ Σ ∗ heißt C-hart bezüglich ≤, wenn für alle L ′ ∈ C gilt: L ′ ≤ L.

L ⊆ Σ ∗ heißt C-vollständig bezüglich ≤, wenn, erstens, L ∈ C gilt und, zweitens, L C-hart ist. 4.3.1

Aus dem Zusammenhang geht in der Regel hervor, um welche Reduktion es sich handelt. Meistens wird

≤ = ≤p gemeint. Insbesondere sind die Begriffe NP-hart und NP-vollständig bezüglich ≤p zu verstehen,

ebenso wie die Begriffe PSPACE-hart und PSPACE-vollständig.

Sei C eine Klasse von Sprachen. Generell sei

co−C = { L | L ∈ C }.

Damit sind auch die Begriffe co−NP-vollständig, co−PSPACE-hart usw. erklärt (immer bezüglich ≤p).

Satz 4.3.2

Sei C eine Klasse von Sprachen.

a) Ist L C-hart bezüglich ≤ und gilt L ≤ L ′ , so ist auch L ′ C-hart bezüglich ≤.

b) Ist L C-vollständig bezüglich ≤, ist L ′ ∈ C und gilt L ≤ L ′ , so ist auch L ′ C-vollständig bezüglich ≤.


Komplexitätstheorie - Wintersemester 2010/2011 73

Beweis:

a) Sei L ≤ L ′ .

L ist C-hart bzgl. ≤ ⇔ für alle L ′′ ∈ C gilt L ′′ ≤ L (nach Def. von C-hart)

⇒ für alle L ′′ ∈ C gilt L ′′ ≤ L ≤ L ′ (wegen L ≤ L ′ )

⇒ für alle L ′′ ∈ C gilt L ′′ ≤ L ′ (weil ≤ transitiv ist)

⇔ L ′ ist C-hart bzgl. ≤ (nach Def. von C-hart)

b) Mit a) und L ′ ∈ C. 4.3.2

Korollar 4.3.3

a) L ist NP-hart und L ≤p L ′ ⇒ L ′ ist NP-hart.

b) L ist NP-vollständig, L ′ ∈ NP und L ≤p L ′ ⇒ L ′ ist NP-vollständig.

c) L ist NP-hart und L ∈ P ⇒ P = NP.

d) L ist PSPACE-hart und L ∈ P ⇒ P = PSPACE.

e) L ist PSPACE-hart und L ∈ NP ⇒ NP = PSPACE.

Beweis:

a) und b) Direkt aus Satz 4.3.2.

c) L NP-hart ∧ L ∈ P ⇒ ∀L ′′ ∈ NP: L ′′ ≤p L (Def. NP−hart)

⇒ ∀L ′′ ∈ NP: L ′′ ∈ P (L ∈ P und Satz 4.2.2(i))

⇔ NP ⊆ P

⇒ P = NP (P ⊆ NP, Satz 3.5.1(a)).

d) und e) Analog. 4.3.3

Um zu wissen, was NP gegebenenfalls ” echt schwerer“ macht als P, muss man also die Klasse NPC der

NP-vollständigen Probleme analysieren. Gibt es überhaupt welche?

4.4 SAT und der Satz von Cook-Levin

In diesem Abschnitt definieren und untersuchen wir zuerst etwas genauer das Problem SAT, das in

Abschnitt 1.3 bereits besprochen wurde.


74 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Definition 4.4.1 Syntax Boolescher Ausdrücke

Ein Boolescher Ausdruck ist ein Term über {false,true}, Variablen aus V = {x1,x2,...}, den Operationen

¬, ∧ und ∨ und Klammern (,) nach folgendem Bildungsgesetz:

• Anfang: false und true sind Boolesche Ausdrücke; jede Variable xi ∈ V ist ein Boolescher Ausdruck.

• Schritt: Wenn E ein Boolescher Ausdruck ist, dann auch ¬E; wenn E1,E2 Boolesche Ausdrücke

sind, dann auch (E1 ∧E2) und (E1 ∨E2).

• Abschluss: Nichts sonst ist ein Boolescher Ausdruck.

Wenn x ∈ V, dann schreibt man statt ¬x oft x, und man nennt x und x Literale. Operatorprioritäten

sind wie üblich (¬ vor ∧ vor ∨) definiert. 4.4.1

Definition 4.4.2 Klauseln und konjunktive Form

Wenn y1,y2,...,yk Literale sind, dann heißt (y1 ∨y2 ∨...∨yk) eine Klausel der Ordnung k.

Wenn c1,c2,...,cr Klauseln der Ordnung ≤ k sind, dann heißt E = c1∧c2∧...∧cr Boolescher Ausdruck

in konjunktiver Form oder auch in konjunktiver Normalform (CNF) der Ordnung ≤ k. Wenn mindestens

eine Klausel k verschiedene Literale enthält, dann heißt E eine CNF der Ordnung k. 4.4.2

Definition 4.4.3 Semantik Boolescher Ausdrücke, Erfüllbarkeit

Eine Belegung β ist eine Abbildung β: V → {false,true}, die jeder Variablen einen Wahrheitswert

zuordnet. Jede Belegung β kann kanonisch auf Boolesche Ausdrücke fortgesetzt werden:

β(false) = false,

β(true) = true,

β(¬E) = ¬β(E),

β(E1 ∧E2) = β(E1)∧β(E2),

β(E1 ∨E2) = β(E1)∨β(E2),

wobei auf den rechten Seiten die bekannten Booleschen Operatoren auf der Menge {false,true} zu

verstehen sind.

Ein Boolescher Ausdruck E heißt erfüllbar ( ” satisfiable“), wenn es eine Belegung β mit β(E) = true

gibt. 4.4.3

Das Erfüllbarkeitsproblem wollen wir als Sprache

{E | E ist Boolescher Ausdruck und E ist erfüllbar }

darstellen. Um ganz genau zu sein, codiert man noch V folgendermaßen:

xi ↦→ xj, wobei j die Dualdarstellung der Zahl i ist,

also x1 ↦→ x1, x2 ↦→ x10, x3 ↦→ x11, x4 ↦→ x100 usw. Sonst hätte man ein unendlich großes Alphabet zu

betrachten, da V eine Teilmenge dieses Alphabets ist. Insgesamt definiert man:


Komplexitätstheorie - Wintersemester 2010/2011 75

Definition 4.4.4 Erfüllbarkeitsproblem(e) für Boolesche Ausdrücke

• SAT = {E | E ist Boolescher Ausdruck über {x1,x10,x11,...} und E ist erfüllbar}.

• CNF−SAT = {E | E ist Boolescher Ausdruck in SAT und E ist in konjunktiver Form}.

• SAT(k) = {E | E ist Boolescher Ausdruck in CNF−SAT und E ist von der Ordnung k}.

• 3SAT = {E | E ist Boolescher Ausdruck in CNF−SAT

und jede Klausel enthält genau 3 verschiedene Literale}. 4.4.4

Ohne Einschränkung der Allgemeinheit kann stets angenommen werden, dass in E genau die ersten m

Variablen enthalten sind (für ein geeignetes m ∈ N). Wenn nötig, können auch die Konstanten false und

true durch geeignete äquivalente Umformungen entfernt werden: false durch (x1∧x1) und true durch

(x1∨x1). Die Länge |E| von E ist definiert als die Anzahl der Zeichen in E.

Satz 4.4.5 Cook/Levin 1971-1973, NP-Vollständigkeit von CNF−SAT

CNF−SAT ist NP-vollständig.

Beweis:

Zunächst erkennt man, dass CNF−SAT in NP liegt. Man prüft zunächst in polynomieller Zeit, ob ein

gegebener Boolescher Ausdruck E in konjunktiver Form ist. Falls dies der Fall ist und falls E ℓ Variablen

enthält, dann rät man eine Belegung

β: {x1,...,xℓ} → {false,true},

setztfürjede Variablexi den Wertβ(xi)einund rechnetβ(E) nachdenüblichen Rechenregeln(Definition

4.4.3) aus. Wenn |E| = n galt, dann besitzt E nicht mehr als n Variablen, d.h. ℓ ≤ n. Das Raten einer

Belegung β erfolgt in linearer Zeit (Tabelle anlegen, ℓ Schritte), die Ersetzung in E dauert const · |E|

Schritte und ebenso die Auswertung; d.h. CNF−SAT ∈ NTIME(c1·n+c2) für geeignete Konstanten c1

und c2. Speziell: CNF−SAT ∈ NP.

Der umständlichere Teil besteht darin zu zeigen, dass für jede Sprache L ∈ NP gilt: L ≤p CNF−SAT.

BetrachtenwirhierzueinebeliebigeSpracheL ∈ NP.DanngibteseineNTMM = (Q,X,Γ, ,δ,q0,qa,qr)

mit Zustandsmenge Q, Eingabealphabet X, Bandalphabet Γ, das X umfaßt, Anfangszustand q0 ∈ Q und

Endzuständen qa und qr. Da M die Sprache L in nichtdeterministisch polynomieller Zeit akzeptiert, gibt

es ein Polynom p, so dass M für jedes w ∈ X ∗ und jede Berechnungsfolge nach höchstens p(n) (mit

n = |w|) Schritten anhält, und w ∈ L gilt genau dann, wenn es eine Berechnungsfolge von M gibt, die

die Anfangskonfiguration q0w in eine Endkonfiguration u1qau2 überführt. Wir nehmen o.B.d.A. an, dass

M nur ein Band besitzt.

Zu jedem w ∈ X ∗ konstruieren wir nun einen Booleschen Ausdruck g(w) ∈ Σ ∗ , mit

Σ = {x,0,1,false,true,¬,∧,∨,(,)},

in konjunktiver Form, so dass gilt:

w ∈ L ⇔ g(w) ∈ CNF−SAT


76 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

und so, dass diese Abbildung g: X ∗ → Σ ∗ eine polynomielle Reduktion ist. Dann folgt, da L aus NP

beliebig war, dass CNF−SAT NP-vollständig ist.

Konstruktion von g(w) aus w:

Sei Q = {q1,...,qs} (d.h., es gibt s Zustände) mit q1 = q0 (Anfangszustand) und qs = qa (akzeptierender

Zustand). Sei Γ = {c1,...,cγ} (d.h., esgibt γ Bandzeichen)und essei c1 = . Diese Festlegungenwerden

getroffen, damit die speziellen Zustände (Anfangszustand und akzeptierender Zustand) und das spezielle

Bandzeichen durch ihre Indizes gekennzeichnet werden können: Index 1 für den Anfangszustand und

für das Blankzeichen, Index s für den akzeptierenden Zustand. O.B.d.A. sei

δ ⊆ (Q×Γ)×(Q×Γ×{−1,0,+1})

mit δ(qa,c) = δ(qr,c) = ∅ für alle c ∈ Γ, wobei −1,0,+1 für L,N,R (Kopfbewegungen) stehen.

Wir erweitern δ, indem wir jedes δ(qa,c) = ∅ in δ(qa,c) = {(qa,c,0)} und jedes δ(qr,c) = ∅ in δ(qr,c) =

{(qr,c,0)} abwandeln. Auf diese Weise tritt die leere Menge ∅ nie als Bild von δ auf. Da das Ende

einer Berechnung durch δ(qa,c) = ∅ bestimmt wurde, wird durch die Erweiterung eine niemals haltende

Turingmaschine M ′ definiert, die jedoch die Arbeitsweise von M genau widerspiegelt. Wenn M, angesetzt

auf w, im Zustand qa anhielt, so erreicht M ′ nach p(n) (mit n = |w|) Schritten eine Konfiguration u1qau2

und M ′ behält diese Konfiguration unendlich lange bei; das Umgekehrte gilt auch. Also:

w ∈ L ⇔ M, angesetzt auf w, ist nach ≤ p(|w|) Schritten in einer Konfiguration u1qau2

⇔ M ′ durchläuft eine Folge k1,k2,...,k p(n) von Konfigurationen mit

(i) k1 = q1w ist Anfangskonfiguration;

(ii) ki+1 ist Folgekonfiguration von ki für alle i ≥ 1;

(iii) n = |w| und k p(n) enthält den Endzustand qa.

Wir erreichen durch diese künstliche Erweiterung, dass alle Konfigurationenfolgen o.B.d.A. gleich lang

(Länge p(n) für ein Eingabewort der Länge n) sind.

Die Übergangsrelation δ habe m Elemente und es sei δ = {tupel 1 ,tupel 2 ,...,tupel m } irgend eine feste

Durchnummerierung von δ.

Sei w ∈ X ∗ mit |w| = n gegeben, w = cj1cj2 ...cjn. Die Formel g(w) wird mit folgenden Booleschen

Variablen aufgebaut:

• zt,k , 1 ≤ t ≤ p(n), 1 ≤ k ≤ s.

zt,k = true bedeutet: M ′ ist zum Zeitpunkt t im Zustand qk.

• at,i,j , 1 ≤ t ≤ p(n), −p(n) ≤ i ≤ p(n), 1 ≤ j ≤ γ.

at,i,j = true bedeutet: Zum Zeitpunkt t trägt das Feld i den Inhalt cj.

• st,i , 1 ≤ t ≤ p(n), −p(n) ≤ i ≤ p(n).

st,i = true bedeutet: zum Zeitpunkt t befindet sich der Lese/Schreibkopf von M ′ auf dem Feld i.

• bt,l , 1 ≤ t ≤ p(n)−1, 1 ≤ l ≤ m.

bt,l = true bedeutet: Für die Überführung vom Zeitpunkt t zum Zeitpunkt t+1 wird das lte Tupel

von δ benutzt.


Komplexitätstheorie - Wintersemester 2010/2011 77

Da M höchstens p(n) Schritte macht, kann man stets |i| ≤ p(n) und t ≤ p(n) annehmen.

Der Boolesche Ausdruck g(w) soll nun genau die obige Konfigurationenfolge k1,k2,...,k p(n) beschreiben

(bzw. genaudie zulässigenKonfigurationenfolgendieserArt). HierzumüssenfolgendeBedingungenerfüllt

werden:

(1) Anfangskonfigurierung: M ′ ist im Zustand q1; der Zeitpunkt ist t = 1; die Inschrift

p(n)+1 w p(n)−n steht auf dem Band; der Lese/Schreibkopf ist auf Feld 1 (definiert als Feld

des ersten Buchstabens von w, falls w = ε, beliebig sonst).

(2) Endkonfigurierung, sofern w akzeptiert wird: der Zeitpunkt ist t = p(n); M ′ ist im Zustand qa.

(3) Übergangsbedingung: M ′ ist zu jedem Zeitpunkt 1 ≤ t ≤ p(n) in genau einem Zustand; jedes Feld

von −p(n) bis +p(n) enthält genau ein Symbol aus Γ; der Lese/Schreibkopf befindet sich auf genau

einem dieser Felder; und genau eins der Tupel von δ wird für die Überführung ausgewählt.

(4) Folgekonfigurierung: die nächste Konfiguration ergibt sich aus der vorhergehenden Konfiguration

auf Grund einer Überführung, die durch das unter (3) gewählte Tupel von δ bestimmt ist.

Insgesamt sei g(w) = A1 ∧A2 ∧A3 ∧A4 mit:

• Ad (1):

A1 = a 1,−p(n),1 ∧a 1,−p(n)+1,1 ∧...∧a1,0,1

∧ a1,1,j1 ∧a1,2,j2 ∧...∧a1,n,jn

∧ a1,n+1,1 ∧a1,n+2,1 ∧...∧a 1,p(n),1

p(n)+1

steht links


(w = cj1 ...cjn)


p(n)−n

steht rechts von w

∧ z1,1 ∧ s1,1 . (anfängl. Zustand und Kopfposition)

Diese Formel beschreibt die Anfangskonfigurierung mit 2·p(n)+3 Variablen.

• Ad (2):

• Ad (3):

A2 = z p(n),s (eine Variable; qs = qa).

Wir beschreiben zunächst einen Hilfsausdruck: Für Variablen x1,...,xk sei

genauein(x1,...,xk) = mindestensein(x1,...,xk) ∧ höchstensein(x1,...,xk)

mit mindestensein(x1,...,xk) = (x1 ∨x2 ∨...∨xk)


und höchstensein(x1,...,xk) = (xi ∨xj).

1≤i


78 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Der Ausdruck genauein(x1,...,xk) ist in CNF und besitzt k+ 1

2 ·k·(k −1)·2 = k2 Variablen. Er

wird true, wenn genau ein xi den Wert 1 hat.

Setze nun

A3 =

1≤t≤p(n)

A Zustand

3

mit: AZustand 3 (t) = genauein(zt,1,...,zt,s)

A Stelle

(t)∧A Stelle

3 (t)∧A Feld

3 (t)∧A Ü

3 (t)

3 (t) = genauein(s t,−p(n),s t,−p(n)+1,...,s t,p(n))

AFeld 3 (t) =

−p(n)≤i≤p(n)

AÜ 3 (t) = genauein(bt,1,...,bt,m).


genauein(at,i,1,...,at,i,γ)

Diese Formel ist ebenfalls in CNF. A3 beschreibt die Übergangsbedingung (3) und besitzt

Variablen.

• Ad (4):

p(n)·(s 2 +(2·p(n)+1) 2 +(2·p(n)+1) 2 ·γ 2 +m 2 )

A4 =


1≤t


Komplexitätstheorie - Wintersemester 2010/2011 79

Das bedeutet: nicht betrachtete Felder werden von M ′ nicht verändert.

Erläuterung der ersten Klausel in der zweiten Zeile:

(st,i∨bt,l∨zt,kl ) wird true genau unter folgenden Umständen: wenn M′ zum Zeitpunkt t das Feld

i betrachtet und als Überführung das lte Tupel gewählt wird, dann befand M ′ sich zum Zeitpunkt

t im Zustand qkl .

Die erste Klausel in der dritten Zeile besagt, dass unter den gleichen Bedingungen M ′ sich zum

Zeitpunkt t+1 im Zustand q˜ kl befindet.

Ähnlich sind die restlichen Klauseln zu lesen.

A4 ist in konjunktiver Normalform und enthält p(n)·(2·p(n)+1)·(3·γ +15·m) Variablen.

Man zeigt nun leicht, dass g(w) in CNF ist. Des Weiteren:

Behauptung 1: g ist polynomiell.

Die obige Konstruktion liefert eine Formel mit

p ′ (n) = (2·p(n)+3)+(s−r +1) + p(n)·(s 2 +(2p(n)+1) 2 ·(γ 2 +1)+m 2 )

+ p(n)·(2·p(n)+1)·(3γ +15m)

Variablen. Die Erstellung von g(w) aus w ist offensichtlich proportional zu p ′ (n), also auf einer deterministischen

1-Band-Turingmaschine in einer Zeit von höchstens const ·(p ′ (n)) 2 Schritten zu berechnen,

d.h. polynomiell in O((p(n)) 4 ).

Behauptung 2: g ist eine Reduktion, d.h., ∀w ∈ X ∗ : (w ∈ L ⇔ g(w) ∈ CNF−SAT). Diese Aussage

folgt aus der Konstruktion, wobei nur ” ⇐“ etwas aufwändiger zu beweisen ist.

Also definiert g eine polynomielle Reduktion L ≤p CNF−SAT. Da L beliebig war, folgt insgesamt, dass

CNF−SAT NP-vollständig ist. 4.4.5

Es folgt direkt, dass auch SAT NP-vollständig ist. Zunächst ist SAT aus dem gleichen Grund in NP

wie CNF−SAT: man rät eine Belegung und rechnet dann den Wert der Formel aus. Außerdem gilt

CNF−SAT ≤p SAT durch die Identitätsfunktion f = id. Aus Korollar 4.3.3(b) folgt SAT ∈ NP.

Intuitiv kann der letzte Argumentationsschritt so verstanden werden: wenn schon der ” Spezialfall“

CNF−SAT von SAT NP-hart ist, dann ist SAT ” erst recht“ NP-hart.

Es gilt sogar:

Satz 4.4.6 NP-Vollständigkeit von 3SAT

3SAT ist NP-vollständig.

Beweis: Gegeben eine Formel, prüft man in polynomieller Zeit, ob sie in 3SAT-Form ist. Falls ja, rät

man eine Belegung der Variablen und rechnet in polynomieller Zeit den Wahrheitswert der Formel aus.

Der schwierigere Teil des Beweises ist es, zu zeigen, dass 3SAT NP-hart ist. Dazu genügt es, zu zeigen,

dass CNF−SAT ≤p 3SAT gilt, denn dann findet Korollar 4.3.3(b) Anwendung.

Sei U = {u1,...,un} eine Variablenmengeund sei F = c1∧...∧cm eine Formel, die U als Variablenmenge

hat und wobei jedes cj eine Disjunktion von Literalen ist. Wir konstruieren eine Formel F ′ , die eine

Konjunktion von Dreier-Disjunktionen ist, so dass F ′ genau dann erfüllbar ist, wenn auch F erfüllbar


80 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

ist. Jedes cj wird durch eine Konjunktion von Dreier-Disjunktionen F ′ j

U ′ j von Variablen verwendet, die nur in F′ j vorkommen. Dann wird

U ′ m

= U ∪{ Uj}, F ′ =

j=1

m


j=1 F′ j

Sei cj = z1 ∧...∧zk, wobei die zl Literale von U sind, für 1 ≤ l ≤ k.

ersetzt. Dabei wird eine Menge

k = 1: U ′ j = {y1,y2}; F ′ j = (z1 ∨y1 ∨y2)∧(z1 ∨y1 ∨y 2 )∧(z1 ∨y 1 ∨y2)∧(z1 ∨y 1 ∨y 2 ).

k = 2: U ′ j = {y}; F′ j = (z1 ∨z2 ∨y)∧(z1 ∨z2 ∨y).

k = 3: U ′ j = ∅; F′ j

= cj.

k > 3: U ′ j = {yi | 1 ≤ i ≤ k −3};

F ′ j = (z1 ∨z2 ∨y1)∧(y i ∨zi+2 ∨yi+1) k−4

i=1 ∧(y k−3 ∨zk−1 ∨zk).

Rein aussagenlogisch ist zu ersehen, dass F ′ genau dann erfüllbar ist, wenn auch F erfüllbar ist.

F ′ ist ersichtlich in 3SAT-Form. Die Konstruktion ist polynomiell, denn O(m·n) ist eine obere Schranke

für die Länge von F ′ . 4.4.6

Beispiel:

F = (u1 ∨u2)


k=2,U ′ 1 ={y}

∧ (u1 ∨u2 ∨u3 ∨u4 ∨u5 ∨u6)


k=6,U ′ 2 ={y1,y2,y3}

F ′ = (u1 ∨u2 ∨y)∧(u1 ∨u2 ∨y) ∧ (u1 ∨u2 ∨y1)∧(y 1 ∨u3 ∨y2)∧(y 2 ∨u4 ∨y3)∧(y 3 ∨u5 ∨u6).

Ende des Beispiels

In diesem Abschnitt haben wir mehrere Probleme als NP-vollständig nachgewiesen. Dabei haben wir

bei einem einzigen, CNF−SAT, die Definition der NP-Vollständigkeit angewendet, und das war etwas

kompliziert und vor allem sehr technisch. Bei den anderen wurde Korollar 4.3.3(b) verwendet, was im

Allgemeinen die übliche (wenn nichtsogar,außerbei Satz 4.4.5,die einzig übliche) Methode ist, die Eigenschaft

der NP-Vollständigkeit zu zeigen. Korollar4.3.3(b) setzt allerdings voraus, dass ein NP-vollständiges

Problem bereits bekannt ist, und das war in den bisher betrachteten Fällen das Problem CNF−SAT.

Sei L ein Problem, dessen NP-Vollständigkeit nachgewiesen werden soll. Im Allgemeinen verlangt die

Anwendung von Korollar 4.3.3(b) drei Schritte:

(1) Man suche ein geeignetes Problem L ′ , dessen NP-Vollständigkeit bereits bekannt ist.

(2) Man zeige L ′ ≤p L. Nach diesem Schritt ist die NP-Härte von L gesichert. Intuitiv: ” wenn L ′ schon

NP-hart ist, dann erst recht L“.

(3) Man zeige L ∈ NP. Erst nach diesem Schritt ist die NP-Vollständigkeit von L bewiesen.

Dabei ist es ganz wichtig, die Reduktionsrichtung in Schritt (2) zu beachten. Beweist man stattdessen

L ≤p L ′ , kann man überhaupt keine Aussage machen!

Unter den vielen praktisch bekannten Fällen solcher Beweise gibt es solche, in denen Schritt (3) einfach

ist, Schritt (2) dagegen relativ kompliziert; aber auch solche, in denen es sich umgekehrt verhält, dass

nämlich die Reduktion einfach zu beweisen ist, die Aussage L ∈ NP dagegen nicht so einfach; und auch

solche, in denen beide Aussagen einfach oder auch beide Aussagen kompliziert sind.


Komplexitätstheorie - Wintersemester 2010/2011 81

4.5 Einige NP-vollständige Probleme

Das Problem 4.1.1 (Hamiltonpfad) kann folgendermaßen abgewandelt werden:

Problem 4.5.1 Hamiltonscher Kreis ( HC , für Hamiltonian circuit)

Gegeben: Ein endlicher (ungerichteter) Graph Knoten.

Frage: Gibt es einen Kreis in dem Graphen, d.h. einen geschlossenen Kantenzug, der jeden Knoten

genau einmal trifft? 4.5.1

Lemma 4.5.2 HP ist auf HC poynomiell reduzierbar

Es gilt HP ≤p HC.

Beweis: Zu einem Graphen G = (V,E) sei v /∈ V und sei G der Graph G = ( V, E) mit

V = V ∪{v} und E = E ∪{(v,v) | v ∈ V}.

Dann ist die Funktion f von Graphen auf Graphen mit f: G ↦→ G sicher polynomiell, und außerdem gilt:

G hat einen Hamiltonpfad genau dann, wenn G einen Hamiltonkreis hat.

Zu (⇒): Sei w ein Hamiltonpfad in G. Dann hat w entweder |V| − 1 Kanten oder |V| Kanten; längere

oder kürzere Hamiltonpfade kann es nicht geben. 1. Fall: w hat |V|−1 Kanten. Dann kann w mit zwei

Kanten, die von den beiden Endpunkten des Pfades über v führen, zu einem Hamiltonkreis in G ergänzt

werden. 2. Fall: w hat |V| Kanten. Dann ist w ein Hamiltonkreis in G, und durch Entfernen einer Kante

ergibt sich ein Hamiltonpfad mit |V|−1 Kanten in G, so dass dieser Fall auf den 1. Fall zurückgeführt

werden kann.

Zu (⇐): Falls w ein Hamiltonkreis in G ist, können die beiden Kanten, die über v führen, entfernt werden,

so dass sich ein Hamiltonpfad in G ergibt.

Also gilt HP ≤p HC mittels f. 4.5.2

Problem 4.5.3 Knotenüberdeckung KÜ

Gegeben: Ein ungerichteter endlicher Graph G = (V,E) und eine Zahl K ∈ N mit K ≤ |V|.

Frage: Gibt es eine Knotenüberdeckung von G mit der Größe höchstens K?

Dabei heißt V ′ ⊆ V eine Knotenüberdeckung von G genau dann, wenn für alle {x,y} ∈ E gilt:

x ∈ V ′ ∨ y ∈ V ′ .

Die Abbildung 4.4 zeigt ein Beispiel. 4.5.3

Lemma 4.5.4 KÜ liegt in NP

KÜ ∈ NP.


82 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

K = 1: ja

K = 1: nein

K = 2: ja

Abbildung 4.4: Eine Ja-Instanz (links) und eine Ja- und eine Nein-Instanz (rechts) von KÜ

Beweis: Durch folgenden nichtdeterministischen Algorithmus:

• Rate V ′ mit |V ′ | ≤ K.

• Prüfe, ob V ′ die Bedingungen erfüllt. 4.5.4

Problem 4.5.5 Clique CLIQUE

Gegeben: Ein ungerichteter Graph G = (V,E) und eine Zahl J ∈ N mit J ≤ |V|.

Frage: Gibt es eine Clique in G mit der Größe mindestens J?

Dabei heißt V ′ ⊆ V eine Clique von G genau dann, wenn für alle x,y ∈ V ′ gilt: {x,y} ∈ E.

Die Abbildung 4.5 zeigt ein Beispiel. 4.5.5

J = 2: ja

J = 3: ja

J = 4: nein

Abbildung 4.5: Zwei Ja-Instanzen und eine Nein-Instanz von CLIQUE

Problem 4.5.6 Unabhängigkeitsmenge UM

Gegeben: Ein Graph G = (V,E) und eine Zahl J ∈ N mit 0 < J ≤ |V|.

Frage: Gibt es eine Unabhängigkeitsmenge V ′ ⊆ V mit |V ′ | ≥ J?

Dabei heißt V ′ ⊆ V Unabhängigkeitsmenge, falls ∀u,v ∈ V ′ : {u,v} /∈ E. 4.5.6

Man zeigt leicht analog zu Lemma 4.5.4, dass auch CLIQUE und UM in NP liegen. Die drei genannten

Probleme sind auf Grund des folgenden Lemmas polynomiell aufeinander reduzierbar:


Komplexitätstheorie - Wintersemester 2010/2011 83

Lemma 4.5.7 Polynomielle Reduktion von KÜ, CLIQUE und UM

Sei G = (V,E) ein Graph und sei V ′ ⊆ V. Dann sind äquivalent:

(i) V ′ ist Knotenüberdeckung.

(ii) V \V ′ ist Unabhängigkeitsmenge.

(iii) V \V ′ ist Clique im Komplementgraph G C = (V,(V×V)\E) von G.

Beweis: Sehr leicht zu sehen. 4.5.7

Also zieht jeder Algorithmus zur Lösung eines der Probleme KÜ, CLIQUE oder UM unmittelbar auch

einen Algorithmus zur Lösung der beiden anderen nach sich, denn der Komplementgraph ist polynomiell

konstruierbar. Die drei genannten Probleme sind also polynomiell aufeinander reduzierbar.

Wir zeigen im Folgenden die NP-Vollständigkeit des Problems Knotenüberdeckung.

Satz 4.5.8 NP-Vollständigkeit von KÜ

KÜ ist NP-vollständig.

Beweis: Dass KÜ in NP liegt, ist, wie gesagt, einfach zu zeigen: man rät eine Menge V ′ ⊆ V und prüft

die gewünschte Eigenschaft. Dies ist kein deterministischer polynomieller Algorithmus, weil es zu einer

Menge exponentiell viele (in der Anzahl der Elemente) Teilmengen gibt.

Um die NP-Härte zu zeigen, reduzieren wir von 3SAT, d.h., wir zeigen 3SAT ≤p KÜ.

Sei F = c1∧...∧cm eine Instanz von 3SAT mit Variablen U = {u1,...,un}. Wir konstruiereneinen Graphen

G = (V,E) und eine Zahl K ≤ |V|. Für jede Variable ui ∈ U führen wir zwei Knoten Vi = {ui,ui}

und eine Kante Ei = {{ui,ui}} ein. Jede Knotenüberdeckung muss mindestens ui oder ui enthalten. Für

jede Klausel cj in F (|cj| = 3!) führen wir einen Teilgraphen (V ′

j ,E′ j

V ′

j

E ′ j

= {a1[j],a2[j],a3[j]}

= {{a1[j],a2[j]},{a1[j],a3[j]},{a2[j],a3[j]}}

Jede Überdeckung muss mindestens zwei Knoten aus V ′

j enthalten.

Sei cj = {xj,yj,zj} mit den Literalen xj,yj,zj.

Wir führen neue Kanten E ′′

j ein:

E ′′

j

= {{a1[j],xj},{a2[j],yj},{a3[j],zj}}.

Dann setzen wir K = n+2m und G = (V,E) mit

V = n

Vi ∪ m

V ′

i=1

j=1

E = n

Ei ∪ m

i=1

Beispiel: (siehe Abbildung 4.6)

U = {u1,u2,u3,u4}

j

(E

j=1

′ j ∪E′′

j ).

F = (u1 ∨u3 ∨u4)∧(u1 ∨u2 ∨u4).

) ein:


84 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

(G,V) hat offenbar eine Überdeckung der Größe K (das ist die minimale Größe für eine Überdeckung)

genau dann, wenn F erfüllbar ist. 4.5.8

Aus Lemma 4.5.7 und Satz 4.5.8 folgt direkt (natürlich mit Hilfe von Korollar 4.3.3(b)):

Korollar 4.5.9 NP-Vollständigkeit von CLIQUE und UM

CLIQUE und UM sind NP-vollständig. 4.5.9

u1 u1 u2 u2 u3 u3 u4 u4

a2[1] a2[2]

a1[1] a3[1] a1[2] a3[2]

Abbildung 4.6: Beispiel zur Reduktion von 3SAT auf KÜ

Jetzt benutzen wir KÜ, um die NP-Vollständigkeit des Problems 4.5.1 (HC) zu zeigen:

Satz 4.5.10 NP-Vollständigkeit von HC

HC ist NP-vollständig.

Beweis:

K = 8

HC ∈ NP: Man rät eine Folge von Kanten (genau so viele, wie es Knoten gibt) und prüft in Polynomzeit,

ob diese Folge von Kanten einen Hamiltonscher Kreis darstellt.

KÜ ≤p HC: Sei G = (V,E) und K ≤ |V| eine Instanz von KÜ. Wir konstruieren einen Graphen

G ′ = (V ′ ,E ′ ) mit der Eigenschaft: G ′ hat einen Hamilton-Kreis genau dann, wenn G eine Knotenüberdeckung

≤ K hat.


Komplexitätstheorie - Wintersemester 2010/2011 85

(u,e,1)

(u,e,2)

(u,e,3)

(u,e,4)

(u,e,5)

(u,e,6)


u


v

(v,e,1)

(v,e,2)

(v,e,3)

(v,e,4)

(v,e,5)

(v,e,6)

Abbildung 4.7: Beispiel zum Hamiltonschen Kreis

G ′ hat, per definitionem, K ” Auswahlknoten“ a1,...,aK. Außerdem enthält G ′ für jede Kante e = {u,v}

in G eine ” Test-Komponente“ der Form wie in Abbildung 4.7 mit ” Schnittstellen“ (u,e,1), (u,e,6),

(v,e,1), (v,e,6). Die Hamiltonschen Kreise können eine der drei Formen aus Abbildung 4.8 haben.

Weitere Kanten: Sei v ein Knoten in G, seien e 1 v,...,e g(v)

v die an v liegenden Kanten in G, wobei g(v)

der Grad von v ist. Für alle v ∈ V werden die Kanten

{(v,e i v ,6),(v,e i+1

v ,1)} | 1 ≤ i < g(v)

eingeführt. Schließlich wird G ′ mit den Kanten


{ai,(v,e 1 v,1)},{ai,(v,e g(v)


v ,6)} | 1 ≤ i ≤ K und v ∈ V

vervollständigt.

(ein v-Weg in G ′ pro Knoten v in G,

d.h.: genau alle (x,y,z) mit x = v liegen auf dem v-Weg)

(Endpunkte des v-Wegs)

Diese Konstruktion ist polynomiell. Außerdem hat G ′ einen Hamiltonschen Kreis genau dann, wenn G

eine Knotenüberdeckung der Größe K hat. Dies ist nicht ganz offensichtlich, aber auch nicht allzu schwer

einzusehen. Beweisskizze:

Zu (⇒:) Die Knoten a1,...,aK partitionieren einen gegebenen Hamilton-Kreis in K Abschnitte, die

jeweils genau einem Knoten in G zugeordnet sind.


86 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

u v u v u v

” u, aber nicht v ist überdeckt“

” u und v sind überdeckt“

Abbildung 4.8: Hamiltonsche Kreise

” v, aber nicht u ist überdeckt“

Zu (⇐:) Sei V ′ mit (o.B.d.A.) |V ′ | = K eine Knotenüberdeckung von G. Wähle für eine Kante {u,v}

eine der drei Möglichkeiten in Abbildung 4.8, je nachdem, ob {u,v}∩V ′ gleich {u}, gleich {u,v} oder

gleich {v} ist. 4.5.10

e1 e2 e3 e4

Beispiel: G =

v1 v2 v3 v4 v5

Die Konstruktion liefert den Graphen G ′ in Abbildung 4.9.

Hier ist ein Hamilton-Kreis zum Beispiel in Abbildung 4.9:

a1 — A — zu e1 gehörige Komponente

— zu e2 gehörige Komponente

— B — a2 — C — zu e3 gehörige Komponente

— zu e4 gehörige Komponente — D —

a1

Ende des Beispiels

mit K = 2 (und V ′ = {v2,v4})

Satz 4.5.10 impliziert einen zweiten Beweis von Lemma 4.5.2, d.h. von HP ≤p HC, denn es gilt HP ≤p

CNF−SAT nach Satz 4.4.5, CNF−SAT ≤p 3SAT nach Satz 4.4.6, 3SAT ≤p KÜ nach Satz 4.5.8

und KÜ ≤p HC nach Satz 4.5.10.

Satz 4.5.11

(1) TS ist NP-vollständig.

(2) HP ist NP-vollständig.


Komplexitätstheorie - Wintersemester 2010/2011 87

a1

a2

a1

a2

A

v1 v2

e1

a1

a2

(v2)

a1

a2

a1

...

B

v2 v3

e2

a1

a2

(v3)

a1

a2

C

a2

...

v3 v4

e3

a1

a2

(v4)

D

v4 v5

für v1: e1; für v2: e1, e2; für v3: e2, e3

für v4: e3, e4; für v5: e4

Abbildung 4.9: Konstruktion von Hamiltonschen Kreisen

(3) HP(u,v) (Hamiltonscher Pfad von u nach v) ist NP-vollständig.

Dabei ist HP(u,v) wie HP definiert, außer dass Knoten u und v als Teil der Instanz vorgegeben

werden und dass nach der Existenz eines Hamiltonpfades von u nach v gefragt wird.

(4) Alle drei Hamilton-Probleme bleiben NP-vollständig für gerichtete Graphen.

Beweis:

(1) folgt aus Satz 4.5.10 und einer trivialen Reduktion HC ≤p TS (wähle Kantengewicht 1 und k gleich

Anzahl der Knoten).

(2) und (3) können mit einer Modifikation des Arguments aus Satz 4.5.10 bewiesen werden.

Für (4) kann die folgende Transformation benutzt werden: jede ungerichtete Kante {u,v} wird durch

zwei gerichtete Kanten (u,v) und (v,u) ersetzt. 4.5.11

Satz 4.5.11(2) zieht auch HC ≤p HP, d.h., die Umkehrung von Lemma 4.5.2, nach sich.

a1

a2

e4

a1

a2

a1

a2


88 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

4.6 Weitere NP-vollständige Probleme

Problem 4.6.1 Dreidimensionales Matching 3DM

Gegeben: Drei paarweise disjunkte Mengen W, X, Y mit |W| = |X| = |Y| = q und eine Menge

M ⊆ W ×X ×Y.

Frage: Enthält M ein Matching M ′ ?

Dabei heißt eine Teilmenge M ′ ⊆ M ein Matching, wenn |M ′ | = q und

∀(w,x,y),(w ′ ,x ′ ,y ′ ) ∈ M ′ : (w = w ′ ∨x = x ′ ∨y = y ′ ) ⇒ (w,x,y) = (w ′ ,x ′ ,y ′ )

gilt. 4.6.1

Beispiele mit q = 2: W = {1,2}, X = {3,4}, Y = {5,6}

Ja-Instanz: M = {(1,3,5),(1,4,5),(2,3,6),(2,4,6)}

M ′ z.B. = {(1,3,5),(2,4,6)}

oder = {(1,4,5),(2,3,6)}

Nein-Instanz: M = {(1,3,5),(1,4,5),(1,3,6),(1,4,6)}

M ′ = ??

Satz 4.6.2 NP-Vollständigkeit von 3DM

3DM ist NP-vollständig.

Beweis:

3DM ∈ NP: In einer nichtdeterministischen Lösung wird eine Teilmenge der Größe q von M geraten

und die gewünschte Eigenschaft wird in Polynomzeit geprüft.

3SAT ≤p 3DM: Seien die Variablenmenge U = {u1,...,un} und die Formel F = c1 ∧ ... ∧ cm mit

|cj| = 3 für alle 1 ≤ j ≤ m eine Instanz von 3SAT.

Im Rest des Beweises werden disjunkte Mengen W,X,Y mit |W| = |X| = |Y| und M ⊆ W ×X×Y

so konstruiert, dass M genau dann ein Matching hat, wenn F erfüllbar ist.

M enthält drei Gruppen von Tripeln:

” Wahrheitswert-Bestimmung“: Tt i ,Tf i (1 ≤ i ≤ n)

” Erfülltheits-Test“: Cj (1 ≤ j ≤ m)

” Sonstige“: G


Komplexitätstheorie - Wintersemester 2010/2011 89

Wir definieren Mengen W, X und Y folgendermaßen:

W = {ui[j],ui[j] | 1 ≤ i ≤ n,1 ≤ j ≤ m} |W| = 2mn

X = A •∪S1 •∪G1 mit

A = {ai[j] | 1 ≤ i ≤ n,1 ≤ j ≤ m}

S1 = {s1[j] | 1 ≤ j ≤ m}

G1 = {g1[j] | 1 ≤ j ≤ m(n−1)}

Y = B •∪S2 •∪G2 mit

B = {bi[j] | 1 ≤ i ≤ n,1 ≤ j ≤ m}

S2 = {s2[j] | 1 ≤ j ≤ m}

G2 = {g2[j] | 1 ≤ j ≤ m(n−1)}

M =

n

i=1

Ti


m

∪⎝

j=1

Cj


⎠∪G mit:

T t

i = {(ui[j],ai[j],bi[j]) | 1 ≤ j ≤ m}

T f

i = {(ui[j],ai[j+1],bi[j]) | 1 ≤ j < m} ∪ {(ui[m],ai[1],bi[m])}

Ti = T t

i ∪Tf

i

Beispiel für m = 4 und eine Variable u = ui: siehe Abbildung 4.10.

|X| = mn + m

+m(n−1)

= 2mn

|Y| = 2mn

Wahrheitswertbestimmung

Für ein Matching müssen entweder alle -Tripel oder alle -Tripel genommen werden. Der erste

Fall entspricht, per definitionem, der Belegung B(u) = true, der andere der Belegung B(u) = false.

Allgemein: Ein Matching M ′ ⊆ M definiert eine Belegung B : U → {false, true} mit B(ui) = true

genau dann, wenn T t

i ⊆ M′ (d.h., auch genau dann, wenn T f

i ∩M′ = ∅).

Erfülltsein-Tests: Man definiert drei Tripel für jede Klausel cj in F, mit zwei ” internen“ Elementen

s1[j] ∈ X und s2[j] ∈ Y, je nachdem, ob ui bzw. ui in cj vorkommen: (beachte |cj| = 3 !)

Allgemein sei für jedes j mit 1 ≤ j ≤ m:

Cj = {(ui[j],s1[j],s2[j]) | ui ∈ cj} ∪ {(ui[j],s1[j],s2[j]) | ui ∈ cj}

Falls beispielsweise

dann

c2 = {u1,u3,u8},

C2 = { (u1[2],s1[2],s2[2]), (u3[2],s1[2],s2[2]), (u8[2],s1[2],s2[2]) }.

Wirkungsweise: Ein Matching M ′ wählt genau ein Tripel aus Cj aus. Dies ist nur dann möglich, wenn

für das ausgewählte ui die Belegung so ist, dass cj wahr gemacht wird.


90 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

s1[2]

s2[2]

u[2]

u[1]

u[2]

b[1]

a[2]

u[1]

a[1]

b[4]

b[2] a[4]

a[3] b[3]

u[3]

u[4]

u[3]

Abbildung 4.10: Skizze zum dreidimensionalen Matching

Sonstige: Mit dem Obigen könnte man bereits eine ” Art“ Matching M ′′ konstruieren, nämlich eine

Menge von Tripeln, die einer erfüllenden Belegung entsprechen (falls eine solche existiert). Das

wäre aber noch kein Matching im formalen Sinn, denn es gibt eventuell noch einige ” unverheiratete“

Elemente; dazu beachteman dasnachfolgende Beispiel. Die Tripelmenge Gstellt zuletzt sicher,dass

M ′′ zu einem Matching M ′ erweitert werden kann.

Beispiel in Abbildung 4.11:

n = 3, m = 2, U = {u1,u2,u3}, F = {{u1,u2,u3},{u1,u2,u3}} (bzw. F = (u1∨u2∨u3)∧(u1∨u2∨u3)).

Hier wählen wir zum Beispiel M ′′ u1=1 u2=0 u3=1


⊇ { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 }

Danach sind m·(n−1) = 2·2 = 4 Elemente unverheiratet“, nämlich u2[1],u2[2],u3[1],u3[2].


Wir ergänzen also M ′′ zu M ′ durch Hinzunahme (z.B.) der Tripel

(u2[1],g1[1],g2[1]), (u2[2],g1[2],g2[2]), (u3[1],g1[3],g2[3]) und (u3[2],g1[4],g2[4]).

Allgemein sei

G = { (ui[j],g1[k],g2[k]), (ui[j],g1[k],g2[k]) | 1 ≤ k ≤ m(n−1), 1 ≤ i ≤ n, 1 ≤ j ≤ m } .

u[4]


Komplexitätstheorie - Wintersemester 2010/2011 91

u1[1]

u1[1] u1[2]

7

1

2

u1[2]

s1,s2[1]

u2[2]

u2[1]

u2[1] u2[2]

8

3 4

s1,s2[2]

C1 = { (u1[1],s1[1],s2[1]), (u2[1],s1[1],s2[1]), (u3[1],s1[1],s2[1]) }

C2 = { (u1[2],s1[2],s2[2]), (u2[2],s1[2],s2[2]), (u3[2],s1[2],s2[2]) }

M enthält genau

2mn


T

u3[1]

5

u3[1] u3[2]

6

u3[2]

Abbildung 4.11: Beispiel mit U = {u1,u2,u3} und F = {{u1,u2,u3},{u1,u2,u3}}

+ 3m


C

+ 2m 2 n(n−1)


G

Tripel, kann also in Polynomzeit konstruiert werden. Nur wenn F erfüllbar ist, kann es ein Matching

M ′ ⊆ M geben. Sei umgekehrt t: U −→ {false,true} eine F erfüllende Belegung. Wir konstruieren

folgendermaßen ein Matching M ′ . Für cj ∈ F sei z ∈ cj ein Literal mit t(z) = true. Dann setzen wir

M ′ =







m

∪ {zj[j],s1[j],s2[j]} ∪ G

j=1


T

t(ui)=true

t

i

T

t(ui)=false

f

i

mit einem geeigneten G ′ (wie im Beispiel). M ′ ist eines der im Allgemeinen mehreren möglichen Matchings.

4.6.2

Das folgende Problem kann als eine allgemeinere Version von 3DM aufgefasst werden.

Problem 4.6.3 Genaue 3-er-Mengen-Überdeckung X3C

Gegeben: Eine endliche Menge Z mit |Z| = 3·q und eine Menge C von dreielementigen Teilmengen

von Z.


92 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Frage: Gibt es eine Teilmenge C ′ ⊆ C, so dass jedes x ∈ Z in genau einer Menge aus C ′ vorkommt?

Eine Beispiel-Ja-Instanz:

Z = {1,2,3,4,5,6}

C = {{1,2,4},{3,5,6}


C ′

,{1,2,3}}

Indem man Z = W ∪X∪Y setzt, wird jede Instanz von 3DM zu einer Instanz von X3C. Matchings M ′

sind dabei eindeutig den Mengen C ′ zugeordnet. Daraus (und aus der Tatsache, dass es einen einfachen

polynomiellen guess-and-check-Test gibt) folgt sofort, dass auch X3C NP-vollständig ist.

Problem 4.6.4 Partition PARTITION

Gegeben: Eine endliche Menge A und ein Gewicht s(a) ∈ N\{0} für jedes Element a ∈ A.

Frage: Gibt es eine Teilmenge A ′ ⊆ A mit

a∈A ′ s(a) =

a∈A\A ′ s(a)?

Es sei daran erinnert, dass die Größe des Problems PARTITION in O(

a∈Alog(s(a))) liegt, weil wir

eine geeigneteDarstellungfürdie Zahlens(a) wählenwollen(alsonichtdie Bierdeckeldarstellung,sondern

mindestens die Binärdarstellung).

Nach TS ist dies übrigens das zweite Problem, welches neben kombinatorischen Parametern (Knoten,

Kanten usw.) auch Zahlen als Parameter hat, nämlich die Gewichte s(a). Bei TS gab es als Zahlen-

Parameter die Kantengewichte eines Graphen.

Zwischen den beiden Problemen gibt es den folgenden Unterschied. Die Tatsache, dass diese Zahlen (d.h.,

die Gewichte s(a) bei PARTITION bzw. die Kantengewichte bei TS) sehr groß werden können, hat

bei TS keinen Einfluss auf die NP-Härte, bei PARTITION aber sehr wohl. Wir kommen darauf noch

genauer zurück.

Beispiel: A = {a1,a2,...,a7}

Ende des Beispiels

s(a1) = 1, s(a2) = 5, s(a3) = 2, s(a4) = 2, s(a5) = 10, s(a6) = 3, s(a7) = 3

A ′ = {a1,a3,a5}



s(a) = 1+2+10 = 13

a∈A ′

Dies ist also eine Ja-Instanz.

Satz 4.6.5 NP-Vollständigkeit von PARTITION

PARTITION ist NP-vollständig.

A\A ′ = {a2,a4,a6,a7}



s(a) = 5+2+3+3 = 13

a∈A\A ′

4.6.3

4.6.4


Komplexitätstheorie - Wintersemester 2010/2011 93

Beweis:

PARTITION ∈ NP: Wir raten A ′ und prüfen in polynomieller Zeit die gewünschten Eigenschaften.

3DM ≤p PARTITION: Seien W,X,Y drei Mengen mit |W| = |X| = |Y| = q und sei M ⊆ W ×X×Y.

Hierdurch ist eine Instanz von 3DM gegeben.

Zu W,X,Y und M wird im folgenden Beweis eine Menge A konstruiert, sowie eine ” Größenfunktion“ s,

die jedem a ∈ A eine Zahl s(a) ∈ N\{0} derart zuordnet, dass A eine Teilmenge A ′ mit


s(a) =

a∈A ′

a∈A\A ′

s(a)

genau dann hat, wenn M ein Matching M ′ ⊆ M hat.

Seien W = {w1,...,wq}, X = {x1,...,xq}, Y = {y1,...,yq} und M = {m1,...,mk}.

A hat, per definitionem, k +2 Elemente:

A = {a1,...,ak} ∪ {b1,b2}.

Für ein Element a ∈ A wird die Größe s(a) von a binär dargestellt. Sei p = ⌈log 2 (k +1)⌉. Die Binärdarstellung

von s(a) besteht aus 3pq Bits, und zwar aus 3q ” Zonen“ von je p Bits (siehe Abbildung 4.12).

p Bits

... ... ...


p p p

w1 w2 wq x1 x2 xq y1 y2 yq

(Jede Zone hat genug Platz, um die Addition von höchstens k Binär-Einsen aufzunehmen.)

Abbildung 4.12: Darstellung von s(a)

Sei s(ai) betrachtet, sei mi = (w f(i),x g(i),y h(i)) (mit geeigneten Indexfunktionen f, g und h).

Definiere

s(ai) = 2 p(3q−f(i)) +2 p(2q−g(i)) +2 p(q−h(i)) ,

d.h. s(ai) hat eine 1 in den w f(i), x g(i), y h(i) zugehörigen Zonen, sonst überall 0. Diese Größen sind in

der Tat polynomiell konstruierbar.

Die Summen der einzelnen Zonen, über 1 ≤ i ≤ k, bleiben in Binärdarstellung stets innerhalb der Zonen;

deswegen war p so gewählt worden. Sei

3q−1

B = 2 pj

j=0

diejenige Binärzahl, die in jeder Zone eine 1 stehen hat. Dann gilt offenbar für jede Menge A ′ ⊆ {ai: 1 ≤

i ≤ k}:



s(a) = B gdw. {mi | ai ∈ A ′ } ist ein Matching.

a∈A ′


94 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Schließlich werden b1, b2 mit


k


k


s(b1) = 2 s(ai) −B und s(b2) = s(ai) +B

i=1

eingeführt. Betrachten wir eine Teilmenge A ′ ⊆ A mit

s(a) =

men gleich 4

2

· k

i=1

a∈A ′

a∈A\A ′

s(a). Dann müssen beide Sum-

s(ai) sein, und eine der beiden Mengen A

i=1

′ oder A\A ′ enthält b1, aber nicht b2. Die

restlichen Elemente müssen sich zu B aufsummieren, also einem Matching entsprechen. Umgekehrt gilt

dies auch, was den Beweis beendet. 4.6.5

Beispiel: Siehe Abbildung 4.13.

w1

w2

W X Y

x1

x2

m1

m3

Abbildung 4.13: Instanz von 3DM

m2

y1

y2

q = 2

k = 3

M (hat Matching

{m1,m3})

A hat hier 5 (= k +2) Elemente: A = {a1,a2,a3,b1,b2}. Die Größen s(a1), s(a2) und s(a3) sind in ihrer

binären Darstellung mit p = ⌈log 2 (k +1)⌉ = 2 in Abbildung 4.14 dargestellt.

Es gilt

Zone ≤ k ≤ 2p −1, weil für jedes aj, 1 ≤ j ≤ k höchstens 01 steht. Außerdem ist

3q−1

B = 2 pj =

j=0

5

2 2j = 0 1 0 1 0 1 0 1 0 1 0 1

j=0

Es gilt A ′ = {a1,a3} und a1 +a3 = B. Also ist {m1,m3} ein Matching. Das Gewicht von b1

ist s(b1) =

k



k


2 s(ai) −B. Das Gewicht von b2 ist s(b2) = s(ai) +B.

i=1

i=1

Ende des Beispiels.

Problem 4.6.6 Zerlegung in Dreiecke ZD

Gegeben: Ein Graph G = (V,E) mit |V| = 3·q.


Komplexitätstheorie - Wintersemester 2010/2011 95

s(a1) 0 0 0 1 0 1 0 0 0 1 0 0

w1 w2 x1 x2 y1 y2


s(a2) 0 1 0 0 0 0 0 1 0 1 0 0


eine Zone

s(a3) 0 1 0 0 0 0 0 1 0 0 0 1

m1 = (w2,x1,y1)

f(1) = 2, g(1) = h(1) = 1!

m2 = (w1,x2,y1)

m3 = (w1,x2,y2)

Abbildung 4.14: Die Größen s(ai) im Beispiel

Frage: Gibt es eine Zerlegung von V in disjunkte Mengen V1,V2,...,Vq mit je 3 Elementen, so dass

für alle Vi = {vi[1],vi[2],vi[3]} (mit 1 ≤ i ≤ q) gilt:

{ {vi[1],vi[2]} , {vi[2],vi[3]} , {vi[3],vi[1]} } ⊆ E ?

Beispiele: siehe Abbildung 4.15.

Nein-Instanz (q = 2): Ja-Instanz (q = 2):

Satz 4.6.7 NP-Vollständigkeit von ZD

ZD ist NP-vollständig.

Beweis:

Abbildung 4.15: Beispiele zur Zerlegung in Dreiecke

ZD ∈ NP: Durch einen (offensichtlichen) polynomiellen guess-and-check-Algorithmus.

ZD ist NP-hart: Wir benutzen das Problem 4.6.3 und zeigen X3C ≤p ZD.

4.6.6


96 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Sei Z eine Menge mit |Z| = 3·q und sei C eine Familie von dreielementigen Teilmengen von Z. Dies

definiert eine Instanz von X3C. Wir konstruieren einen Graphen G = (V,E) mit |V| = 3·q ′ , d.h., eine

Instanz von ZD, so dass Z genau dann eine genaue Überdeckung hat, wenn G in Dreiecke zerlegbar ist.

Sei ci ∈ C mit ci = {xi,yi,zi} ein Element von C. Dazu werden Knoten und Kanten wie in Abbildung

4.16 eingeführt.

ai[1]

ai[2]

ai[3]

ai[6]

ai[4] ai[5]

ai[9]

ai[7]

xi yi zi

ai[8]

Abbildung 4.16: Teilgraph für ein Element ci ∈ C in einer Instanz von X3C

G sei die Vereinigung dieser Graphen (Achtung: sie können an den unteren Rändern zusammenhängen).

Ohne Beschränkung der Allgemeinheit kann angenommen werden, dass jedes z ∈ Z in einem ci ∈ C

vorkommt (sonst liegt eine ” Nein“-Instanz von X3C vor). Also gilt

|V] = |Z|


unterer Rand

+9·|C|


Rest

= 3·q +9|C| = 3·q ′ mit q ′ = q +3·|C|.

Nehmen wir an, dass Z eine genaue Überdeckung C ′ ⊆ C hat. Dann ist die Zerlegung in Abbildung 4.17

eine Zerlegung in Dreiecke von G. Damit ist jeder Knoten in genau einem Dreieck.

Nehmen wir an, dass G eine genaue Zerlegung in Dreiecke hat. Dann konstruieren wir eine Menge C ′ ⊆ C

auf folgende Weise:

ci ∈ C ′ gdw. {ai[3],ai[6],ai[9]} ist ein Dreieck der Zerlegung.

Damit ist C ′ eine genaue Überdeckung von Z.

Somit gilt: (X,C) ist eine Ja-Instanz von X3C genau dann, wenn der entsprechende Graph eine Ja-

Instanz von ZD ist. Außerdem ist die Konstruktion polynomiell, was den Beweis beendet. 4.6.7

Problem 4.6.8 Rucksackproblem RUCK

Gegeben: Eine endliche Menge U, eine Größe s(u) ∈ N und ein Wert v(u) ∈ N für jedes u ∈ U, eine

obere Schranke B ∈ N für die Größe und eine untere Schranke K ∈ N für den Wert.

Frage: Gibt es eine Teilmenge U ′ ⊆ U mit


s(u) ≤ B und

v(u) ≥ K ?

u∈U ′

u∈U ′

Ein Beispiel ist in Abbildung 4.18 gezeigt.

4.6.8


Komplexitätstheorie - Wintersemester 2010/2011 97

Wenn ci ∈ C ′ :

Wenn ci/∈C ′ :

xi yi zi

xi yi zi

Satz 4.6.9 NP-Vollständigkeit von RUCK

RUCK ist NP-vollständig.

Beweis:

Abbildung 4.17: Fallunterscheidung für ci ∈ C

RUCK ∈ NP: Ein einfacher guess-and-check-Algorithmus.

RUCK ist NP-hart: Wir reduzieren folgendermaßen: PARTITION ≤p RUCK.

Sei A eine Menge und sei s(a) ∈ N für jedes a ∈ A (sei also eine Instanz von PARTITION gegeben).

Wir konstruieren daraus eine Instanz von RUCK.

U := A

s := s

v := s

B := K := 1


⎪⎬

Diese Konstruktion geht in polynomieller Zeit (o.B.d.A. gilt B ∈ N und K ∈ N,

ansonsten betrachten wir eine Streckung um den Faktor 2)

s(a) ⎪⎭

2

a∈A

Nehmen wir an, es gibt A ′ ⊆ A mit

a∈A ′

s(a) =

Dann


s(a) =

s(a) = 1

s(a) = B = K.

2

a∈A ′

a∈A\A ′

Wähle U ′ = A ′ . Damit

a∈A


s(u) =

s(a) = B ≤ B

u∈U ′

a∈A ′

a∈A\A ′

s(a).


98 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

B=500 l

K=8,4 MDM


v(u) =

s(a) = K ≥ K.

u∈U ′

a∈A ′

3 MDM

1.5 MDM

5 MDM 2 MDM

U{

200 l 10 l 400 l 50 l

Gold Diamanten Geld Edelsteine

( = Bestechung + Profit)

Abbildung 4.18: Beispiel zum Rucksackproblem

Nehmen wir andererseits an, es gibt U ′ ⊆ U (= A) mit

und


s(u) ≤ B = 1

s(a)

2

u∈U ′

a∈A


v(u) =

s(u) ≥ K = 1

s(a).

2

u∈U ′

u∈U ′

Wähle A ′ = U ′ . Dann

a∈A


s(a) =

≥ ∧ ≤


s(u) also = 1

s(a) =

2


a∈A ′

u∈U ′

a∈A

a∈A\A ′

Intuitiv kann PARTITION als ein Spezialfall von RUCK angesehen werden. 4.6.9

s(a).

Das nächste Beispiel unterscheidet sich von den vorhergehenden dadurch, dass

• ” ...∈ NP“ schwer,

• ” ...NP-hart“ aber leicht zu beweisen ist.

Problem 4.6.10 Integer Linear Programming ILP

Gegeben: Eine ganzzahlige n×k-Matrix A und ein ganzzahliger n-Vektor b.

Frage: Gibt es einen ganzzahligen k-Vektor x mit A·x ≥ b? 4.6.10


Komplexitätstheorie - Wintersemester 2010/2011 99

Bemerkung 1: Sei L eine Zahl mit A[i,j] ≤ L und b[i] ≤ L für alle i,j. Die Eingabegröße ist dann

O(n·k ·log 2(L)).

Bemerkung 2: Mit der etwas abgewandelten Frage ” Gibt es einen (rational-zahligen) k-Vektor x mit

Ax ≥ b?“ wird ILP zu LP (Lineare Programmierung). LP ist in P (Beweis ca. 1985). Die übliche

Simplexmethode zur Lösung von LP ist theoretisch zwar zeitexponentiell, in der Praxis aber oft

besser als alle zeitpolynomiellen Algorithmen, die seit 1985 bekannt sind.

Satz 4.6.11 NP-Vollständigkeit von ILP

ILP ist NP-vollständig.

Beweis: (Unvollständig.)

” ILP ist NP-hart“: Wir zeigen 3SAT ≤p ILP.

Sei U = {u1,...,un} und F = c1 ∧...∧cm eine Instanz von 3SAT. Wir bestimmen eine entsprechende

Instanz A,b von ILP. A hat eine Spalte für jedes Literal ui und ui (1 ≤ i ≤ n). Damit kann A·x ≥ b als

lineares Ungleichungssystem für die Literale aufgefasst werden. Für 1 ≤ i ≤ n führt man die folgenden

Ungleichungen ein:

ui +ui ≥ 1,

ui ≥ 0,

−ui −ui ≥ −1,

ui ≥ 0.

Damit werden genau entweder ui = 1, ui = 0 oder ui = 0, ui = 1 zugelassen. Für jede Klausel cj =

(xj ∨yj ∨zj) führt man die Ungleichung

xj +yj +zj ≥ 1

ein. Damit wird gefordert, dass nicht alle drei Literale gleich 0 sein dürfen.

Es ist klar, dass die Konstruktion polynomiell ist und dass das ILP genau dann eine Lösung hat, wenn

die gegebene 3SAT-Instanz erfüllbar ist.

Beispiel: U = {u1,u2,u3}, F = (u1 ∨u2 ∨u3)∧(u1 ∨u2 ∨u3)

A :

” ILP ∈ NP“: Schwer.

u1 u1 u2 u2 u3 u3

1 1 0 0 0 0

1 0 0 0 0 0

−1 −1 0 0 0 0

0 1 0 0 0 0

.

1 0 1 0 1 0

0 1 1 0 0 1


⎪⎬

⎪⎭

acht Zeilen

für u2, u2

bzw. u3, u3

} Zeile für u1 ∨u2 ∨u3

} Zeile für u1 ∨u2 ∨u3

b :

1

0

−1

0

. 1

1


⎪⎬

⎪⎭

}

}


100 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Man zeigt: falls Ax ≥ b überhaupt eine Lösung hat, dann existiert auch eine Lösung, die sich in polynomieller

Zeit in der Größe des Systems (d.h. in Zeit O(p(n·k·logL)), wobei p ein Polynom ist) hinschreiben

lässt. Es ist dann möglich, in polynomieller Zeit eine Lösung zu raten, und auch, in polynomieller Zeit

zu überprüfen, dass diese Lösung tatsächlich eine ist. 4.6.11

Vom nächsten Beispiel weiß man bereits seit Langem, dass es in NP liegt, aber erst seit ein paar Jahren,

dass es sogar in P liegt.

Problem 4.6.12 Primzahlen PRIMES

Gegeben: Die Binärdarstellung einer natürlichen Zahl z.

Frage: Ist z eine Primzahl? 4.6.12

Seit dem Jahr 2002 ist bekannt, dass PRIMES ∈ P gilt. Deswegen liegt PRIMES natürlich auch in NP.

Der Beweis von PRIMES ∈ P ist nicht ganz einfach und wird evtl. in einer späteren Version des

Skriptums genauer beschrieben. Der Beweis von PRIMES ∈ NP ist jedoch viel einfacher, zum Beispiel

durch den folgenden nichtdeterministischen Algorithmus.

Satz 4.6.13 PRIMES ist in NP

Es gilt PRIMES ∈ NP.

Beweis: Algorithmus: NTM; Eingabe: Zahl z


Idee: Fermat’s Satz: z > 2 ist prim ⇔ es gibt Zahl x, 1 < x < z, so dass

xz−1 ≡ 1 (mod z ) und ∀i,1 ≤ i < z −1: xi

(∗)

≡ 1 (mod z ).

if z = 2 −→ akzeptieren

z = 1 oder z ist gerade −→ verwerfen

z > 2 und z ist ungerade −→

• rate ein x, 1 < x < z


sonst zu

viele i’s

zwischen ⎪⎨

1 ≤ und

< z − 1

(siehe

(*), (**))

⎪⎩

fi

• prüfe, ob xz−1 ≡ 1 ( mod n ) (nein ⇒ verwerfen)

• rate p1,...,pk, 1 < pk < z −1

• prüfe (rekursiv), ob jedes pi Primzahl ist

• prüfe, ob z −1 = p1 ·...·pk

• prüfe, ob x [(z−1)/pj] ≡ 1 ( mod z) für alle 1 ≤ j ≤ k

(denn: aus x z−1 ≡ 1 (mod z) folgt, dass das kleinste l mit

x l ≡ 1 ( mod z) die Zahl z − 1 teilt. Außerdem gilt dann x al ≡

1 ( mod p) für alle a. Falls also ein l mit x l ≡ 1 ( mod p) existiert,

dann gibt es auch ein pj mit x [(z−1)/pj] ≡ 1 ( mod p).)

• wenn alle Bedingungen erfüllt sind, akzeptiere, sonst verwerfe.

4

Eingabelänge: log(z)! Zeitkomplexität ∈ O(log (z)) (∗∗) 4.6.13

In den folgenden Abschnitten betrachten wir die ” schwersten“, d.h. vollständigen Probleme in anderen

Problemklassen. Zunächst wenden wir uns der Klasse PSPACE zu.


Komplexitätstheorie - Wintersemester 2010/2011 101

4.7 PSPACE-vollständige Probleme

Die PSPACE-vollständigenProbleme sind vermutlich echt schwerer als die NP-vollständigen Probleme. Ein

grundlegendes PSPACE-vollständiges ist QBF, die ” Erfüllbarkeit quantifizierter Boolescher Formeln“.

Definition 4.7.1 Quantifizierte Boolesche Formeln

Eine quantifizierte Boolesche Formel (QBF) ist folgendermaßen strukturell definiert:

• Eine Konstante 0 oder 1 ist eine QBF; darin kommt keine Variable frei vor.

• Eine Variable x ist eine QBF; darin kommt x frei vor.

• Wenn E1, E2 zwei QBF sind, dann auch ¬E1, E1∨E2 und E1∧E2. Eine Variable x kommt in ¬E1

(bzw. in E1 ∨E2 oder in E1 ∧E2) frei vor gdw. sie in E1 (bzw. in E1 oder in E2) frei vorkommt.

• Wenn E eine QBF ist, dann sind auch ∃xE, ∀xE QBF. Eine Variable y kommt in ∃xE bzw. in

∀xE frei vor, wenn y = x und y kommt in E frei vor.

Sei E eine QBF ohne freie Variablen. Der Wert V(E) ∈ {0,1} von E ist rekursiv definiert:

V(0) = 0

V(1) = 1

V(¬E) = 1−V(E)

V(E1 ∨E2) = V(E1)∨V(E2)

V(E1 ∧E2) = V(E1)∧V(E2)

V(∃xE) = V(E[x ← 0])∨V(E[x ← 1])

V(∀xE) = V(E[x ← 0])∧V(E[x ← 1]),

wobei E[x ← 0] bzw. E[x ← 1] die gleichen Formeln sind wie E, außer dass alle freien Vorkommen von

x durch 0 bzw. durch 1 ersetzt sind. 4.7.1

Beispiel:

E = ∃x∀y(x∨y)

V(E) = V(∀y(0∨y))∨V(∀y(1∨y))

= (V(1∨0)∧V(1∨1))∨(V(0∨0)∧V(0∨1))

= (1∧1)∨(0∧1)

= 1.

Problem 4.7.2 Quantifizierte Boolesche Formel QBF

Gegeben: Eine quantifizierte Boolesche Formel E ohne freie Variablen.

Frage: Gilt V(E) = 1? 4.7.2

Bemerkung: Das Problem SAT ist ein Spezialfall von QBF, denn eine Boolesche Formel F mit m

Booleschen Variablen u1,...,um ist erfüllbar genau dann, wenn V(∃u1...∃unF) = 1 gilt. Daraus folgt

bereits, dass QBF NP-hart ist.

Gilt QBF∈NP? Das ist unbekannt und unwahrscheinlich.


102 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 4.7.3 PSPACE-Vollständigkeit von QBF

QBF ist PSPACE-vollständig.

Beweis:

” QBF∈PSPACE“: Sei E eine QBF ohne freie Variablen. Der Algorithmus in Abbildung 4.19 entscheidet

(wie man sehen wird: in polynomiellem Band), ob V(E) = 1 gilt.

Eingabe E :

v := Wert von(E); if v = 1 then akzeptieren else verwerfen fi.

Wert von(E) :

if E = 0 → return 0

E = 1 → return 1

E = ¬E1 → return 1−Wert von(E1)

E = E1 ∨E2 → return Wert von(E1)∨Wert von(E2)

E = E1 ∧E2 → return Wert von(E1)∧Wert von(E2)

E = ∃xE0 → return Wert von(E0[x ← 0])∨Wert von(E0[x ← 1])

E = ∀xE0 → return Wert von(E0[x ← 0])∧Wert von(E0[x ← 1])

fi

Abbildung 4.19: Ein rekursiver Algorithmus zur Auswertung einer QBF

Der Bandverbrauch dieses Algorithmus kann folgendermaßen abgeschätzt werden. Sei n die Länge von E

in einer geeigneten Codierung. Die Rekursionstiefe ist dann in O(n), denn die Formeln werden bei jedem

Auswertungsschritt kürzer (auch wenn es mehrere kürzere gibt); vgl. die Skizze in Abbildung 4.20.

∀x∃y∀z(x∧y)∨(x∧z)

∃y∀z(1∧y)∨(1∧z) ∃y∀z(0∧y)∨(0∧z)

∀z(1∧1)∨(1∧z) ∀z(1∧0)∨(1∧z) ∀z(0∧1)∨(0∧z) ∀z(0∧0)∨(0∧z)

(1∧1)∨(1∧0)

(1∧1)∨(1∧1)

(1∧0)∨(1∧0)

(1∧0)∨(1∧1)

...

(0∧1)∨(0∧0)

(0∧1)∨(0∧1)

(0∧0)∨(0∧0)

Abbildung 4.20: Skizze: algorithmische Auswertung einer QBF

(0∧0)∨(0∧1)


Komplexitätstheorie - Wintersemester 2010/2011 103

Jeder Aufruf der Prozedur benötigt O(n) Platz, um das aktuelle Argument zu speichern. Insgesamt

brauchtderAlgorithmuswegenderRekursiontiefevonO(n)alsoO(n2 )Platz(mitdemgleichenArgument

wie im Beweis des Satzes 3.4.6 von Savitch).

” QBF ist PSPACE-hart“: Dazu zeigt man: ∀A ∈ PSPACE: A ≤mQBF.

Sei A eine beliebige Sprache in PSPACE und sei M eine p(n)-bandbeschränkte DTM, die A akzeptiert

(wobei p ein Polynom ist). Wir wissen schon (wegen PSPACE ⊆ EXPTIME – siehe Satz 3.5.1(e) und wegen

Lemma 3.6.1), dass – ohne Beschränkung der Allgemeinheit – M auf beliebigen Eingaben der Länge n

höchstens exponentiell viele (d.h.: O(2n )) Schritte macht.

In der folgenden Beweisführung verwenden wir folgende Hilfsprädikate:

Config(α)

” α ist Konfiguration von M“

Equal(α,β)

” α und β sind die gleichen Konfigurationen“

Next(α,β)

” β ist unmittelbare Folgekonfiguration von α“

Initial(α,w)

” α ist Anfangskonfiguration mit Anfangsbandinschrift w“

Accepts(β)

” β ist akzeptierende Konfiguration“.

Weil M polynomiell bandbeschränkt ist, können diese Prädikate alle in polynomieller Zeit (in der Länge

der Eingabe w von M) geschrieben werden. Die genauen Definitionen sind hier weggelassen. Eine ganz

ähnliche Konstruktion wurde im Detail schon im Beweis von Satz 4.4.5 benutzt.

Wir konstruieren eine quantifizierte Boolesche Formel

Access 2 m (α,β),

wobei α,β (Vektoren von) freien Variablen sind, derart, dass Access 2 m (α,β)

(i) wahr ist genau dann, wenn α und β Konfigurationen von M codieren und β aus α in höchstens 2 m

Schritten erreicht werden kann; und

(ii) von einer Maschine in polynomieller Zeit (in m) geschrieben werden kann.

Analog zur Funktion erreichbar in Abbildung 3.8 wird Access 2 m induktiv definiert:

• m = 0: Access 2 0 (α,β) = Config(α) ∧ Config(β) ∧ (Equal(α,β) ∨ Next(α,β)).

• m−1 → m (m > 0):

Hier soll ausgedrückt werden, dass man β in M aus α in höchstens 2 m Schritten erreichen kann,

und das ist genau dann der Fall, wenn es eine Konfiguration γ gibt, so dass

– γ in ≤ 2 m−1 Schritten aus α erreichbar und

– β in ≤ 2 m−1 Schritten aus γ erreichbar ist.

1. (Fehl-)Versuch:

Access 2 m (α,β) = ∃γ: Config(γ)∧Access 2 m−1 (α,γ)∧Access 2 m−1 (γ,β)

Diese Definition erfüllt zwar (i), aber nicht (ii), denn

|Access 2 m | ≥ 2·|Access 2 m−1 |, (|...|=Länge)

also |Access 2 m | ≥ 2 m ·|Access 2 0 |,

d.h. keine Maschine kann Access 2 m in polynomieller Zeit schreiben.


104 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

2. (gültiger) Versuch: ( ” Trick“: Allquantoren helfen)

Access 2 m (α,β) =

∃γ:


⎪⎨

⎪⎩

Config(γ)∧∀α ′ ∀β ′





′ ′ (Equal(α ,α)∧Equal(β ,γ))

∨ (Equal(α ′ ,γ)∧Equal(β ′ ,β))


Access 2m−1 (α ′ ,β ′ )

Diese Definition erfüllt ebenfalls Bedingung (i). Außerdem erfüllt sie (ii), denn

|Access 2 m | = |Access 2 m−1 |+k, (Konstante k),

also |Access 2 m | = |Access 2 0 |+m·k.

Sei w eine Eingabe für M und sei z eine (zunächst beliebige) Zahl. Wir betrachten die Formel


Accepted(z,w) = ∃α∃β Initial(α,w)∧Accepts(β)∧Access 2 z·p(|w|)

(α,β) .

Diese Formel kann ebenfalls innerhalb polynomieller Zeit in |w| geschrieben werden.

Wegen der Konstruktion von M und weil M o.B.d.A. für Eingaben w der Länge |w| = n höchstens O(2 n )

Schritte macht, gibt es eine Konstante c (die unabhängig von w ist), so dass gilt:

w ∈ A ⇔ (Definition von A und M)

M akzeptiert w

⇔ (M ist p(n)-bandbeschränkt)

M akzeptiert w innerhalb p(|w|) Band

⇔ (Konstruktion von M)

M akzeptiert w in ≤ 2 c·p(|w|) Schritten

⇔ (Definition von Accepted(c,w))

V(Accepted(c,w)) = 1.

Sei f: Σ ∗ → Σ ∗ mit

w ↦→ f(w) = Codierung von Accepted(c,w) über Σ,

wobei c die soeben bestimmte Konstante ist, die nur von M und nicht von w abhängt. Dann gilt:

• w ∈ A gdw. f(w) ∈ QBF

• f(w) ist in polynomieller Zeit berechenbar.

Damit haben wir A ≤mQBF. 4.7.3

Das Problem QBF ist ähnlich grundlegend für die Klasse PSPACE wie das Problem SAT für die Klasse

NP. Es wird auch manchmal als QSAT ( ” quantifiziertes SAT“) bezeichnet. Die Auswertung von QBF-

Formeln wird dadurch verkompliziert, dass die Quantorenreihenfolge sehr wohl eine Rolle spielt. Die

Formel ∃x∀y(x ↔ y) ist zum Beispiel durchaus nicht das Gleiche wie die Formel ∀y∃x(x ↔ y).






⎪⎬

⎪⎭

(4.1)


Komplexitätstheorie - Wintersemester 2010/2011 105

Auch haben QBF und die Klasse PSPACE eine Beziehung zu verschiedenen mehr oder weniger bekannten

Spielen. Eine Gewinnstrategie in einem Zweipersonenspiel lässt sich oft besonders gut als Formel mit

alternierenden ∃- und ∀-Quantorenformalisieren.Beispielsweise kann 3×3-Tic-Tac-Toeals eine Formel in

QBF geschrieben werden. Dazu betrachtet man für Spielsituationen s und Züge bzw. Spielfeldpositionen

x,y primitive Prädikate

leer(s) : das 3×3-Spielfeld s ist leer

kreis(s,x,s ′ ) : durch Setzen eines Kreises auf Position x geht Situation s in s ′ über

kreuz(s,y,s ′ ) : durch Setzen eines Kreuzes auf Position y geht Situation s in s ′ über

kreisgewinnt(s) : in Situation s hat der Kreise spielende Spieler gewonnen

und die folgende Formel F:

F = leer(s0) →

∃x1[kreis(s0,x1,s1)∧

∀y1[kreuz(s1,y1,s2) →

∃x2[kreis(s2,x2,s3)∧

∀y2[kreuz(s3,y2,s4) →

∃x3[kreis(s4,x3,s5)∧

∀y3[kreuz(s5,y3,s6) →

∃x4[kreis(s6,x4,s7)∧

∀y4[kreuz(s7,y4,s8) →

∃x5[kreis(s8,x5,s9)∧kreisgewinnt(s9) ]]]]]]]]]

Dabei ist F eigentlich eine Vereinfachung, denn jedes xi und jedes yj benötigen eigentlich vier Bits und

damit auch jeweils vier Existenz- bzw. Allquantoren. Man könnte auch vor die siebente und neunte Zeile

noch einen Oder-Term (kreisgewinnt(si) ∨...) einfügen, mit i passend aus 5,7, um vorzeitige Gewinne

zu berücksichtigen. In jedem Fall gilt aber

V(F) = 0 ,

was bedeutet, dass es in 3×3-Tic-Tac-Toe keine Gewinnstrategie gibt – zumindest nicht für den Kreise

spielenden Spieler, wenn er anzieht, aber damit aus Symmetriegründen auch nicht für den Kreuze

spielenden Spieler, wenn dieser anzieht. Um formal zu sehen, dass es auch für den Nachziehenden keine

Gewinnstrategie gibt, müsste man eine andere Formel betrachten, die sich aus F im Wesentlichen durch

Vertauschen von ∃ mit ∀, von ∧ mit → und von kreisgewinnt mit kreuzgewinnt ergibt.

Ein bekanntes Spiel ist auch das Geographiespiel, dessen Name sich aus der populären Version ableitet:

eine Person gibt einen geographischen Begriff vor und reihum müssen die anderen Personen geographische

Begriffe nennen, die mit dem Endbuchstaben des vorgenannten Begriffs anfangen; dabei darf kein

Begriff doppelt genannt werden. Mathematisch-verallgemeinert kann das Spiel als ein Graph (V,E) mit

ausgezeichnetem Startknoten v0 angesehen werden. Als Zweipersonenspiel aufgefasst, beginnt zunächst

einer der beiden Spieler bei v0, und abwechslend nennt dann ein Spieler –ohne Wiederholungen– einen

Nachfolgeknoten des vom anderen Spieler im Zug davor genannten Knoten, solange, bis keine Nennungen

mehr möglich sind.

Problem 4.7.4 Geographiespiel GEO

Gegeben: Ein endlicher Graph (V,E) mit Startknoten v0 ∈ V.

Frage: Hat der bei v0 beginnende Spieler eine Gewinnstrategie? 4.7.4


106 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 4.7.5 PSPACE-Vollständigkeit von GEO

GEO ist PSPACE-vollständig.

Beweis:

GEO ∈ PSPACE: Jede Spielsituation benötigt O(|V| 2 ) Platz und es gibt maximal |V| verschiedene Spielsituationen,

weil die Anzahl der möglichen Züge maximal |V| ist. Damit ist der Platzbedarf polynomiell

beschränkt.

GEO ist PSPACE-hart: Durch QBF ≤p GEO, d.h. Reduktion von (nicht: auf!) QBF.

(Genauer Beweis hier weggelassen.) 4.7.5

Auf ähnliche Weise sind viele (Zweipersonen-, aber auch andere) Spiele untersucht worden. Spiele wie

GO oder SCHACH kann man nur pauschal untersuchen, weil die Eingabelänge ja der entscheidende

Komplexitätsparameter ist. Deshalb muss man für solche Spiele eine ” vernünftige“ Verallgemeinerung

auf ein n×n-Spielbrett definieren. Das ist trivial für GO und fast trivial für SCHACH. Für SCHACH

gibt es zwei Varianten, das normale Spiel nach heute gültigen Regeln und das Spiel SCHACHohne50,

bei dem die 50-Züge-Regel weggelassen ist. 1 Hier sind einige Ergebnisse. Jedes davon bezieht sich auf die

Frage, ob eine Gewinnstrategie für den Anziehenden existiert.

Satz 4.7.6 Andere Spiele

• GO ist PSPACE-hart.

• GOBANG ist PSPACE-vollständig.

• SCHACH ist in PSPACE.

• SCHACHohne50 ist DEXT-vollständig.

• DAME ist DEXT-vollständig.

• HEX ist PSPACE-vollständig. 4.7.6

Vorsicht: Diese Komplexitätsmaße besagen wenig über die wirkliche Schwierigkeit beim Spielen; z.B.

ist DAME erheblich ” einfacher“ als SCHACH oder gar GO.

Da P DEXT(siehe Satz 3.5.1(g)), gilt somit auch, dass es weder für SCHACHohne50 noch für DAME

einen polynomiellen Algorithmus geben kann. Diese beiden Probleme sind die ersten beiden beweisbar

schweren Probleme, die wir kennengelernt haben (denn es kann ja im Prinzip noch P = NP = PSPACE

gelten, obwohl das sehr unwahrscheinlich ist).

Die Relevanz der 50-Züge-Regel besteht darin, dass man mit dieser Regel sicher sein kann, dass die

Spiellänge polynomiell in der Größe der Anfangsstellung beschränkt ist. Daher ist es kein Wunder, dass

SCHACH mit dieser Regel in PSPACE liegt. Ob Schachohne50 in PSPACE liegt, ist unbekannt; wenn

ja, gilt PSPACE = DEXT.

Wir betrachten jetzt ein anderes PSPACE-vollständiges Problem.

1 Die 50-Züge-Regel besagt, dass ein Spiel unentschieden ist, sobald 50 Züge (genauer gesagt, Doppelzüge, s.h., jeweils

einer pro Spieler) hintereinander ausgeführt wurden, in denen weder ein Bauer zieht noch eine Figur geschlagen wird.


Komplexitätstheorie - Wintersemester 2010/2011 107

Problem 4.7.7 Wortproblem für kontextsensitive Grammatiken KSGWP

Gegeben: Eine kontextsensitive Grammatik G und ein Wort w über dem Alphabet von G.

Frage: Gilt w ∈ L(G), d.h.: ist w ein Wort der von G generierten Sprache? 4.7.7

Satz 4.7.8 PSPACE-Vollständigkeit von KSGWP

KSGWP ist PSPACE-vollständig.

Beweis:

” KSGWP∈PSPACE“:

Sei Lcs die Sprache, die aus allen Wörtern x#w besteht, wobei x ein Code für eine kontextsensitive

Grammatik Gx, # ein unbenutztes, neues Trennsymbol und w ein Code für ein Wort aus der Sprache

von Gx ist. Es wird angenommen, dass alle Symbole der Grammatik sind gleich lang codiert werden. Wir

betrachten die folgende NTM, die eventuell mehrere Spuren oder Bänder haben kann:

Input x#y (wobei y ein codiertes Wort über dem Eingabealphabet von Gx ist);

rate eine Ableitung von Gx, in der keine Satzform länger als |y| ist

(und benutze dabei x, um Züge des Automaten zu bestimmen).

Wegen der Äquivalenz zwischen kontextsensitiven Grammatiken und LBA (linear beschränkten Automaten)

gilt: Wenn y ∈ L(Gx), dann existiert eine Ableitung der angegebenen Art. Mithin ist Lcs in

NSPACE(n), und damit (siehe Satz 3.5.1(c)) in PSPACE.

” KSGWP ist PSPACE-hart“:

Sei A ∈ PSPACE. A wird von einer DTM M mit Band p(n) akzeptiert, wobei p ein Polynom ist. Es sei


B = y$ p(|y|)

| y∈A ,

wobei $ ein neues Symbol ist Dadurch werden die Wörter in A künstlich verlängert, und man bekommt –

sofern die Verlängerung ” einfach“ zu akzeptieren ist – eine ” bessere“ Abhängigkeit des Bandverbrauchs

von der Eingabelänge. In diesem Fall ist B in DSPACE(n), da A in DSPACE(p(n)) ist.

Also kann B durch einen LBA akzeptiert werden. B ist daher kontextsensitiv. Sei G eine kontextsensitive

Grammatik für B und sei xB eine geeignete Codierung von G. Wir definieren eine Funktion f durch

f(y) = x#y$ p(|y|) .

Dann ist f eine polynomielle Reduktion von A auf Lcs, denn es gilt:

y ∈ A ⇔ (Def. B)

y$ p(|y|) ∈ B

⇔ (Def. Lcs und Def. xB)

x#y$ p(|y|) = f(y) ∈ Lcs.

Außerdem ist f polynomiell berechenbar, da es sich bei p um ein Polynom handelt. Also ist Lcs PSPACEhart.

4.7.8


108 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

4.8 Padding

Das Hinzufügen von $ im letzten Beweis, um ein Wort künstlich zu verlängern, ist als ” Padding-Technik“

bekannt. Durch diese Technik lassen sich einige weitere (Nicht-)Beziehungen zwischen Komplexitätsklassen

zeigen.

Was sollte man z.B. tun, um P = PSPACE zu beweisen? Wir wissen schon, dass P ⊆ PSPACE gilt. Also

sollte man PSPACE⊆ P zeigen. Da PSPACE =

i∈N DSPACE(ni ), muss man im Prinzip zeigen:

∀i∈N DSPACE(n i ) ⊆ P.

Eine einfachere Aussage genügt aber schon:

Satz 4.8.1

DSPACE(n) ⊆ P impliziert P = PSPACE.

Beweis: Annahme: DSPACE(n) ⊆ P. Wir zeigen dann PSPACE ⊆ P (das genügt).

Sei A ∈ PSPACE. Sei M eine p(n)-bandbeschränkte DTM (mit einem Polynom p), so dass A = L(M) gilt.

Wir betrachten nun eine Sprache B mit folgenden Eigenschaften:

• ein Wort v ∈ B ist w ∈ A plus ein genügend langer Suffix

• v wird in genauso viel Band wie w akzeptiert (sei s dieser Verbrauch; dann s ≤ p(|w|), und da v

länger als w ist, s ≤ p ′ (|v|) für ein kleineres Polynom p ′ ; wir zeigen: p ′ kann linear sein).

Genauer wird B folgendermaßen definiert:


B = w#$ p(|w|)

| w ∈ A

mit einem Trennsymbol # und Padding-Symbolen $. Sei M ′ die folgende Maschine:

Input v;

M ′ sucht #;

M ′ kopiert Wort w vor # auf einem Arbeitsband;

M ′ simuliert M auf w, akzeptiert v gdw. M w akzeptiert.

M ′ akzeptiert v ∈ B innerhalb p(|w|) Band, und

aus p(|w|) ∈ O(|v|) folgt L(M ′ ) ∈ DSPACE(n), also B ∈ DSPACE(n).

Aus der Annahme DSPACE(n) ⊆ P folgt jetzt B ∈ P.

Sei M ′′ die folgende Maschine:

Input w;

M ′′ berechnet p(|w|);

M ′′ schreibt v = w#$ p(|w|) auf ein Arbeitsband;

M ′′ simuliert M ′ auf v und akzeptiert w genau dann, wenn M ′ v akzeptiert.

Es gilt L(M ′′ ) = A, und da M ′ polynomiell zeitbeschränkt ist, ist auch M ′′ polynomiell zeitbeschränkt.

Daher ist A ∈ P, w.z.b.w. 4.8.1


Komplexitätstheorie - Wintersemester 2010/2011 109

Korollar 4.8.2

P = DSPACE(n).

Beweis:

P = DSPACE(n) ⇒ (Satz 4.8.1)

P = PSPACE

⇒ DSPACE(n) = P = PSPACE.

AberDSPACE(n) = PSPACEwidersprichtdem deterministischenBandhierarchiesatz(Satz 3.4.3).Also kann

P = DSPACE(n) nicht gelten, und es gilt stattdessen P = DSPACE(n). 4.8.2

Analog: Es gilt P = DSPACE(n r ) für jedes r.

Gilt P ≶ DSPACE(n)? Vielleicht liegen P und DSPACE(n) so zueinander: P DSPACE(n)

Satz 4.8.3

Wenn P = NP, dann gilt für alle zeitkonstruierbaren Funktionen f: DTIME(2 O(f) ) = NTIME(2 O(f) ).

Beweis: Seien P = NP und A ∈ NTIME(2 O(f) ). M sei eine NTM, die A in Zeit 2 O(f) = 2 c·f(n) (mit einer

Konstanten c) akzeptiert. Definiere


B = w#$ 2c·f(|w|)


| w∈A .

Sei M ′ wie vorher. M ′ akzeptiert v ∈ B innerhalb O(2 |w| ) Zeit, also innerhalb O(|v|) Zeit. Daher ist

B ∈ NTIME(n).

Aus der Annahme P = NP ergibt sich B ∈ P. Sei M ′′ wie vorher. Dann gilt L(M ′′ ) = A und M ′′ ist

O(2 |w| )-zeitbeschränkt. Daher ist A ∈ DTIME(2 O(n) ). 4.8.3

Korollar 4.8.4

P = NP impliziert DEXT = NEXT.

Beweis: Mit Satz 4.8.3 und DEXT =

DTIME(2cn ) und NEXT =

NTIME(2cn ). 4.8.4

c≥0

PS: Es ist unbekannt, ob aus DEXT = NEXT auch P = NP folgt.

4.9 Einige weitere Probleme

Problem 4.9.1 Inäquivalenz nichtdeterministischer endlicher Automaten INÄQ-NFA

Gegeben: Zwei nichtdeterministische endliche Automaten A1, A2.

Frage: Gilt L(A1) = L(A2)? 4.9.1

c≥0


110 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 4.9.2

INÄQ-NFA ist PSPACE-vollständig. 4.9.2

Reguläre Ausdrücke r über einem Alphabet Σ:

Syntax r Semantik L(r) ⊆ Σ ∗

∅ L(∅) = ∅

ε L(ε) = {ε}

a (∈Σ) L(a) = {a}

r1 +r2 L(r1 +r2) = L(r1)+L(r2)

r1r2 L(r1r2) = L(r1)L(r2)

r ∗ L(r ∗ ) = L(r) ∗

Problem 4.9.3 Unvollständigkeit regulärer Ausdrücke UNV-RA

Gegeben: Ein regulärer Ausdruck r über Σ.

Frage: Gilt L(r) = Σ ∗ ? 4.9.3

Beispiel mit Σ = {a,b}: (ab+ba) ∗ ( ” Ja“); (a+b) ∗ ( ” Nein“).

Satz 4.9.4

UNV-RA ist PSPACE-vollständig. 4.9.4

Als nächstes erwähnen wir zwei ” beweisbar noch schwerere“ Probleme.

Problem 4.9.5 Unvollständigkeit regulärer Ausdrücke mit Exponentiation UNV-RAE

Gegeben: Ein regulärer Ausdruck mit Exponentiation r über Σ.

Frage: Gilt L(r) = Σ ∗ ? 4.9.5

Dabei ist ein regulärer Ausdruck mit Exponentiation durch Erweiterung definiert:

Syntax r

.

r ↑ i

(wie für reg. Ausdr.)

(i Binärzahl)

Semantik L(r) ⊆ Σ ∗

.

L(r ↑ i) = L(r)...L(r)


i mal

Beispiel: L((a ↑ 11+b ↑ 11) ↑ 10) = {aaaaaa,aaabbb,bbbaaa,bbbbbb}.


Komplexitätstheorie - Wintersemester 2010/2011 111

Satz 4.9.6

UNV-RAE benötigt mindestens exponentielle Zeit und kann auch in polynomiellem Platz nicht gelöst

werden. 4.9.6

Eine Sprache der Prädikatenlogik 1. Stufe besteht aus einem Grundbereich (z.B. N), einer Menge von

Operationssymbolen (z.B. +, ∗), einer Menge von Prädikatensymbolen (z.B. n+1).

Beispiel 1: Die Menge der wahren Aussagen in (N,+,∗,=,


112 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Definition 4.9.10 Log-space-Reduzierbarkeit

Seien A1,A2 ⊆ Σ ∗ Sprachen. A1 heißt log-space-reduzierbar auf A2 genau dann, wenn es eine Funktion

f: Σ ∗ → Σ ∗ gibt mit

• f(x) ist (deterministisch) in log(|x|)-Band berechenbar,

• x ∈ A1 ⇔ f(x) ∈ A2. 4.9.10

Bezeichnung: A1 ≤log A2. Es gilt ≤log ⊆ ≤p wegen LOG⊆P.

Satz 4.9.11

(A2 ∈ P∧A1 ≤log A2 ⇒ A1 ∈ P) und (A2 ∈ NLOG∧A1 ≤log A2 ⇒ A1 ∈ NLOG). 4.9.11

Wir erinnern an Definition 4.3.1, wo die Begriffe C-hart und C-vollständig bezüglich einer Reduktionsrelation

≤ definiert wurden. Hier betrachten wir speziell die Relation ≤=≤log und die Sprachklassen P

und NLOG bzw., genauer gesagt, NSPACE(log(n)).

Problem 4.9.12 Leerheitsproblem für kontextfreie Grammatiken LEER-KFG

Gegeben: Eine kontextfreie Grammatik G.

Frage: Gilt L(G) = ∅? 4.9.12

Satz 4.9.13 (Ohne Beweis)

LEER-KFG ist P-vollständig bzgl. log-space-Reduktionen ≤log. 4.9.13

Auch das Wortproblem für kontextfreie Grammatiken ist P-vollständig bzgl. log-space-Reduktionen.

Es ist nicht bekannt, ob es ein k gibt, so dass LEER-KFG ∈ DSPACE(log k (n)) gilt. Sollte das der Fall

sein, wäre DSPACE(log k (n)) = P für dieses k.

Problem 4.9.14 Erreichbarkeitsproblem ERR

Gegeben: Ein gerichteter Graph mit Knoten {v1,...,vn}.

Frage: Gibt es einen Pfad von v1 nach vn? 4.9.14

Satz 4.9.15 (Ohne Beweis)

ERR ist NSPACE(log(n))-vollständig bzgl. log-space-Reduktionen ≤log. 4.9.15

Es ist nicht bekannt, ob ERR in DSPACE(log(n)) liegt; wenn ja, wäre DSPACE(log(n)) = NSPACE(log(n)).

Die Vollständigkeit der letzten beiden Problemebedeutet natürlich nicht, dasssie ” schwer“ sind; für beide

gibt es effiziente Algorithmen.

Weitere NSPACE(log(n))-vollständige Probleme bzgl. log-space:


Komplexitätstheorie - Wintersemester 2010/2011 113

Problem 4.9.16 Unerfüllbarbarkeit von Zweierklausel-CNF 2-NONSAT

Gegeben: Ein Boolescher Ausdruck in CNF mit maximal 2 Literalen pro Klausel.

Frage: Ist der Ausdruck unerfüllbar? 4.9.16

Problem 4.9.17 Zusammenhangsproblem SZ

Gegeben: Ein gerichteter Graph.

Frage: Ist der Graph stark zusammenhängend? 4.9.17

Vermischte weitere Informationen:

• Wenn P=NP, dann P∪{NP-vollständige Probleme} NP.

Noch ” schlimmer“: Es gibt dann unendlich viele p-Grade (≤p-Reduktionsklassen) zwischen P und

den NP-vollständigen Problemen.

• P=NP impliziert NP=co-NP.

• Seien A,B ⊆ Σ ∗ Sprachen.

A und B heißen p-isomorph gdw. es eine Bijektion f: Σ ∗ → Σ ∗ gibt mit

– f und f −1 sind in polynomieller Zeit berechenbar

– f(w) ∈ A ⇔ f(w) ∈ B.

Die p-Isomorphie ist eine symmetrische Relation und eine Verstärkung der p-Reduktion.

Berman-Hartmanis-Vermutung:

Je zwei NP-vollständige Probleme sind zueinander p-isomorph.

• Die Census-Funktion einer Sprache A ist definiert als

CA: N → N mit CA(n) = Anzahl der Wörter in A der Länge ≤ n.

Eine Sprache ist dünn (sparse) gdw. es ein Polynom p gibt mit CA(n) ≤ p(n).

Satz: Wenn es eine dünne NP-vollständige Sprache gibt, dann gilt P=NP.


114 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

4.10 Zusätze und Berichtigungen

Acknowledgement (Dezember 2010):

Dieser Abschnitt hat stark von Diskussionen mit Hans Fleischhack profitiert.

4.10.1 Inklusionsbeziehungen

Abbildung 4.21 zeigt eine gegenüber Abbildung 3.9 vervollständigte, zusammenfassende Übersicht über

die bekannten Inklusions- und Hierarchiebeziehungen. Dabei bedeutet ein Strich: Die tiefer stehende

Klasseist in der höherstehenden Klasseenthalten. Einigedieser Beziehungen wurden im Skript bewiesen,

andere (noch) nicht. Die nicht in Abschnitt 3.5 aufgeführten Klassen sind im Folgenden definiert:

POLYLOGSPACE =

k≥1 DSPACE((log(n))k )

DLBA =

k≥1 DSPACE(k·n)

LBA =

k≥1 NSPACE(k·n).

Die Klassenbezeichnungen sind nicht insgesamt standardisiert. Zum Beispiel wird die Klasse LOG auch

mit L bezeichnet, die Klasse NLOG mit NL, usw.

EXP=EXPTIME

PSPACE

NP

P

EXPSPACE (= NEXPSPACE)

NEXP=NEXPTIME

NL=NLOG

L=LOG

NE=NEXT

E=DEXT

LBA

DLBA

POLYLOGSPACE

Außerdem gilt:

P DEXT

DEXT EXPTIME

LBA PSPACE

POLYLOGSPACE DLBA

LOG POLYLOGSPACE

POLYLOGSPACE= P

POLYLOGSPACE= NP

DLBA = P

DLBA = NP

LBA = P

LBA = NP.

Abbildung 4.21: Inklusions- und Hierarchiebeziehungen zwischen wichtigen Komplexitätsklassen

Die beiden Hierarchiebeziehungen P DEXT und DEXT EXPTIME tauchten schon als Satz 3.5.1(g) auf,

wurden dort aber (noch) nicht ausführlich bewiesen (und folgen nicht direkt aus Satz 3.4.4). Sie gehen auf

ein Diagonalisierungsargument zurück, analog Satz 3.4.1 und Satz 3.4.3. Ein Beweis wird nachgetragen.

4.10.2 Translationen und feinere Hierarchiebeziehungen

Satz 3.4.4 hilft bei manchen Hierarchiefragen, bei anderen aber nicht.


Komplexitätstheorie - Wintersemester 2010/2011 115

Wir untersuchen beispielsweise die Beziehung zwischen DTIME(2 n ) und DTIME(3 n ). Natürlich gilt

DTIME(2 n ) ⊆ DTIME(3 n ), und wir überlegen, ob diese Inklusion echt ist, d.h., ob es eine Sprache in

DTIME(3 n ) gibt, die nicht in DTIME(2 n ) liegt. Um Satz 3.4.4 anzuwenden, multiplizieren wir die kleinere

der beiden Funktionen mit ihrem Logarithmus, d.h. bilden (2 n )·log(2 n ), und dividieren das Resultat, d.h.

n·2 n , durch die größere:

n·2 n

3 n = n·

2

3

n

Dieser Ausdruckstrebt mit wachsendem n gegen0, denn für jedes r > 0 liegt n·( 2

3 )n ab einem bestimmten

n (genauer: für n > (5/r)) zwischen 0 und r. Also greift Satz 3.4.4 und es gilt DTIME(2 n ) DTIME(3 n ).

Wir untersuchen andererseits die Beziehung zwischen DTIME(22n) und DTIME(22n +n ). Selbstverständlich

gilt DTIME(22n) ⊆ DTIME(22n +n 2 ), aber ist DTIME(2 n

) eine echte Teilmenge von DTIME(22n +n )? Satz 3.4.4

greift hier nicht, weil 22n, multipliziert mit seinem Logarithmus, gerade 22n +n ergibt. Der Bruch

2 2n

·log(22n) 22n +n

strebt also nicht gegen 0, sondern gegen 1; die Voraussetzungen von Satz 3.4.4 sind hier nicht erfüllt.

Der nächste Satz liefert eine Methode, wie man unter Umständen gegebene Inklusionsbeziehungen zwischen

Sprachklassen so ” auseinanderziehen“ kann, so dass Satz 3.4.4 dann doch wieder anwendbar wird.

Satz 4.10.1 Translationslemmata

(a) Wenn t1,t2,f zeitkonstruierbar sind und sowohl t2(n) ≥ n als auch f(n) ≥ n gelten, dann gilt auch

die folgende Implikation:

DTIME(t1(n)) ⊆ DTIME(t2(n)) ⇒ DTIME(t1(f(n))) ⊆ DTIME(t2(f(n))) ,

(b) Wenn s1,s2,f platzkonstruierbar sind und sowohl s2(n) ≥ n als auch f(n) ≥ n gelten, dann gilt

auch die folgende Implikation:

NSPACE(s1(n)) ⊆ NSPACE(s2(n)) ⇒ NSPACE(s1(f(n))) ⊆ NSPACE(s2(f(n))) ,

Analoge Resultate gibt es für DSPACE und NTIME.

Beweis: Wird nachgetragen. 4.10.1

Unter Benutzung von Satz 4.10.1(a) zeigen wir jetzt DTIME(22n) DTIME(22n +n ). Um dies zu beweisen,

nehmen wir

DTIME(2 2n +n ) ⊆ DTIME(2 2 n

) (4.2)

an und leiten einen Widerspruch her. Betrachten wir dazu f(n) = log(2 n + n). Es gilt f(n) ≥ n, und

daher erfüllt f die Voraussetzungen des Satzes 4.10.1. Wegen (4.2) und Satz 4.10.1(a) gilt

DTIME(2 2f(n) +f(n) ) ⊆ DTIME(2 2 n +n ), (4.3)


116 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

d.h., die rechte Seite von (4.3) ist genau die linke Seite von (4.2) – deswegen wurde f gerade so gewählt.

Aus der Transitivität von ⊆ folgt jetzt

DTIME(2 2f(n) +f(n) ) ⊆ DTIME(2 2 n

). (4.4)

Die linken und rechten Seiten sind ” weiter auseinander“ als zuvor, und deswegen greift jetzt Satz 4.10.1.

Wir vergleichen dazu die kleinere mit der größeren der beiden Funktionen, multiplizieren die kleinere mit

ihrem Logarithmus, bilden den Bruch

22n ·log(22n) 22f(n) +f(n) =

22n ·2n 2 2n +n ·(2 n +n) =

1

2 n +n

undsehen,dassdiesermitwachsendemngegen0geht.Dasbedeutet wegenSatz4.10.1einenWiderspruch

zur Inklusion (4.4). Mithin kann auch die Inklusion (4.2) nicht gelten, d.h., es gibt eine Sprache in

DTIME(22n +n 2 ), die nicht in DTIME(2 n

) liegt, was zu beweisen war.

Als letztes Beispiel zeigen wir, dass NSPACE(n 2 ) eine echte Teilmenge von NSPACE(n 3 ) ist. Das geht auf

ähnliche Weise durch ” Auseinanderziehen“. Hinzu kommt noch der Satz von Savitch, wodurch der Satz

3.4.3 über die deterministiche Platzhierarchie ins Spiel kommt.

Annahme: NSPACE(n 3 ) ⊆ NSPACE(n 2 ). Wegen Satz 4.10.1(b) mit f(n) = n 2 : NSPACE(n 6 ) ⊆ NSPACE(n 4 ).

Nochmal wegen Satz 4.10.1(b), mit f(n) = n 3 : NSPACE(n 9 ) ⊆ NSPACE(n 6 ). Daher

NSPACE(n 9 ) ⊆ NSPACE(n 6 ) ⊆ NSPACE(n 4 ).

Wegen Satz 3.4.6 vonSavitch: NSPACE(n 4 ) ⊆ DSPACE(n 8 ). Wegen Satz 3.4.3(deterministische Bandhierarchie):

DSPACE(n 8 ) ist echte Teilmenge von DSPACE(n 9 ). Zudem gilt DSPACE(n 9 ) ⊆ NSPACE(n 9 ). Insgesamt:

NSPACE(n 9 ) ist echte Teilmenge von NSPACE(n 9 ), Widerspruch. Also ist die Annahme falsch, d.h., es gibt

eine Sprache in NSPACE(n 3 ), die nicht in NSPACE(n 2 ) liegt.

Aufgabe: Sei s(n) = if ” n ist eine gerade Zahl“thennelsen 3 fi. Was ist die Beziehung zwischen

DSPACE(n 2 ) und DSPACE(s(n))?

4.10.3 Kleine Zeitschranken

Satz 3.3.8 hat zum Beispiel zur Folge, dass die beiden Sprachklassen DTIME(2·n) und DTIME(1.00001·n)

gleich sind, aber nicht, dass DTIME(2·n) und DTIME(n) gleich sind! In der Tat gibt es eine Sprache, die

in DTIME(2·n) liegt, aber nicht in DTIME(n). (Die Konstruktion ist etwas kompliziert und wird hier nicht

dargestellt.) Deshalb sind Korollar 3.3.9 und Satz 3.4.5(e,f) ungenau formuliert. Für den Spezialfall

t(n) = 2·n und t ′ (n) = n sind sie inkorrekt. Korollar 3.3.9 und Satz 3.4.5(e) können schadlos (d.h.: ohne

spätere Auswirkungen) folgendermaßen lauten:

Aus t(n) ∈ O(t ′ (n)) folgt DTIME(t) ⊆ DTIME(O(t ′ )) und NTIME(t) ⊆ NTIME(O(t ′ )).

Satz 3.4.5(f) kann schadlos ganz entfallen (oder entsprechend abgeschwächt werden).

4.10.4 Co-Klassen

Wir beschäftigen uns mit den Zusammenhängen zwischen den KlassenpaarenDTIME(t) und co−DTIME(t)

und den anderen drei interessierenden Paaren von Sprachklassen.


Komplexitätstheorie - Wintersemester 2010/2011 117

• Beziehung zwischen DTIME(t) und co−DTIME(t):

Sei t zeitkonstruierbar und es gelte t(n) ≥ n+1. Dann gilt DTIME(t) = co−DTIME(t). Sei dazu

L ∈ DTIME(t). Auf Grund von Lemma 3.6.1 kann man ohne Einschränkung der Allgemeinheit

annehmen, dass eine DTM, die L akzeptiert, für alle Inputs w entweder in qa (wenn w ∈ L) oder in

qr (wenn w /∈ L) anhält. Die Behauptung ergibt sich aus Vertauschen der akzeptierenden mit den

verwerfenden Zuständen.

• Beziehung zwischen DSPACE(s) und co−DSPACE(s):

Für bandkonstruierbare Funktionen s mit s(n) ≥ log(n) kann Lemma 3.4.2 analog benutzt werden;

es gilt deswegen DSPACE(s) = co−DSPACE(s).

• Beziehung zwischen NTIME(t) und co−NTIME(t):

Allgemeine Beziehungen sind schwer zu bestimmen. Zum Beispiel ist die Frage noch offen, ob

NP = co−NP gilt oder nicht.

• Beziehung zwischen NSPACE(s) und co−NSPACE(s):

Der Satz 3.5.2 von Immerman und Szelepcsényi besagt, dass für bandkonstruierbare Funktionen

s: N → N mit s(n) ≥ log(n) gilt: NSPACE(s) = co−NSPACE(s). Hier funktioniert allerdings der

Trick, akzeptierende und verwerfende Zustände zu tauschen, leider nicht. Zwar liefert Lemma 3.4.2

ohne Beschränkung der Allgemeinheit eine NTM, die innerhalb Zeit d s(n) (mit einer Konstanten d,

die nicht von n abhängt) arbeitet und für alle Inputs w mit |w| = n nach spätestens d s(n) Schritten

entweder in qa oder in qr anhält, und zwar in jeder der durch ihren Nichtdeterminismus gegebenen

Berechnungsmöglichkeiten. 2 Es kann aber ein Inputwort w geben, das in einer Berechnung zum

akzeptierenden Zustand führt, in einer anderen Berechnung jedoch zum verwerfenden Zustand. Ein

solches Wort wird sowohl von der Ursprungs-NTM akzeptiert, als auch von der NTM, die sich

durch Vertauschen von akzeptierenden und verwerfenden Zuständen ergibt, was nicht vorkommen

darf, wenn die zweite Maschine genau das Komplement der ersten akzeptieren soll. Der Beweis

des Satzes von Immerman und Szelepcsényi ist daher etwas komplizierter. Er wird im Rest des

Abschnitts beschrieben.

Zusammenfassend kann gesagt werden, dass die Komplementklassen stets genau die Ursprungsklassen

sind, außer möglicherweise bei nichtdeterministischen Zeitschranken.

Beweis: (von Satz 3.5.2)

Sei L = L(M) eine Sprache, die von einer s(n)-bandbeschränkten NTM M akzeptiert wird. Wir wollen

eine NTM M konstruieren, die das Komplement L von L in Band s(n) akzeptiert. Man kann o.B.d.A.

annehmen, dasses nureineeinzigemöglicheakzeptierendeKonfigurationca = q ′ aεgibt. Daskann mandadurch

sicherstellen, dass nach Erreichen des eigentlich akzeptierenden Zustandes qa alle (Arbeits-)Bänder

gelöscht, alle Lese/Schreibköpfe auf ihre Anfangspositionen zurückgefahren und ein neuer akzeptierender

Zustand q ′ a erreicht wird.

Auf Grund von Lemma 3.4.2 darf man o.B.d.A. annehmen, dass es eine Konstante d mit folgenden

Eigenschaften gibt:

• Für jede Eingabe w gibt es höchstens d s(|w|) erreichbare Konfigurationen.

2 Wobei der Beweis eine missverständliche Stelle enthält: Der viertletzte Satz mit ” Dann...wird).“ sollte ersetzt werden

durch: ” Dann liegt keine kürzeste Berechnung vor und M2 kann anhalten und w verwerfen.“.


118 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

• Für jede Eingabe w haben alle Berechnungen (und es kann wegen Nichtdeterminismus mehrere

geben) die Länge höchstens d s(|w|) .

Für einen Input w sei K(k,w) die Menge der Konfigurationen κ, die von der Anfangskonfiguration q0w

aus in höchstens k Schritten erreicht werden können, also

Dann gilt

K(0,w) = {q0w} und K(k +1,w) = K(k,w)∪{κ | ∃κ ′ ∈ K(k,w): κ ′ → κ in einem Schritt}.

w ∈ L ⇔ w /∈ L ⇔ ca /∈ K(d s(|w|) ,w). (4.5)

Die letzte Äquivalenz gilt, weil w genau dann akzeptiert wird (d.h.: in L liegt), wenn es eine akzeptierende

Berechnung (d.h.: eine Berechnung, die mit der Konfiguration ca endet) der Länge höchstens d s(|w|) gibt.

Dieses Argument wurde im Beweis von Lemma 3.4.2 ausgeführt.

Ein ” Trick“ des Beweises besteht darin, für eine Eingabe w und für jede Zahl 0 ≤ k ≤ d s(|w|) gleichzeitig

die Menge K(k,w) in Platz s(|w|) zu akzeptieren und ihre Größe |K(k,w)| in Platz s(|w|) zu berechnen.

Letzteres ist deswegen im Prinzip möglich, weil die Menge K(k,w) höchstens d s(|w|) Elemente hat und

ihre Größe deswegen (zur Basis d) auf höchstens s(|w|) Felder eines Arbeitsbandes geschrieben werden

kann.

Nehmen wir zunächst an, dass es für eine Eingabe w und für jede Zahl 0 ≤ k ≤ d s(|w|) eine Maschine

M(k,w) gibt, die in Platz s(|w|) folgendes leistet:

M(k,w) : Input: κ (eine Konfiguration von M mit Input w)

Output: |K(k,w)| auf einem Arbeitsband

κ akzeptieren, wenn κ ∈ K(k,w), sonst κ verwerfen.

Nun betrachten wir, für ein Wort w, die Maschine N = M(d s(|w|) ,w). Diese Maschine akzeptiert κ genau

dann, wenn κ ∈ K(d s(|w|) ,w), sie berechnet |K(d s(|w|) ,w)|, und sie benötigt Platz s(|w|).

Aus N konstruieren wir M, die gesuchte Maschine, die in Platz s(|w|) gerade L akzeptiert. Dazu ordnen

wir alle d s(|w|) in Frage kommenden Konfigurationen auf irgend eine Weise (zum Beispiel lexikografisch)

linear. Die resultierende Ordnung sei mit ≺ bezeichnet; d.h., die Menge aller Konfigurationen der Länge

s(|w|) (zur Basis d), die ja eine Obermenge von K(d s(|w|) ,w) ist, wird folgendermaßen angeordnet:

κ0 ≺ κ1 ≺ ... ≺ κds(|w|) −1.


κmax

Das letzte Element der Ordnung sei der Einfachheit halber mit κmax = κ d s(|w|) −1 abgekürzt. Tabelle

4.1 zeigt einen Algorithmus für M. Dabei bedeutet ” erhöhe κ“ in den Zeilen (3b) und (4d), dass ein

neues κ gewählt wird, das im Sinne der Ordnung ≺ größer als das aktuelle κ, aber kleiner oder gleich

dem maximalen κmax ist. Das geht wegen der Vorbedingung κ ≺ κmax. Hierdurch wird die Maschine M

nichtdeterministisch.

Akzeptiert wird in Zeile (4b) erst dann, wenn L vom anfänglichen Wert |K(d s(|w|) ,w)| auf 0 heruntergezählt

worden ist. Dabei wird jedes Mal ein κ gewählt, das laut Zeile (3c) in der Menge K(d s(|w|) ,w)

enthalten ist. (Dieser Test auf κ ∈ K(d s(|w|) ,w) in Abfrage (3) kann in Platz s(|w|) mit Hilfe der Maschine

N durchgeführt werden, auch ohne dass |K(d s(|w|) ,w)| wieder neu auf Band 2 geschrieben wird.)


Komplexitätstheorie - Wintersemester 2010/2011 119

M : Input: ein Wort w auf dem Leseband

1 Schreibe κ = κ0 auf das 1. Arbeitsband

2 Schreibe L = |K(d s(|w|) ,w)| auf das 2. Arbeitsband (in Platz s(|w|) unter Benutzung von N)

3a if κ /∈ K(d s(|w|) ,w)∧κ = κmax → verwerfen

3b κ /∈ K(d s(|w|) ,w)∧κ ≺ κmax → erhöhe κ auf Band 1 und wiederhole Schritt 3

3c κ ∈ K(d s(|w|) ,w) → subtrahiere 1 von L auf Band 2 und gehe zu Schritt 4

fi

4a if κ = ca → verwerfen

4b κ = ca ∧L = 0 → akzeptieren

4c κ = ca ∧L ≥ 1∧κ = κmax → verwerfen

4d κ = ca ∧L ≥ 1∧κ ≺ κmax → erhöhe κ auf Band 1 und wiederhole Schritt 3

fi

Tabelle 4.1: Die Maschine M zur Akzeptanz von L

Bei Akzeptanz ist also gerade die Menge K(d s(|w|) ,w) ausgewählt worden, und wegen den Zeilen (4b) bis

(4d) wurde jedes Element auf Ungleichheit mit ca getestet. Wird w in Zeile (4b) akzeptiert, ist ca also

nicht in K(d s(|w|) ,w) enthalten. Ist umgekehrt ca nicht in K(d s(|w|) ,w) enthalten, kann der Nichtdeterminismus

offenbar so resolviert werden, dass gerade die Menge K(d s(|w|) ,w) ausgewählt wird und dass w in

Zeile (4b) akzeptiert wird. Also akzeptiert M die Eingabe w genau dann, wenn ca nicht in K(d s(|w|) ,w)

enthalten ist, laut (4.5) also genau dann, wenn w /∈ L.

Folgende Überlegung zeigt, warum die Kardinalität auf Band 2 mitgeführt werden muss. Angenommen,

auf Band 2 stünde zuerst eine kleinere Zahl als |K(d s(|w|) ,w)|. Dann würde K(d s(|w|) ,w) nicht vollständig

abgearbeitet und w würde eventuell akzeptiert, obwohl es ein κ ∈ K(d s(|w|) ,w) mit κ = ca gibt, w also in

L liegt. Angenommen andererseits, auf Band 2 stünde zuerst eine größere Zahl als |K(d s(|w|) ,w)|. Dann

würde w eventuell nicht akzeptiert (und letztendlich verworfen), obwohl K(d s(|w|) ,w) schon abgearbeitet

ist und obwohl w möglicherweise in L liegt.

Es verbleibt die Aufgabe, für eine Eingabe w und für jede Zahl 0 ≤ k ≤ d s(|w|) die Maschine M(k,w) zu

konstruieren. Dies geschieht durch Induktion über k.

Für k = 0 gibt es nur die Konfiguration κ = q0w in K(k,w) und es gilt |K(k,w)| = 1.

Für k+1 rät man, ähnlich wie im oben für M angegebenen Algorithmus, |K(k,w)| viele Konfigurationen

(was nach Induktionshypothese in Platz s(|w|) möglich ist) und prüft, ob sie alle in K(k,w) enthalten

sind. Man läuft mit κ von κ0 bis κmax und fragt, ob κ = q0w oder ob κ in einem Schritt aus einer der

KonfigurationeninK(k,w)erreichbarist.Fallsja,wirdeinzuvorzu0initialisierterZählerhochgeschaltet.

(So werden Mehrfachzählungen vermieden.) Gleichzeitig wird κ akzeptiert. Alles funktioniert innerhalb

der geforderten Platzschranke. 3.5.2

Korollar 4.10.2 Anwedung auf Linearly Bounded Automata

LBA=co-LBA. 4.10.2

Das bedeutet unter anderem, dass kontextfreie Sprachen der Komplementbildung gegenüber abgeschlossen

sind, da sie genau den linear beschränkten Automaten entsprechen (❀ Grundmodul Theoretische

Informatik II). Diese Frage war lange Zeit offen.


120 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Um diesen Beweis rankt sich eine Anekdote – ich weiß aber nicht mehr, woher ich sie habe und ob sie

ganz genau so stimmt, wie sie jetzt beschrieben wird. Ein Professor gab seinen Studenten, darunter Neil

Immerman, eine Übungsaufgabe, nämlich die Satzaussage zu beweisen; dabei wusste er aber, dass es sich

um ein offenes Problem handelte. Er wollte die Studenten ein wenig herausfordern, doch wollte er sie

fairerweise in der folgenden Stunde (und noch vor der Abgabe ihrer Lösungen) über den Status des Problems

informieren. Letzteres bekam Immerman aus irgend welchen Gründen – weil er die Klasse in der

bewussten Stunde nicht besuchte – nicht mehr mit und gab, sehr zum Erstaunen des Professors,eine positive

Lösung ab, die nicht widerlegbar und zudem noch nicht einmal allzu kompliziert war. Später fragten

sich einige Forscher, warum sie wohl nicht früher auf diese Lösung gekommen sind. Nach überwiegender

Meinung verhinderte die bis dahin mehrheitlich gehegte Vermutung, die Satzaussage sei wahrscheinlich

falsch, eine ernsthafte Beschäftigung mit der Möglichkeit, dass sie tatsächlich auch wahr sein könnte

(Ähnlichkeiten mit P ? = NP und Konsorten möglicherweise nicht ganz auszuschließen...).


Kapitel 5

Schaltkreiskomplexität

Mit dem bislang betrachteten Komplexitätsbegriff gibt es folgende Probleme:

• Die Länge eines Algorithmus geht nicht in die Betrachtung ein. Implementiert man ihn jedoch auf

Hardware, spielt diese Länge eine wichtige Rolle.

• Als Konsequenz der Endlichkeit von Hardware gibt es absolute obere Schranken für die Eingabelänge.

Alle betrachteten Sprachen sind in der Realität desegen endlich und können – im Prinzip

– von Turingmaschinen in konstanter Zeit und Platz (aber sehr langen Algorithmen) akzeptiert

werden.

• Schließlich ist das TM-Modell durch seine Sequentialität kein sehr realitätsnahes Modell von Rechnern,

sofern man sie ” von innen“ betrachtet. Diese bestehen aus vielen Hunderttausenden von

Transistoren, von denen viele mit jedem Takt gleichzeitig aktiv sind.

Boolesche Schaltkreise sind ein Berechnungsmodell, das die oben genannten Probleme in geringerem

Ausmaß aufweist.

5.1 Boolesche Schaltkreise

Ein Boolescher Schaltkreis berechnet eine Funktion

f: {0,1} n → {0,1} m .

Deren Eingabe bzw. Ausgabe sind n-Tupel bzw. m-Tupel von Nullen oder Einsen. Beispielsweise gilt für

die aussagenlogische Konjunktion f = ∧: n = 2 und m = 1.

Beispiel: f: {0,1} 4 → {0,1} 3 mit

f(x1,x2,x3,x4) = ( x1 ∧(x2 ∨x3)


f1(x1,x2,x3,x4)

, (¬(x2 ∨x3))∨(x4 ∧0)


f2(x1,x2,x3,x4)

Siehe Abbildung 5.1.

Die ” Basis“ für die Konstruktion solcher Schaltkreise besteht aus

121

, (¬(x2 ∨x3)∨(x4 ∧0))∧0 )


f3(x1,x2,x3,x4)


122 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

• zwei Konstanten: false, true (ˆ=0 bzw. ˆ=1),

• einer unären Operation: die Negation ¬,

x1 x2 x3 x4 0



¬




f1 f2 f3

Abbildung 5.1: Ein Boolescher Schaltkreis

• und zwei binären Operationen: die Disjunktion ∨ und die Konjunktion ∧.

Aus der Grundvorlesung Rechnerstrukturen ist bekannt, dass auf diese Weise alle Booleschen Funktionen

f: {0,1} n → {0,1} m dargestellt werden können.

Wir interessieren uns für die Größe (die Anzahl der Gatter) und die Tiefe (den Zeitverbrauch, bis ein

Input zu einem Output wird) solcher Schaltkreise. Zuerst aber geben wir präzisere Definitionen.

Boolesche Schaltkreise können als azyklische gerichtete Graphen aufgefasst werden. Die Knoten sind:

• Eingabeknoten, in die keine Kante führt (in Abbildung 5.1 sind das •x1, •x2, •x3, •x4, •0),

• Ausgabeknoten, aus denen heraus keine Kante führt (im Beispiel: •f1, •f2, •f3)

• und interne Knoten oder Gatter (im Beispiel: 6 Stück).

Die Kanten wurden im Beispiel mit (in der Elektrotechnik unüblichen!) Pfeilen versehen, um die Datenflussrichtung

anzudeuten. Die Bausteine (Gatter) funktionieren folgendermaßen: Bekommen ihre Eingaben

einen Wert, so berechnen sie die entsprechende Funktion und leiten den Ausgabewert weiter. Man

stellt sich vor, dass dies für die Gatter ¬, ∨ und ∧ in einem (Zeit-)schritt geschieht. Demzufolge benötigt


Komplexitätstheorie - Wintersemester 2010/2011 123

der Schaltkreis in Abbildung 5.1 genau 4 Schritte, um nach dem Anliegen aller fünf Eingaben die Ausgabefunktionen

zu berechnen; das liegt an seiner ” Parallelität“. Offenbar ist die Laufzeit von der Länge

eines längsten Pfades von einem Input zu einem Output bestimmt.

Wir definieren eine andere Darstellungsform von solchen Schaltkreisen, die jedem Eingabe- und Gatterknoten

eine Ausgabefunktion zuordnen läßt.

Definition 5.1.1 Berechnungskette

Sei ∆ = {x1,...,xn} eine Menge Boolescher Variablen. Eine (Berechnungs-)Kette über ∆ ist eine Folge

g1,...,gk, wobei für jedes 1 ≤ i ≤ k das Element gi entweder eine Variable aus ∆, eine Boolesche

Konstante, ein Paar (¬,gl) mit 1 ≤ l < i oder ein Tripel (∨,gl,gm) oder (∧,gl,gm) mit 1 ≤ l,m < i

ist. 5.1.1

Beispiel:


x1,x2,x3,x4,0,

Eingaben

(∨,x2,x3),(∧,x4,0),

(∧,x1,(∨,x2,x3)),(¬,(∨,x2,x3)),

(∨,(¬,(∨,x2,x3)),(∧,x4,0)),

(∧,(∨,(¬,(∨,x2,x3)),(∧,x4,0)) , 0

)


⎪⎬

Bausteine

oder Gatter

⎪⎭

Die beiden Eingaben des letzten Bausteins.

Definition 5.1.2 Resultatsfunktion

Seig1,...,gk eineBerechnungsketteüber∆.Fürjedesgi (1 ≤ i ≤ k)istdieFunktionresult(gi): {0,1} n →

{0,1} folgendermaßen induktiv definiert:


xj ⎪⎨

falls gi = xj

c ∈ {0,1} falls gi = c

result(gi)(x1,...,xn) =

⎪⎩

result(gl)(x1,...,xn)∨result(gm)(x1,...,xn) falls gi = (∨,gl,gm)

result(gl)(x1,...,xn)∧result(gm)(x1,...,xn) falls gi = (∧,gl,gm)

Definition 5.1.3 Boolescher Schaltkreis

Ein Boolescher Schaltkreis ist die Darstellung einer Kette g1,...,gk als ein azyklischer, gerichteter

Graph. Dabei gibt es für jedes gi (1 ≤ i ≤ k) genau einen Knoten, der mit der entsprechenden Variablen

bzw. Konstanten, bzw. mit dem entsprechenden Operationssymbol versehen ist. Es gibt genau dann eine

gerichtete Kante von gj nach gi, wenn gj eine Eingabe des Bausteins gi ist. 5.1.3

Da in jedem azyklischen gerichteten Graphen die Knoten topologisch angeordnet ( ” linearisiert“) werden

können, lässt sich aus jedem Booleschen Schaltkreis mindestens eine Berechnungskette ableiten. Der

zu einer Kette gehörige Graph ist aber eindeutig. Daher identifizieren wir manchmal einen Booleschen

Schaltkreis mit einer beliebigen seiner möglichen Berechnungsketten.

5.1.2


124 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Definition 5.1.4 Berechnung durch einen Booleschen Schaltkreis

Sei f: {0,1} n → {0,1} m Boolesche Funktion mit f = (f1,...,fm) und fj: {0,1} n → {0,1} (1 ≤ j ≤ m).

Ein Boolescher Schaltkreis C = (g1,...,gk) berechnet f genau dann, wenn für alle j, 1 ≤ j ≤ m, ein i,

1 ≤ i ≤ k, existiert mit fj = result(gi). 5.1.4

Beispiel: (Abbildung 5.1) f = (f1,f2,f3), m = 3, n = 4.

f1 = x1 ∧(x2 ∨x3) = result(∧,x1,(∨,x2,x3))

f2 = ...

f3 = ...

Definition 5.1.5 Größe und Tiefe eines Booleschen Schaltkreises

Die Größe (auch: die Kosten) eines Schaltkreises ist die Anzahl der (internen) Bausteine. Die Boolesche

Größe c(f) einer Booleschen Funktion f ist die Größe eines kleinsten ( ” billigsten“) Schaltkreises, der f

berechnet.

Die Tiefe (auch: Zeit oder Zeitbedarf) eines Schaltkreises ist die Länge (gemessen in der Anzahl der

Gatter) eines längsten gerichteten Pfades im Schaltkreis. Die Boolesche Tiefe d(f) einer Booleschen

Funktion f ist die Tiefe eines flachsten (d.h. schnellsten) Schaltkreises, der f berechnet. 5.1.5

C steht für ” Circuit“, c für ” cost“ und d für ” depth“.

Beispiel (Abbildung 5.1): Größe 6, Tiefe 4.

Die Tiefe entspricht dem, was für Turingmaschinen bisher als ” Zeitbedarf“ definiert war. Die Größe ist

jedoch ein neues Komplexitätsmaß und entspricht ungefähr dem Hardwareverbrauch.

Zu einem gegebenen Schaltkreis sind dessen Größe und Tiefe durch Abzählen im Allgemeinen leicht

zu bestimmen. Zu einer gegebenen Booleschen Funktion sind deren Boolesche Größe bzw. Boolesche

Tiefe im Allgemeinen jedoch sehr schwer bestimmbar, denn es werden die entsprechenden Minima über

alle möglichen Schaltkreise gebildet. Zudem muss ein kleinster“ Schaltkreis nicht unbedingt auch ein


” flachster“ sein, und umgekehrt.

5.2 Einige Beispiele

5.2.1 Addition von zwei Variablen

Wir betrachten die Funktion s: {0,1} 2 → {0,1} 2 , die die partielle Summe s0 und den Übertrag s1 liefern

soll. Schaltkreise dazu sind in Abbildung 5.2 (separat für s0 und s1) und zusammenfassend (für s) in

Abbildung 5.3 angegeben.

x1 x2 s1 (Übertrag) s0 (Summe)

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

s0(x1,x2) = (x1 ∧x2)∨(x1 ∧x2)

s1(x1,x2) = (x1 ∧x2)


Komplexitätstheorie - Wintersemester 2010/2011 125

s0 : + =

s1 :

x1

¬ ¬

x1

∧ ∧


s0

x2

Größe

Tiefe

Größe

Tiefe

Abbildung 5.2: Addition von 2 Variablen (Übertrag und Summe)

A2

A2 : =

x1


s1

∧ +

Halbaddierer s1 s0

x2

Größe

Tiefe

5+1

Abbildung 5.3: Addition von 2 Variablen (Halbaddierer)

x2

5

3

1

1

max{1,3}=3


126 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

5.2.2 Addition von 3 Variablen (Volladdierer)

Schaltkreise dazu finden sich in Abbildung 5.4.

x1 x2 x3 Übertrag Summe

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

A3 : =

A3

Größe

Tiefe

5

2·5+3 = 13

6

5

2

6

6

3

x1



+

x2


+

x3

Übertrag Summe

Abbildung 5.4: Addition von 3 Variablen (Volladdierer)

5.2.3 Addition von zwei Binärzahlen der Länge n

Seien x,y zwei Zahlen mit n Bits und sei s die n+1-stellige Summe:

x = xn−1...x0 , y = yn−1...y0 , s = snsn−1...s0.

} Halbaddierer

} Halbaddierer

Ein Schaltkreis ist in Abbildung 5.5 angegeben. Er verwendet die beiden vorher definierten Bausteine

(Halb- und Volladdierer).

Bemerkung: Die Größe dieses Schaltkreises ist minimal (dies ist seit 1981 bekannt). Die Tiefe ist allerdings

sehr groß. Addition kann statt in linearer Zeit (wie in Abbildung 5.5) sogar in logarithmischer Zeit

bewerkstelligt werden. Wir zeigen im nächsten Abschnitt einen Algorithmus (nicht den besten).


Komplexitätstheorie - Wintersemester 2010/2011 127

yn−1 xn−1 y2 x2 y1 x1 y0 x0

sn

A3

sn−1

” 2n“

” 2n+1“

...

...

A3

s2

A3

s1

Größe: Größe(A2)+

(n−1)·Größe(A3)

= 6+(n−1)·13 = 13n−7

Tiefe:

A2

s0

n = 1 : 3

n > 1 : 2n+2

Abbildung 5.5: Addition von zwei n-stelligen Binärzahlen

5.2.4 Carry-Look-Ahead-Addierer (Vorausberechnung des Übertrags)

Gesucht: Die Summe snsn+1...s0 von xn−1...x0 und yn−1...y0.

Algorithmus:

(i) Berechne ui = xi ∧yi und vi = xi +yi für n−1 ≥ i ≥ 0 (Größe n+5n = 6n, Tiefe 3).

(ii) BerechneCarry-Bitszn−1,...,z0,dieangeben,obbeidernächstenStelleeinÜbertragberücksichtigt

werden muss, aus u und v (Größe? Tiefe?)

(iii) Berechne die Summenbits gemäß s0 = v0, si = vi+zi−1 (0 < i < n) und sn = zn−1 (Größe 5(n−1),

Tiefe 3).

Beispiel:

n n−1 ... 3 2 1 0

× 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 x

× 1 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 y

× 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 v

× 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 u

× 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 z

1 0 0 0 1 0 1 1 1 1 1 0 0 0 0 1 0 s

× P P G P E P P E G G P P P G P E

Wir interpretieren die Bedeutung der Paare (ui,vi):


128 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

1) (ui,vi) = (0,0) bedeutet xi +yi = 0. Unabhängig von anderen Inputs ist zi = 0. Überträge, die zur

Stelle i kommen, werden abgefangen. Diese Stellen heißen E ( ” eliminieren“).

2) (ui,vi) = (0,1) bedeutet xi +yi = 1. In dieser Situation ist zi = zi−1. Ein Übertrag aus der vorigen

Stelle wird weitergeleitet. Derartige Stellen heißen P ( ” propagieren“).

3) (ui,vi) = (1,0) bedeutet xi+yi = 0 und ein neuer Übertrag wird erzeugt: zi = 1. Diese Stellen heißen

G ( ” generieren“).

4) (ui,vi) = (1,1) kommt nicht vor.

An Stelle i entsteht ein Übertrag genau dann, wenn ein Übertrag an einer Position j ≤ i erzeugt wird

(uj = 1) und dann bis zur Position i weitergeleitet wird (vj+1 = ... = vi = 1):

zi =

0≤j≤i

(uj ∧vj+1 ∧...∧vi)

Alle die zi können dann parallel aus u, v berechnet werden.

Die Formeln uj ∧vj+1 ∧... ∧vi lassen sich mit balancierten Bäumen aus ∧-Bausteinen in Größe O(n)

und Tiefe O(log(n)) berechnen. Es gibt O(n) logische Summanden, für jeden genügen O(n) Bausteine

(insgesamt also O(n 2 ) für ein einziges zi), die Tiefe bleibt O(2·log(n)) = O(log(n)). Da es O(n) zi’s gibt,

folgt:

Carry-Look-Ahead-Addierer haben Größe O(n 3 ) und Tiefe O(log(n)).

5.2.5 Produkt zweier Boolescher Vektoren

Gegeben: x = x1,...,xn und y = y1,...,yn

Gesucht:

dot: {0,1} 2n → {0,1} gemäß dot(x,y) =

n

(xi ∧yi).

i=1

Dies kann durch einen Schaltkreis (siehe Abbildung 5.6) geleistet werden, der eine ” einfachere Version“

desjenigen für die zi im vorigen Beispiel ist.

5.2.6 Produkt zweier quadratischer Boolescher Matrizen

A = [aij] B = [bij] 1 ≤ i,j ≤ n

Ai = (ai1,...,ain), Bj = (b1j,...,bnj) 1 ≤ i,j ≤ n

A·B = C mit cij = dot(Ai,Bj) 1 ≤ i,j ≤ n.

Alle cij können parallel zueinander berechnet werden. Benutze

DOT

!


Komplexitätstheorie - Wintersemester 2010/2011 129

x1


y1

x y

DOT


x2


y2

... ...


Größe

O(n 2 )

...

Tiefe ⌈log(n)⌉+1 ∈ O(log(n))


xn yn



⎪⎬

⎪⎭

Baum aus

∨-Gattern

Abbildung 5.6: Produkt zweier Boolescher Vektoren

A

B

PROD

Größe

Tiefe

5.2.7 Transitive Hülle einer Relation

n 2 ·O(n 2 ) = O(n 4 )

⌈log(n)⌉+1

Gegeben: Eine endliche Menge X, |X| = n und eine Relation R ⊆ X ×X.

Stelle R folgendermaßen durch eine n×n-Matrix A = [aij], 1 ≤ i,j ≤ n dar:


1 , wenn (xi,xj)∈R

aij =

0 , sonst.

Gesucht: A∗ = [a∗ ij ] als Darstellung der transitiven Hülle R∗ von R.

D.h.: a∗ ij = 1, falls (xi,xj) ∈ R∗ , und a∗ ij = 0 sonst.

Fakt: A∗ = E ∨A∨A 2 ∨...∨A n = (E ∨A) n (E = Einheitsmatrix).

Diese Rechnung ist schematisch in Abbildung 5.7 dargestellt.

Abbildung 5.8 zeigt ein Beispiel.


130 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

(E ∨A) (E ∨A) (E ∨A) (E ∨A) n Stück

...

PROD

R: a b c

A:

R ∗ :

a b c

a 1 1 0

b 0 0 1

c 0 1 0

... ...

PROD

PROD

Größe: O(n 6 )

Tiefe: 1+⌈log(n)⌉·(1+⌈log(n)⌉) ∈ O(log 2 (n))


⎪⎬

⎪⎭

⌈logn⌉

Abbildung 5.7: Berechnung der transitiven Hülle einer Relation

E ∨A:

a b c

1 1 0

0 1 1

0 1 1

(E ∨A) 2 :

1 1 1

0 1 1

0 1 1

(E ∨A) 3 :

Abbildung 5.8: Beispiel zur Berechnung der transitiven Hülle

1 1 1

0 1 1

0 1 1


Komplexitätstheorie - Wintersemester 2010/2011 131

5.3 Boolesche Schaltkreise für die ” Berechnung“ von Sprachen

Definition 5.3.1 Schaltkreis- und Tiefenkomplexität von Sprachen

Sei A eine Sprache über dem Alphabet {0,1}. Die Schaltkreiskomplexität von A für Länge n, bezeichnet

mit cA(n), ist die Boolesche Größe der charakteristischenFunktion von A∩{0,1} n . Die Tiefenkomplexität

von A für Länge n, bezeichnet mit dA(n), ist die Boolesche Tiefe der charakteristischen Funktion von

A∩{0,1} n . Die Funktionen cA,dA: N → N heißen Schaltkreis- bzw. Tiefenkomplexität von A.

5.3.1

Zum Beispiel sei A = {ε,0,1,00,11,000,010,101,111,0000,0110,...} die Palindromsprache über {0,1}.

Dann gilt

cA(0) = 0, da ein Test, ob das leere Wort ein Palindrom ist, mit einem Schaltkreis der Größe 0 gemacht

werden kann; der Input/Output ” 1“ genügt (konstante Funktion).

cA(1) = 0, aus dem gleichen Grund, da alle Wörter der Länge 1 Palindrome sind.

cA(2) = 4, da ein Bitstring ” xy“ ein Palindrom ist, genau dann, wenn x = y, und da letzteres einen Kreis

der Größe ≥ 4 benötigt (Beweiskreis: siehe Abbildung 5.9).

cA(3) = 4, aus dem gleichen Grund (xyz Palindrom ⇔ x = z).

cA(4) = ??; man muss einen Schaltkreis minimaler Größe finden, der 4-Bit-Wörter xyzu auf die Palindromeigenschaft

testet (d.h.: x = u und y = z).

x y

∧ ∨


Abbildung 5.9: Beweiskreis der Größe 4 für cA(2), wobei A die Palindromsprache ist

Auf ähnliche Weise sieht man:

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

Für jedes Argument muss diese Minimabestimmung durchgeführt werden, es ist also überhaupt nicht

trivial, zu gegebenem A die Funktionen cA, dA zu finden.

Die folgenden beiden Sätze bilden eine Verbindung zu Turingmaschinen und den bislang betrachteten

Komplexitätsmaßen.

Satz 5.3.2 Beziehung zwischen DTIME und Boolescher Größe

Sei A eine Sprache, die von einer deterministischen 1-Band-TM mit Eingabealphabet {0,1} innerhalb

t(n) Zeit akzeptiert wird, mit t(n) ≥ n+1. Dann gilt cA(n) ∈ O(t 2 (n)).

¬


132 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Satz 5.3.3 Beziehung zwischen NSPACE und Boolescher Tiefe

Sei A eine Sprache, die von einer nichtdeterministischen 2-Band-TM mit Eingabealphabet {0,1}innerhalb

s(n) Platz akzeptiert wird, mit s(n) ≥ log(n). Dann gilt dA(n)∈O(s 2 (n)).

Beweis: von Satz 5.3.2 (Idee)

Sei M eine t(n)-zeitbeschränkte TM, die A akzeptiert. Modifikation o.B.d.A. von M: wenn M (auch vor

Zeit t(n)) in den akzeptierenden Zustand qa geht, bleibt M auch in den nächsten Schritten in qa ( ” loop“).

Damit gilt: w ∈ A genau dann, wenn M landet auf w in t(|w|) Schritten in qa.

Wir konstruieren jetzt einen Booleschen Schaltkreis mit Größe O(t 2 (n)), der A∩{0,1} n berechnet, für

jedes n. Wir geben nur die Idee der Konstruktion.

Problem: Ein Schaltkreis kann nur Eingaben konstanter (fixer) Länge haben.

Lösung: Wir benutzen die Tatsache, dass Rechnungen der Dauer t(n) höchstens t(n)+1 Felder besuchen

können. Für jedes dieser Felder codieren wir:

• Ist der Kopf der TM gerade darauf oder nicht? Und, wenn ja, was ist der aktuelle Zustand?

• Was ist das aktuelle Zeichen auf dem Feld?

Diese Informationen haben konstante Länge, und es gibt t(n)+1 davon. Sagen wir: f1,...,f t(n)+1 seien

Inputlinien für einen Booleschen Schaltkreis, so dass jedes fj die dem Feld j zugeordneten initialen

Parameter beschreibt (im wesentlichen sind die immer gleich, außer dass f1,...,fn das Eingabewort w

beschreibt, sofern w ∈ {0,1} n ).

Zustandsänderungen gehen nach dem rechts/links-Prinzip vor sich: aktuelles Feld anschauen, Kopf bewegen,

etc.

Dazu kann man einen Schaltkreis ( ” Box“) bauen, der sich fj−1, fj, fj+1 anschaut (mehr braucht man

nicht), um den neuen ” Zustand“ des Feldes j zu berechnen. Das Ganze muss man genau t(n)-mal machen,

danach genügt ein einfacher Test, ob der erhaltene Zustand qa ist oder nicht (man muss vorher aber noch,

durch eine OR-Schaltung, herausfinden, wo eigentlich der Kopf der Maschine steht – dort befindet sich

auch der aktuelle Zustand).

Abbildung 5.10 verdeutlicht diese Konstruktion.

Alle Boxen haben Größe O(1), der OR-Baum hat Größe O(t(n)), die Abfrage ” qa?“ hat Größe O(1), also

hat der ganze Schaltkreis die Größe O(t 2 (n)). 5.3.2

Beweis: von Satz 5.3.3 (Idee)

Sei M die gegebene Maschine mit Zustandsmenge Q. Wir nehmen ohne Einschränkung der Allgemeinheit

an, dass M nicht nur einen einzigen akzeptierenden Zustand, sondern auch nur eine einzige akzeptierende

Konfiguration hat.

M ist s(n)-bandbeschränkt.Darausfolgt,dassdieAnzahl N(n)vonKonfigurationenvonM aufEingaben

der Länge n

|Q|·n·2 s(n) ·s(n)

ist. Wir codierendie Konfigurationenüber {0,1}.Seien a,bKonfigurationen.Wirbetrachtendie Funktion


1, falls M in einem Schritt von a nach b übergehen kann, für Eingabe w

Stepw(a,b) =

0, sonst.


Komplexitätstheorie - Wintersemester 2010/2011 133

Zeit

t=0

t=1

t=t(n)

f1

Box11

Box21

f2

Box12

f3

. . . . .

. . . . .

OR-Baum

qa ?

ja nein

...

...

...

Platz

f t(n)+1

Abbildung 5.10: Schaltkreis zur Zustandsberechnung


134 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Die Funktion Step w (a,b) kann in konstanter Tiefe berechnet werden. Sei Init die Anfangskonfiguration

von M auf w und sei Acc die einzige akzeptierende Konfiguration. Wir konstruieren einen Schaltkreis,

der testet, ob Acc von Init aus erreicht werden kann.

M akzeptiert w genau dann, wenn es eine Kette Init,a1,...,am−1,Acc gibt mit

Step w(a,b)(Init,a1) = Step w(a,b)(a1,a2) = ... = Step w(a,b)(am−1,Acc) = 1,

d.h. genau dann, wenn Step ∗ w (Init,Acc) = 1, wobei Step∗ w die transitive Hülle von Step w ist.

Die ” Matrix“ Step w hat Größe N(n)×N(n). Da Step w (a,b) in konstanter Tiefe berechnet werden kann,

ist die Tiefe des Kreises, der Step ∗ w(a,b) berechnet, in O(log 2 (N(n))) (siehe Abschnitt 5.2.7). Damit folgt

dA(n) ∈ O(s 2 (n)). 5.3.3

Korollar 5.3.4 Tiefenkomplexität von Sprachen in PSPACE

Für A ∈ PSPACE ist dA polynomiell. 5.3.4

5.4 Schaltkreise polynomieller Größe – die Sprachklasse P/POLY

Definition 5.4.1 Sprachen mit Schaltkreisen polynomieller Größe

Eine Sprache A ⊆ {0,1} ∗ hat Schaltkreise polynomieller Größe, wenn es ein Polynom p mit cA(n) ≤ p(n)

für alle n ≥ 0 gibt.

Die Klasse aller Sprachen mit polynomiell großen Schaltkreisen wird mit P/POLY bezeichnet. 5.4.1

A ∈ P/POLY bedeutet in anderen Worten: es gibt ein Polynom p, so dass A∩{0,1} n von einem Kreis der

Größe ≤ p(n) entschieden wird. Ein solcher Kreis antwortet bei Eingabe w ∈ {0,1} n mit 1, wenn w ∈ A,

und mit 0, wenn w /∈ A. Probleme, deren Sprache keine Schaltkreise polynomieller Größe haben, sind

durch Schaltkreise praktisch unlösbar.

WelcheSprachenhabenpolynomielleGröße,undwelchenicht?AufdieseFragegebendiebeidenfolgenden

Sätze erste Antworten.

Satz 5.4.2 P ist eine Teilmenge von P/POLY

Wenn A ∈ P, dann hat A Kreise polynomieller Größe.

Beweis: Die Behauptung folgt aus Satz 5.3.2. 5.4.2

Satz 5.4.3 Nicht alle Sprachen in EXPSPACE haben polynomiell große Schaltkreise

Es gibt eine Sprache A ∈ EXPSPACE, die keine Schaltkreise polynomieller Größe hat.

Die Frage, ob es auch eine Sprache in NEXPTIME gibt, die keine Schaltkreise polynomieller Größe hat, ist

dagegen noch offen!

Vor dem Beweis von Satz 5.4.3 geben wir eine obere Schranke für die Anzahl der möglichen Schaltkreise

mit n Eingaben und einer gegebenen Zahl von Gattern.


Komplexitätstheorie - Wintersemester 2010/2011 135

Lemma 5.4.4 Anzahl der Schaltkreise der Größe ≤ g

Seien g eine Funktion g: N → N mit g(n) ≥ n + 1 und sei G(n) die Anzahl der Schaltkreise mit n

Eingaben x1,...,xn, die ≤ g(n) Gatter haben. Dann gilt G(n) ≤ (12·e·g(n)) g(n) .

Beweis: Wir bestimmen eine obere Schranke für die Anzahl, G(n), der Graphen, die n + 2 Eingabelinien

(nämlich x1,...,xn und die beiden Konstanten 0 und 1), maximal g(n) innere Bausteine und eine

Ausgabelinie haben. Jeder innere Knoten hat dabei Eingangsgrad 1 oder 2 und Ausgangsgrad 1.

Wir nummerieren die inneren Knoten mit 1,2,... bis maximal g(n) durch (dafür gibt es maximal g(n)!

MöglichkeitenproGraph).EinGraphwirdalsListederLängeg(n)vonPaaren(für¬-Gatter)undTripeln

(für ∨,∧-Gatter) dargestellt, die zu jedem inneren Knoten den bzw. die Vorgängerknoten angeben.

Z.B. wird der Schaltkreis in Abbildung 5.11 als (1,x1)(2,1,x2) dargestellt.

x1 x2

¬

Abbildung 5.11: Beispielschaltkreis

Für jeden Knoten mit nur einem Vorgänger hat man dabei

≤ g(n)−1+n+2 = g(n)+n+1

Möglichkeiten, die Kante zu ziehen. Für Knoten mit zwei Vorgängern hat man

≤ [(g(n)−1+n+2)·(g(n)−1+n+1) = (g(n)+n+1)·(g(n)+n)

Möglichkeiten. Insgesamt gibt es für jeden Knoten (Listenelement)

≤ (g(n)+n+1) 2 ≤ (2g(n)) 2


(wegen g(n) ≥ n+1)

Möglichkeiten. Da die Liste ≤ g(n) Elemente hat, gibt es

≤ ((2g(n)) 2 ) g(n) = (2g(n)) 2g(n)

viele Listen. Wir können es aber noch besser machen; jeder Graph wurde nämlich wegen der Willkürlichkeit

der Nummerierung g(n)! mal gezählt. Daraus folgt als obere Schranke für die Gesamtanzahl solcher

Graphen:

1

g(n)! ·(2g(n))2g(n) .

Jetzt muss nur noch berücksichtigt werden, dass jeder Knoten eines solchen Graphen mit ¬, ∨ oder ∧

beschriftet sein kann. Es folgt:

G(n) ≤ 3 g(n) ·

1

g(n)! ·(2g(n))2g(n) = 1

g(n)! ·(12·g(n))2g(n) .


136 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Wir benutzen jetzt die Stirling-Formel m! ≥ m m ·e −m (mit der Eulerschen Zahl e) in der Form

1

g(n)! ≤ g(n)−g(n) ·e g(n) :

Daraus ergibt sich

G(n) ≤ (12·e·g(n)) g(n)

und damit auch die Behauptung. 5.4.4

Beweis: (von Satz 5.4.3). Durch eine Variante eines Diagonalisierungsarguments.

Ein Kreis kann als ein Wort über {0,1} codiert werden. Wenn ein Kreis die Größe n hat, dann hat das

entsprechende Wort über {0,1} die Länge O(n·log(n)). Also sind Kreise polynomieller Größe als Worte

polynomieller Länge codiert. D.h., eine Sprache A hat genau dann keine Kreise polynomieller Größe,

wenn es für alle Polynome p eine Zahl n ∈ N gibt, so dass kein Kreis mit einer Codierung der Länge p(n)

die Sprache A∩{0,1} n akzeptiert. Wir konstruieren eine solche Sprache A.

Die Konstruktion geht schrittweise vor sich. In jedem Schritt wird eine Sprache An,2n konstruiert, die

nur Wörter der Länge n hat. Dann wird gesetzt:

A =

n∈N

An,2n. (5.1)

Für ein beliebiges Polynom p wird es – als Folge dieser Konstruktion – eine Zahl n ∈ N geben, so dass

die Sprache An,2n die folgende Eigenschaft hat:

Es gibt keinen Kreis mit einer Codierung der Länge p(n), der die Sprache An,2n akzeptiert. (5.2)

Insgesamt folgt aus (5.1) und (5.2), dass A, wie gewünscht, keine Schaltkreise polynomieller Größe hat.

Für ein festes n seien xn 1 ,xn2 ,...,xn 2n die Wörter von {0,1}n in lexikografischer Anordnung. Wir bauen

die Sprache An,2n induktiv auf: zuerst An,1, dann An,2, usw., und zuletzt An,2n. Im iten Schritt wird

untersucht, ob das Wort xn i mit zur Sprache gehören soll oder nicht. Dabei wird sichergestellt, dass An,2n die folgende Eigenschaft hat. Sei am i , mit 1 ≤ i ≤ m, die Anzahl der Kreise mit Codierungen der Länge

höchstens m = nlog(n) , die für die Wörter xn 1,...,x n i die richtige Antwort geben (auf die Frage, ob diese

Wörter in An,2n liegen oder nicht). Dann gilt

a m i+1 ≤ am i

2

für alle 1 ≤ i ≤ 2 n −1, insgesamt also auch a m 2n ≤ am1 2 (2n . (5.3)

)

Es ist intuitiv klar, dassdie Zahlen am i mit steigendem i nicht größerwerden, weil es leichter“ ist, für eine


kleinere Menge an Wörtern das richtige Ergebnis zu liefern, als für eine größere Menge. Die Beziehung

(5.3) besagt, dass die Kette An,1 ⊆ An,2 ⊆ ... ⊆ An,2n so aufgebaut werden kann, dass sich die Zahl der

korrekt antwortenden Kreise von Schritt zu Schritt zumindest halbiert, wenn nicht sogar noch deutlicher

verringert.

Nehmen wir an, dass die Eigenschaft (5.3) schon bewiesen ist. Dann kann man folgendermaßen auch (5.2)

beweisen. Sei p ein beliebiges Polynom. Sei n ∈ N eine Zahl, die die Ungleichung

p(n) < n log(n)

n 2

<

(5.4)

12·e


Komplexitätstheorie - Wintersemester 2010/2011 137

erfüllt. Ein solches n kann gefunden werden (❀ Modul Analysis I). Laut Lemma 5.4.4 gibt es höchstens

(12·e·n log(n) ) nlog(n) Kreise der Größe nlog(n) . Damit bekommt man folgende Abschätzung für die Anzahl

der Kreise der Größe p(n), die die Sprache An,2n entscheiden:

a p(n) anlog(n) 1

2n ≤ anlog(n) 2n ≤

2 (2n ) ≤ (12·e·nlog(n) ) nlog(n)

2 (2n )

(wobeidie zweite Ungleichungaus(5.3) folgt,die dritteaus derAbschätzungvona nlog(n)

1 durchdie Anzahl

aller möglichen Kreise, die anderen aus Ungleichung (5.4), d.h., aus der Wahl von n) 1 und damit

a p(n)

2n = 0.

Es gibt also keinen Kreis der Größe p(n), der An,2n entscheidet.

In Abbildung 5.12 wird gezeigt, wie die Menge An,2n nacheinander aus An,1 ⊆ An,2 ⊆ ... ⊆ An,2n so

aufgebaut werdenkann, dassEigenschaft(5.3) gilt. In der vorletztenZeile dieses Algorithmus wird Schritt

für Schritt entschieden, ob das Wort xn i neu aufgenommen wird oder nicht.

An,0 := ∅;

for i := 1 to 2 n do

total := 0; % Anzahl der Kreise der Größe n log(n) , die An,i−1 richtig entscheiden für x n 1 ,...,xn i−1

accep := 0; % Anzahl der Kreise darunter, die 1 antworten für x n i

for jedes Wort w ∈ {0,1} ∗ mit |w| ≤ n log(n) do

if w ist Codierung eines Kreises C mit n Eingaben, der An,i−1 richtig entscheidet für x n 1,...,x n i−1 then

begin

total := total +1;

if der Kreis C antwortet 1 für x n i

end if w

end for w;

then accep := accep +1;

if accep > total/2 then An,i := An,i−1 else An,i := An,i−1 ∪{x n i

end for i;

< 1

} fi

Abbildung 5.12: Algorithmus zur Konstruktion von An,2 n

Beispiel: An,i−1 sei schon berechnet. Wir gehen durch die innere for-Schleife. Am Ende sei

total = 10000

accep = 6000.

Dann wird das Wort xn i nicht aufgenommen, d.h. der Algorithmus liefert An,i = An,i−1 und es gilt

xn i /∈ An,i. Ein Kreis entscheidet also richtig für An,i genau dann, wenn er richtig für An,i−1 entscheidet

und 0 für xn i antwortet. Das sind 10000 − 6000 = 4000 viele, also weniger als die Hälfte. Also gilt

1 Die letzte Ungleichung sieht man folgendermaßen ein. Man betrachte n log(n) ·log(12·e·n log(n) ) < 12·e·(n log(n) ) 2 < 2 n ,

wobei die erste Ungleichung aus der Abschätzung log(x) < x, die zweite aus der Wahl von n in 5.4 folgt, und nehme diese

Ungleichungskette zur 2ten Potenz.


138 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

a m i

1 ≤ 2 ·ami−1 , wie gewünscht. Nehmen wir andererseits an, dass am Ende gilt:

total = 10000

accep = 3000.

Dann wird das Wort xn i aufgenommen, d.h. der Algorithmus liefert An,i = An,i−1 ∪ {xn i } und es gilt

xn i ∈ An,i. Also entscheidet ein Kreis richtig für An,i genau dann, wenn er richtig für An,i−1 entscheidet

und 1 für xn i antwortet. Wie viele sind das? Es sind 3000, also wieder weniger als die Hälfte. Wieder gilt

am 1

i ≤ 2 ·ami−1 .

Damit ist der Beweis beendet, dass A keine polynomiellen Schaltkreise hat.

Zum Schluss ist noch zu zeigen, dass A ∈ EXPSPACE gilt. Sei x ein Wort mit |x| = n. Um zu entscheiden,

ob x ∈ A gilt, genügt es, An,2n zu berechnen. Der Algorithmus dafür besteht aus drei geschachtelten

Schleifen. Die innerste Schleife ist die Berechnung der Ausgaben von c für xn 1 ,...,xn i−1 . Das kann in

polynomieller Zeit in der Größe der Codierung von c, also auch in polynomiellem Band geschehen. Jede

Iteration kann auf dem gleichen Band durchgeführt werden. Also brauchen wir 2 n mal polynomielles

Band, d.h., A braucht 2 O(n) Band und 2 2O(n)

Zeit. 5.4.3

5.5 ” Durchschnittliche“ Komplexität Boolescher Funktionen

Die Sprache A, die laut Satz 5.4.3 existiert, sieht reichlich konstruiert“ aus. Die Booleschen Funktionen


des Abschnitts 5.2 haben dagegen eine ziemlich reguläre Struktur. Davon abgeleitete Sprachen haben in

der Regel Schaltkreise polynomieller Größe. Dies stellt jedoch die Ausnahmesituation dar! Im Folgenden

wird nämlich gezeigt, dass die meisten“ Booleschen Funktionen eine Schaltkreiskomplexität haben, die


nicht kleiner als 2n /n ist.

Sei g eine beliebige Funktion von N nach N, sei n ∈ N fest und sei Hg(n) die Anzahl der Funktionen

f: {0,1} n → {0,1}, für die c(f) ≤ g(n) gilt. Die Anzahl aller Funktionen f: {0,1} n → {0,1} ist 2 (2n ) .

Also ist

Fg(n) =

1

2 (2n ) ·Hg(n)

der Bruchteil derjenigen n-stelligen Funktionen, deren Schaltkreiskomplexität höchstens g(n) beträgt.

Wir werden zeigen, dass bei geeigneter Wahl von g, nämlich bei g(n) = (1−ε)· 2n

n mit einer beliebigen

Zahl 0 < ε < 1, Folgendes gilt:

lim

n→∞ Fg(n) = 0.

Daraus folgt, dass – wie ursprünglich behauptet – ” fast alle“ Funktionen eine Mindestschaltkreiskomplexität

von 2 n /n haben.

Sei dazu f: {0,1} n → {0,1} mit c(f) ≤ g(n), d.h. f ist eine der Funktionen, die in Hg(n) mitzählen.

Wir können für f nutzlose (redundante) Gatter einfügen, um einen Schaltkreis der Größe genau g(n) zu

erhalten. Also gilt

Hg(n) ≤ Anzahl der Schaltkreise mit g(n) Bausteinen

und unter Benutzung von Lemma 5.4.4 folgt

Hg(n) ≤ (12·e·g(n)) g(n) .


Komplexitätstheorie - Wintersemester 2010/2011 139

Satz 5.5.1

Für alle g(n) = (1−ε)· 2n

n

(mit 0 < ε < 1) gilt lim

n→∞ Fg(n) = 0.

Beweis: Wähle g(n) = (1−ε)· 2n

n mit 0 < ε < 1. Dann existiert ein n0∈N, so dass g(n) ≥ n+1 für alle

n ≥ n0 gilt. Für dieses g und alle n ≥ n0 gilt dann:

Fg(n) = Hg(n)

2 (2n )

1


2 (2n ) ·



12·e·(1−ε)

=

n


12·e·(1−ε)

=

n

12·e·(1−ε)· 2n

g(n) g(n)

g(n)

Die Behauptung folgt aus lim g(n) = ∞, lim

n→∞ n→∞

n

·(2 n ) (1−ε)·2n

n ·2 −(2 n )

·2 −ε·2n

.


12·e·(1−ε)

n = 0 und lim

n→∞ 2−ε·2n = 0 (tatsächlich? check

it again!). 5.5.1

Der Ausdruck 2 n /n spielt eine erhebliche Rolle als Durchschnittswert der Schaltkreiskomplexität der

meisten n-stelligen Funktionen. Es gilt neben dem letzten Satz auch der folgende:

Satz 5.5.2 Satz von Shannon-Lupanov

Jede n-stellige Boolesche Funktion lässt sich durch Schaltkreise der Größe (1+o(1))· 2n

n berechnen.

Genauer: Für jedes δ > 0 gibt es ein nδ, so dass für alle n ≥ nδ gilt: Jede Funktion von {0,1} n nach

{0,1} lässt sich durch Schaltkreise der Größe (1+δ)·2 n /n berechnen.

Beweis: (Wird nachgetragen.) 5.5.2

Insgesamt folgt, dass ” die allermeisten“ n-stelligen Booleschen Funktionen eine ” ungefähre“ Schaltkreiskomplexität

von 2 n /n haben.

5.6 Die Klasse NC

Es ist nicht klar, wo genau Sprachklasse P/POLY innerhalb der bisher betrachteten Hierarchie liegt. Einerseits

wissen wir schon, dass es eine Sprache in EXSPACE gibt, die nicht in P/POLY liegt. Andererseits

gibt es sogar unentscheidbare Sprachen, die in P/POLY liegen! Also liegt P/POLY zumindest zu EXSPACE

” quer“.

Wie sieht man, dass P/POLY unentscheidbare Sprachen enthält? Dazu betrachten wir ” Bierdeckelsprachen“,

d.h., Sprachen B, deren Wörter nur aus Einsen bestehen:

B ⊆ 1 ∗ .

Jede solche Sprache liegt in P/POLY. Das sieht man für eine gegebene Sprache B folgendermaßen: Sei

w = 1 n ein Wort der Länge n, das aus lauter Einsen besteht. Falls w /∈ B, betrachten wir den Schaltkreis

cw,nein, der auf jede Eingabe den Wert 0 ausgibt. Falls w ∈ B, betrachten wir den Schaltkreis cw,ja, der


140 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

auf Eingabe x1,...,xn die logische Konjunktion x1∧...∧xn ausgibt. Beide Schaltkreise sind polynomiell

groß, und damit ist B ∈ P/POLY. Sei jetzt

Bhp = {1 n | n ist der Unärcode einer DTM, die auf leerem Band anhält}.

Bhp ist unentscheidbar (❀ Grundmodul Theoretische Informatik), nach Obigem aber auch in P/POLY

enthalten. Das ” Problem“ ist hierbei natürlich, dass für ein gegebenes w mit |w| = n nicht von vornherein

klar ist, ob cw,nein oder cw,ja zu betrachten ist. Mehr noch: es gibt keinen Algorithmus, der dies

entscheidet.

Im Gegensatz hierzu ist bei den Additions- und auch bei allen anderen Schaltkreise in Abschnitt 5.2

für ein gegebenes n immer klar, wie der jeweilige Schaltkreis zu konstruieren ist, und für verschiedene

n sind die entsprechenden Schaltkreise stets ganz ähnlich aufgebaut. Man könnte ohne Weiteres einen

Algorithmus angeben, um diese Schaltkreise bei Eingabe n zu konstruieren.

In beiden Fällen betrachtet man unendliche Ketten (C1,C2,...,Cn,...), so dass jeder Kreis Cn genau

n Eingaben hat. Solche Ketten heißen Schaltkreisfamilien. Für jede Schaltkreisfamilie (C1,C2,...) kann

man – wie vorher – eine Sprache A ∈ {0,1} ∗ definieren:

w ∈ A ⇔ C |w| liefert eine 1 auf die Eingabe w.

Was unterscheidet die Schaltkreisfamilie für Bhp von den regulär aufgebauten und algorithmisch konstruierbaren

Schaltkreisfamilien aus Abschnitt 5.2? Dieser Unterscheid wird durch den Begriffder ” uniformen

Familie“ formalisiert. Eine Schaltkreisfamilie heißt uniform, wenn es eine ” nicht sehr aufwändige Prozedur“

gibt, die auf die Eingabe 1 n (ein Wort mit n Einsen) eine Berechnungskette für den Kreis Cn

liefert. 2

Es gibt unterschiedliche Möglichkeiten, den Begriff ” nicht sehr aufwändig“ zu formalisieren. Eine Familie

von Schaltkreisen (C1,C2,...) heiße t-zeitkonstruierbar (s-bandkonstruierbar), wenn es eine tzeitbeschränkte

(resp. s-bandbeschränkte) 2-Band-DTM gibt, die auf der Eingabe 1 n eine BerechnungskettevonCn

liefert.Sieheißtpolynomiell uniform,wennsieO(p(n))-zeitkonstruierbarmit einemPolynom

p ist, und log-space-uniform, wenn sie O(log(n))-bandkonstruierbar ist. Wenn man sich auf solche Schaltkreisfamilien

beschränkt, hat man die Klasse P/POLY folgendermaßen eingeschränkt:

Satz 5.6.1 (Ohne Beweis)

Eine Sprache in P/POLY hat genau dann polynomiell uniforme Schaltkreise, wenn sie in P liegt.

Der Satz gilt auch, wenn man polynomiell uniform durch log-space-uniform ersetzt.

Definition 5.6.2 Nick’s Class(es)

Für jedes k ≥ 1 ist die Sprachklasse NC k definiert durch

L ∈ NC k genau dann, wenn L durch eine Schaltkreisfamilie C1,C2,...

der Größe p(n) (mit einem Polynom p) und Tiefe log k (n) entschieden werden kann,

und NC ist durch NC =

k≥1 NCk definiert. (Man kann noch fordern, dass die Familien log-space-uniform

sind; dann erhält man uniformes NC.) 5.6.2

2 Weil nicht alle Schaltkreisfamilien uniform sein müssen, heißt die Schaltkreiskomplexität manchmal auch nichtuniforme

Komplexität.

5.6.1


Komplexitätstheorie - Wintersemester 2010/2011 141

Die Sprachen in NC sind mit nicht allzu viel (d.h.: polynomiell viel) Hardware in schneller (d.h.: polylogarithmischer)

Zeit parallel akzeptierbar. ” Nick’s Class“ bezieht sich auf Nicholas Pippenger, der schon

früh über parallelisierbare Probleme geforscht hat.

Satz 5.6.3

a) NC ⊆ P.

b) Für alle 0 ≤ k ≤ n gilt NC k ⊆ DSPACE(log k (n)).

c) NC PSPACE.

d) NC 1 ⊆ LOG ⊆ NLOG ⊆ NC 2 .

Beweis: Bandhierarchiesatz 3.4.3. (Ohne weiteren Beweis.) 5.6.3

Probleme in NC:

1) Addition von zwei Binärzahlen der Länge m (n = 2m); in NC 1 .

2) Multiplikation (a) und Division (b) zweier Binärzahlen der Länge m; (a) in NC 1 , (b) in NC 2 .

3) Summe von m Binärzahlen der Länge m (n = m 2 ); in NC 1 .

4) Multiplikation zweier m×m-Matrizen mit Binärzahlen der Länge ℓ als Einträgen (n = 2m 2 ℓ); in

NC 1 .

5) Determinante; in NC 2 .

6) Matrix-Inversion; in NC 2 .

7) Transitive Hülle; in NC 2 (und wahrscheinlich nicht in NC 1 ).

8) Zusammenhang (Eingabe: Adjazenzmatrix eines Graphen mit m Knoten, n = m 2 ); in NC 2 .

Der Nachweis des Enthaltenseins in NC 2 für 5) bis 8) ist nicht einfach.

Ein offenes Problem ist, ob NC P gilt. Falls nein, ist NC = P. Falls ja, dann gibt es Probleme in P, die

” nicht effizient parallelisierbar“ sind. Insbesondere sind dann alle P-vollständigen Probleme (zum Beispiel

das Wortproblem für kontextfreie Grammatiken – siehe Problem 4.9.12)“inhärent sequentiell“.

Das Konzept der Schaltkreiskomplexität eröffnet einen zweiten möglichen Zugang zur offenen Frage

P ? = NP.

Da nach Abschnitt 5.5 die überwiegende Mehrzahl der n-stelligen Funktionen keine polynomiellen Schaltkreise

hat, könnte es doch vielleicht eine darunter geben, die in NP liegt. Die Existenz einer solchen Funktion

würde NP P/POLY und damit wegen Satz 5.4.2 auch P = NP nach sich ziehen. Bisher hat – wenig

überraschendeweise – die Suche nach solchen Funktionen aber noch kein Ergebnis gezeitigt.


142 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

5.7 Ergänzungen

Der Beweis von Satz 4.8.1 ist unvollständig. Bitte folgendermaßen ergänzen. Die Satzbehauptung lautet:

DSPACE(n) ⊆ P impliziert P = PSPACE.

Beweis: Annahme: DSPACE(n) ⊆ P. Wir zeigen dann PSPACE ⊆ P.

Sei A ∈ PSPACE. Wir zeigen A ∈ P. Sei M eine p(n)-bandbeschränkte DTM (mit einem Polynom p), so

dassA = L(M)gilt. Wenn plinearist, folgt die BehauptungA ∈ P direktausDSPACE(n) ⊆ P. Andernfalls

ist der Grad von p ≥ 2 und es gilt p(n) ≥ n. Wir betrachten die folgende Sprache B:

B =


w#$ p(|w|)

| w ∈ A .

Sei M ′ die folgende Maschine:

Input v;

M ′ sucht # und kopiert dabei das Wort w vor # auf ein Arbeitsband 1;

M ′ berechnet p(|w|) und markiert so viele Felder auf einem Arbeitsband 2;

(das geht, weil p als Polynom bandkonstruierbar ist)

M ′ vergleicht die Anzahl der $ auf dem Leseband mit den markierten Feldern auf Band 2

und verwirft, wenn diese nicht übereinstimmen;

M ′ simuliert M mit w auf Band 1 und akzeptiert v gdw. M w akzeptiert.

M ′ akzeptiert v ∈ B innerhalb p(|w|) Band, und

aus p(|w|) ∈ O(|v|) folgt L(M ′ ) ∈ DSPACE(n), also B ∈ DSPACE(n).

Aus der Annahme DSPACE(n) ⊆ P folgt jetzt B ∈ P.

Sei M ′′ die folgende Maschine:

Input w;

M ′′ berechnet p(|w|);

M ′′ schreibt v = w#$ p(|w|) auf ein Arbeitsband;

M ′′ simuliert M ′ auf v und akzeptiert w genau dann, wenn M ′ v akzeptiert.

Es gilt L(M ′′ ) = A, und da M ′ polynomiell zeitbeschränkt ist, ist auch M ′′ polynomiell zeitbeschränkt.

Daher ist A ∈ P, w.z.b.w. 4.8.1

Eine ähnliche Technik kann zum Beweis eines Translationslemmas herangezogen werden.

Lemma 5.7.1

Seien s(n) und f(n) bandkonstruierbar mit s(n) ≥ n und f(n) ≥ n. Für eine Sprache L, definiere

padded(f,L) = {w#$ i | w ∈ A∧|w#$ i | = f(|w|)}.

Dann gilt L ∈ NSPACE(s(f(n)) ⇔ padded(f,L) ∈ NSPACE(s(n)).


Komplexitätstheorie - Wintersemester 2010/2011 143

Beweis: (⇒:) Sei L ∈ NSPACE(s(f(n)). Sei M eine s(f(n))-bandbeschränkte NTM mit L = L(M). Wir

definieren eine s(n)-bandbeschränkteNTM P, die padded(f,L) akzeptiert. Ähnlich wie M ′ oben markiert

P bei einer Eingabe v = w#$ i f(|w|) Zellen und verwirft v, wenn die Zahlen f(|w|) und |w#$ i | ungleich

sind. Andernfalls nutzt P die f(|w|) schon markierten Zellen, um s(f(|w|)) Zellen zu markieren. Wegen

s(|w|) ≥ |w| gilt s(f(|w|)) ≥ f(|w|), also benötigt P dafür höchstens s(f(|w|)) Zellen. Dann simuliert P

die Maschine M mit Input w und akzeptiert v genau dann, wenn die Simulation innerhalb der markierten

Zelle akzeptiert. P akzeptiert padded(L) und benötigt s(n) Platz, wobei n = |w#$ i | = f(|w|).

(⇐:) Sei padded(f,L) ∈ NSPACE(s(n)). Sei P eine s(n)-bandbeschränkte NTM mit padded(f,L) = L(P).

Wir definieren eine s(f(n))-bandbeschränkte NTM M, die L akzeptiert. Bei Eingabe w markiert M

f(|w|) Zellen und schreibt w#$ i auf diese Zellen. Dann simuliert M die Maschine P auf w#$ i und

akzeptiert w genau dann, wenn P w#$ i akzeptiert. Eine akzeptierende Berechnung von M auf w#$ i

benötigt höchstens s(|w#$ i |) = s(f(|w|)) Platz. Also akzeptiert M L in s(f(n)) Band. 5.7.1

Satz 5.7.2 Translationslemma für NSPACE

Seien s1(n), s2(n) und f(n) bandkonstruierbar mit s1(n) ≥ n, s2(n) ≥ n und f(n) ≥ n. Dann gilt:

NSPACE(s1(n)) ⊆ NSPACE(s2(n)) impliziert NSPACE(s1(f(n))) ⊆ NSPACE(s2(f(n))).

Beweis: Sei L ∈ NSPACE(s1(f(n))). Wegen Lemma 5.7.1 gilt padded(f,L) ∈ NSPACE(s1(n)). Wegen

NSPACE(s1(n)) ⊆ NSPACE(s2(n)) gilt padded(f,L) ∈ NSPACE(s2(n)). Nochmals wegen Lemma 5.7.1 gilt

L ∈ NSPACE(s2(f(n))). 5.7.2


Index

ε, 8

C-hart, 72

C-vollstandig, 72

NC, 140

P/POLY, 134

2-NONSAT, 113

3DM, 88

Abgeschlossenheit einer Sprachklasse, 11

abzahlbar, 39

Algorithmus, 7

Alphabet, 8

Automaten

Inaquivalenz, 109

linear beschrankte, 107

Bandhierarchie, 54

Bandkomprimierung, 49

bandkonstruierbar, 56

berechenbar

intuitiv, 40

Berechnungskette, 123

Berechnungskomplexitat, 1

Berman-Hartmanis-Vermutung, 113

Boolesche Formel

quantifizierte, 101

Boolesche Funktion

Boolesche Grose, 124

Boolesche Tiefe, 124

Boolescher Ausdruck, 74

Boolescher Schaltkreis, 123

Bubble Sort, 4

Buchstaben, 8

Census-Funktion, 113

charakteristische Funktion einer Sprache, 10

Churchsche These, 40

144

Clique, 82

co-C, 72

Codierung, 13

DEXT, 62

Diagonalschema, 15

Dreidimensionales Matching, 88

Dreieckszerlegung, 95

DSPACE, 44

DTIME, 44

endlicher Automat

akzeptierte Sprache, 19

Alphabet, 17

Anfangszustand, 17

deterministischer, 17

endliche Kontrolle, 17

Endzustande, 17

nichtdeterministischer, 17

Sprachaquivalenz, 19

Transition, 18

Transitionenfolge, 19

Ubergangsrelation, 17

Zustande, 17

Zustandsdiagramm, 18

endlicher Automat (deterministisch)

Ubergangsfunktion, 17

Entscheidungsproblem, 12

ERR, 112

Erreichbarkeitsproblem, 112

EXPSPACE, 62

EXPTIME, 62

fast alle, 3

GEO, 105

Gewicht, 92

GO, 106


Komplexitätstheorie - Wintersemester 2010/2011 145

Grammatik

kontextfreie, 112

kontextsensitive, 107

Graph

Erreichbarkeit, 112

Hamiltonscher Kreis, 81, 84

Hamiltonscher Pfad, 67, 86

Handlungsreisendenproblem, 68

Hardware, 1

ILP, 98

INAQ-NFA, 109

Instanz, 12

Integer Linear Programming, 98

Kette, 8, 123

Klausel, 74

Knotenuberdeckung, 81

Komplementgraph, 83

Komplexitatsklassen, 44

Komplexitatstheorie, 6

Konkatenation, 9

KSGWP, 107

LBA, 107

LEER-KFG, 112

Leerheitsproblem, 112

Lineare Programmierung, 99

Literale, 74

LOG, 62

log-space-reduzierbar, 112

LP, 99

Matching, 88

Mehrbandmaschinen, 33

Mehrspurmaschinen, 32

µ-rekursiv, 40

NEXPSPACE, 62

NEXPTIME, 62

NEXT, 62

NLOG, 62

NP, 67

NP, 62

NP-vollstandig, 67

NPC, 67

NPSPACE, 62

NSPACE, 44

NTIME, 44

O-Notationen, 2

oBdA, 14

Offline-TM, 34

P, 67

P, 62

p-isomorph, 113

Padding-Technik, 108

Partition, 92

PCP, 6

Platzkomplexitat

DTM, 42

NTM, 43

Pra-Halbordnung, 71

Pradikatenlogik

1. Stufe, 111

Prafix, 9

Presburger-Arithmetik, 111

PRIMES, 100

Primzahlen, 100

Prozessor, 1

Prozessorkomplexitat, 4

Prozessorverbrauch, 8

PSPACE, 67

PSPACE, 62

QBF, 101

Quantifizierte Boolesche Formel, 101

Quicksort, 5

RAM), 36

Random-Access-Maschine, 36

Rechenzeit, 1

reduzierbar

log-space, 112

reelle Zahlen, 111

regularer Ausdruck

Exponentiation, 110

Unvollstandigkeit, 110

Rucksackproblem, 96

Satz von Savitch, 61

Savitch, 61


146 Vorlesungsskript von E. Best / Stand: 17. Januar 2011

Schaltkreis

Binarzahladdierer, 126

Carry-Look-Ahead-Addierer, 127

Grose, 124

Halbaddierer, 124

Kosten, 124

Produkt Boolescher Matrizen, 128

Produkt Boolescher Vektoren, 128

Tiefe, 124

Transitive Hulle, 129

Volladdierer, 126

Zeit, 124

Zeitbedarf, 124

Schaltkreiskomplexitat, 121, 131

semientscheidbar, 6

Speicherplatz, 1

Speicherplatzkomplexitat, 4

Speicherverbrauch, 7

Spiegelsprache, 10

Spiegelwort, 9

Sprache, 9

nte Iterierte, 10

deterministisch endlich akzeptierbar, 19

Einheitssprache, 9

endlich akzeptierbar, 19

Komplementbildung von, 10

leere, 9

mit Schaltkreisen polynomieller Grose, 134

Nullte Iterierte, 10

Plusabschluss, 10

reverse, 10

Sternabschluss, 10

volle, 9

Sprachen

Differenzbildung von, 10

Durchschnitt von, 10

Konkatenation von, 10

Vereinigung von, 10

String, 8

Suffix, 9

Symbole, 8

SZ, 113

Teilwort, 9

Theorie reeller Zahlen, 111

Tiefenkomplexitat, 131

TM, 7

Turingmaschine, 20, 21

Akzeptieren eines Wortes, 31

akzeptierte Sprache, 31

Alphabet, 22

Anfangskonfiguration, 28

Anfangszustand, 20, 22

Ansetzen auf ein Wort, 28

Band, 20

Bandalphabet, 22

Berechnung, 28

akzeptierend, 28

verwerfend, 28

deterministische, 22

Endzustand

akzeptierend, 22

verwerfend, 22

Endzustande, 22

erreichbare Konfiguration, 28

Feld, 20

Folgekonfiguration, 27

Grad des Nichtdeterminismus, 29

Konfiguration, 26

akzeptierend, 26

verwerfend, 26

Konfigurationsbaum, 29

Leerzeichen, 22

Lese/Schreibkopf (LSK), 20

maximale Berechnung, 28

nichtdeterministische, 21

partielle Berechnung, 28

Schritt, 20, 27

Sprachaquivalenz, 31

Steuereinheit, 20

Stopp, 22

Tafel, 22

Ubergangsrelation, 22

Zustande, 22

Turingmaschinen, 7

UM, 82

Unabhangigkeitsmenge, 82

Unarcodierung, 12

unentscheidbar, 6

Unerfullbarbarkeitsproblem, 113

Universelle TM, 38


Komplexitätstheorie - Wintersemester 2010/2011 147

UNV-RA, 110

UNV-RAE, 110

Verkettung, 9

while-berechenbar, 40

Wort, 8

Lange, 8

leer, 8

reverses, 9

Wortproblem, 107

X3C, 91

Zahlentheorie, 111

Zeichen, 8

Zeithierarchie, 54

Zeitkomplexitat, 4

DTM, 42

NTM, 43

Zeitkomprimierungssatz, 54

zeitkonstruierbar, 58

Zeitverbrauch, 7

Zerlegung in Dreiecke, 94

Zusammenhangsproblem, 113

Weitere Magazine dieses Users
Ähnliche Magazine