Hier - TU Dortmund, Informatik 2

Werbung
STAMMVORLESUNG
KOMPLEXITÄTSTHEORIE
WS 2002/03
(Version 13.10.2002)
Vorlesung:
Skript:
Thomas Hofmeister
Ingo Wegener mit einigen Überarbeitungen von Detlef Sieling
und weiteren kleinen Änderungen
Universität Dortmund
Lehrstuhl Informatik 2
44221 Dortmund
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Autors unzulässig
und strafbar. Das gilt besonders für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und
die Einspeicherung und Verarbeitung in elektronischen Systemen.
c Prof. Dr. Ingo Wegener, 1990-2003.
Inhaltsverzeichnis
1 Einleitung
1
1.1 Was ist Komplexitätstheorie? . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3 Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2 Reduktionen und untere Schranken für konkrete Probleme
2.1 Reduktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
9
2.2 Eine Ω(n log n)-Schranke für spezielle Sortierprobleme . . . . . . . . . . . . 10
2.3 Untere Schranken für Probleme aus der Algorithmischen Geometrie . . . . 12
3 NP-Vollständigkeit und der Satz von Cook
17
3.1 Probleme, Sprachen und Codierungen und die Klasse P . . . . . . . . . . . 17
3.2 Nichtdeterministische Turingmaschinen und die Klasse NP . . . . . . . . . 19
3.3 NP-Vollständigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Die NP-Vollständigkeit wichtiger Probleme . . . . . . . . . . . . . . . . . . 21
4 Techniken zum Beweis der NP-Vollständigkeit
22
4.1 Dreidimensionales Matching — eine Reduktion mit verbundenen Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 NP-Vollständigkeitsbeweise durch Restriktion . . . . . . . . . . . . . . . . 24
4.3 NP-Vollständigkeitsbeweise durch lokale Ersetzung
. . . . . . . . . . . . . 27
4.4 Zwei weitere Reduktionen mit verbundenen Komponenten . . . . . . . . . 31
5 Probleme, Teilprobleme und ihre Komplexitätsanalyse
36
5.1 Schwierige Probleme mit einfachen Teilproblemen . . . . . . . . . . . . . . 36
5.2 Die Komplexitätsanalyse des Färbbarkeitsproblems . . . . . . . . . . . . . 37
5.3 Pseudopolynomielle Algorithmen und starke NP-Vollständigkeit . . . . . . 43
5.4 Die starke NP-Vollständigkeit von 3-PARTITION . . . . . . . . . . . . . . 43
5.5 Methoden zum Beweis der starken NP-Vollständigkeit . . . . . . . . . . . . 47
6 Die Komplexität von Suchproblemen
51
6.1 Turing-Reduzierbarkeit, NP-harte, NP-leichte und NP-äquivalente Probleme 51
6.2 Methoden zum Beweis, dass ein Problem NP-hart ist . . . . . . . . . . . . 51
i
7 Die polynomielle Hierarchie
52
7.1 Die Klasse NPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2 Die Klasse co-NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3 Die polynomielle Hierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8 Komplexitätstheorie und probabilistische Methoden
59
8.1 Probabilistische Komplexitätsklassen . . . . . . . . . . . . . . . . . . . . . 59
8.2 Probabilistische Komplexitätsklassen, eine Übersicht
. . . . . . . . . . . . 63
9 Interaktive Beweise, Zero-Knowledge-Beweise und das PCP-Theorem
65
9.1 Beweisorientierte Charakterisierungen bekannter Komplexitätsklassen . . . 65
9.2 Ist das Graphenisomorphieproblem NP-vollständig? . . . . . . . . . . . . . 67
9.3 Zero-Knowledge-Beweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
9.4 Das PCP-Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
10 Die Komplexität von Approximationsproblemen
82
10.1 Gütekriterien für Approximationsalgorithmen . . . . . . . . . . . . . . . . 82
10.2 Klassische Methoden zum Nachweis der Nichtapproximierbarkeit von Optimierungsproblemen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
10.3 Nichtapproximierbarkeit und das PCP-Theorem . . . . . . . . . . . . . . . 89
11 Komplexitätsklassen für Speicherplatzbedarf
94
11.1 Speicherplatzklassen und eine Charakterisierung kontextsensitiver Sprachen 94
11.2 Der Satz von Savitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
11.3 PSPACE-vollständige Probleme . . . . . . . . . . . . . . . . . . . . . . . . 97
11.4 Das LBA-Problem und der Satz von Immerman/Szelepcsényi . . . . . . . . 100
12 Vollständige Probleme in P, NTAPE(log n) und #P
101
12.1 Log-SPACE-Reduktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12.2 Ein P-vollständiges Problem . . . . . . . . . . . . . . . . . . . . . . . . . . 102
12.3 Ein NTAPE(log n)-vollständiges Problem . . . . . . . . . . . . . . . . . . . 104
12.4 Die Klasse #P
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
13 Nichtuniforme Komplexitätsklassen
107
13.1 Schaltkreise und zugehörige Komplexitätsmaße . . . . . . . . . . . . . . . . 107
13.2 Simulationen von Turingmaschinen durch Schaltkreise . . . . . . . . . . . . 108
13.3 Simulation von Schaltkreisen durch nichtuniforme Turingmaschinen . . . . 111
ii
13.4 Eine Charakterisierung der Sprachen mit polynomiellen Schaltkreisen . . . 115
13.5 Probleme in BPP haben polynomielle Schaltkreise . . . . . . . . . . . . . . 117
13.6 Kann SAT polynomielle Schaltkreise haben? . . . . . . . . . . . . . . . . . 118
13.7 Branchingprogramme und nichtuniformer Platz . . . . . . . . . . . . . . . 121
14 Untere Schranken für die Komplexität boolescher Funktionen
123
14.1 Schaltkreisgröße . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
14.2 Formelgröße und Branchingprogrammgröße . . . . . . . . . . . . . . . . . . 124
14.3 Reduktionskonzepte für Schaltkreise und zugehörige Komplexitätsklassen . 126
14.4 Schaltkreise mit unbeschränktem Fan-in und konstanter Tiefe . . . . . . . 129
14.5 Einige Beispiele für Reduktionen
. . . . . . . . . . . . . . . . . . . . . . . 139
iii
iv
1
Einleitung
1.1
Was ist Komplexitätstheorie?
Für Informatikerinnen und Informatiker ist es nicht ausreichend, ein Problem zu lösen.
Ineffiziente Lösungen sind oft nicht viel mehr wert als gar keine Lösung. In der Vorlesung
EFFIZIENTE ALGORITHMEN werden Methoden zum Entwurf effizienter Algorithmen
bereit gestellt. Was macht man jedoch, wenn man für ein Problem keinen effizienten
Algorithmus findet? Oder: Wie kann man sich absichern, dass die Konkurrenz für das
gleiche Problem nicht wesentlich effizientere Algorithmen kennt oder entdeckt?
Die beste Antwort wäre die Angabe einer entsprechenden unteren Schranke“. Was heißt
”
das? Die Zeitkomplexität TP (n) eines Problems P , bei dem n die Eingabegröße misst, ist
das Infimum aller Wachstumsordnungen W (n) (z.B. Θ(n), Θ(n log n), Θ(n3 ), Θ(2n )), so
dass sich das Problem mit O(W (n)) Rechenschritten lösen lässt. Die worst case Rechenzeit eines Algorithmus für P ist also eine obere Schranke“ für TP (n). Analog ist U (n)
”
eine untere Schranke“ für TP (n), wenn jeder Algorithmus zur Lösung von P mindestens
”
Ω(U (n)) Rechenschritte benötigen muss.
Der Traum der Komplexitätstheorie besteht darin, für alle wichtigen Probleme P die Zeitkomplexität TP (n) zu bestimmen. Leider sind wir von einer Realisierung dieses Traumes
weit entfernt.
Die einzige nicht triviale untere Schranke, die im Grundstudium gelehrt wird, ist die
folgende. Jeder auf Vergleichen beruhende Sortieralgorithmus benötigt für Eingabefolgen
der Länge n im worst case dlog (n!)e ≈ n log n − 1.44n und im average case dlog (n!)e − 1
Vergleiche. An Hand dieser unteren Schranke lässt sich feststellen, dass QUICK SORT im
average case sehr gut ist. Im worst case ist QUICK SORT von der unteren Schranke weit
entfernt. Das kann sowohl an der unteren als auch an der oberen Schranke liegen. Aufgrund
von HEAP SORT wissen wir, dass die untere Schranke gut ist und QUICK SORT im
worst case schlecht ist. Die Komplexitätstheorie gibt also befriedigende Antworten für
das allgemeine Sortierproblem. Die Komplexität im worst und im average case beträgt
Θ(n log n).
Aber leider bildet das Sortierproblem eine Ausnahme. Für die folgende Reihe von wichtigen Problemen sind effiziente, d.h. polynomielle Algorithmen bekannt.
• Matrizenmultiplikation: O(n2.39... ).
• Kürzeste Wege zwischen allen Knotenpaaren in bewerteten Graphen: O(n3 ).
• Flussprobleme: O(n3 ).
• Matchingprobleme: O(n2.5 ).
Die besten unteren Schranken für diese Probleme sind aber die trivialen unteren Schranken, die besagen, dass im worst case jeder Teil der Eingabe gelesen werden muss, also
1
Ω(n2 ) in den betrachteten Fällen. Diese triviale Schranke ist sogar in manchen anderen
Fällen optimal:
Kürzester Weg von i nach j: Θ(n2 ), falls alle Kanten im Graphen existieren und mit Kantenkosten belegt sind.
Depth-First Search, Breadth-First Search, Zusammenhangskomponenten, Zweizusammenhangskomponenten, starke Zusammenhangskomponenten: Θ(n + e).
Minimale Spannbäume: Θ(n2 ). Dies ist nur optimal, wenn alle Kanten im Graph existieren.
Das Problem der Komplexitätstheorie besteht also darin, dass es für fast alle konkreten, wichtigen Probleme bisher nicht möglich ist, nicht triviale untere Schranken für die
Komplexität zu beweisen. Woran liegt das?
Eine nicht triviale obere Schranke für die Komplexität eines Problems erhalten wir, indem wir einen Algorithmus für das Problem entwerfen und seine Rechenzeit nach oben
abschätzen. Für den Beweis einer unteren Schranke U (n) müssen wir zeigen, dass alle
Algorithmen, die das Problem lösen, Ω(U (n)) Rechenschritte benötigen. Die Menge aller
Algorithmen, die ein Problem lösen, ist aber eine schwer fassbare Menge.
An dieser Stelle kann man die Komplexitätstheorie links liegen lassen, da die wichtigen
Probleme (im Augenblick) nicht lösbar sind, oder man kann den Weg wählen, den die
Wissenschaft in ähnlichen Situationen zu gehen pflegt. Man versucht einfachere Probleme
zu lösen, die aber doch wichtige Rückschlüsse auf die eigentlichen Probleme zulassen.
Dies führte in der Komplexitätstheorie zur Betrachtung der relativen Komplexität von
Problemen. Wenn man schon die Komplexität eines Problems nicht angeben kann, so
möchte man wenigstens vergleichen, welche Probleme schwerer als andere sind. Dies führt
zu Aussagen wie der folgenden:
Problem A lässt sich auf Problem B reduzieren (bzgl. eines geeigneten Reduktionsbegriffes
R, Notation A ≤R B). Dies bedeutet, dass A im wesentlichen“ (was dies genau heißt,
”
hängt von R ab) nicht schwerer als B ist. Also: Jeder effiziente Algorithmus für B führt
unmittelbar zu einem im wesentlichen“ gleich effizienten Algorithmus für A.
”
Aber auch: Jede untere Schranke für A führt unmittelbar zu einer im wesentlichen“ gleich
”
großen unteren Schranke für B.
Besonders aussagekräftig sind also Aussagen wie A ≤R B und B ≤R A, d.h. A und
B sind im wesentlichen gleich schwer. Im Mittelpunkt der Entwicklung und der praktischen Bedeutung steht dabei die Klasse der NP-vollständigen Probleme, eine Klasse
von Problemen, die im folgenden Sinne gleich schwer sind. Entweder gibt es für jedes
NP-vollständige Problem einen Algorithmus mit polynomieller Laufzeit (also einen effizienten Algorithmus) oder es gibt für kein NP-vollständiges Problem einen polynomiellen
Algorithmus. Es wird allgemein angenommen, dass die zweite Möglichkeit der Wahrheit
entspricht. Man kennt inzwischen Tausende von NP-vollständigen Problemen, darunter
sind viele wichtige Probleme:
• Problem des Handelsreisenden (Traveling Salesman Problem TSP).
• Stundenplanprobleme.
2
• Gibt es in einem Graphen eine bestimmte Anzahl unabhängiger Knoten, das sind
Knoten, zwischen denen keine Kante existiert?
• Gibt es für einen Graphen einen Teilgraphen mit vorgegebener Kantenzahl, so dass
sich dieser Graph so auf ein Blatt Papier zeichnen lässt, dass sich Kanten nicht
schneiden?
• Gibt es eine Belegung einer Menge von booleschen Variablen, so dass eine Menge
von vorgegebenen Klauseln erfüllt ist? (Satisfiability Problem SAT).
• Berechnen zwei Schaltkreise S1 und S2 verschiedene boolesche Funktionen?
• Hat ein Graph eine durch k beschränkte Bandweite, d.h. können die Knoten so
nummeriert werden, f : V → {1, . . . , |V |} bijektiv, dass |f (i) − f (j)| ≤ k für alle
(i, j) ∈ E ist?
• Enthält ein Graph einen bestimmten Teilgraphen? (z. B. CLIQUE).
• Hat ein Graph einen Spannbaum, bei dem jeder Knotengrad höchstens k ist?
• Es seien S1 , . . . , Sm Teilmengen von S und k ≤ m. lässt sich S1 ∪ . . . ∪ Sm bereits als
Vereinigung von k der Mengen bilden? (Überdeckungsproblem bei der Minimierung
boolescher Funktionen).
P
P
• s1 , . . . , sn ∈ . Gibt es A ⊆ {1, . . . , n} mit i∈A si = i6∈A si ? Kann also die Menge
bzgl. ihrer Größe zweigeteilt werden? (PARTITION).
• s1 , . . . , sn ∈ . Können die Objekte mit den Größen s1 , . . . , sn in höchstens k Kästen
der Größe B gepackt werden? (Bin Packing Problem BPP).
• (Datenbanken). Gegeben eine Menge A von Attributnamen, eine Menge F von funktionalen Abhängigkeiten, eine funktionale Abhängigkeit ist ein Paar (A0 , A00 ) mit
A0 , A00 ⊆ A. Sei A1 ⊆ A. Verletzt A1 die Boyce-Codd Normalform für < A, F >?
• Rucksackproblem (Knapsack Problem KP).
• Gegeben a, b und c. Gibt es eine positive Zahl x < c mit x2 ≡ a mod b?
• Akzeptieren die beiden NFAs A1 und A2 verschiedene Sprachen, wobei das Alphabet
sogar als einelementig vorausgesetzt werden kann?
Diese bei weitem unvollständige Liste soll nur zeigen, aus wie verschiedenen Gebieten die
NP-vollständigen Probleme stammen.
Wenn man also ein Problem hat, für das man weder selber noch in der Literatur einen effizienten Algorithmus findet und für das man auch nicht beweisen kann, dass das Problem
schwierig ist, gibt es nun die Möglichkeit zu zeigen, dass das Problem NP-vollständig ist.
Dies bedeutet, dass kein Mensch für das Problem einen effizienten Algorithmus kennt.
3
Denn sonst würde dieser Mensch für alle NP-vollständigen Probleme effiziente Algorithmen kennen und er oder sie wäre weltberühmt. Wenn sich ein Problem als NP-vollständig
erweist, kann man beruhigt vor den Auftraggeber treten und begründen, warum man keinen effizienten Algorithmus gefunden hat. Weit mehr: Vernünftigerweise sollte man die
Suche nach einem effizienten Algorithmus für das Problem abbrechen und überlegen, wie
man mit dem Problem trotzdem fertig wird. Die Vorlesung EFFIZIENTE ALGORITHMEN stellt Methoden auch dafür zur Verfügung: Heuristische Algorithmen, Approximationsalgorithmen, usw.
Üblicherweise wird man trotz der langen Liste bekannter NP-vollständiger Probleme
sein“ Problem nicht in der Liste finden. Daher ist ein Anliegen dieser Vorlesung die
”
Vermittlung von Methoden, um für Probleme zu beweisen, dass sie NP-vollständig sind,
oder allgemeiner zu beweisen, dass sie bzgl. bestimmter Reduktionsbegriffe mindestens so
schwierig wie andere Probleme sind.
Aus eigener Erfahrung weiß ich, dass viele praktische oder angewandte Informatikerinnen
und Informatiker noch Anfang der 80er Jahre die Komplexitätstheorie als viel zu theoretisch und daher irrelevant für ihr praktisch relevantes“ Gebiet ansahen. Als aber in immer
”
mehr Vorträgen, z.B. auf den Gebieten Datenbanken, Betriebssysteme, VLSI-Entwurf,
ineffiziente Algorithmen mit der NP-Vollständigkeit der gelösten Probleme gerechtfertigt
wurden, haben diese Informatikerinnen und Informatiker nach und nach sich die Theorie der NP-Vollständigkeit und damit das Herzstück der Komplexitätstheorie erarbeitet.
Heute muss diese Kenntnis zum Handwerkszeug aller Informatikerinnen und Informatiker
gezählt werden.
Allerdings gibt es neue Zweifel an der Komplexitätstheorie, da viele NP-vollständige Probleme in der Praxis auftreten und gelöst werden. Wenn NP-vollständige Probleme gar
nicht praktisch schwer“ sind, wozu dann Komplexitätstheorie? Nun, es ist nötig, die
”
Ergebnisse nicht zu weitgehend zu interpretieren. NP-Vollständigkeit heißt, dass es vermutlich keine Algorithmen mit polynomieller worst case Rechenzeit gibt, nicht mehr und
nicht weniger. Es ist also nicht ausgeschlossen, dass es Algorithmen gibt, die für viele oder
für die typischen Eingaben schnell sind und nur in relativ wenigen Situationen lange Zeit
benötigen. Bei der Lösung von Optimierungsproblemen ist man in den Anwendungen oft
mit fast optimalen Lösungen zufrieden. Es kann effizient möglich sein, eine fast optimale Lösung zu berechnen, wenn es schwierig ist, eine optimale Lösung zu berechnen. Die
moderne Komplexitätstheorie hat auf alle Entwicklungen im Algorithmenbereich reagiert
und ist daran interessiert, für jeden Algorithmentyp die schwierigen von den leichten Problemen zu trennen. Wir konzentrieren uns hier auf die konkrete Komplexitätstheorie, in
der die Komplexität konkreter Probleme untersucht wird. Die strukturelle Komplexitätstheorie dagegen untersucht strukturelle Eigenschaften von Komplexitätsklassen. Teilweise
hat sie dabei ein Eigenleben entwickelt. Teilweise sind derartige Untersuchungen aber auch
nötig, um schließlich auf die Komplexität konkreter Probleme zurückschließen zu können.
In dieser einführenden Vorlesung wird die strukturelle Komplexitätstheorie bestenfalls
angerissen.
Zusammenfassend soll mit dieser Vorlesung KOMPLEXITÄTSTHEORIE erreicht wer-
4
den, dass die Hörerinnen und Hörer lernen, wie Probleme bzgl. ihrer Komplexität klassifiziert werden können. Sie sollen damit in die Lage versetzt werden, den Schwierigkeitsgrad
von konkreten Problemen einzuschätzen und damit auch die Güte von Algorithmen abzuschätzen.
1.2
Überblick
Die Inhalte der Vorlesung GRUNDBEGRIFFE DER THEORETISCHEN INFORMATIK
werden vorausgesetzt. Insbesondere benutzen wir die Rechnermodelle Registermaschine
und Turingmaschine. Die Churchsche These besagt, dass die Menge der intuitiv berechenbaren Funktionen (die Menge der intuitiv automatisch lösbaren Probleme) gleich der
Menge der von Turingmaschinen berechenbaren Funktionen ist. Diese stimmt beweisbar
mit der Menge der von Registermaschinen berechenbaren Funktionen oder der Menge der
mit gängigen Programmiersprachen berechenbaren Funktionen überein. Der Übergang
zwischen diesen Rechnermodellen beeinflusst die Rechenzeit und den Speicherplatz nur
polynomiell. So ist die Klasse P der in Polynomialzeit berechenbaren Funktionen robust
gegen Modelländerungen und kann als Klasse der effizient lösbaren Probleme bezeichnet werden. Schließlich setzen wir Grundzüge der NP–Vollständigkeitstheorie voraus und
wiederholen sie nur kurz.
In Kap. 2 werden Reduktionsbegriffe allgemein diskutiert. Mit Hilfe linearer Reduktionen werden optimale untere Schranken für das spezielle Sortierproblem, das nur reelle
Zahlen als Inputs zulässt, und Probleme aus der Algorithmischen Geometrie bewiesen.
Dieses kurze Kapitel soll exemplarisch zeigen, wie Ergebnisse der Komplexitätstheorie im
Idealfall aussehen. Die konkreten unteren Schranken (in einem realistisch eingeschränkten Berechnungsmodell) zeigen die asymptotische Optimalität bekannter Algorithmen für
wichtige Probleme.
In Kap. 3 werden Grundzüge der NP–Vollständigkeitstheorie kurz wiederholt. Die zentrale
Rolle des Satzes von Cook wird diskutiert.
In Kap. 4 wird für weitere grundlegende Probleme gezeigt, dass sie NP-vollständig sind.
An Hand von Beispielen wollen wir Methoden zum Beweis der NP-Vollständigkeit von
Problemen einüben.
Es kann nun sein, dass ein Problem zwar schwierig ist, wir aber das Problem nur unter gewissen Nebenbedingungen lösen wollen. Es ist also wichtig, für Teilprobleme zu
entscheiden, ob sie ebenfalls NP-vollständig sind. Methoden und Beispiele für diese Aufgabenstellung werden in Kap. 5 behandelt.
In Kap. 6 untersuchen wir NP-harte Probleme. Außerdem verallgemeinern wir unsere
Betrachtungen von Entscheidungsproblemen (nur Ausgabe Ja“ oder Nein“ möglich)
”
”
und damit Sprachen auf allgemeine Probleme und damit Funktionen. Der Unterschied
ist nicht sehr groß. Der Begriff der polynomiellen Reduktion wird durch den Begriff der
Turing-Reduktion ergänzt.
Es gibt zwei weitere zentrale Methoden, um schwierige Probleme zu behandeln, nämlich
5
den Einsatz randomisierter Verfahren und die Einschränkung, Optimierungsprobleme
nicht mehr exakt, sondern nur noch approximativ lösen zu wollen. Um für diese Teilgebiete eine Komplexitätstheorie zu entwickeln, benötigen wir einen Einblick in die strukturelle Komplexitätstheorie. Die Ergebnisse dieser Kap. 7 und 9 werden dann in Kap. 8
und 10 benutzt. Wir fragen uns, welche Probleme unter der Annahme P 6= NP wohl weder in P liegen noch NP-vollständig sind. Darüber hinaus beschreiben wir die sogenannte
polynomielle Hierarchie.
Randomisierte Algorithmen, die entweder nur eine erwartete Rechenzeit garantieren oder
nur mit hoher Wahrscheinlichkeit korrekt rechnen, sind von erheblicher praktischer Bedeutung. Ohne sie ist z. B. die moderne Kryptographie nicht denkbar. In Kap. 8 stellen
wir eine Komplexitätstheorie für probabilistische Rechner vor.
In Kap. 9 werden wir bekannte Komplexitätsklassen auf moderne Weise neu charakterisieren. Um zu entscheiden, ob x ∈ L ist, benötigen wird einen Beweis“, dass x ∈ L
”
ist. Hier werden Beweise und interaktive Beweise formalisiert, um Komplexitätsklassen
zu beschreiben. Dies führt zu einem interessanten Argument, warum das Graphenisomorphieproblem wohl nicht NP-vollständig ist. Wir fragen uns dann, ob jemand uns etwas
beweisen kann, ohne dass wir außer der Tatsache, dass unser Gegenüber eine Tatsache
beweisen kann, etwas lernen. Insbesondere können wir einem Dritten dieselbe Tatsache
nicht beweisen, wenn wir es nicht schon vorher konnten. Diese scheinbar abstruse Frage
hat einen sehr realen Hintergrund, wenn uns z. B. jemand über ein unsicheres Kommunikationsmedium davon überzeugen will, dass sie oder er ein gültiges Passwort kennt. Für
das Graphenisomorphieproblem und das Hamiltonkreisproblem werden sogenannte ZeroKnowledge-Beweise vorgestellt. Wir verallgemeinern schließlich unsere Diskussion über
Beweissysteme auf probabilistisch überprüfbare Beweise. Auch dies führt zunächst zu
neuen Charakterisierungen bekannter Komplexitätsklassen und schließlich zum wichtigsten Resultat der Theoretischen Informatik der letzten 10 Jahre, dem PCP-Theorem. Es
handelt sich dabei um eine neue Charakterisierung von NP, die erhebliche Konsequenzen
hat.
In der Vorlesung EFFIZIENTE ALGORITHMEN werden für NP-vollständige Probleme
wie das Rucksackproblem oder das Traveling Salesman Problem TSP Approximationsalgorithmen angegeben. Für das TSP werden aber polynomielle Approximationsalgorithmen
nur für den Spezialfall entworfen, dass die Kostenmatrix der Dreiecksungleichung genügt.
In Kap. 10 werden wir den Grund dafür kennen lernen. Gibt es einen polynomiellen
Approximationsalgorithmus für das allgemeine TSP, dann gibt es für alle NP-vollständigen
Probleme polynomielle Algorithmen.
Dieses Resultat ist erstaunlich einfach zu beweisen. Dies gilt ähnlich für die Nichtapproximierbarkeit verschiedener anderer Probleme. Einen Durchbruch für den Beweis weiterer
Nichtapproximierbarkeitsbeweise liefert das PCP-Theorem. Einige Konsequenzen dieses
Theorems werden vorgestellt.
Während wir uns bis hierher um die Rechenzeit gekümmert haben, wird in Kap. 11 eine
analoge Theorie für den Speicherplatzbedarf aufgebaut. Erstaunlicherweise bricht“ die
”
zugehörige Hierarchie zusammen“.
”
6
In Kap. 12 wollen wir versuchen, einfache Probleme bzgl. ihrer Komplexität genauer
zu klassifizieren. Dazu gehören Probleme, die in polynomieller Zeit bzw. mit logarithmischem Platz berechenbar sind. Danach werden Anzahlprobleme“ untersucht. Ist die
”
Frage wieviele Hamiltonkreise enthält ein Graph?“ schwieriger zu beantworten als die
”
Frage Enthält der Graph einen Hamiltonkreis?“ oder nicht?
”
In den abschließenden Kapiteln wollen wir uns von dem klassischen Konzept sequentieller,
uniformer Rechner entfernen.
In Kap. 13 gehen wir zu nichtuniformen Rechnermodellen über. Ein Programm ist uniform, da z.B. ein Sortierprogramm in der Lage ist, beliebig lange Folgen von Objekten zu
sortieren. Dagegen ist ein Schaltkreis nichtuniform, da ein Additionsschaltkreis nur Zahlen
einer bestimmten Zahlenlänge addieren kann. Mit Schaltkreisen sind alle Probleme berechenbar, für jede boolesche Funktion gibt es z.B. die DNF. Dagegen gibt es für uniforme
Rechner nicht berechenbare Probleme, z.B. das Halteproblem. Wir werden nichtuniforme
Komplexitätsklassen untersuchen.
Schaltkreise, Formeln und Branchingprogramme sind die wichtigsten nichtuniformen Rechnermodelle. Für diese Modelle und für geeignet eingeschränkte Modellvarianten gibt es
nicht triviale untere Schranken für konkrete Probleme. Derartige untere Schranken werden
in Kapitel 14 dargestellt.
1.3
Literatur
• Balcázar, J.L.; Diaz, J.; Gabarró, J.: Structural Complexity I, Springer, 1988 (bes.
für Kap. 7 und 12).
• Garey, M.R.; Johnson, D.S.: Computers and Intractability: A Guide to the Theory
of NP-completeness, W.H. Freeman, 1979 (bes. für Kap. 3-12).
• Goldreich, O., Modern Cryptography, Probabilistic Proofs and Pseudorandomness.
Springer 1999 (zu Kapitel 9).
• Hopcroft, J.E.; Ullman, J.D.: Introduction to Automata Theory, Languages and
Computation, Addison Wesley, 1979 (bes. für Kap. 11 und 12).
• Kann, V.: A Compendium of NP Optimization Problems.
URL: http://www.nada.kth.se/∼viggo/problemlist/compendium.html
(zu Kapite l 10)
• Köbler, J.; Schöning, U.; Torán, J.: The Graph Isomorphism Problem: Its Structural
Complexity, Birkhäuser, 1993 (bes. für Kap. 7 und 9).
• Luby, M., Pseudorandomness and Cryptographic Applications. Princeton University
Press 1996 (zu Kapitel 9).
• Mehlhorn, K.: Data Structures and Algorithms 2: Graph Algorithms and NP-Completeness, Springer 1984.
7
• Papadimitriou, C.H.; Steiglitz, K.: Combinatorial Optimization: Algorithms and
Complexity, Prentice Hall, 1982.
• Paul, W.: Komplexitätstheorie, Teubner, 1978.
• Preparata, F.P., Shamos, M.I., Computational Geometry. Springer 1985
(zu Kapitel 2).
• Reischuk, K. R., Einführung in die Komplexitätstheorie, Teubner, 1999.
• Sipser, M. Introduction to the theory of computation, PWS Publ. Co., 1997.
• van Leeuwen, J. (Hrsg.): Handbook of Theoretical Computer Science, Elsevier, MITPress, 1990.
• Wagner, K.; Wechsung, G.: Computational Complexity, Deutscher Verlag der Wissenschaften, 1986.
• Wegener, I.: The Complexity of Boolean Functions, Wiley-Teubner, 1987 (bes. für
Kap. 13 und 14).
• Wegener, I.: Effiziente Algorithmen für grundlegende Funktionen, Teubner, 1989
(bes. für Kap. 14).
• Wegener, I.: Theoretische Informatik — eine algorithmenorientierte Einführung,
Teubner, 1993 (bes. für Kap. 3–11).
• Wegener, I. (Hrsg.): Highlights aus der Informatik, Springer, 1996 (bes. für Kap.
7–10).
• Wegener, I.: Branching Programs and Binary Decision Diagrams – Theory and Applications. SIAM Monographs on Discrete Mathematics and Applications, 2000 (bes.
für Kap. 14).
Bemerkung 1: Aus urheberrechtlichen Gründen wird auf das Buch Theoretische Infor”
matik“ von Ingo Wegener verwiesen, wenn längere Passagen aus diesem Buch verwendet
werden.
Bemerkung 2: Aussagen, die in der Vorlesung nicht bewiesen werden, obwohl der Beweis
im Skript steht, sind mit * markiert.
8
2
Reduktionen und untere Schranken für konkrete
Probleme
2.1
Reduktionen
Wir haben bereits in der Einleitung die Schwierigkeit diskutiert, untere Schranken für die
Komplexität von Problemen zu beweisen.
Zunächst benötigen wir eine erste untere Schranke des betrachteten Typs. Diese darf auch
ein praktisch irrelevantes Problem betreffen. So wurde in der Vorlesung GTI zunächst die
Unentscheidbarkeit der Diagonalsprache bewiesen. Die erste untere Schranke wird dann
mit Hilfe von Reduktionen auf andere, auch praktisch relevante Probleme übertragen, so
wird z. B. die Unentscheidbarkeit des Halteproblems gezeigt.
Was sind Reduktionen? Wir werden im Laufe der Vorlesung mehrere Reduktionstypen
kennen lernen, die wir dann jeweils sorgfältig definieren. Hier soll das Wesentliche des
abstrakten Begriffs Reduktion herausgearbeitet werden.
Zur strukturierten Programmierung gehört die Methode der Top-Down Programmierung.
Dabei wird ein Programm für ein Problem A entworfen, das noch nicht geschriebene
Unterprogramme für Probleme B1 , . . . , Br , so genannte Wunschprozeduren, enthält. Dabei
sind wir uns allerdings sicher, dass wir effiziente Programme für B1 , . . . , Br entwerfen
können. Reduktionen sind Programme für ein Problem A mit einer Wunschprozedur für
Problem B. Offensichtlich müssen die folgenden drei Bedingungen erfüllt sein, damit das
Programm für A effizient ist:
– die Wunschprozedur für B muss durch ein effizientes Programm realisiert werden.
– die Wunschprozedur für B darf nicht für Eingaben aufgerufen werden, die wesentlich
länger als die Eingabe für A sind.
– das Programm für A muss ohne die Aufrufe von B effizient sein.
Wir wollen die zweite Bedingung noch näher betrachten. Das Programm für A habe ohne
die Aufrufe von B Laufzeit O(n2 ) und die Zahl der Aufrufe von B sei n. Die Laufzeit für
B sei O(n2 ). Es kann dann sein, dass B zunächst für eine Eingabe der Länge n2 aufgerufen
wird, die Rechenzeit für diesen Aufruf beträgt O(n4 ). Es kann beispielsweise ein String
der Länge n3 erzeugt werden, der die Eingabe für den nächsten Aufruf von B darstellt.
Dieser hat Laufzeit O(n6 ) und erzeugt einen String der Länge n9/2 , usw. Insgesamt ist
die Laufzeit nicht mehr polynomiell, obwohl A (ohne Prozedur B) und B polynomielle
Laufzeit haben und B nur polynomiell oft aufgerufen wird.
Wir nehmen an, dass die Rechenzeiten von Algorithmen monoton mit der Eingabelänge
wachsen. Wenn nun B höchstens r(n)-mal aufgerufen und die jeweiligen Eingabelängen
durch l1 (n), . . . , lr(n) (n) beschränkt sind, wobei die Eingabe für A Länge n hat, dann lässt
sich die Rechenzeit folgendermaßen mit der Rechenzeit für B in Verbindung setzen: Es sei
9
tA (n) die Komplexität von Problem A, t∗A (n) die Rechenzeit des gegebenen Programms
ohne die Aufrufe von Problem B. Dann gilt
tA (n) ≤ t∗A (n) + tB (l1 (n)) + · · · + tB (lr(n) (n)).
Dabei ist t∗A (n) bekannt. Diese Aussage kann auf verschiedene Weise genutzt werden.
1.) Jede obere Schranke für die Komplexität von B führt zu einer oberen Schranke für
die Komplexität von A. Dies sind typische Anwendungen beim Entwurf effizienter
Algorithmen. Wenn ein Modul durch ein effizienteres Modul ersetzt werden kann,
sinkt die Laufzeit des Algorithmus.
2.) Jede untere Schranke für die Komplexität von A führt zu einer unteren Schranke
für die Komplexität von B. Diese untere Schranke kann schwer berechenbar sein,
wenn r(n), l1 (n), . . . , lr(n) (n) von komplizierter Struktur sind. Im Fall r(n) = 1 folgt
aber sofort
tB (l1 (n)) ≥ tA (n) − t∗A (n).
Beispiele für diese Art von Anwendung werden wir in diesem Kapitel kennen lernen.
3.) Auch wenn wir nichts über die Komplexität von A oder B wissen, lernen wir etwas über die relative Komplexität der Probleme A und B. Eine Vermutung, dass
A schwierig ist, führt zu der Vermutung, dass B schwierig ist (NP-Vollständigkeitstheorie).
In der Entscheidbarkeitstheorie genügen Reduktionen, bei denen B für jede Eingabe von
A endlich oft aufgerufen wird. Falls B entscheidbar ist, ist auch A entscheidbar. Oder
anders ausgedrückt: Ist A bereits als unentscheidbar bekannt, ist auch B unentscheidbar.
Wenn wir uns dafür interessieren, ob Probleme in polynomieller Zeit lösbar sind, genügen
Reduktionen, bei denen B polynomiell oft aufgerufen wird und die Eingabelänge für alle
Aufrufe von B durch ein festes Polynom in der Länge der Eingabe für A beschränkt ist.
Entsprechende Turing-Reduktionen lernen wir in Kap. 6 kennen.
Beim Entwurf von Reduktionen stellt sich heraus, dass die Prozedur für B oft nur einmal
aufgerufen wird und dies am Ende des Programms für A. Die Antwort auf den Aufruf für
B ist dann auch Antwort für den Aufruf für A. Viele Reduktionsbegriffe sind auf diese
Situation zugeschnitten (Reduktion ≤ in der Entscheidbarkeitstheorie, polynomielle Reduktionen in der NP-Vollständigkeitstheorie). Diese spezielle Form ist nur gerechtfertigt,
da der zugehörige Reduktionsbegriff bereits mächtig genug ist. Allerdings kann die spezielle Form diejenigen, die den hier beschriebenen Hintergrund nicht kennen, am Anfang
verwirren.
2.2
Eine Ω(n log n)-Schranke für spezielle Sortierprobleme
Das allgemeine Sortierproblem besteht in der Aufgabe, n Objekte a1 , . . . , an aus einer
vollständig geordneten Menge M zu sortieren. Da über die Ordnung auf M nichts weiter
10
vorausgesetzt wird, kann nützliche Information nur über Vergleiche gewonnen werden.
Damit ist es einfach (s. Vorlesung DATENSTRUKTUREN), eine Ω(n log n)-Schranke für
das allgemeine Sortierproblem zu beweisen.
Falls die Objekte relativ kleine natürliche Zahlen sind, können sie mit BUCKET SORT
Techniken in linearer Zeit sortiert werden. In den meisten praktischen Anwendungen sind
Objekte natürliche Zahlen, die aber oft für die Anwendung einfacher BUCKET SORT
Techniken zu groß sind. Kann es lineare Algorithmen für das Sortieren von n Zahlen
geben?
Diese Frage kann in der ganz allgemeinen Form nicht beantwortet werden. Wir schränken
unsere Algorithmen auf sogenannte algebraische Entscheidungsbäume ein. Es sind dann
nur die binären Operationen +, −, ∗ und binäre Vergleiche (also ≤“, <“, =“) auf reellen
”
”
”
Zahlen erlaubt. Die meisten Algorithmen kommen mit diesen Operationen aus. Mit den
Operationen +, −, ∗ können alle Polynome und nur Polynome berechnet werden. Im
algebraischen Entscheidungsbaum sind die Operationen +, −, ∗ sogar kostenlos, und nur
die Vergleiche werden gezählt. Es ergibt sich also ein binärer Entscheidungsbaum, und an
jedem Blatt steht die passende Antwort für alle Eingaben, für die dieses Blatt erreicht
wird. Man beachte, dass andere einfache Operationen wie z.B. Abrundungen b·c“ in
”
algebraischen Entscheidungsbäumen nicht erlaubt sind. Wir beschränken uns zunächst
auf Entscheidungsprobleme, bei denen nur die Antworten Ja“ und Nein“ erlaubt sind.
”
”
Ein Entscheidungsproblem ist das Problem, für eine Menge W ⊆ N und eine Eingabe
x ∈ N zu entscheiden, ob x ∈ W ist.
Ben-Or ist es mit einem tiefen Satz aus der Algebraischen Geometrie gelungen, die Komplexität von W und die Anzahl der Zusammenhangskomponenten von W in Relation zu
setzen. Dabei heißt eine Menge S ⊆ N zusammenhängend, wenn es für beliebige x, y ∈ S
einen Weg von x nach y gibt, der ganz in S verläuft. Ein Weg von x nach y ist schließlich
eine stetige Abbildung α : [0, 1] → N mit α(0) = x und α(1) = y. Wir können den Satz
von Ben-Or hier nicht beweisen, wir wollen ihn jedoch anwenden, um uns mit einfachen
Reduktionen vertraut zu machen.
Satz von Ben-Or 2.2.1: Es sei W ⊆ N und Z(W ) die Anzahl der Zusammenhangskomponenten von W , d. h. die Anzahl maximaler zusammenhängender Teilmengen von W .
Wenn ein algebraischer Entscheidungsbaum die Menge W entscheidet, so gilt für seine
Tiefe h:
2h · 3h+N ≥ Z(W ), also h = Ω(log Z(W ) − N log 3).
Wir brauchen nun ein Basisproblem, auf das wir diesen Satz anwenden können, um dann
mit Hilfe einer geeigneten Reduktion eine untere Schranke für das spezielle Sortierproblem
zu erhalten.
Definition 2.2.2: ELEMENT UNIQUENESS
Die Eingabe ist ein Vektor x = (x1 , . . . , xN ) ∈
verschieden sind.
N
. Es ist zu entscheiden, ob alle xi
Die im Rest von Kap. 2 bewiesenen unteren Schranken beziehen sich alle auf algebraische
Entscheidungsbäume. Dies wird in den einzelnen Sätzen nicht explizit wiederholt.
11
Satz 2.2.3: Zur Lösung des Problems ELEMENT UNIQUENESS sind Ω(N log N ) Rechenschritte nötig.
Beweis: Sei W = {(x1 , . . . , xN )| xi 6= xj für i 6= j}. Nach Satz 2.2.1 genügt es zu zeigen,
dass Z(W ) ≥ N ! ist. Für die Permutation π auf {1, . . . , N } sei
W (π) = {x ∈ W | xπ(1) < xπ(2) < · · · < xπ(N ) }.
Wir zeigen, dass es für x ∈ W (π) und x0 ∈ W (π 0 ) mit π 6= π 0 innerhalb von W keinen
Weg von x nach x0 gibt. Daraus folgt sofort, dass W mindestens N ! Zusammenhangskomponenten hat.
Da π 6= π 0 , gibt es Indizes i und j mit π −1 (i) < π −1 (j) und π 0 −1 (i) > π 0 −1 (j). Also ist xi <
xj , aber x0i > x0j . Jeder Weg von x nach x0 lässt sich durch eine stetige Funktion α : [0, 1] →
N
mit α(0) = x und α(1) = x0 beschreiben. Damit sind auch die Koordinatenabbildungen
αi und αj stetig, und die Funktion β : [0, 1] → , definiert durch β(t) = αi (t) − αj (t), ist
stetig. Da β(0) < 0 und β(1) > 0 ist, gibt es nach dem Zwischenwertsatz ein t ∈ [0, 1] mit
β(t) = 0. Dann ist αi (t) = αj (t) und α(t) 6∈ W , und der Weg α verläuft nicht innerhalb
von W .
2
Wir werden im folgenden mit linearen Reduktionen (Notation ≤N ) arbeiten. Dabei wird
die Prozedur B nur einmal aufgerufen und die Eingabelänge für diesen Aufruf ist linear
beschränkt in der Länge der Eingabe für das Problem A. Das Programm für A benötigt
ohne den Aufruf für B lineare Zeit. Es folgt sofort, dass jede nichtlineare untere Schranke
für die Komplexität von A eine gleich große untere Schranke für die Komplexität von B
impliziert, falls A ≤N B gilt. Alle linearen Reduktionen, die wir im Folgenden angeben,
benutzen nur Operationen, die in algebraischen Entscheidungsbäumen erlaubt sind. Daher sind diese Reduktionen auch geeignet, nichtlineare untere Schranken für algebraische
Entscheidungsbäume von A auf B zu übertragen.
Satz 2.2.4: Für das Sortieren von N reellen Zahlen sind Ω(N log N ) Rechenschritte
nötig.
Beweis: Wir zeigen ELEMENT UNIQUENESS ≤N SORTIEREN. Sei x = (x1 , . . . , xn )
die gegebene Eingabe für ELEMENT UNIQUENESS. Wir sortieren die Folge x (Aufruf
der Sortierprozedur). Danach durchlaufen wir die sortierte Folge und überprüfen, ob die
benachbarten Zahlen verschieden sind. Dies genügt, da gleiche Zahlen in der sortierten
Folge benachbart sind.
2
2.3
Untere Schranken für Probleme aus der Algorithmischen
Geometrie
Die Algorithmische Geometrie befaßt sich mit dem Entwurf von effizienten Algorithmen
für geometrische Probleme (Anwendungen: Graphische Systeme, Mustererkennung, Datenbanken, VLSI–Design). Wir wollen mit linearen Reduktionen für einige Probleme nach12
weisen, dass sie Ω(N log N ) Rechenschritte benötigen. Für die meisten dieser Probleme
reichen O(N log N ) Rechenschritte auch aus.
Die konvexe Hülle von N Punkten in der Ebene ist das kleinste Polygon, das alle N
Punkte enthält. Sie wird beschrieben durch die Folge der Eckpunkte im Uhrzeigersinn.
Satz 2.3.1: Zur Berechnung der konvexen Hülle von N Punkten werden Ω(N log N )
Rechenschritte benötigt.
Beweis: Wir zeigen ELEMENT UNIQUENESS ≤N KONVEXE HÜLLE.
Sei x = (x1 , . . . , xN ) die Eingabe für ELEMENT UNIQUENESS. In Zeit O(N ) werden die N Punkte yi = (xi , x2i ), 1 ≤ i ≤ N , in der Ebene berechnet. Auf den Punkten
y1 , . . . , yN wird die konvexe Hülle berechnet. Da die Funktion z → z 2 konvex ist, liegen
alle Punkte auf dem Rand der konvexen Hülle. Die konvexe Hülle hat also genau dann N
Eckpunkte, wenn alle xi verschieden sind.
2
Um Punkte in einer durch Geradensegmente gegebenen Einteilung der Ebene in Teilregionen zu lokalisieren, ist es hilfreich, Polygone zu triangulieren. Allgemein besteht das
Problem TRIANGULATION in der Aufgabe, N Punkte p1 , . . . , pN in der Ebene so durch
sich nicht kreuzende Geradensegmente zu verbinden, dass jede innere Region ein Dreieck
ist.
Satz 2.3.2: Triangulierungsalgorithmen benötigen Ω(N log N ) Rechenschritte.
Beweis: Wir zeigen SORTIEREN ≤N TRIANGULATION. Sei x = (x1 , . . . , xN ) die zu
sortierende Folge reeller Zahlen. In Zeit O(N ) werden die N + 1 Punkte pi = (xi , 0), 1 ≤
i ≤ N , und p0 = (0, −1) berechnet. Für diese Punkte wird ein Algorithmus zur Triangulierung aufgerufen. Das folgende Bild zeigt, dass es nur eine Triangulierung gibt.
p3
p5 p2
p4
p7
p6
p1
p0
Wir berechnen das Maximum aller xi , in unserem Fall x1 . Eine Triangulierung ist ein
ungerichteter Graph, der durch Adjazenzlisten beschrieben ist. Die Adjazenzliste von p1
13
enthält p0 und p6 , also ist x6 zweitgrößtes Element. Die Adjazenzliste von p6 enthält p0 ,
p1 und p7 , also ist x7 drittgrößtes Element, usw.
2
In der Mustererkennung interessiert man sich für die Probleme CLOSEST PAIR (finde für
N Punkte in der Ebene zwei mit minimalem Abstand) und ALL NEAREST NEIGHBORS
(finde für jeden von N Punkten in der Ebene einen Punkt mit minimalem Abstand).
Satz 2.3.3: Die Probleme CLOSEST PAIR und ALL NEAREST NEIGHBORS benötigen Rechenzeit Ω(N log N ).
Beweis: Wir zeigen zunächst ELEMENT UNIQUENESS ≤N CLOSEST PAIR. Aus der
Eingabe x = (x1 , . . . , xN ) für ELEMENT UNIQUENESS berechnen wir in Zeit O(N ) die
Punkte pi = (xi , 0), 1 ≤ i ≤ N . Das Paar mit kleinstem Abstand unter den Punkten
p1 , . . . , pN hat genau dann positiven Abstand, wenn die Zahlen x1 , . . . , xN verschieden
sind.
Als zweites zeigen wir CLOSEST PAIR ≤N ALL NEAREST NEIGHBORS. Für die
Punkte p1 , . . . , pN berechnen wir NN(p1 ), . . . , NN(pN ), wobei NN(pi ) ein nächster Nachbar
zu pi ist. Dann berechnen wir in Zeit O(N ) die Werte di , die den Abstand zwischen pi
und NN(pi ) darstellen, und das Minimum aller di . Falls dieses Minimum dj ist, bilden pj
und NN(pj ) ein Paar mit minimalem Abstand.
2
In der Vorlesung DATENSTRUKTUREN wurde bereits das Problem der Berechnung minimaler Spannbäume behandelt. Dabei sind N Punkte und ihre Abstände (Kosten) d(i, j),
1 ≤ i < j ≤ N , gegeben. Gesucht ist ein Baum, der alle Knoten verbindet und für
den die
N
Gesamtkosten (Summe der Kantenkosten) minimal ist. Die Eingabe enthält 2 Zahlen,
und der Algorithmus von Prim (s. Vorlesung EFFIZIENTE ALGORITHMEN) kommt
auch mit O(N 2 ) Rechenschritten aus, ist also asymptotisch optimal. Wir betrachten nun
das Problem EUCLIDEAN MINIMUM SPANNING TREE, bei dem N Punkte p1 , . . . , pN
in der Ebene gegeben sind und die Abstände die üblichen Euklidischen Abstände sind.
In diesem Spezialfall (z. B. gilt die Dreiecksungleichung) kann ein minimaler Spannbaum
sogar in Zeit O(N log N ) berechnet werden. Dass dies optimal ist, können wir nun leicht
zeigen.
Satz 2.3.4: Das Problem EUCLIDEAN MINIMUM SPANNING TREE benötigt Rechenzeit Ω(N log N ).
Beweis: Wir zeigen CLOSEST PAIR ≤N EUCLIDEAN MINIMUM SPANNING TREE.
Auf den gegebenen Punkten p1 , . . . , pN berechnen wir einen minimalen Spannbaum bzgl.
der Euklidischen Abstände. Der Spannbaum enthält N − 1 Kanten, und er enthält, wie
man leicht sieht, eine Kante, die zwei Punkte mit minimalem Abstand verbindet. Es
genügt also, in Zeit O(N ) die Kante mit den kleinsten Kantenkosten im Spannbaum zu
berechnen.
2
Als weiteres Basisproblem betrachten wir das Problem ε-CLOSENESS, bei dem für x1 , . . . ,
xN ∈ und ε > 0 entschieden werden soll, ob es Punkte xi , xj mit i 6= j und |xi − xj | < ε
gibt.
14
Satz 2.3.5: Das Problem ε-CLOSENESS benötigt Rechenzeit Ω(N log N ).
Beweis: Hier gelingt uns keine lineare Reduktion. Wir gehen daher auf den Satz von BenOr zurück und zeigen, dass die Menge W = {(x1 , . . . , xN ) ∈ N | |xi − xj | ≥ ε für alle
i 6= j} mindestens N ! Zusammenhangskomponenten hat. Der Beweis verläuft vollständig
analog zum Beweis von Satz 2.2.3 (ELEMENT UNIQUENESS). Die geometrische Struktur der betrachteten Probleme ist bzgl. der Zahl der Zusammenhangskomponenten gleich.
2
In graphischen Systemen müssen Sichtbarkeitsprobleme gelöst werden. Eines der Grundprobleme ist der Test, ob es unter N Geradensegmenten g1 , . . . , gN in der Ebene zwei gibt,
die sich schneiden: LINE SEGMENT INTERSECTION TEST.
Satz 2.3.6: Das Problem LINE SEGMENT INTERSECTION TEST benötigt Rechenzeit
Ω(N log N ).
Beweis: Wir zeigen ELEMENT UNIQUENESS ≤N LINE SEGMENT INTERSECTION TEST. Für die gegebenen Zahlen x1 , . . . , xN berechnen wir in Zeit O(N ) die Geradenstücke gi , 1 ≤ i ≤ N , die die Endpunkte (xi , 0) und (xi , 1) haben. Genau dann, wenn
sich gi und gj schneiden, ist xi = xj .
2
In der Linearen Programmierung (s. Vorlesung OPERATIONS RESEARCH) soll eine
lineare Zielfunktion unter linearen Nebenbedingungen maximiert werden. Die Nebenbedingungen sind lineare Ungleichungen und beschreiben daher Halbräume. Der zulässige
Bereich des Optimierungsproblems ist der Durchschnitt von N Halbräumen. Die Beschreibung des zulässigen Bereichs ist eine wichtige Aufgabe. Ein Spezialfall ist die Berechnung
des Durchschnitts von N Halbräumen in der Ebene, der stets ein (beschränktes oder
unbeschränktes) konvexes Polygon ist: INTERSECTION OF HALF–PLANES.
Satz 2.3.7: Das Problem INTERSECTION OF HALF–PLANES benötigt Rechenzeit
Ω(N log N ).
Beweis: Wir zeigen ELEMENT UNIQUENESS ≤N INTERSECTION OF HALF-PLANES.
Es sei x = (x1 , . . . , xN ) die Eingabe für ELEMENT UNIQUENESS. Wie im Beweis zu
Satz 2.3.1 (Berechnung konvexer Hüllen) benutzen wir die konvexe Funktion f (z) = z 2 .
Die Tangente an (z 0 , z 02 ) ist die Gerade y = 2z 0 z −z 02 . Wir rufen einen Algorithmus für INTERSECTION OF HALF-PLANES für die Halbräume H1 , . . . , HN auf, wobei Hi durch
die Gerade gi (z) = 2xi z − x2i begrenzt ist und den Ursprung (0, 0) enthält. Somit ist der
Durchschnitt von H1 , . . . , HN ein unbeschränktes Polygon, das f in (xi , x2i ) berührt. Es
hat genau dann N − 1 Eckpunkte, wenn alle xi verschieden sind.
2
Sowohl im VLSI Design wie bei graphischen Systemen stellt sich die Frage, für N achsenparallele Rechtecke in der Ebene (die sich schneiden dürfen) die überdeckte Fläche zu
messen: MEASURE OF UNION OF RECTANGLES.
15
Satz 2.3.8: Das Problem MEASURE OF UNION OF RECTANGLES benötigt Rechenzeit Ω(N log N ).
Beweis: Wir zeigen ε-CLOSENESS ≤N MEASURE OF UNION OF RECTANGLES. Sei
x = (x1 , . . . , xN ) die Eingabe für ε-CLOSENESS. Wir bilden in Zeit O(N ) die Rechtecke
R1 , . . . , RN , wobei Ri = [xi , xi + ε] × [0, 1] ist. Die von R1 ∪ · · · ∪ RN überdeckte Fläche
ist genau dann kleiner als N ε, wenn es zwei Punkte xi und xj mit kleinerem Abstand als
ε gibt.
2
Das Problem CONTOUR OF UNION OF RECTANGLES ist die Aufgabe, für die Vereinigung von N achsenparallelen Rechtecken in der Ebene den Umriss als Folge von geschlossenen Streckenzügen zu beschreiben. Die Vereinigung der Rechtecke soll links von
den Streckenzügen liegen. Da die Vereinigung von Rechtecken Löcher“ haben kann, sind
”
u. U. mehrere Streckenzüge nötig.
Satz 2.3.9: Das Problem CONTOUR OF UNION OF RECTANGLES benötigt Rechenzeit Ω(N log N ) selbst für Eingaben, bei denen die Ausgabe Länge O(N ) hat.
Beweis: Wir zeigen ELEMENT UNIQUENESS ≤N CONTOUR OF UNION OF RECTANGLES. Sei x1 , . . . , xN die Eingabe für ELEMENT UNIQUENESS. O.B.d.A. seien
alle Zahlen positiv. Wir berechnen in Zeit O(N ) die Zahl M = max{x1 , . . . , xN } und die
Rechtecke Ri = [0, xi ] × [0, M − xi ], 1 ≤ i ≤ N . Der Umriss von R1 ∪ · · · ∪ RN ist in
Länge O(N ) zu beschreiben und besteht aus nur einem Streckenzug. Dieser hat genau
dann 2N + 2 Eckpunkte, wenn alle xi verschieden sind.
M
Umriss
M-x i
M-x j
xi
xj
M
2
Diese lange Liste von Ergebnissen soll vor allem auch zeigen, dass viele Reduktionen
leicht zu verifizieren sind und dass sich der Leser und die Leserin durchaus die Hoffnung
machen können, Reduktionen eigenständig zu entwerfen. Allerdings ist der Entwurf einer
Reduktion schwieriger als die Verifikation der Korrektheit der Reduktion. Diese kreative
Aufgabe muss geübt werden. Insgesamt haben wir eine Reihe interessanter, konkreter
Resultate erhalten.
16
3
3.1
NP-Vollständigkeit und der Satz von Cook
Probleme, Sprachen und Codierungen und die Klasse P
Wir wollen mit einigen Begriffsklärungen beginnen. Was ist ein Problem? Für einen Handelsreisenden (Traveling Salesman), der wöchentlich 47 Städte anfahren muss, ist es ein
Problem, die Fahrtroute optimal zu planen. Im Sinne der Informatik soll diese Frage”
stellung“ aber nicht Problem“ heißen! Für das Problem des Handelsreisenden“ gibt es
”
”
nämlich stets folgende merkwürdige Art der Problemlösung. Wir vergleichen per Hand
alle möglichen Fahrtrouten, berechnen eine optimale Route und programmieren dann den
Rechner so, dass er direkt die Lösung ausgibt. Dieses Programm arbeitet sehr schnell,
wobei es lange dauern kann, bis wir das Programm schreiben können.
An diesem Beispiel sehen wir, dass wir unter einem Problem ein allgemeines“ Problem
”
verstehen wollen. Ein Programm, das dieses Problem löst, sollte jeden Spezialfall des
Problems lösen. Für jede zulässige Eingabe soll das zugehörige Spezialproblem gelöst
werden.
Ein Problem besteht also in der Beschreibung, wie die zugehörigen speziellen Probleme,
also die zugehörigen Eingaben, aussehen, und in der Beschreibung des funktionalen oder
relationalen Zusammenhangs zwischen der Eingabe und der zugehörigen Ausgabe. Für
das TSP sieht das folgendermaßen aus.
TSP-1: Eine zulässige Eingabe besteht aus einer endlichen Liste von n Städten S1 , . . . , Sn
und aus der Angabe der Entfernung c(i, j) ∈ , um von Stadt Si nach Sj zu gelangen.
Als Ausgabe ist eine Permutation π gewünscht, die die folgende Funktion minimiert:
!
X
cost(π) =
c(π(i), π(i + 1)) + c(π(n), π(1)).
1≤i≤n−1
Es soll also eine Rundreise, die jeden Ort genau einmal berührt, mit minimaler Länge
berechnet werden.
Korrekterweise müssten wir also zwischen einem (allgemeinen) Problem und einem Spezialfall des Problems, also des Problems“, für eine feste Eingabe die zugehörige Ausgabe
”
zu berechnen, unterscheiden. Dies lässt sich aber sicherlich nicht durchhalten.
Wir wissen, dass ein Wechsel des Rechnermodells die Zeitkomplexität des Problems nur
polynomiell verändert. O. B. d. A. benutzen wir bei der Definition von Komplexitätsklassen daher Turingmaschinen, worunter wir in Zukunft deterministische Turingmaschinen
mit einem Band verstehen.
Definition 3.1.1: Die Komplexitätsklasse P enthält alle Probleme, die sich von einer deterministischen Turingmaschine M in polynomieller Rechenzeit lösen lassen, d. h. tM (n) ≤
p(n) für ein Polynom p.
In Definition 3.1.1 haben wir die Eingabelänge mit n bezeichnet. Wir haben noch nicht
diskutiert, wie wir die Eingabelänge messen. Ganze Zahlen können nicht direkt Eingaben
17
für Turingmaschinen sein. Üblicherweise verwenden wir für Zahlen die Binärdarstellung.
Würde man z.B. die Unärdarstellung benutzen, kann die Eingabe exponentiell länger
werden, eine exponentielle Rechenzeit bezogen auf die Eingabelänge n kann auf die aufgeblähte Eingabelänge 2n bezogen eine lineare Rechenzeit sein. Allerdings ist die Angabe
z.B. einer Entfernung in Unärdarstellung unsinnig. Analog zur erweiterten Churchschen
These benutzen wir die These, dass alle intuitiv sinnvollen Eingabedarstellungen in ihrer
Länge polynomiell verknüpft sind. Wir können also im folgenden darauf verzichten, exakt
zu beschreiben, welche Darstellung der Eingabe gewählt wird.
Für das TSP-1 wäre die Eingabelänge die Summe der Länge aller Binärdarstellungen
der Zahlen in der Eingabe. Bei der Betrachtung von Algorithmen für das TSP wird die
Eingabegröße im Allgemeinen mit n2 bezeichnet, und beliebige arithmetische Operationen werden mit einer Kosteneinheit belegt, wobei direkt auf die eingegebenen Zahlen
zugegriffen werden kann. Wieder nach der erweiterten Churchschen These unterscheiden
sich die so ermittelten Rechenzeiten nur polynomiell, solange die als Zwischenergebnisse
berechneten Zahlen nicht exponentiell länger als die eingegebenen Zahlen sind.
In der Vorlesung GTI wurden anstelle von Problemen in der hier angegebenen Allgemeinheit vor allem Sprachen behandelt. Sprachen sind Probleme, bei denen als Ausgaben nur
∧
∧
0 (= Nein) und 1 (= Ja) möglich sind. Wenn die Eingabemenge Σ∗ für ein endliches Alphabet Σ ist, dann kann die Sprache L auch als die Teilmenge von Σ∗ aufgefasst werden,
die zu der Ausgabe 1 führen soll. Allerdings ist in der Praxis die Menge der zulässigen
Eingaben oft nur eine Teilmenge von Σ∗ . Wir benutzen daher für Probleme, die nur die
Ausgaben 0 oder 1 haben, den Ausdruck Entscheidungsprobleme. Sprachen sind also stets
auch Entscheidungsprobleme. Die Aufgabe, eine Eingabe auf ihre Zulässigkeit zu prüfen,
ist für die von uns betrachteten Probleme stets auf effiziente Weise möglich. Wir werden auf diesen Test daher nie näher eingehen. Die Analyse von Entscheidungsproblemen
ist wesentlich einfacher als die Analyse beliebiger Probleme. Wir werden uns daher in
Kap. 3, 4 und 5 auf Entscheidungsprobleme konzentrieren und erst in Kap. 6 die Theorie
auf allgemeine Probleme ausdehnen.
Die Entscheidungsvariante“ des TSP sieht folgendermaßen aus:
”
TSP-2: Eingabe: Eine Liste von Städten, die Entfernungen zwischen den Städten und
eine Zahl B. Es soll entschieden werden, ob es eine TSP-Tour gibt, deren Kosten durch
B beschränkt sind.
Wir wollen hier schon zeigen, wie TSP-1 und TSP-2 verknüpft sind.
Zunächst nehmen wir an, wir hätten einen effizienten Algorithmus für TSP-1. Um TSP-2
zu lösen, lösen wir das zugehörige TSP-1, in dem B nicht vorkommt. Wir berechnen dann
die Kosten c∗ der berechneten optimalen Tour. Wir lösen TSP-2, indem wir c∗ und B
vergleichen.
Nun nehmen wir an, wir hätten einen effizienten Algorithmus für TSP-2 und wollen TSP-1
lösen. Für die triviale Tour mit π ≡ id berechnen wir die Kosten B ∗ . Die Kosten optcost
einer optimalen Tour berechnen wir mit Hilfe der binären Suche und TSP-2. Wir fragen, ob
es eine Tour mit durch bB ∗ /2c beschränkten Kosten gibt. Wenn ja, fragen wir, ob es eine
18
Tour mit durch bB ∗ /4c beschränkten Kosten gibt. Andernfalls wird die Kostenschranke
b3B ∗ /4c getestet. Nach dlog (B ∗ + 1)e Fragen ist optcost ermittelt. Nun soll eine optimale
Tour πopt berechnet werden. Die Kantenkosten werden nacheinander auf B ∗ + 1 gesetzt.
Gibt es hinterher noch eine Tour mit Kosten optcost, behält die Kante die Kosten B ∗ + 1.
Ansonsten werden die Kantenkosten auf den alten Wert zurückgesetzt. Am Ende bilden
die Kanten, deren Kosten kleiner als B ∗ + 1 sind, eine optimale Tour.
Insgesamt wird der effiziente Algorithmus für TSP-2 weniger als (n2 + dlog(B ∗ + 1)e)-mal
als Unterprogramm benutzt, diese Zahl ist polynomiell in der Eingabelänge beschränkt.
Außerdem wird TSP-2 nur auf Eingaben aufgerufen, die nicht länger als die gegebene
Eingabe sind. Damit ist der folgende Satz bewiesen.
Satz 3.1.2: Es gibt für TSP-1 genau dann einen polynomiellen Algorithmus, wenn es für
TSP-2 einen polynomiellen Algorithmus gibt.
Bisher ist kein polynomieller Algorithmus für TSP-1 oder TSP-2 bekannt. Wir haben also
ein Ergebnis über die relative Komplexität von TSP-1 und TSP-2 bewiesen, ohne die
Komplexität eines der beiden Probleme zu kennen.
3.2
Nichtdeterministische Turingmaschinen und die Klasse NP
Dieser Unterabschnitt beginnt mit einer Wiederholung aus der Vorlesung GTI (siehe Kap.
3.2 Buch Theoretische Informatik). Die Nummerierungen 3.2.1–3.2.7 beziehen sich auf das
Buch.
Die nichtdeterministischen Algorithmen, mit denen gezeigt wurde, dass die Entscheidungsvarianten von CLIQUE, BPP, KP und TSP in NP liegen, folgen dem gleichen Schema.
Zunächst wird eine Lösung nichtdeterministisch geraten und dann deterministisch verifiziert, dass wir tatsächlich eine Lösung des Problems geraten haben. Wir können uns
ganz allgemein auf Turingmaschinen beschränken, die in den zwei Phasen Raten und
Verifizieren arbeiten.
Definition 3.2.8:
Eine nichtdeterministische Turingmaschine mit Rate-VerifikationPhasen (RV-NTM) ist eine nichtdeterministische Turingmaschine, die folgendermaßen arbeitet. Sie markiert Position 0 und schreibt auf die Positionen −1, −2, . . . eine zufällige
0-1-Folge, die an einer zufälligen Stelle p abgebrochen wird. Dann kehrt sie an den Beginn der Eingabe zurück und arbeitet nur noch deterministisch, d. h. es werden nur noch
Konfigurationen erreicht, für die es maximal eine zulässige Nachfolgekonfiguration gibt.
Satz 3.2.9: a) Wird ein Entscheidungsproblem E von einer nichtdeterministischen TM
M in Zeit tM (n) entschieden, dann kann E auch von einer RV-NTM M 0 in Zeit O(tM (n)2 )
entschieden werden.
b) Wird ein Entscheidungsproblem E von einer RV-NTM M 0 in Zeit tM 0 (n) entschieden,
dann kann E auch von einer NTM in Zeit tM 0 (n) entschieden werden.
Beweis: Teil b) folgt direkt nach Definition, da RV-NTM’s spezielle NTM’s sind.
19
Teil a) lässt sich folgendermaßen beweisen. Sei z = 3|Q||Γ| und z 0 = dlog ze. Wir identifizieren die Elemente der Menge Q × Γ × {R, L, N } mit 0, . . . , z − 1. Wir können
zunächst o.B.d.A. annehmen, dass M nur die Positionen p ≥ 0 benutzt. M 0 arbeitet
folgendermaßen. Für jeden Schritt werden die nächsten noch nicht benutzten z 0 Zufallsbits benutzt, d. h. die Positionen −(t − 1)z 0 − 1, . . . , −tz 0 für Schritt t. Diese werden als
(q, a, d) ∈ Q×Γ×{R, L, N } interpretiert. Wenn q 0 der simulierte Zustand und a0 der simulierte gelesene Buchstabe ist, wird getestet, ob ((q 0 , a0 ), (q, a, d)) ∈ δ ist. Im negativen Fall
wird die Simulation abgebrochen. Ansonsten wird die zugehörige Nachfolgekonfiguration
simuliert.
Da M 0 nur zulässige Rechnungen von M simuliert, werden nur Eingaben x akzeptiert,
die auch M akzeptiert. Andererseits können alle akzeptierenden Berechnungen simuliert
werden, insbesondere auch die akzeptierende Berechnung mit tM (x) Schritten. Damit
betrachten wir die schnellste Simulation. Bei ihr werden z 0 tM (x) Bits geraten. Jeder Rechenschritt kann in O(tM (n)) Schritten simuliert werden.
2
Wenn die geratene 0-1-Folge auf ein zweites Band geschrieben werden darf, arbeitet die
RV-NTM M 0 sogar in Zeit O(tM (n)). Wir erhalten nun recht leicht eine neue Charakterisierung von NP, die nicht maschinenorientiert, sondern logikorientiert ist. Dieser Charakterisierung werden wir in Kap. 7 wieder begegnen.
Satz 3.2.10: Das Entscheidungsproblem E ist genau dann in NP enthalten, wenn es ein
polynomiell entscheidbares Prädikat P und ein Polynom p gibt, so dass die Menge der zu
akzeptierenden Eingaben sich schreiben lässt als
{x | ∃y : |y| ≤ p(|x|) und P (x, y) ist wahr }.
Beweis: ⇒“ Wir betrachten die polynomiell zeitbeschränkte RV-NTM M , die E ent”
scheidet. Als Polynom p ist die Rechenzeit tM geeignet. Das Prädikat P (x, y) soll genau
dann wahr sein, wenn M auf Eingabe x, wenn y geraten wurde, im deterministischen
Teil eine akzeptierende Konfiguration erreicht. Falls x von M akzeptiert wird, geschieht
das, indem eine Folge y mit |y| ≤ tM (|x|) geraten wird und aus dieser Konfiguration eine
akzeptierende Konfiguration erreicht wird, also P (x, y) wahr ist.
⇐“ Die RV-NTM M arbeitet folgendermaßen. Es wird für das bekannte Polynom p über”
prüft, ob für den Ratestring y gilt |y| ≤ p(|x|). Nur im positiven Fall wird weitergearbeitet
und P (x, y) deterministisch in polynomieller Zeit entschieden.
2
Nichtdeterminismus ist äquivalent zu Raten und Verifizieren“. Daher lässt sich Nichtde”
terminismus gut durch Existenzquantoren ausdrücken.
3.3
NP-Vollständigkeit
Dieser Unterabschnitt ist eine Wiederholung der Vorlesung GTI (siehe Kap. 3.3 Buch
Theoretische Informatik).
20
3.4
Die NP-Vollständigkeit wichtiger Probleme
Nach dem Meilenstein des Satzes von Cook können wir in Zukunft Lemma 3.3.8 (Buch)
anwenden, um die NP-Vollständigkeit eines Problems zu beweisen. Das Grundkonzept
eines NP-Vollständigkeitsbeweises lässt sich in 4 Schritte einteilen. Sei L das Problem.
1.) Zeige, dass L ∈ NP ist. Dies ist im Allgemeinen einfach, eine Lösung wird nichtdeterministisch geraten und dann deterministisch verifiziert.
2.) Auswahl eines geeigneten“ NP-vollständigen Problems L0 . Hier ist Intuition gefragt,
”
um die Verwandtschaft zwischen auf den ersten Blick verschiedenen Problemen zu erkennen.
3.) Angabe einer deterministisch in polynomieller Zeit berechenbaren Transformation
f : (Σ0 )∗ → Σ∗ .
4.) Beweis, dass gilt: x ∈ L0 ⇔ f (x) ∈ L.
Wir wiederholen aus der Vorlesung GTI, dass 3-SAT, CLIQUE, KP, PARTITION, BIN
PACKING (BPP), DHC, HC und TSP NP-vollständig sind. Die Reduktion PARTITION
≤p BPP ist ein Musterbeispiel für eine Restriktion, da PARTITION ein Bin Packing
Problem mit 2 Kisten ist, wobei die Gesamtgröße aller zu verpackenden Objekte der
Gesamtgröße der beiden Kisten entspricht. Als Musterbeispiel für eine lokale Ersetzung
kann die Reduktion SAT ≤p 3-SAT gelten, da jede Klausel in der Eingabe für SAT lokal,
d. h. unabhängig von den anderen Klauseln, behandelt wurde. Schließlich ist die Reduktion
3-SAT ≤p CLIQUE ein besonders schönes Beispiel für eine Reduktion mit miteinander
verbundenen Komponenten. Zunächst wird jede Klausel durch eine lokale Komponente,
nämlich drei Knoten ohne Verbindung, dargestellt. Jeder Knoten entspricht einem Literal
der Klausel. Die Komponenten werden durch Kanten verbunden, um sicherzustellen, dass
sich Variablenbelegungen in den verschiedenen Klauseln nicht widersprechen. Genau die
Literale verschiedener Klauseln, die nicht gleichzeitig erfüllt sein können, werden nicht
durch eine Kante verbunden. Cliquen der Größe l zeigen also, dass die betreffenden l
Klauseln gleichzeitig erfüllbar sind und umgekehrt.
Wie lassen sich die anderen Reduktionen klassifizieren?
– 3-SAT ≤p KP∗ ≤p KP. Diese Reduktion liegt zwischen den Methoden lokale Ersetzung und verbundene Komponenten. Die Zahlen ai und bi sind lokale Komponenten
für die Literale xi und xi , die Zahlen ci , di und A stellen aber eine gewisse Art von
Verbindung dar.
– KP∗ ≤p PARTITION. Das ist fast“ eine Restriktion.
”
– 3-SAT ≤p DHC. Dies ist wiederum ein Musterbeispiel, wie die Komponenten für die
Literale und Klauseln miteinander verbunden werden.
– DHC ≤p HC. Dies ist offensichtlich eine lokale Ersetzung.
– HC ≤p TSP. Dies ist offensichtlich eine Restriktion.
21
4
4.1
Techniken zum Beweis der NP-Vollständigkeit
Dreidimensionales Matching — eine Reduktion mit verbundenen Komponenten
In der Vorlesung EFFIZIENTE ALGORITHMEN wird gezeigt, dass die Berechnung maximaler zweidimensionaler (bipartiter) Matchings in polynomieller Zeit möglich ist. Wir
wollen zeigen, dass optimale dreidimensionale Matchings nicht effizient berechenbar sind,
falls NP 6= P ist.
Definition 4.1.1: 3-DM (Dreidimensionales Matching)
Es seien X, Y, Z disjunkte Mengen mit je q Elementen. Es sei M ⊆ X × Y × Z. Es soll
entschieden werden, ob M ein dreidimensionales Matching enthält, d. h. ob es in M genau
q Tripel gibt, so dass jedes Element x ∈ X, y ∈ Y und z ∈ Z überdeckt wird.
Matchingprobleme haben Anwendungen, sie bilden die Grundlage von Zuordnungsproblemen. Die Mengen X, Y und Z könnten Expertengruppen für drei Problemkreise sein.
Falls (x, y, z) ∈ M , verstehen sich x, y und z und können ein Team bilden. Es soll also
entschieden werden, ob die Fachleute so in Dreierteams eingeteilt werden können, dass
sich alle Teams verstehen.
Satz 4.1.2: 3-DM ist NP-vollständig.
Beweis:
1.) 3-DM ∈ NP. Wir raten q verschiedene Zahlen in {1, . . . , |M |} und verifizieren, ob
die q zugehörigen Tripel alle Elemente überdecken.
2.) Das Problem 3-DM ist mit keinem der uns bisher bekannten NP-vollständigen Probleme eng verwandt. Wir wählen nun 3-SAT zur Reduktion, da 3-SAT klar definierte
Komponenten (Variablen und Klauseln) hat und die Verbindungen zwischen den Klauseln sehr einfach zu beschreiben sind. Jede Variable muss in allen Klauseln, in der sie
vorkommt, den gleichen Wert annehmen.
3.) Sei eine Eingabe für 3-SAT gegeben, d. h. eine Menge U = {u1 , . . . , un } von Variablen
und eine Menge C = {c1 , . . . , cm } von Klauseln mit je drei Literalen. Dieses Problem
müssen wir nun als 3-DM-Problem codieren. Wir werden dazu drei Typen von Tripeln
benutzen.
M = T1 ∪ · · · ∪ Tn ∪ S1 ∪ · · · ∪ Sm ∪ G. Die Tripel in Ti sollen dafür sorgen, dass die
∧
Variable ui in allen Klauseln denselben Wert annimmt (T = truth setting). Die Tripel
∧
in Sj sollen dafür sorgen, dass die Klausel cj erfüllt ist (S = satisfying). Die Tripel in G
∧
(G = garbage) sollen dafür sorgen, dass das Matching aufgeht“.
”
Konstruktion von Ti : X enthalte ui (j) und ui (j) für 1 ≤ j ≤ m, Y enthalte ai (j) und Z
enthalte bi (j) für 1 ≤ j ≤ m. Die Elemente ai (j) und bi (j) sollen nur in Tripeln aus Ti
vorkommen. Es sei Ti = Ti1 ∪ Ti0 mit
Ti1 = {(ui (j), ai (j), bi (j)) | 1 ≤ j ≤ m}
22
und
Ti0 = {(ui (j), ai (j + 1), bi (j)) | 1 ≤ j ≤ m − 1} ∪ {(ui (m), ai (1), bi (m))}.
Für m = 1 wird die Konstruktion sinnlos, allerdings sind Klauselmengen mit einer Klausel
stets erfüllbar. Für m = 4 stellen wir die zugehörigen Tripel bildlich dar, wobei wir auf
den Index i verzichten.
Ti1
Ti0
u(1)
u(1)
u(4)
b(1) a(1)
b(4)
a(2)
u(4)
u(2)
b(2)
a(4)
a(3) b(3)
u(3)
u(2)
u(3)
Da die Elemente ai (j) und bi (j) nur in Tripeln aus Ti vorkommen, gibt es genau 2 Möglichkeiten, diese Elemente zu überdecken.
1.) Wir wählen alle Tripel in Ti1 , dann sind ui (1), . . . , ui (m) frei und zeigen an, dass ui = 1
sein soll.
2.) Wir wählen alle Tripel in Ti0 , dann sind ui (1), . . . , ui (m) frei und zeigen an, dass ui = 1,
d. h. ui = 0, sein soll.
Konstruktion von Sj : Wir fügen nun s0 (j) zu Y und s00 (j) zu Z hinzu, 1 ≤ j ≤ m. Diese
Elemente sollen nur in Tripeln aus Sj vorkommen. Sj soll aus drei Tripeln bestehen, die
von der Form (·, s0 (j), s00 (j)) sind. Falls cj = u7 ∨ u9 ∨ u15 , sei
Sj = {(u7 (j), s0 (j), s00 (j)), (u9 (j), s0 (j), s00 (j)), (u15 (j), s0 (j), s00 (j))}. Allgemein werden die
drei Literale von cj mit dem Zusatz (j)“ an die erste Stelle des Tripels geschrieben. Da
”
die Elemente s0 (j) und s00 (j) nur in Tripeln aus Sj vorkommen, muss genau eines dieser
drei Tripel gewählt werden. Um z.B. (u7 (j), s0 (j), s00 (j)) wählen zu können, müssen die
Tripel aus T71 gewählt worden sein. Sonst ist u7 (j) nicht mehr frei. D.h. aber u7 = 1 und
cj ist erfüllt.
Wir zählen, wieviel Elemente X, Y und Z bisher haben.
X : 2mn;
ui (j) und ui (j), 1 ≤ i ≤ n, 1 ≤ j ≤ m.
Y : mn + m; ai (j) und s0 (j), 1 ≤ i ≤ n, 1 ≤ j ≤ m.
Z : mn + m; bi (j) und s00 (j), 1 ≤ i ≤ n, 1 ≤ j ≤ m.
Um die bisherigen Elemente aus Y und Z zu überdecken, sind also mn + m Tripel notwendig und hinreichend. Es bleiben also mn − m Elemente aus X unüberdeckt. Falls die
Überdeckung bis hierher möglich ist, soll sie trivial vervollständigt werden können.
Konstruktion von G: Wir fügen g1 (k) zu Y und g2 (k) zu Z hinzu, 1 ≤ k ≤ mn − m.
G umfasst alle Tripel (ui (j), g1 (k), g2 (k)) und (ui (j), g1 (k), g2 (k)), 1 ≤ i ≤ n, 1 ≤ j ≤
m, 1 ≤ k ≤ mn − m.
23
Wir fassen zusammen: q = 2mn.
X = {ui (j), ui (j) | 1 ≤ i ≤ n, 1 ≤ j ≤ m}, |X| = 2mn.
Y = {ai (j) | 1 ≤ i ≤ n, 1 ≤ j ≤ m} ∪ {s0 (j) | 1 ≤ j ≤ m}
∪{g1 (k) | 1 ≤ k ≤ mn − m}, |Y | = 2mn.
Z = {bi (j) | 1 ≤ i ≤ n, 1 ≤ j ≤ m} ∪ {s00 (j) | 1 ≤ j ≤ m}
∪{g2 (k) | 1 ≤ k ≤ mn − m}, |Z| = 2mn.
M = T1 ∪ · · · ∪ Tn ∪ S1 ∪ · · · ∪ Sm ∪ G.
M enthält 2mn + 3m + 2mn(mn − m) Tripel. Es ist offensichtlich, dass sich (q, X, Y, Z, M )
in polynomieller Zeit aus (U, C) berechnen lässt.
4.) Wir nehmen zunächst an, dass es eine Belegung der Variablen in U gibt, so dass alle
Klauseln in C erfüllt sind. Für i ∈ {1, . . . , n} wählen wir dann die Tripelmenge Ti1 oder
Ti0 , die der erfüllenden Belegung entspricht. Da cj erfüllt ist, ist für ein i das Literal
ui oder ui in cj erfüllt. Zur Überdeckung von s0 (j) und s00 (j) wird (ui (j), s0 (j), s00 (j))
bzw. (ui (j), s0 (j), s00 (j)) gewählt. Das Element ui (j) bzw. ui (j) ist nach Auswahl unserer
Tripel aus Ti noch frei. Die Tripel können auf triviale Weise durch Tripel aus G zu einem
Matching ergänzt werden.
Sei nun andererseits ein Matching M gegeben. Wir haben bereits gesehen, dass dieses
Matching entweder alle Tripel aus Ti1 oder alle Tripel Ti0 enthalten muss. Wir setzen im
ersten Fall ui = 1 und im zweiten Fall ui = 0. Diese Belegung erfüllt alle Klauseln. Wenn
nämlich cj nicht erfüllt ist, sind alle drei Literale aus cj Nullen. Wenn ui (oder ui ) in cj
vorkommt, dann ist ui = 0 (ui = 1). Das Element ui (j) (ui (j)) wird dann bereits durch
Tripel aus Ti überdeckt. Die Elemente s0 (j) und s00 (j) können also im Widerspruch zur
Annahme durch M nicht überdeckt worden sein.
2
An dieser Stelle sollten die Leserin und der Leser wieder von den technischen Details des
Beweises abstrahieren und sich überlegen, wie sich das 3-SAT-Problem im 3-DM-Problem
wiederfindet.
Auch diese Reduktion kann als Musterbeispiel für eine Reduktion mit miteinander verbundenen Komponenten gelten.
4.2
NP-Vollständigkeitsbeweise durch Restriktion
Wenn ein Problem P1 ein Spezialfall des Problems P2 ist, dann gilt P1 ≤p P2 . So ist
trivialerweise 3-SAT ein Spezialfall von SAT, die Eigenschaft 3-SAT ≤p SAT ist also trivial
zu beweisen. Die Eingabe für 3-SAT kann direkt als Eingabe für SAT benutzt werden.
Die Aussage HC ≤p TSP war bereits etwas schwieriger zu zeigen. Wir mussten erkennen,
dass Kanten im Eingabegraphen G für HC einer billigen Verbindung in der Eingabe für
TSP entsprechen und Nichtkanten einer teuren Verbindung. Schließlich musste im Beweis
PARTITION ≤p BPP erst erkannt werden, dass das Problem PARTITION ein 2-KistenProblem in anderer Sprechweise ist. Es ist auch im folgenden nicht immer trivial zu
erkennen, dass P1 ein Spezialfall von P2 ist. Da in der Praxis Restriktionen die häufigste
Beweismethode darstellen, benutzen wir diese Methode, um acht weitere Probleme als
24
NP-vollständig zu klassifizieren. Da es immer leicht ist, zu zeigen, dass die betrachteten
Probleme in NP enthalten sind, diskutieren wir diese Beweisteile nicht explizit.
Unsere Sprache suggeriert, dass nicht P1 Spezialfall von P2 und gleichzeitig P2 Spezialfall
von P1 sein kann. Wir wollen Spezialfall aber nicht als echten Spezialfall verstehen. So
ist jede Sprache L Spezialfall von sich selber, die Eigenschaft L ≤p L ist ja auch mit der
denkbar einfachsten Restriktion zu zeigen.
Wir zeigen nun, dass drei wichtige Probleme in diesem Sinn Spezialfälle voneinander sind.
In anderen Worten handelt es sich um das gleiche Problem in verschiedenen Gewändern.
Hier ist eine Warnung angebracht. Diese Gleichheit gilt nur, wenn wir die Probleme exakt
und nicht nur approximativ lösen wollen (s. Kap. 10).
Definition 4.2.1: VC (Vertex Cover)
Für einen ungerichteten Graphen G = (V, E) und eine Zahl k ∈ {0, . . . , |V |} soll entschieden werden, ob es eine Knotenmenge V 0 ⊆ V mit |V 0 | ≤ k gibt, die G überdeckt, d. h. für
alle e ∈ E gilt e ∩ V 0 6= ∅.
Es soll also entschieden werden, ob in einem Netzwerk k Überwachungsstationen genügen,
um alle Verbindungen zu kontrollieren.
Definition 4.2.2: IP (Independent Set)
Für einen ungerichteten Graphen G = (V, E) und eine Zahl k ∈ {0, . . . , |V |} soll entschieden werden, ob der Graph k unabhängige Knoten v1 , . . . , vk enthält, d. h. vi 6= vj für i 6= j
und {vi , vj } 6∈ E.
Satz 4.2.3: VC und IP sind NP-vollständig.
Beweis: Es gilt CLIQUE ≤p IP. Sei G = (V, E) und k eine Eingabe für CLIQUE. Zu
G konstruieren wir den Komplementärgraphen Gc = (V, E c ), wobei E c genau die Kanten
enthält, die nicht in E enthalten sind. Wir setzen k c = k. Eine Knotenmenge V 0 ⊆ V ist
in G offensichtlich genau dann eine Clique, wenn sie in Gc eine unabhängige Menge ist.
Auf gleiche Weise können wir auch zeigen, dass IP ≤p CLIQUE gilt. Somit sind IP und
CLIQUE die gleichen Probleme in verschiedener Formulierung.
Es gilt auch IP ≤p VC. Sei G = (V, E) und k eine Eingabe für IP. Zu (G, k) konstruieren
wir (G0 , k 0 ) als Eingabe für VC, wobei G0 = G und k 0 = n − k ist. Eine Knotenmenge
V 0 ⊆ V ist in G genau dann unabhängig, wenn keine Kante zwei Knoten aus V 0 verbindet.
Dies ist genau dann der Fall, wenn V − V 0 in G0 = G ein vertex cover bildet. Schließlich
ist |V − V 0 | = n − |V 0 |.
Auch hier lässt sich V C ≤p IP auf gleiche Weise zeigen.
2
Definition 4.2.4: MINIMUM COVER (Überdeckungsproblem)
Für eine endliche Menge S, ein System C von Teilmengen von S und eine Zahl k soll
entschieden werden, ob sich S bereits mit k Mengen aus C überdecken lässt.
Dieses Problem kennen wir aus der Vorlesung RECHNERSTRUKTUREN. Es ist bei der
Berechnung eines Minimalpolynoms aus der Primimplikantentafel und bei der Berechnung
einer minimalen Testmenge zum Testen eines Schaltkreises zu lösen.
25
Satz 4.2.5: MINIMUM COVER ist NP-vollständig.
Beweis: 3-DM ≤p MINIMUM COVER.
Sei (q, X, Y, Z, M ) gegeben. Die Mengen X, Y und Z sind disjunkt. S := X ∪ Y ∪ Z. Das
Tripel (x, y, z) ∈ M wird durch die Menge {x, y, z} in C ersetzt. Dazu sei k = q.
2
Hier haben wir ausgenutzt, dass ein dreidimensionales Matching automatisch eine minimale Überdeckung aller Mengenelemente darstellt.
Definition 4.2.6: HITTING SET
Für eine endliche Menge S, ein System C von Teilmengen von S und eine Zahl k soll
entschieden werden, ob es eine k-elementige Teilmenge S 0 von S gibt, die mit jeder Menge
in C einen nichtleeren Schnitt hat.
Satz 4.2.7: HITTING SET ist NP-vollständig.
Beweis: VC ist der Spezialfall, in dem C nur zweielementige Mengen, nämlich Kanten,
enthält.
2
Definition 4.2.8: SUBGRAPH ISOMORPHISM
Für zwei ungerichtete Graphen G1 = (V1 , E1 ) und G2 = (V2 , E2 ) soll entschieden werden,
ob G1 ein isomorphes Bild von G2 enthält, d. h. ob es eine Teilmenge V 0 von V1 mit
|V 0 | = |V2 | und eine bijektive Abbildung f : V2 → V 0 derart gibt, dass {u, v} genau dann
in E2 enthalten ist, wenn {f (u), f (v)} in E1 enthalten ist.
Die Anwendungen in der Mustererkennung liegen auf der Hand.
Satz 4.2.9: SUBGRAPH ISOMORPHISM ist NP-vollständig.
Beweis: CLIQUE ist der Spezialfall, dass G2 der vollständige Graph auf V2 ist.
2
Wir setzen nun voraus, dass HAMILTONIAN PATH NP-vollständig ist (s. Übungen).
Dabei ist zu entscheiden, ob ein Graph einen Pfad der Länge n − 1 enthält, der alle
Knoten berührt. Ein Spannbaum ist ein Baum, der alle Knoten des Graphen enthält. In
polynomieller Zeit kann entschieden werden, ob ein Graph einen Spannbaum enthält. Es
genügt ein DFS-Durchlauf.
Definition 4.2.10: BOUNDED DEGREE SPANNING TREE
Für einen ungerichteten Graphen G und eine Zahl k soll entschieden werden, ob G einen
Spannbaum enthält, bei dem der Grad jedes Knotens durch k beschränkt ist.
Satz 4.2.11: BOUNDED DEGREE SPANNING TREE ist NP-vollständig.
Beweis: HAMILTONIAN PATH ist der Spezialfall für k = 2.
26
2
Definition 4.2.12: MINIMUM EQUIVALENT DIGRAPH (MED)
Für einen gerichteten Graphen G = (V, E) und eine Zahl k soll entschieden werden, ob
es einen Untergraphen G0 = (V, E 0 ) mit höchstens k Kanten gibt, so dass Verbindungen
nicht zerstört werden, d. h. falls es in G einen Weg von u nach v gibt, soll es auch in G0
einen Weg von u nach v geben.
Dieses Problem hat natürlich Anwendungen in der Netzwerktheorie.
Satz* 4.2.13: MINIMUM EQUIVALENT DIGRAPH ist NP-vollständig.
Beweis: DHC ≤p MED. DHC ist im engeren Sinn kein Spezialfall von MED. Dennoch
fällt der Beweis in die Klasse der Restriktionsbeweise.
Ein Graph heißt stark zusammenhängend, wenn es für jedes Knotenpaar (u, v) einen Weg
von u nach v gibt. Wir testen zunächst in polynomieller Zeit (s. EFFIZIENTE ALGORITHMEN), ob G stark zusammenhängend ist. Falls nicht, kann es keinen gerichteten
Hamiltonkreis geben, und wir transformieren G in eine nicht lösbare Aufgabe für MED.
Für stark zusammenhängende Graphen G ist DHC der Spezialfall von MED für k = |V |.
Gerichtete Hamiltonkreise sind nämlich die einzigen Graphen mit |V | Kanten, in denen
es für jedes Knotenpaar (u, v) einen Weg von u nach v gibt.
2
Definition 4.2.14: MULTIPROCESSOR SCHEDULING
Für eine endliche Menge A von Aufgaben, deren Bearbeitungszeiten `(a) ∈ , eine Zahl
m ∈ von Prozessoren und eine Deadline D ∈
ist zu entscheiden, ob die Aufgaben
so auf die Prozessoren verteilt werden können, dass alle Aufgaben nach D Zeiteinheiten
beendet sind.
Hier ist wieder klar, dass dieses Problem anwendungsorientiert ist.
Satz 4.2.15: MULTIPROCESSOR SCHEDULING ist NP-vollständig.
P
Beweis: PARTITION ist der Spezialfall m = 2 und D = 21 a∈A `(a). Falls D nicht
ganzzahlig ist, ist PARTITION nicht lösbar.
2
Besonders für diese Beweismethode ist die Kenntnis vieler NP-vollständiger Probleme
wichtig. Wir haben auf einfache Weise die NP-Vollständigkeit von acht weiteren für die
Praxis wichtigen Problemen bewiesen. Inzwischen kennen wir 17 NP-vollständige Probleme. Diese Zahl ist natürlich für diejenigen noch wesentlich größer, die die Übungsaufgaben
bearbeitet haben.
4.3
NP-Vollständigkeitsbeweise durch lokale Ersetzung
Bei der Methode der lokalen Ersetzung wird versucht, die Komponenten einer Eingabe
von P1 lokal, d. h. unabhängig von anderen Komponenten, in Komponenten einer Eingabe
von P2 zu transformieren. Wir wollen die Methode mit vier weiteren NP-Vollständigkeitsbeweisen einüben.
27
Definition 4.3.1: BOOLEAN SUMS
Für eine Variablenmenge U und eine Menge C = {c1 , . . . , cm } von booleschen Summen
über U , d. h. Disjunktionen von positiven Literalen über U , soll für eine Zahl B ∈ entschieden werden, ob die booleschen Summen in einem Schaltkreis, der nur Disjunktionen
als Operationen enthält, mit B Bausteinen berechnet werden können.
Dieses Beispiel zeigt, dass bereits einfache Aufgaben bei der Schaltkreisoptimierung schwierig sind.
Satz 4.3.2: BOOLEAN SUMS ist NP-vollständig.
Beweis: 1.) BOOLEAN SUMS ∈ NP.
2.) Erstaunlicherweise ist VC das passende Problem.
3.) Sei G = (V, E) ein ungerichteter Graph und k ∈ {1, . . . , |V |}. Die Komponenten
dieser Eingabe für VC sind die Knoten, Kanten und k. Es sei V = {v1 , . . . , vn } und
U := {u0 , u1 , . . . , un }. D.h. der Komponente vi wird ui zugeordnet, außerdem wird u0
hinzugefügt. Der Kante {vi , vj } ∈ E wird die boolesche Summe u0 ∨ ui ∨ uj zugeordnet.
Schließlich wird der Schranke k die Schranke B = k + |E| zugeordnet. Natürlich kann
(U, C, B) in polynomieller Zeit berechnet werden.
4.) Sei zunächst angenommen, dass es für G ein vertex cover mit k Knoten, o.B.d.A.
v1 , . . . , vk , gibt. Wir berechnen nun die booleschen Summen mit B Disjunktionen. Zunächst werden mit k Operationen alle u0 ∨ui , 1 ≤ i ≤ k, berechnet. Für jede der booleschen
Summen u0 ∨ ui ∨ uj sei o.B.d.A. i < j. Da v1 , . . . , vk ein vertex cover bilden, ist i ≤ k.
Es genügen also |E| weitere Disjunktionen, um alle booleschen Summen (u0 ∨ ui ) ∨ uj zu
berechnen, da u0 ∨ ui bereits vorliegt.
Sei nun ein Schaltkreis mit höchstens k + |E| Disjunktionen gegeben, der die booleschen
Summen berechnet. Sei V ∗ die Menge der Knoten vj , für die es im Schaltkreis einen
Baustein gibt, der ui ∨ uj mit i < j berechnet. V ∗ enthält höchstens k Knoten. Denn da
es |E| Ausgabebausteine gibt, die offensichtlich keine Summe ui ∨ uj berechnen, gibt es
höchstens k Bausteine, die ui ∨ uj berechnen. Sei nun {vi , vj } eine beliebige Kante (i < j).
Da der Schaltkreis die Summe u0 ∨ ui ∨ uj berechnet, gibt es einen Baustein, der u0 ∨ ui ,
u0 ∨uj oder ui ∨uj berechnet. In jedem Fall ist einer der Knoten vi oder vj in V ∗ enthalten,
und V ∗ bildet ein Vertex Cover.
2
Um auf diese Reduktion zu kommen“, muss man eventuell viele NP-vollständige Proble”
me als Kandidaten für die Reduktion testen.
Definition 4.3.3: PARTITION INTO TRIANGLES
Für ungerichtete Graphen G = (V, E) mit |V |/3 = q ∈ soll entschieden werden, ob V
so in q dreielementige Mengen V1 , . . . , Vq zerlegt werden kann, dass G auf Vi , 1 ≤ i ≤ q,
ein Dreieck enthält.
Satz* 4.3.4: PARTITION INTO TRIANGLES ist NP-vollständig.
28
Beweis: 1.) PARTITION INTO TRIANGLES ∈ NP.
2.) Da es um Zerlegungen in dreielementige Mengen geht, wählen wir 3-DM.
3.) Sei (q, X, Y, Z, M ) eine Eingabe für 3-DM. Die Komponenten des Problems sind die
Tripel in M . Sei mi = (xi , yi , zi ) ∈ M . Dann wird mi durch die folgende Komponente
ersetzt.
ai (3)
ai (9)
ai (1)
ai (2)
xi
ai (6)
ai (4)
ai (7)
ai (5)
ai (8)
zi
yi
Wir nehmen an, dass alle Elemente aus X ∪ Y ∪ Z in mindestens einem Tripel in M
vorkommen. Sonst ist 3-DM nicht lösbar. Nun sei V = X ∪ Y ∪ Z ∪ {ai (j) | 1 ≤ j ≤
9 , 1 ≤ i ≤ |M |} und E die Menge der Kanten in allen zu mi , 1 ≤ i ≤ |M |, gehörenden
Komponenten. Die Komponenten kleben“ an den Elementen aus X ∪ Y ∪ Z eventuell
”
zusammen. Natürlich kann G = (V, E) in polynomieller Zeit berechnet werden. Da |X| =
|Y | = |Z|, ist |V | durch 3 teilbar.
4.) Sei zunächst angenommen, dass X ∪ Y ∪ Z durch q Tripel überdeckt werden kann.
Die Überdeckung bestehe o.B.d.A. aus m1 , . . . , mq . Für mi = (xi , yi , zi ), 1 ≤ i ≤ q wählen
wir die vier Dreiecke (ai (1), ai (2), xi ), (ai (4), ai (5), yi ), (ai (7), ai (8), zi ), (ai (3), ai (9), ai (6)),
während wir für die anderen Tripel mi , q < i, die drei Dreiecke (ai (1), ai (2), ai (3)),
(ai (4), ai (5), ai (6)), und (ai (7), ai (8), ai (9)) wählen. Alle ai (j) werden genau einmal überdeckt. Gleiches gilt für die Elemente aus X ∪ Y ∪ Z, da diese Elemente in den Tripeln mi ,
1 ≤ i ≤ q, genau einmal vorkommen.
Nun wird angenommen, dass G mit q + 3|M | Dreiecken überdeckt werden kann. Für das
dreidimensionale Matching wählen wir die Tripel mi aus, für die das Dreieck
(ai (3), ai (9), ai (6)) in der Dreiecksüberdeckung von G vorkommt. Um die anderen ai (·)Knoten zu überdecken, müssen die Dreiecke (ai (1), ai (2), xi ), (ai (4), ai (5), yi ) und
(ai (7), ai (8), zi ) gewählt worden sein. Daher wird X ∪ Y ∪ Z durch die gewählten Tripel
überdeckt. Würde xi (oder yi oder zi ) in zwei oder mehr Tripeln vorkommen, würde
das entsprechende Element auch in mindestens zwei Dreiecken der Dreiecksüberdeckung
vorkommen. Widerspruch!
2
Diese beiden Reduktionen waren Beispiele für rein“ lokale Ersetzungen. Wir zählen Re”
duktionen auch zur Klasse der lokalen Ersetzungen, wenn es neben der lokalen Ersetzung,
die die wesentliche Rolle spielen, auch nebensächliche Komponenten gibt. Die Unterscheidung von Reduktionen in Methodenklassen ist natürlich nicht eindeutig. Es folgen zwei
lokale Ersetzungen, die auch noch erzwingende Komponenten enthalten.
29
Definition 4.3.5: SEQUENCING WITH INTERVALS
Für eine endliche Menge von Aufgaben A, die Zeit l(a) zur Bearbeitung benötigen, deren
Bearbeitung frühestens zum Zeitpunkt r(a) beginnen darf und spätestens zum Zeitpunkt
d(a), wobei d(a) − r(a) ≥ l(a), abgeschlossen sein muss, soll entschieden werden, ob sie
von einem Prozessor so bearbeitet werden können, dass alle Nebenbedingungen erfüllt
sind.
Satz 4.3.6: SEQUENCING WITH INTERVALS ist NP-vollständig.
Beweis: 1.) SEQUENCING WITH INTERVALS ∈ NP.
2.) Es ist naheliegend, das einfachste NP-vollständige Scheduling Problem, also PARTITION, zu wählen. PARTITION kann ja nicht nur als spezielles Bin Packing Problem mit
zwei Kisten, sondern auch als spezielles Scheduling Problem aufgefasst werden. Dabei ist
zu entscheiden, ob Aufgaben so auf zwei Prozessoren verteilt werden können, dass die
beiden Prozessoren gleich lange zu arbeiten haben.
3.) Es sei eine Eingabe
für PARTITION gegeben, also eine Menge A und s(a) ∈ ,
P
a ∈ A. Sei B := a∈A s(a). Als Aufgabenmenge wählen wir A0 = A ∪ {a0 }, wobei a0 die
erzwingende Aufgabe wird. Es sei r(a) = 0, d(a) = B + 1 und l(a) = s(a) für a ∈ A,
sowie r(a0 ) = B/2, d(a0 ) = B/2 + 1 und l(a0 ) = 1. Diese Eingabe für SEQUENCING
WITH INTERVALS kann natürlich in polynomieller Zeit berechnet werden. Falls B/2
nicht ganzzahlig ist, kann PARTITION für diese Eingabe nicht gelöst werden.
4.) Die Definitionen erzwingen, dass die Aufgabe a0 im Zeitintervall [B/2, B/2 + 1] bearbeitet wird. Alle Arbeiten müssen nach B + 1 Zeiteinheiten abgearbeitet sein, daher darf
es keine Arbeitspause geben. Es gibt also genau dann einen zulässigen Arbeitsplan, wenn
die Aufgaben aus A in zwei Blöcke der Länge B/2 zerlegt werden können, d. h. wenn
PARTITION für A eine Lösung hat.
2
Definition 4.3.7: MINIMUM TEST COLLECTION
Für eine endliche Menge A von Diagnosen und eine Menge C = {c1 , . . . , cm } von Tests –
wobei mit dem Test ci ⊆ A entschieden wird, ob die unbekannte Diagnose a ∈ ci ist – soll
für eine Zahl k entschieden werden, ob bereits k der Testmengen ausreichen, um jedes a
zu identifizieren.
Ein a ∈ A lässt sich eindeutig identifizieren, wenn es für jedes b ∈ A, b 6= a, einen Test
c mit a ∈ c und b ∈
/ c oder a ∈
/ c und b ∈ c gibt. Dieses Problem ist grundlegend für
Testplanungen und die sogenannte Suchtheorie.
Satz 4.3.8: MINIMUM TEST COLLECTION ist NP-vollständig.
Beweis: 1.) MINIMUM TEST COLLECTION ∈ NP.
2.) Die Wahl ist nicht einfach. Da es aber um trennende Tests geht und alle Diagnosenpaare
getrennt werden müssen, wählen wir 3-DM.
3.) Sei (q, X, Y, Z, M ) eine Eingabe für 3-DM. Jedes Tripel mi = (xi , yi , zi ) ∈ M wird
durch den Test ci = {xi , yi , zi } ersetzt. Als erzwingende Diagnosen werden x0 , y0 und
30
z0 definiert. Es sei also A = X ∪ Y ∪ Z ∪ {x0 , y0 , z0 }. Die Menge aller Tests C enthält
ci = {xi , yi , zi }, falls mi = (xi , yi , zi ) ∈ M , c0 = X ∪ {x0 } und c00 = Y ∪ {y0 }. Dazu sei
k = q + 2. Die Eingabe (A, C, k) für MINIMUM TEST COLLECTION kann natürlich in
polynomieller Zeit berechnet werden.
4.) Die zusätzlichen“ Diagnosen x0 , y0 und z0 erzwingen, dass die Tests c0 und c00 gewählt
”
werden müssen. Mit diesen beiden Tests erfahren wir, ob die richtige Diagnose in X ∪{x0 },
Y ∪ {y0 } oder Z ∪ {z0 } ist.
Falls es ein dreidimensionales Matching mit q Tripeln gibt, wählen wir die zugehörigen q
Tests und c0 und c00 . Jedes xi , i ≥ 1, ist in genau einem der q zu den Tripeln gehörigen
Testmengen enthalten, während x0 in keiner dieser Mengen enthalten ist. Die x-Diagnosen
werden also getrennt, ebenso die y- und z-Diagnosen. Die Tests c0 und c00 entscheiden, ob
wir eine x-, y- oder z-Diagnose stellen müssen.
Wenn andererseits q + 2 Tests ausreichen, sind darunter c0 und c00 , die zwischen den x-, yund z-Diagnosen unterscheiden. Wir zeigen, dass die q Tripel, die zu den anderen q Tests
gehören, ein dreidimensionales Matching bilden. Wenn xi ∈ X nicht überdeckt wird, kann
xi nicht von x0 getrennt werden. Also werden alle x ∈ X, y ∈ Y und z ∈ Z überdeckt.
Da q Tripel nur 3q Elemente überdecken können, werden auch alle Elemente nur einmal
überdeckt.
2
4.4
Zwei weitere Reduktionen mit verbundenen Komponenten
Die bisher behandelten Beweisprinzipien zeichnen sich durch ihre Lokalität aus. Dies erleichtert ein rezeptartiges Vorgehen. Bei Reduktionen mit verbundenen Komponenten ist
meistens eine Portion Intuition nötig, passende Verbindungen zu finden. Mit Restriktionen
und lokalen Ersetzungen kommen wir im Allgemeinen dann nicht aus, wenn wir die NPVollständigkeit eines Problems P beweisen wollen und noch kein P verwandtes Problem
als NP-vollständig bekannt ist. Reduktionen zwischen sehr unterschiedlichen Problemen
sind natürlich schwieriger zu finden als Reduktionen zwischen sehr ähnlichen oder ziemlich ähnlichen Problemen. Etwas vereinfachend kann festgehalten werden: Es ist Aufgabe
der wissenschaftlichen Forschung, die NP-Vollständigkeit von Problemen zu zeigen, die zu
Gebieten gehören, aus denen noch kein NP-vollständiges Problem bekannt ist. Dies gilt
auch für sehr spezielle Varianten von NP-vollständigen Problemen. Es ist dann Routine
für Informatikerinnen und Informatiker in Industrie und Forschung, die NP-Vollständigkeit weiterer Probleme zu zeigen, für die ähnliche Probleme“ bereits als NP-vollständig
”
bekannt sind. Wir wollen noch beispielhaft eine Reduktion nach der Methode verbundener
Komponenten vorführen.
Definition 4.4.1: MINIMUM TARDINESS SEQUENCING
Für eine Menge von Aufgaben A, deren Bearbeitungsdauer jeweils 1 ist, für die es aber
eine Deadline d(a) ∈ gibt und für die es eine partielle Ordnung gibt, die für manche
Aufgaben die Bearbeitungsreihenfolge festlegt, soll für ein k ∈ entschieden werden, ob
es eine Bearbeitungsreihenfolge gibt, bei der höchstens k Aufgaben nicht zu ihrer Deadline
bearbeitet sind.
31
Satz 4.4.2: MINIMUM TARDINESS SEQUENCING ist NP-vollständig.
Beweis:
1.) MINIMUM TARDINESS SEQUENCING ∈ NP.
2.) Es wird CLIQUE gewählt.
3.) Es sei G = (V, E) ein ungerichteter Graph und k ≤ |V |. Diese Eingabe
für CLIQUE
k
0
wird folgendermaßen transformiert. Es sei A := V ∪E, k = |E|− 2 . Falls k 0 < 0, ist
CLIQUE nicht lösbar. Wir haben nun Aufgaben, also Komponenten, für die Knoten
und Kanten des gegebenen Graphen. Zusätzlich
sei d(a) = |V | + |E|, falls a ∈ V ,
die triviale Deadline, und d(a) = k+1
für
a
∈
E.
Die Komponenten werden nun
2
durch die partielle Ordnung ≤ verbunden. Es sei
a ≤ a0 :⇔ a ∈ V , a0 ∈ E, und a liegt auf a0 .
Die Eingabe (A, d, k 0 , ≤) für MINIMUM TARDINESS SEQUENCING kann natürlich in polynomieller Zeit berechnet werden.
4.) Sei zunächst angenommen, dass der Graph G die k-Clique V 0 enthält. Wir betrachten folgendes
Schedule. Zunächst werden die k Aufgaben a ∈ V 0 durchgeführt, dann
die k2 Aufgaben, die zu den Cliquenkanten gehören, dann die weiteren Knotenaufgaben und schließlich die restlichen Kantenaufgaben.
Die
Kantenaufgaben, die zu
der Clique gehören, sind zum Zeitpunkt k + k2 = k+1
beendet, erfüllen also ihre
2
Deadline.
erfüllen immer ihre Deadline. Also verletzen höchstens
Knotenaufgaben
k
0
|E| − 2 = k Kantenaufgaben die Deadline.
Sei nun ein zulässiges Schedule angenommen. Dann müssen mindestens k2 Kan
durchgeführt werden, also können bis zum
tenaufgaben bis zum Zeitpunkt k+1
2
k+1
Zeitpunkt 2 höchstens k Knotenaufgaben durchgeführt werden. Aufgrund der
vorgeschriebenen partiellen Ordnung dürfen die k2 frühen“ Kantenaufgaben nur
”
Kanten
betreffen, deren Endknoten zu den frühen“ Knotenaufgaben gehören. Alle
”
k
Kanten liegen also auf einer Knotenmenge von höchstens k Knoten. Das ist nur
2
möglich, wenn diese Kanten eine k-Clique bilden.
2
Wir wenden uns nun noch einem wirklich relevanten“ Problem zu, für das die NP”
Vollständigkeit in Dortmund bewiesen wurde. In einer Fußballliga stellt sich im Verlauf der
Saison die Frage, ob eine bestimmte Mannschaft (hier bitte selber ein Team ergänzen) noch
Meister werden kann. Natürlich kann angenommen werden, dass diese Mannschaft alle
ausstehenden Spiele gewinnt und zwar so hoch, dass sie am Ende vor allen Mannschaften
mit gleich vielen Punkten steht. Die anderen sollten möglichst alle Spiele verlieren, aber
das geht nicht, da sie noch gegeneinander spielen müssen. Also ist das Problem nicht
trivial. Wir formalisieren das Problem.
32
Definition 4.4.3: Das Meisterschaftsproblem MP3 erhält als Eingabe eine Liste von
Mannschaften und die Angabe, welche Mannschaften noch gegeneinander spielen müssen.
Für jede Mannschaft ist die bisher erreichte Punktzahl angegeben. Es ist zu entscheiden,
ob die offenen Spiele so ausgehen können, dass Mannschaft 1 mindestens so viele Punkte
wie jede andere Mannschaft hat. Es wird nach der 3-Punkte-Regel gespielt (0 Punkte für
Niederlage, 1 Punkt für Unentschieden, 3 Punkte für Sieg), daher MP3.
Für den Reduktionsbeweis benutzen wir eine andere Darstellung des Problems. Die Mannschaften werden als Knoten eines Graphen dargestellt. Zwei Mannschaften werden genau
dann durch eine Kante verbunden, wenn sie noch gegeneinander spielen. Wir können das
Problem darauf reduzieren, dass Mannschaft 1 alle ausstehenden Spiele gewinnt. Darüber
hinaus wird angenommen, dass alle anderen Spiele unentschieden enden. Dies ergibt für
jede Mannschaft i eine vorläufige Punktzahl pi wobei wir pi − p1 als Knotenmarkierung
notieren. Wenn wir ein Spiel zwischen A und B in einen Sieg für A ändern, erhält A zwei
zusätzliche Punkte, während B einen Punkt verliert. Es stellt sich die Frage, ob wir die
Spielausgänge so ändern können, dass alle Knotenmarkierungen nicht größer als Null sind.
Satz 4.4.4: MP3 ist NP-vollständig.
Beweis: 1.) MP3 ∈ NP, da wir die Spielausgänge raten können und dann effizient
überprüfen können, ob Mannschaft 1 mindestens so viele Punkte wie jede andere
Mannschaft hat.
2.) Auch hier erweist sich 3-SAT als geeignetes Basisproblem.
3.) Wir wollen hier den Entwurf einer Reduktion mit verbundenen Komponenten noch
einmal musterhaft vorführen.
Wir beginnen mit der Klauselkomponente Ci für die Klausel ci . Sie besteht aus
einem Knoten Ci mit Knotenmarkierung +1. Später wird diese Komponente mit
insgesamt drei Kanten mit den Knoten verbunden, die die Literale in ci darstellen.
Die Klauselzahl wird mit m bezeichnet. Wir werden später die Eigenschaft m = 2k
benutzen. Diese Eigenschaft ist aber durch Wiederholung einiger Klauseln leicht zu
erreichen.
Die Variablen xj , 1 ≤ j ≤ n, werden durch Variablenkomponenten dargestellt. Dies
sind vollständige binäre Bäume der Tiefe k + 1. Sie haben also 2m Blätter, die m
linkesten repräsentieren m Kopien von xj , die anderen m Kopien von xj . Die Wurzel
hat die Markierung +1, die Blätter haben die Markierung −2, während die anderen
inneren Knoten die Markierung 0 haben. Die folgende Abbildung stellt die Situation
für m = 2 dar.
33
+1 xj -Variablenkomponente
0
0
-2
-2
0
0
-2
-2
0
-2
-2
0
-2
-2
4 Kopien
von xj
4 Kopien
von xj
Die Mannschaft an der Wurzel muss ein Spiel verlieren, um den überschüssigen
Punkt abzugeben. Verliert sie gegen das linke Kind, erhält die Mannschaft dort
einen Überschuss von +2. Sie muss gegen ihre beiden Kinder verlieren. Dies setzt
sich lawinenartig fort und am Ende haben alle Knoten im linken Teilbaum den
Wert 0. Die Kopien von xj können also nicht mehr verwendet werden, um einen
Überschuss an Klauselknoten abzubauen. Für Klauseln, die xj enthalten, stehen
also Kopien von xj nicht mehr zur Verfügung. Dagegen haben alle Kopien von xj
noch den Wert −2. Dies symbolisiert die Belegung xj = 0. Analog symbolisiert eine
Niederlage der Wurzelmannschaft gegen das rechte Kind die Belegung xj = 1.
Mit dieser Interpretation ist auch klar, wie wir die Komponenten verbinden. Für
jedes Literal der i-ten Klausel gibt es eine Kante von Ci zur i-ten Kopie des Literals.
Hierbei nehmen wir an, dass Klauseln jedes Literal nur einmal enthalten. Es wird
auch klar, dass unsere Konstruktion sparsamer“ gestaltet werden kann, da m durch
”
m0 ersetzt werden kann, wenn jedes Literal nur in höchstens m0 Klauseln vorkommt.
4.) Wir nehmen zunächst an, dass die Belegung c = (a1 , . . . , an ) erfüllend ist. Dann
kann unsere ausgewählte Mannschaft noch Meister werden, nämlich bei folgenden
Spielausgängen. Die Mannschaft an der Wurzel der xj -Variablenkomponente verliert gegen das linke Kind, falls aj = 0, bzw. gegen das rechte Kind, falls aj = 1.
Die entstehenden positiven Punktverhältnisse werden im entsprechenden Teilbaum
abgebaut. Die i-te Klausel ist erfüllt, d.h. ein Literal ist erfüllt. Die i-te Klauselkomponente verliert gegen die Kopie des entsprechenden Literals.
Nehmen wir nun umgekehrt an, dass die ausgewählte Mannschaft Meister werden
kann. Dann muss die Mannschaft an der Wurzel der xj -Variablenkomponente gegen eines ihrer Kinder verlieren und den beschriebenen Lawineneffekt auslösen. Dies
interpretieren wir, wie oben beschrieben, als Variablenbelegung. Diese Variablenbelegung ist erfüllend. Für jede Klauselkomponente gilt, dass sie ein Spiel verlieren
muss. Dafür gibt es drei Möglichkeiten, die ihre drei Literale repräsentieren. Wenn
alle drei Literale nicht erfüllt sind, haben die entsprechenden Mannschaften bereits
die Punktzahl 0 und würden Meister werden, wenn sie ein weiteres Spiel gewinnen.
2
34
Hier zeigt sich, dass ein Problem viele interessante Varianten haben kann. In der vorliegenden Reduktion hat jeder Knoten einen durch 3 beschränkten Grad. Das Problem ist
also selbst dann NP-vollständig, wenn jede Mannschaft nur noch drei ausstehende Spiele
hat. Bei zwei offenen Spielen wird es übrigens effizient lösbar. Wir können auch erreichen,
dass jede Mannschaft noch genau drei Spiele absolvieren muss und dass die offenen Spiele so beschaffen sind, dass sie an drei Spieltagen absolviert werden können. Allerdings
hat der in der Bundesliga benutzte Spielplan eine besondere Form, die kanonisch auf jede Anzahl von gerade vielen Mannschaften verallgemeinert werden kann. Dieser Spielplan
macht das Problem einfacher. Das Meisterschaftsproblem ist polynomiell lösbar, wenn nur
noch O(log1/2 n) Spieltage ausstehen, über die Situation mit mehr Spieltagen ist nichts
bekannt.
Was ist schließlich mit anderen Punktregeln, wobei o.B.d.A. kein Punkt bei Niederlagen
und ein Punkt bei Unentschieden vergeben werden. Es sei s > 1 (s rational) die Anzahl
der Punkte für einen Sieg (s = 3/2 bedeutet im Prinzip 2 Punkte für Unentschieden und
3 Punkte für Sieg). Das Problem ist NP-vollständig für alle s 6= 2 und effizient lösbar für
s = 2. Warum spielt die Situation s = 2 wohl eine Sonderrolle? Eine letzte Bemerkung:
Die 2-Punkte-Regel wurde lange benutzt.
Den Umgang mit Beweismethoden kann man natürlich nur erlernen, indem man ihn
erprobt, also Reduktionen selber entwirft. Dafür gibt es glücklicherweise Übungsaufgaben.
35
5
5.1
Probleme, Teilprobleme und ihre Komplexitätsanalyse
Schwierige Probleme mit einfachen Teilproblemen
Wie gehen wir vor, wenn wir ein Problem zu lösen haben, das weder in der Liste NPvollständiger Probleme steht, noch in Büchern über effiziente Algorithmen behandelt
wird? Optimistischerweise starten wir mit den Methoden aus der Vorlesung EFFIZIENTE ALGORITHMEN und versuchen, einen effizienten, also polynomiellen Algorithmus
zu entwerfen. Im positiven Fall sind wir glücklich. Im negativen Fall benutzen wir die
Methoden dieser Vorlesung und versuchen zu zeigen, dass das Problem NP-vollständig
ist oder mindestens so schwierig wie die NP-vollständigen Probleme. Dabei sind beide
Vorgehensweisen nicht isoliert voneinander zu sehen. Wenn wir sehen, woran unsere Versuche, einen effizienten Algorithmus zu entwerfen, scheitern, erhalten wir häufig Ideen für
einen NP-Vollständigkeitsbeweis. Umgekehrt erhalten wir Ideen zum Entwurf eines effizienten Algorithmus häufig aus gescheiterten Versuchen, die Schwierigkeit des Problems zu
beweisen.
Müssen wir verzweifeln, wenn wir herausfinden, dass unser Problem schwierig ist, weil
es NP-vollständig ist? Es ist sicherlich nicht vernünftig, darauf zu hoffen, dass NP = P
ist und dies auch in nächster Zukunft bewiesen wird. Für Optimierungsprobleme werden
wir spezielle Auswege in Kap. 10 untersuchen. Hier beschränken wir uns weiterhin auf
Entscheidungsprobleme.
Wir können nun das Glück haben, dass wir das betrachtete Problem gar nicht in voller
Allgemeinheit lösen müssen. Statt dessen interessiert uns nur ein Teilproblem. Teilprobleme können wesentlich einfacher als das allgemeine Problem sein. Wir haben dies bereits
an manchen Stellen gesehen und wollen einige Ergebnisse vorstellen. Einige der Ergebnisse
folgen aus unseren Ergebnissen aus Kap. 3 und Kap. 4, auf die anderen Beweise wollen
wir verzichten.
1.) Erfüllbarkeitsprobleme: Das allgemeine Problem, für einen Schaltkreis oder eine Formel zu entscheiden, ob sie erfüllbar sind, ist NP-vollständig, da SAT ein NP-vollständiges
Teilproblem ist. Wenn die Formel als Disjunktion von Monomen vorliegt, ist das Erfüllbarkeitsproblem in P, während das Erfüllbarkeitsproblem für Formeln, die Konjunktionen
von Klauseln sind, NP-vollständig ist. Dies ist SAT selber. Das Problem bleibt schwierig,
wenn vorausgesetzt wird, dass jede Klausel 3 Literale enthält (3-SAT), es wird allerdings
einfach, wenn jede Klausel nur 2 Literale enthält, 2-SAT ∈ P.
2.) Überdeckungsprobleme: Das allgemeine Überdeckungsproblem MINIMUM COVER
ist NP-vollständig. Spezielle Überdeckungsprobleme sind Matchingprobleme. Während
dreidimensionales Matching (3-DM) NP-vollständig ist, ist zweidimensionales oder bipartites Matching (2-DM) effizient lösbar. Ein anderer Typ von Überdeckungsproblem ist das
NP-vollständige Vertex Cover Problem VC. Analog kann man das Edge Cover Problem
EC betrachten. Für einen ungerichteten Graphen G = (V, E) und k ∈ soll entschieden
werden, ob es eine Kantenmenge E 0 ⊆ E mit |E 0 | ≤ k gibt, die alle Knoten überdeckt.
36
Um die Kantenzahl in einer Kantenüberdeckung zu minimieren, müssen möglichst viele
Kanten gefunden werden, die keinen gemeinsamen Knoten haben. In anderen Worten soll
ein maximales Matching Mopt berechnet werden. Die Antwort auf EC ist genau dann ja,
wenn k ≥ |V | − |Mopt | ist. In der Vorlesung EFFIZIENTE ALGORITHMEN wird gezeigt,
dass die Berechnung maximaler Matchings in polynomieller Zeit O(|V |3 ) möglich ist.
3.) Optimale Pfade: Aus der Vorlesung DATENSTRUKTUREN ist bekannt, dass für ungerichtete Graphen G = (V, E) und k ∈ mit einem BFS-Ansatz in Zeit O(|V | + |E|)
entschieden werden kann, ob es zwischen zwei Knoten u und v einen Pfad gibt, dessen
Länge höchstens k beträgt. Das ähnlich ausschauende Problem zu entscheiden, ob es
einen kreisfreien Weg von u nach v gibt, dessen Länge mindestens k beträgt, ist dagegen
NP-vollständig. HAMILTONIAN PATH ist nämlich der Spezialfall dieses Problems für
k = |V | − 1.
4.) Scheduling-Probleme: Das Problem zu entscheiden, ob die Menge der Aufgaben A
mit Bearbeitungszeit 1 und Deadline d(a) unter den durch eine partielle Ordnung ≤ gegebenen Nebenbedingungen von m Prozessoren ordnungsgemäß bearbeitet werden kann,
ist NP-vollständig. Dies gilt sogar, wenn jede Aufgabe a bzgl. ≤ höchstens einen direkten Vorgänger hat. Wenn jede Aufgabe a bzgl. ≤ jedoch nur höchstens einen direkten
Nachfolger hat, ist das Problem in polynomieller Zeit lösbar.
Die Komplexitätsanalyse eines NP-vollständigen Problems besteht also darin, für möglichst viele Teilprobleme zu entscheiden, ob sie in P liegen oder NP-vollständig sind. Dabei
ist zu beachten, dass es Probleme geben kann, die weder NP-vollständig sind noch in P
liegen. Die abstrakte Komplexitätstheorie impliziert sogar, dass es solche Probleme geben
muss, falls NP 6= P ist.
5.2
Die Komplexitätsanalyse des Färbbarkeitsproblems
Das Färbbarkeitsproblem lässt sich auf besonders viele Weisen sinnvoll einschränken. Es
eignet sich daher besonders gut für eine Komplexitätsanalyse. Wir kennen das Problem,
eine Landkarte so zu färben, dass Länder mit einer gemeinsamen Grenze verschieden
gefärbt werden.
Definition 5.2.1: GC (GRAPH-COLORABILITY)
Für ungerichtete Graphen G = (V, E) und k ∈ soll entschieden werden, ob sich G mit
k Farben färben lässt, d.h. ob es eine Funktion f : V → {1, . . . , k}, die Färbung, gibt,
so dass f (u) 6= f (v) für alle {u, v} ∈ E ist.
Definition 5.2.2: a) GC-k ist das Teilproblem von GC, in dem k kein Parameter, sondern
ein fester Wert ist.
b) GC ≤ k ist das Teilproblem von GC, in dem die Zahl der Farben durch einen Parameter
m angegeben wird, der aber nicht größer als k sein darf.
Offensichtlich ist GC ≤ k ein Teilproblem von GC ≤ (k + 1), während GC-k kein Teilproblem von GC-(k + 1) ist. GC-k ist ein Teilproblem von GC ≤ k. Allerdings lässt sich
37
GC-k leicht auf GC-k 0 mit k 0 ≥ k reduzieren (Übungsaufgabe). Es ist ebenfalls einfach,
mit einem Greedy Algorithmus zu zeigen, dass GC-2 ∈ P ist.
Satz 5.2.3: GC-3 ist NP-vollständig.
Korollar 5.2.4: GC, GC-k und GC ≤ k sind für k ≥ 3 NP-vollständig, während GC-k
und GC ≤ k für k ≤ 2 in P sind.
Beweis: Das Korollar folgt aus Satz 5.2.3 und den zuvor diskutierten Teilproblembeziehungen, wenn vorausgesetzt wird, dass GC-2 in P ist. Dabei wird die einfache Tatsache
verwendet, dass alle Färbbarkeitsprobleme in NP sind.
2
Beweis von Satz 5.2.3: 1.) GC-3 ∈ NP.
2.) Es wird 3-SAT gewählt, da dieses Problem sich bereits für viele verschiedene Probleme
als Basisproblem bewährt hat.
3.) Wir wollen die Methode der verbundenen Komponenten benutzen. Die entscheidende
Idee besteht in der Entdeckung der folgenden Verbindungskomponente.
a
y1
a
y3
X
b
y2
y1
H
b
y2
y3
y4
y6
c
y5
Man beachte, dass Graph H durch Hintereinanderschalten“ zweier X-Exemplare (einem
”
linken“ und einem rechten“) entsteht. Wir zeigen zunächst für den Graphen X die
”
”
beiden folgenden Eigenschaften.
i) Für jede 3-Färbung f gilt: Falls f (a) = f (b), dann ist f (y3 ) = f (a).
ii) Jede Funktion f : {a, b} → {1, 2, 3} mit f −1 (1) 6= ∅ kann zu einer 3-Färbung von X
mit f (y3 ) = 1 erweitert werden.
Zum Beweis der ersten Behauptung sei o.B.d.A. f (a) = f (b) = 1. Dann folgt, dass die
beiden Nachbarn von a und b die Farben 2 und 3 tragen müssen, also ist y3 mit der Farbe
1 gefärbt. Für den Beweis der zweiten Behauptung argumentieren wir wie folgt: Falls
f (a) = f (b) = 1 ist, benutzen wir die Färbung aus dem Beweis der ersten Eigenschaft.
Falls f (a) = 1 und o.B.d.A. f (b) = 2 ist, dann färben wir den Nachbarn von Knoten a
mit Farbe 2, den Nachbarn von b mit Farbe 3 und y3 mit Farbe 1.
Für den Graphen H gilt somit folgendes:
(1) Für jede 3-Färbung f gilt: Falls f (a) = f (b) = f (c), dann ist f (y6 ) = f (a).
(2) Jede Funktion f : {a, b, c} → {1, 2, 3} mit f −1 (1) 6= ∅ kann zu einer 3-Färbung von
H mit f (y6 ) = 1 erweitert werden.
38
Die erste Behauptung erhalten wir, wenn wir Eigenschaft i) für den Graphen X zweimal
hintereinander anwenden. Die zweite Behauptung ergibt sich analog: Wenn Knoten a
oder b mit Farbe 1 gefärbt ist, dann können wir Knoten y3 mit Farbe 1 färben und somit
Eigenschaft ii) für das rechte X-Exemplar anwenden. Wenn Knoten c mit der Farbe 1
gefärbt ist, können wir Eigenschaft ii) direkt für das rechte X-Exemplar verwenden.
Sei nun (U = {u1 , . . . , un }, C = {C1 , . . . , Cm }) eine Eingabe für 3-SAT. Es sei Ci =
ai ∨ bi ∨ ci , wobei ai , bi , ci Literale über U sind. Es sei G = (V, E) folgender Graph. V
enthält ui , ūi , 1 ≤ i ≤ n, yij , 1 ≤ i ≤ m, 1 ≤ j ≤ 6 und v1 , v2 , v3 . E enthält die Kanten
{ui , ūi }, 1 ≤ i ≤ n, ein Dreieck auf {v1 , v2 , v3 }, für jede Klausel Ci den Graphen H
auf ai , bi , ci , yi,1 , . . . , yi,6 sowie die Kanten {v3 , ui }, {v3 , ūi } für 1 ≤ i ≤ n und {v2 , yi,6 },
{v3 , yi,6 } für 1 ≤ i ≤ m. Natürlich ist G in polynomieller Zeit konstruierbar.
4.) Sei zunächst angenommen, dass es eine Variablenbelegung gibt, die C1 , . . . , Cm erfüllt.
Wir färben nun G. f (v1 ) = 1, f (v2 ) = 2, f (v3 ) = 3, f (ui ) = 1 und f (ūi ) = 2, falls ui
mit 1 belegt ist, f (ui ) = 2 und f (ūi ) = 1, falls ui mit 0 belegt ist. Bisher ist die Färbung
erlaubt, das v-Dreieck, die {ui , ūi }-, {v3 , ui }- und {v3 , ūi }-Kanten sind legal gefärbt. Da
jede Klausel Ci erfüllt ist, ist für jede H-Komponente mindestens einer der drei Knoten ai ,
bi oder ci mit 1 gefärbt. Nach Eigenschaft (2) von H können wir die H-Komponenten so
3-färben, dass yi,6 mit 1 gefärbt wird. Damit sind auch die Kanten {v2 , yi,6 } und {v3 , yi,6 }
legal gefärbt.
Sei nun f eine 3-Färbung von G. O.B.d.A. können wir annehmen, dass f (v1 ) = 1, f (v2 ) =
2 und f (v3 ) = 3 ist. Das v-Dreieck muss drei verschiedene Farben erhalten. Wegen der
Kanten {v2 , yi,6 } und {v3 , yi,6 } ist f (yi,6 ) = 1. Da auf ui , ūi , v3 ein Dreieck existiert, sind
diese 3 Knoten verschieden gefärbt. Da f (v3 ) = 3, gilt f (ui ) = 1 und f (ūi ) = 2 oder
f (ui ) = 2 und f (ūi ) = 1. Wir belegen die mit 1 gefärbten Literale mit 1. Wenn nun
eine Klausel Ci nicht erfüllt ist, folgt f (ai ) = f (bi ) = f (ci ) = 2. Aus Eigenschaft (1) von
H folgt f (yi,6 ) = 2 im Widerspruch zu unseren vorherigen Überlegungen. Also sind alle
Klauseln erfüllt.
2
Das allgemeine Problem sowie die Probleme mit Einschränkungen an die Zahl der Farben
haben wir klassifiziert.
Wir betrachten nun Graphen, bei denen der Grad der Knoten eingeschränkt ist. Mit
D bezeichnen wir die Gradschranke. Graphen mit D = 2 zerfallen in disjunkte Kreise
und Pfade. Auf diesen Graphen sind viele Probleme in polynomieller Zeit entscheidbar,
z.B. VC, HC und auch GC. VC und HC werden aber bereits für D = 3 NP-vollständig.
Dagegen ist GC für D = 3 noch in P. Es gilt nämlich die Aussage, dass der einzige
nicht 3-färbbare zusammenhängende Graph mit Gradbeschränkung 3 der vollständige
Graph auf vier Knoten ist. Es ist natürlich leicht, in polynomieller Zeit zu überprüfen, ob
eine Zusammenhangskomponente von G ein vollständiger Graph auf vier Knoten ist. Das
Färbbarkeitsproblem wird für D ≤ 4 schwierig.
Satz 5.2.5: GC-3 für D = 4 ist NP-vollständig.
Beweis: 1.) Alle Färbbarkeitsprobleme sind in NP.
39
2.) Wir sollten in unserem Problemkreis bleiben und wählen GC-3.
3.) Sei G = (V, E) ein ungerichteter Graph. G soll in G0 = (V 0 , E 0 ) mit durch 4 beschränktem Grad transformiert werden. Wir verwenden die Methode der lokalen Ersetzung. Auch
dafür benötigen wir geeignete Komponenten. Es sei H3 der folgende Graph:
2
H3 :
6
8
7
1
4
5
3
Die Knoten 1, 2 und 3 haben nur Grad 2, der Grad aller anderen Knoten ist 4. Für jede
3-Färbung von H3 gilt f (1) = f (2) = f (3). Dies lässt sich leicht zeigen: O.B.d.A. f (1) = 1
und f (4) = 2. Dann folgt f (6) = 3, f (7) = 1, f (5) = 3, f (8) = 2, f (2) = f (3) = 1. Sei
nun Hk für k ≥ 4 der folgende Graph, der aus k − 2 Kopien von H3 zusammengeklebt ist.
2
3
k-1
Hk :
H3
H3
H3
1
k
Da die Komponenten H3 zusammenkleben, folgt, dass für jede 3-Färbung von Hk gilt
f (1) = · · · = f (k). Der Grad aller Knoten in Hk ist durch 4 beschränkt, wobei die
äußeren Knoten 1, . . . , k Grad 2 haben.
Der Graph G0 entsteht aus G in mehreren Schritten. Sei V = {v1 , . . . , vn }, G0 := G,
G1 , . . . , Gn =: G0 . Dabei sei di der Grad von vi in Gi−1 . Gi entsteht dann aus Gi−1 , indem
vi , falls di > 4 ist, durch Hdi ersetzt wird, die di Kanten zu vi werden durch Kanten
ersetzt, die zu je einem äußeren Knoten von Hdi führen. Damit ist der Grad in G0 durch
4 beschränkt. Natürlich kann G0 in polynomieller Zeit konstruiert werden.
4.) Da bei jeder 3-Färbung einer H-Komponente alle äußeren Knoten gleich gefärbt sind
und H-Komponenten dreifärbbar sind, überträgt sich jede 3-Färbung von G auf G0 und
umgekehrt.
2
Eine wichtige Rolle spielen planare Graphen. Dies sind Graphen, die sich so in die Ebene
zeichnen lassen, dass sich Kanten nicht kreuzen. Es kann in linearer Zeit getestet werden,
ob ein Graph planar ist.
40
Definition 5.2.6: MAX CUT
Für ungerichtete Graphen G = (V, E) und k ∈ soll entschieden werden, ob der Graph
so zerschnitten werden kann, d.h. V so disjunkt in zwei Teilmengen V1 und V2 zerlegt
werden kann, dass mindestens k Kanten zerschnitten werden, d.h. es gibt mindestens k
Kanten {u, v} mit u ∈ V1 und v ∈ V2 .
MAX CUT ist NP-vollständig, das Teilproblem MAX CUT für planare Graphen ist dagegen in polynomieller Zeit lösbar. GC-3 bleibt schwierig.
Satz 5.2.7: GC-3 für planare Graphen ist NP-vollständig.
Beweis: 1.) GC-3 für planare Graphen ist in NP.
2.) Wieder wählen wir GC-3.
3.) Sei G = (V, E) ein ungerichteter Graph. Es ist sicher in polynomieller Zeit möglich, den
Graphen so in die Ebene einzubetten, dass Kanten {u, v} nicht durch Knoten w ∈
/ {u, v}
laufen und dass jeder Schnittpunkt von Kanten nur Schnittpunkt zweier Kanten ist. Die
Schnittpunkte sollen nun lokal durch planare Graphen ersetzt werden. Dazu betrachten
wir den Crossover-Graphen C mit 13 Knoten und 24 Kanten.
x
C
y
1
2
3
4
5
6
7
8
y’
9
x’
C ist planar. Wir zeigen, dass für jede 3-Färbung f von C gilt f (x) = f (x0 ) und f (y) =
f (y 0 ). Außerdem gibt es für beliebige a, b ∈ {1, 2, 3} 3-Färbungen von C mit f (x) =
f (x0 ) = a und f (y) = f (y 0 ) = b. Damit kann C Färbungen transportieren“.
”
Sei also f eine 3-Färbung von C. O.B.d.A. f (5) = 1 und f (4) = 2. Es folgt f (2) = f (8) = 3
und f (6) = 2.
1. Fall: f (y 0 ) = 1. Es folgt f (9) = 2 und f (x0 ) = 1. Dann ist f (7) = 3 und f (y) = 1. Es
folgt f (1) = 2 und f (x) = 1 sowie f (3) = 3.
41
2. Fall: f (y 0 ) 6= 1. Da f (6) = 2, ist f (y 0 ) = 3. Also ist f (3) = 1, f (x) = 2, f (1) = 1,
f (y) = 3, f (7) = 1, f (x0 ) = 2, f (9) = 1.
Wir betrachten nun eine Kante {u, v}:
u
v
Wir zeichnen einen Knoten, hier zum Beispiel u, als besonderen Knoten aus. Die Kante
{u, v} wird lokal ersetzt. Dies geschieht gleichzeitig für alle Kanten. Zunächst werden auf
der Kante {u, v} neue Knoten eingesetzt, von u aus vor jedem Schnittpunkt und vor v.
u
v
Auf den 4 Punkten um einen Schnittpunkt wird die Komponente C eingesetzt, der am
nächsten am ausgezeichneten Knoten u gelegene C-Knoten wird mit u verschmolzen.
u’i
u
C
u1
C
u2
C
u3
v
u’i+1
Der neue Graph G0 ist planar und kann in polynomieller Zeit konstruiert werden.
4.) Sei f eine 3-Färbung von G. Wir erweitern f zu einer 3-Färbung von G0 . Jede CKomponente repräsentiert den Schnittpunkt zweier Kanten {u, v} und {u0 , v 0 }, wobei wir
u und u0 als ausgezeichnete Knoten annehmen. Wir färben die C-Komponenten so, dass
die Farben von u und u0 weitergegeben werden. In unserem Beispiel wäre f (u) = f (u1 ) =
f (u2 ) = f (u3 ) und f (u0 ) = f (u0i ) = f (u0i+1 ). Unsere Betrachtungen über C zeigen, dass
eine solche Färbung möglich ist. Am Ende dieser Reihe kann es zu keinen Problemen
kommen, denn f (u3 ) = f (u) 6= f (v) nach Voraussetzung.
Sei nun f 0 eine 3-Färbung von G0 . Wir zeigen, dass die Einschränkung von f 0 von V 0 auf
V eine 3-Färbung von G ist. Aus den Eigenschaften von C folgt f 0 (u) = f 0 (u1 ) = f 0 (u2 ) =
f 0 (u3 ). Da f 0 eine Färbung von G0 ist, ist f 0 (u3 ) 6= f 0 (v), also f 0 (u) 6= f 0 (v) für alle Kanten
{u, v} ∈ E.
2
Hier sei auf den berühmten Vierfarben-Satz hingewiesen. Alle planaren Graphen sind
vierfärbbar. Der Test auf Vierfärbbarkeit eines planaren Graphen kann also in Zeit O(1)
mit Ja“ beantwortet werden.
”
Satz 5.2.8: GC-3 für D = 4 ist für planare Graphen NP-vollständig.
42
Beweis: Dies folgt aus den Reduktionen, die in den Beweisen der Sätze 5.2.5 und 5.2.7
konstruiert wurden. Zunächst wird der Graph G mit der Methode des Beweises von
Satz 5.2.7 durch einen planaren Graphen G0 ersetzt. Dann wird mit den Methoden des
Beweises von Satz 5.2.5 der Grad der Knoten auf höchstens 4 gesenkt. Da Hk offensichtlich planar ist, erhalten wir einen Graphen G00 , der genau dann dreifärbbar ist, wenn G
dreifärbbar ist.
2
5.3
Pseudopolynomielle Algorithmen und starke NP-Vollständigkeit
Siehe Buch Theoretische Informatik, Kap. 3.5.
Die starke NP-Vollständigkeit von TSP war sehr einfach zu zeigen. Auch dies ist ein
Indiz dafür, dass TSP ein besonders schwieriges Problem ist. In Kap. 5.5 sollen Rezepte, d. h. Beweismethoden, zum Beweis der starken NP-Vollständigkeit vorgestellt werden.
Dafür benötigen wir ein Basisproblem, von dem aus sich viele Reduktionen starten lassen. Dies muss ein Problem sein, das in der Klasse der stark NP-vollständigen Probleme
intuitiv einfach“ ist. Wir haben bereits gesehen, dass ELEMENT UNIQUENESS und
”
SORTIEREN gute Basisprobleme für den Beweis von Ω(N log N )-Schranken sind. Unser
erfolgreichstes Basisproblem für den Nachweis der NP-Vollständigkeit ist 3-SAT.
5.4
Die starke NP-Vollständigkeit von 3-PARTITION
Definition 5.4.1: a) 3-PARTITION.
Für eine Menge A mit |A|/3 =Pm ∈ , B ∈
und Größen s(a) ∈ , so dass B/4 <
s(a) < B/2 für a ∈ A gilt und a∈A s(a) = mB ist, soll entschieden
werden, ob A so in
P
m disjunkte Mengen S1 , . . . , Sm zerlegt werden kann, dass a∈Si s(a) = B für 1 ≤ i ≤ m
ist.
b) 4-PARTITION.
Für eine Menge A mit |A|/4 =Pm ∈ , B ∈
und Größen s(a) ∈ , so dass B/5 <
s(a) < B/3 für a ∈ A gilt und a∈A s(a) = mB ist, soll entschieden
werden, ob A so in
P
m disjunkte Mengen S1 , . . . , Sm zerlegt werden kann, dass a∈Si s(a) = B für 1 ≤ i ≤ m
ist.
Das Problem 4-PARTITION dient uns als Zwischenschritt.
Satz 5.4.2: 4-PARTITION ist stark NP-vollständig.
Beweis: 1.) 4-PARTITION ∈ NP.
2.) Da wir hier wieder Neuland betreten, haben wir eine komplizierte Reduktion vor
uns. Für eine Eingabe I für 4-PARTITION setzen wir M AX(I) := max{s(a) | a ∈ A}
und L(I) = |A|. Für p(x) = 216 x4 betrachten wir 4-PARTITIONp und zeigen 3-DM ≤
4-PARTITIONp .
43
3.) Die Voraussetzung B/5 < s(a) < B/3 für 4-PARTITION erzwingt, dass die Mengen
Si genau 4 Elemente haben müssen. Sei nun (q, X, Y, Z, M ) eine Eingabe für 3-DM. Falls
|M | < q, kann es kein Matching geben. Sei also im folgenden |M | ≥ q angenommen. Sei
X = {x1 , . . . , xq }, Y = {y1 , . . . , yq } und Z = {z1 , . . . , zq }. Die Menge A für 4-PARTITION
soll 4|M | Elemente enthalten. Mit N (x) (analog N (y) und N (z)) bezeichnen wir die Zahl
der Tripel, in denen x vorkommt.
Die Menge A enthalte die Elemente u1 , . . . , u|M | als Repräsentanten der |M | Tripel,
xi (1), . . . , xi (N (xi )) als Repräsentanten für xi , wobei xi (1) das xi“ darstellen soll, das in
”
einem Matching vorkommt. Analog werden yi (1), . . . , yi (N (yi )) und zi (1), . . . , zi (N (zi ))
betrachtet.
Wir werden nun die Größen s(a) für a ∈ A definieren. Sei r = 32q. Dann sei für 1 ≤ i ≤ q
und l ≥ 2
s(xi (1)) = 10r 4 + ir + 1
s(xi (l)) = 11r 4 + ir + 1
s(yi (1)) = 10r 4 + ir 2 + 2
s(yi (l)) = 11r 4 + ir 2 + 2
s(zi (1)) = 10r 4 + ir 3 + 4
s(zi (l)) = 8r 4 + ir 3 + 4.
Falls das l-te Tripel in M gerade ml = (xi , yj , zk ) ist, sei s(ul ) = 10r 4 − kr 3 − jr 2 − ir + 8.
Damit gilt
s(ul ) + s(xi (1)) + s(yj (1)) + s(zk (1)) = 40r 4 + 15,
sowie für l1 , l2 , l3 ≥ 2
s(ul ) + s(xi (l1 )) + s(yj (l2 )) + s(zk (l3 )) = 40r 4 + 15.
Die Summe aller s-Werte beträgt (40r 4 +15)·|M |. Dies folgt aus einer einfachen Rechnung,
auf die wir hier verzichten. Wir setzen B = 40r 4 + 15.
Wir überprüfen nun, ob die Größen im Intervall (B/5, B/3) liegen und durch 216 |A|4
beschränkt sind. Es ist
r = 32q ≤ 32|M | = 8|A| = 23 |A|, r 4 ≤ 212 |A|4 und
1
s(a) ≤ 11r 4 + |M |r 3 + 4 ≤ 11 · 212 |A|4 + |A| · 29 |A|3 + 4 ≤ 216 |A|4 .
4
4
3
4
Außerdem ist s(a) ≤ 11r + qr + 4 ≤ 12r + 4 < B/3. Hierbei haben wir die Beziehung
q = r/32 ausgenutzt. Schließlich ist s(a) ≥ 8r 4 + 4 > B/5. Die Eingabe (A, B, s) ist
natürlich in polynomieller Zeit berechenbar.
4.) Sei nun M 0 ⊆ M ein dreidimensionales Matching. Dann bilden wir die folgenden vierelementigen Mengen. Das Tripel ml = (xi , yj , zk ) ∈ M 0 führt zu der Menge {ul , xi (1), yj (1),
zk (1)}. Das Tripel ml = (xi , yj , zk ) ∈ M −M 0 führt zu der Menge {ul , xi (l1 ), yj (l2 ), zk (l3 )},
wobei die Parameter l1 , l2 , l3 so gewählt werden, dass alle Aufgaben in genau einer Menge vorkommen. Wir haben bereits in Teil 3 gesehen, dass die Gesamtgröße jeder dieser
Mengen B = 40r 4 + 15 ist.
44
Sei nun andererseits eine Lösung von 4-PARTITION gegeben. Wir werden zeigen, dass
jede der vierelementigen Mengen ein u-Element, ein x-Element, ein y-Element und ein
z-Element enthält. Wenn eine Menge xi (l1 ), yj (l2 ) und zk (l3 ) enthält, gilt entweder l1 =
l2 = l3 = 1 oder l1 , l2 , l3 ≥ 2. Da jedes Element in X ∪ Y ∪ Z durch ein Element ·(1)
repräsentiert wird, bilden dann die Tripel ml , so dass ul in einer vierelementigen Menge
mit Elementen xi (1), yj (1) und zk (1) ist, ein dreidimensionales Matching.
Wir beweisen nun die oben genannten Vermutungen. Es ist r = 32q ≥ 32 und somit
B ≡ 15 mod r. Wenn wir vier s-Werte addieren, erhalten wir nur dann eine Zahl b, die
b ≡ 15 mod r erfüllt, wenn die vier Elemente je ein u-, x-, y- und z-Element darstellen.
Die Menge sei nun {ul , xi (l1 ), yj (l2 ), zk (l3 )}. Es sei ml = (xi0 , yj 0 , zk0 ). Es ist B ≡ 15 mod r 2 .
Andererseits ist
s(ul ) + s(xi (l1 )) + s(yj (l2 )) + s(zk (l3 )) ≡ −i0 r + 8 + ir + 1 + 2 + 4 = (i − i0 )r + 15 mod r 2 .
Also muss (i − i0 )r ≡ 0 mod r 2 und damit i ≡ i0 mod r sein. Da 1 ≤ i, i0 ≤ q und r = 32q
ist, folgt i = i0 . Es ist B ≡ 15 mod r 3 . Die Summe der Größen der vier Elemente ist mod r 3 ,
da i = i0 , gleich
−j 0 r 2 − ir + 8 + ir + 1 + jr 2 + 2 + 4 ≡ (j − j 0 )r 2 + 15 mod r 3 .
Also muss (j − j 0 )r 2 ≡ 0 mod r 3 und damit j ≡ j 0 mod r sein. Da 1 ≤ j, j 0 ≤ q, folgt j = j 0 .
Es ist B ≡ 15 mod r 4 . Für die Summe der Größen der vier Elemente mod r 4 gilt, da i = i0
und j = j 0 , dass sie folgenden Wert hat:
−k 0 r 3 − jr 2 − ir + 8 + ir + 1 + jr 2 + 2 + kr 3 + 4 ≡ (k − k 0 )r 3 + 15 mod r 4 .
Wieder folgt k = k 0 .
Also ist ml = (xi , yj , zk ), wenn ul mit xi (l1 ), yj (l2 ) und zk (l3 ) eine gemeinsame Menge
bildet.
Die Parameter l1 , l2 und l3 beeinflussen nur den Vorfaktor von r 4 . Es ist offensichtlich,
dass wir den passenden Vorfaktor 40 nur erhalten, wenn l1 = l2 = l3 = 1 oder l1 , l2 , l3 ≥ 2
ist. Damit ist die Behauptung bewiesen.
2
Nach der Reduktion 3-SAT ≤p KP war diese Reduktion das zweite Beispiel dafür, wie
Informationen in Zahlen codiert werden können.
Satz* 5.4.3: 3-PARTITION ist stark NP-vollständig.
Beweis: 1.) 3-PARTITION ist in NP.
2.) Sei p(x) = 216 x4 und q(x) = 223 x2 . Wir reduzieren das NP-vollständige Problem
4-PARTITIONp auf 3-PARTITIONq .
3.) Sei (A, B, s) mit A = {a1 , . . . , a4n }, B/5 < s(ai ) < B/3 und s(ai ) ≤ 216 |A|4 eine Eingabe für 4-PARTITIONp . Die Menge A0 für die zugehörige Eingabe von 3-PARTITIONq
soll 24n2 − 3n Elemente haben, 4n Elemente, die die Elemente von A repräsentieren,
45
w1 , . . . , w4n , 16n2 − 4n Elemente u(i, j), ū(i, j), 1 ≤ i < j ≤ 4n, die jeweils Paare in A
darstellen, und 8n2 − 3n Füllelemente u∗k , 1 ≤ k ≤ 8n2 − 3n. Für die Größenfunktion s0
gelte
s0 (wi ) := 4(5B + s(ai )) + 1,
s0 (u(i, j)) := 4(6B − s(ai ) − s(aj )) + 2,
s0 (ū(i, j)) := 4(5B + s(ai ) + s(aj )) + 2 und
s0 (u∗k ) := 20B.
Also gilt
X
X
X
X
s0 (a) =
s0 (wi ) +
(s0 (u(i, j)) + s0 (ū(i, j))) +
s0 (u∗k ) =
a∈A0
1≤i≤4n
(80nB + 4
X
1≤i<j≤4n
s(ai ) + 4n) +
1≤k≤8n2 −3n
4n
4n
4 + (8n2 − 3n)20B.
44B +
2
2
Die Summe aller s(ai ) ist, da es sich um eine Eingabe für 4-PARTITION handelt, gleich
nB. Also gilt
X
s0 (a) = 84nB + 4n + 8 · 44n2 B − 88nB + 32n2 − 8n + 160n2 B − 60nB =
a∈A0
512n2 B − 64nB + 32n2 − 4n.
P
Da |A0 |/3 = 8n2 − n, erhalten wir B 0 = ( a∈A0 s0 (a))/(8n2 − n) = 64B + 4. Die Eingabe
(A0 , B 0 , s0 ) lässt sich natürlich in polynomieller Zeit berechnen. Es gilt für a0 ∈ A0
s0 (a0 ) ≤ max{24B + 2, 20B + 8 max{s(a) | a ∈ A} + 2}.
Da B/5 < s(a) < B/3 und B/5 < s(a) ≤ 216 |A|4 , folgt
B ≤ 5 · 216 |A|4 − 5
und
s0 (a0 ) ≤ max{24 · 5 · 216 |A|4 + 2, 20 · 5 · 216 |A|4 +
8
· 5 · 216 |A|4 + 2} ≤ 223 |A|4 .
3
Da |A| ≤ |A0 |1/2 , folgt s0 (a0 ) ≤ 223 |A0 |2 .
Es muss nun noch gelten B 0 /4 = 16B + 1 < s0 (a0 ) < 32B + 2 = B 0 /2. Die vorkommenden
Größen sind 20B + 4s(ai ) + 1, 24B − 4s(ai ) − 4s(aj ) + 2, 20B + 4s(ai ) + 4s(aj ) + 2 und
20B. Da B/5 < s(ai ) < B/3 ist, gelten die Behauptungen.
4.) Sei zunächst angenommen, dass die Eingabe für 4-PARTITION eine Lösung hat. Falls
{ai , aj , ak , al } eine Menge der Lösung ist, sollen {wi , wj , u(i, j)} und {wk , wl , ū(i, j)} zur
Lösung von 3-PARTITION gehören. Es ist
s0 (wi )+s0 (wj )+s0 (u(i, j)) = 20B +4s(ai )+1+20B +4s(aj )+1+24B −4s(ai)−4s(aj )+2
= 64B + 4 = B 0 .
46
Da {ai , aj , ak , al } zu einer Lösung von 4-PARTITION gehört, ist s(ai ) + s(aj ) + s(ak ) +
s(al ) = B. Also gilt
s0 (wk )+s0 (wl )+s0 (ū(i, j)) = 20B +4s(ak )+1+20B +4s(al)+1+20B +4s(ai)+4s(aj )+2
= 64B + 4 = B 0 .
Mit diesen Mengen haben wir alle w-Elemente überdeckt. Außerdem werden n (u, ū)Paare überdeckt, es bleiben also 4n
− n = 8n2 − 3n Paare übrig. Es gibt auch 8n2 − 3n
2
Füllobjekte. Wir bilden nun 8n2 −3n dreielementige Mengen vom Typ {u(i, j), ū(i, j), u∗k }.
Es ist
s0 (u(i, j))+s0 (ū(i, j))+s0 (u∗k ) = 24B −4s(ai )−4s(aj )+2+20B +4s(ai )+4s(aj )+2+20B
= 64B + 4 = B 0 .
Also erhalten wir eine Lösung von 3-PARTITION.
Sei nun eine Lösung des 3-PARTITION-Problems gegeben. Nur s0 (wi ) ist ungerade. Also
enthält jede der zu der Lösung gehörenden dreielementigen Mengen von den w-Elementen
zwei oder keines. Da B 0 durch 4 teilbar ist, können auch nicht zwei w-Elemente mit einem
u∗ -Element zusammengefaßt werden.
Die w-Elemente treten also nur paarweise auf und werden mit einem Paarelement u(i, j)
oder ū(i, j) zusammengebracht. Von diesen Mengen gibt es also 2n viele. Für die anderen
Mengen bleiben 2(8n2 − 3n) Paarelemente und 8n2 − 3n Füllelemente übrig. Da B 0 durch
4 teilbar ist, können nicht drei Paarelemente eine Menge bilden. Also gibt es 8n2 − 3n
Mengen mit einem Füllelement und 2 Paarelementen. Damit die Summe der Größen B 0 ist,
muss, falls u(i, j) zur Menge gehört, das zweite Paarelement die gleiche Größe wie ū(i, j)
haben. Wir können die Elemente so austauschen, dass u(i, j) und ū(i, j) zur gleichen
Menge gehören.
Für die 2n Mengen mit je 2 w-Elementen und einem Paarelement bleiben als Paarelemente also n Paare (i, j) mit ihren zugehörigen Elementen u(i, j) und ū(i, j) übrig. Die 2n
Mengen bilden also auf natürliche Weise Paare. Diese Paare fassen wir zusammen, entfernen die Paarelemente und erhalten so n Mengen mit je 4 Elementen. Wir behaupten,
dass diese Mengen das 4-PARTITION Problem lösen, wenn wir wl durch al ersetzen.
Da s0 (u(i, j))+s0 (ū(i, j)) = 44B+4 ist und die Lösungsmengen für 3-PARTITION Gesamtgröße B 0 = 64B + 4 haben, ist die Größe der 4 w-Elemente in zwei zueinander gehörenden
Mengen der Lösung von 4-PARTITION genau 2(64B + 4) − (44B + 4) = 84B + 4. Es gilt
s0 (wi ) = 20B + 4s(ai ) + 1. Wenn also s0 (wi ) + s0 (wj ) + s0 (wk ) + s0 (wl ) = 84B + 4 ist, gilt
4(s(ai ) + s(aj ) + s(ak ) + s(al )) = 4B und s(ai ) + s(aj ) + s(ak ) + s(al ) = B. Also erhalten
wir tatsächlich eine Lösung von 4-PARTITION.
2
5.5
Methoden zum Beweis der starken NP-Vollständigkeit
Wir stellen zunächst die Einzelschritte zusammen, die wir für einen Beweis der starken
NP-Vollständigkeit eines Problems ausführen müssen. Es muss weiterhin gezeigt werden,
47
dass das Problem in NP ist. Auch muss ein passendes (stark) NP-vollständiges Problem für
die Reduktion gewählt werden. Was muss nun bei der Transformation beachtet werden?
Definition 5.5.1: Es seien Π und Π0 Entscheidungsprobleme, DΠ und DΠ0 die zugehörigen Eingabemengen und YΠ und YΠ0 die Mengen der zu akzeptierenden Eingaben. Eine
pseudopolynomielle Transformation von Π auf Π0 ist eine pseudopolynomiell zu berechnende Funktion f : DΠ → DΠ0 , so dass (1) - (3) gelten.
(1) ∃ Polynom q1 ∀ I ∈ DΠ
(2) ∃ Polynom q2 ∀ I ∈ DΠ
(3) ∀ I ∈ DΠ
: L(I) ≤ q1 (L0 (f (I))).
: M AX 0 (f (I)) ≤ q2 (M AX(I), L(I)).
: I ∈ YΠ ⇐⇒ f (I) ∈ YΠ0 .
Es ist ausreichend zu fordern, dass die Transformation in pseudopolynomieller Zeit zu
berechnen ist, da nur Eingaben mit kleinen Zahlen betrachtet werden. Eigenschaft (3) ist
uns bekannt. Die Eigenschaften (1) und (2) sollen implizieren, dass f eingeschränkt auf
DΠp für ein Polynom nur Eingaben für Π0p0 für ein Polynom p0 produziert. Eigenschaft (2)
besagt, dass die in der Transformation erzeugte Eingabe für Π0 keine zu großen Zahlen
enthält. Eigenschaft (1) besagt dagegen, dass L0 (f (I)) ≥ q1−1 (L(I)) ist, also die erzeugte
Eingabe nicht zu kurz ist. Wäre die Eingabe sehr kurz, dann wären die Zahlen in der
Eingabe bezogen auf diese Eingabelänge doch zu groß.
Satz 5.5.2: Es sei Π stark NP-vollständig und Π0 ∈ NP. Wenn es eine pseudopolynomielle Transformation von Π auf Π0 gibt, ist Π0 stark NP-vollständig.
Dieser Satz spielt für die starke NP-Vollständigkeit die Rolle, die Lemma 3.3.8 (Buch) für
die NP-Vollständigkeit gespielt hat.
Beweis von Satz 5.5.2: Wir nehmen o. B. d. A. an, dass alle vorkommenden Polynome
monoton wachsend sind. Es sei f eine pseudopolynomielle Transformation von Π auf Π0 ,
zu der nach Definition 5.5.1 die Polynome q1 und q2 gehören. Da Π stark NP-vollständig
ist, gibt es ein Polynom p, so dass Πp NP-vollständig ist. Sei p̂(x) := q2 (p(q1 (x)), q1 (x)).
Wir zeigen, dass Π0 stark NP-vollständig ist, indem wir zeigen, dass Πp̂0 NP-vollständig
ist.
1.) Πp̂0 ∈ NP, da Π0 ∈ NP ist.
2.) Wir wählen natürlich Πp .
3.) Wir schränken f auf DΠp ein. Sei I ∈ DΠp . Dann ist
M AX 0 (f (I))
(5.5.1(2))
≤
q2 (M AX(I), L(I))
I∈DΠp
≤ q2 (p(L(I)), L(I))
(5.5.1(1))
≤
Def. p̂
q2 (p(q1 (L0 (f (I)))), q1 (L0 (f (I)))) = p̂(L0 (f (I))).
Also ist f (I) ∈ DΠp̂0 . Nach Voraussetzung ist f pseudopolynomiell berechenbar, also in
polynomieller Zeit bezogen auf M AX(I) und L(I). Eingeschränkt auf DΠp ist f also
polynomiell berechenbar in L(I).
4.) Dies ist wegen Definition 5.5.1(3) erfüllt.
48
2
Wir können nun die Ernte für die geleistete Arbeit einfahren. SEQUENCING WITH
INTERVALS wurde in Kap. 4.3 definiert. Für die Aufgaben a ∈ A sind ein frühester
Bearbeitungstermin r(a), die Bearbeitungsdauer l(a) und die Deadline d(a) ≥ r(a) + l(a)
gegeben. Es soll entschieden werden, ob die Aufgaben von einem Prozessor ordnungsgemäß
abgearbeitet werden können. Das Problem ist nach Satz 4.3.6 NP-vollständig. Inzwischen
können wir mehr.
Satz 5.5.3: SEQUENCING WITH INTERVALS ist stark NP-vollständig.
Beweis: 1.) Siehe Satz 4.3.6.
2.) Nach den starken Worten in Kap. 5.4 wählen wir das Basisproblem 4-PARTITION.
3.) Sei (A = {a1 , . . . , a4m }, B, s) eine Eingabe für 4-PARTITION. Eine derartige Eingabe
transformieren wir nun in eine Eingabe (T, r, l, d) für SEQUENCING WITH INTERVALS.
Dabei sei T = A∪{t1 , . . . , tm−1 }, wobei die Aufgaben ti wieder erzwingende Aufgaben sind.
Ansonsten folgen wir der Methode der lokalen Ersetzung. Es sei r(aj ) = 0, l(aj ) = s(aj )
und d(aj ) = mB + m − 1 sowie r(ti ) = iB + i − 1, l(ti ) = 1 und d(ti ) = iB + i.
Diese Funktion f kann sogar in polynomieller Zeit berechnet werden. Es ist q1 (x) = x
geeignet, da L0 (f (I)) ≥ L(I) ist. Es ist M AX 0 (f (I)) = mB + m − 1. Da L(I) ≥ m und
M AX(I) = B, gilt auch Eigenschaft (2) aus Definition 5.5.1 für q2 (x, y) = xy + y.
4.) Für ein Schedule müssen die Aufgaben ti im Zeitintervall [iB + i − 1, iB + i] ausgeführt
werden. Zwischen diesen Intervallen liegen Zeitphasen der Länge B. Wegen der Deadlines
für die a-Aufgaben darf es keine Arbeitspause geben. Also gibt es genau dann ein Schedule,
wenn die a-Aufgaben so in m Mengen aufgeteilt werden können, dass jede Menge von
Arbeiten die Zeit B zur Bearbeitung benötigt. Dies ist genau dann der Fall, wenn es eine
Lösung für 4-PARTITION gibt.
2
Die Leserin und der Leser sollten an dieser Stelle einen Moment die Einfachheit dieses
Beweises genießen. Die harte Arbeit in Kap. 5.4 hat sich gelohnt.
Für den folgenden NP-Vollständigkeitsbeweis ist es entscheidend zu wissen, dass nicht nur
4-PARTITION, sondern auch 4-PARTITIONq für ein Polynom q NP-vollständig ist.
Definition 5.5.4: SUBFOREST ISOMORPHISM
Für einen Baum G = (VT , ET ) und einen Wald H = (VF , EF ) soll entschieden werden,
ob H isomorph in G eingebettet werden kann, d.h. ob es eine Teilmenge V 0 von VT mit
|V 0 | = |VF | und eine bijektive Abbildung f : VF → V 0 derart gibt, dass {f (u), f (v)} in
ET enthalten ist, wenn {u, v} in EF enthalten ist.
Satz 5.5.5: SUBFOREST ISOMORPHISM ist NP-vollständig.
Beweis: 1.) Wir haben sogar schon gezeigt, dass das allgemeinere Problem SUBGRAPH
ISOMORPHISM ∈ NP ist.
2.) Wir wählen das NP-vollständige Problem 4-PARTITIONq .
3.) Sei (A = {a1 , . . . , a4m }, B, s) eine Eingabe für 4-PARTITIONq . Der Baum G besteht
aus einer Wurzel und m Teilbäumen, die Ketten der mit jeweils B + 1 Knoten sind. Der
49
Wald H besteht aus einem Stern mit m+1 Knoten und 4m Wegen der mit s(a1 ), . . . , s(a4m )
Knoten.
m
G
B+1
H
s(a 1 )
s(a 4m )
m
Die Transformation kann in polynomieller Zeit berechnet werden, da Graphen mit jeweils
insgesamt (B + 1)m + 1 Knoten erzeugt werden und B ≤ q(4m) ist.
4.) Bei jeder isomorphen Einbettung muss der Mittelpunkt des Sternes auf die Wurzel des
Baumes abgebildet werden. H hat also genau dann ein isomorphes Bild in G, wenn die
Wege so in m Gruppen eingeteilt werden können, dass die Summe der Knotenzahlen in
jeder Gruppe B beträgt. Genau dann hat 4-PARTITION eine Lösung.
2
Es sei noch einmal darauf hingewiesen, dass für diese Transformation die starke NP–
Vollständigkeit von 4-PARTITION entscheidend ist. Falls wir nicht polynomiell große
Zahlen in Eingaben von 4-PARTITION betrachten, dann würden auch die in der Transformation erzeugten Graphen nicht polynomiell groß sein und könnten natürlich nicht in
polynomieller Zeit erzeugt werden.
50
6
6.1
Die Komplexität von Suchproblemen
Turing-Reduzierbarkeit, NP-harte, NP-leichte und NP-äquivalente Probleme
Buch Theoretische Informatik, Kap. 3.6.
6.2
Methoden zum Beweis, dass ein Problem NP-hart ist
Bisher haben wir das Konzept der Orakelmaschinen noch nicht voll ausgereizt. Entweder
wurde das Orakel nur einmal befragt (Beweis von Satz 3.6.14, Buch) oder die Orakel
waren dem eigentlichen Problem recht ähnlich (TSP).
Wir wollen nun mit einer allgemeinen Turing-Reduktion für ein Problem zeigen, dass es
NP-hart ist. Von diesem Problem nimmt man an, dass es nicht in NP enthalten ist. Es
gibt allerdings pseudopolynomielle Algorithmen zur Lösung des Problems.
Definition 6.2.1: k-th SMALLEST SUBSET
P
Für eine endliche Menge A, s : A → , eine Zahl B ≤ a∈A s(a) und eine Zahl k ≤ 2|A|
soll entschieden werden, ob es k verschiedene Teilmengen A0 von A gibt, für die gilt:
P
a∈A0 s(a) ≤ B.
Satz 6.2.2: k-th SMALLEST SUBSET ist NP-hart.
Beweis: Als NP-vollständige Sprache L wählen wir PARTITION und zeigen
PARTITION ≤T k-th SMALLEST SUBSET. Sei AL ein Algorithmus (Orakel) für k-th
SMALLEST SUBSET. Sei (A =P
{a1 , . . . , an }, s : A → ) eine Eingabe für PARTITION.
Zunächst berechnen wir s(A) := a∈A s(a). Falls s(A) ungerade, wird das Ergebnis Nein“
”
gedruckt. Ansonsten sei B = s(A)/2.
Das Zwischenziel besteht in der Berechnung von L∗ , der Anzahl aller A0 ⊆ A mit s(A0 ) ≤
B.
Wir benutzen die Methode der Binären Suche. Trivialerweise ist 0 ≤ L∗ ≤ 2n . Für L =
2n−1 wird AL auf die Eingabe (A, s, B, L) angewendet. Falls die Antwort Ja“ ist, wird L
”
auf 2n−1 + 2n−2 gesetzt, sonst auf 2n−1 − 2n−2 . Nach n Orakelfragen ist L∗ bekannt.
Nun wird das Orakel für (A, s, B − 1, L∗ ) befragt. Falls die Antwort Ja“ ist, kann es kein
”
A0 mit s(A0 ) = B geben. Wir antworten für PARTITION mit Nein“. Falls die Antwort
”
des Orakels Nein“ ist, muss es mindestens ein A0 mit s(A0 ) = B geben. Wir antworten
”
für PARTITION mit Ja“.
2
”
Warum vermuten wir, dass das Problem k-th SMALLEST SUBSET nicht in NP enthalten ist? Der triviale Rate und Verifiziere“ Algorithmus würde erfordern, dass wir k
”
Teilmengen von A raten, aber k ist nicht polynomiell in der Eingabelänge beschränkt,
wenn die Zahlen s(a) nicht astronomisch groß sind.
51
7
7.1
Die polynomielle Hierarchie
Die Klasse NPI
Wir wollen die Struktur von NP untersuchen. Falls NP = P ist, ist dieses Problem gegenstandslos. In diesem Abschnitt werden wir also wieder unter der Hypothese NP 6= P
arbeiten.
Definition 7.1.1: a) NPC (NP-complete) ist die Klasse der NP-vollständigen Probleme.
b) NPI := NP − P − NPC (NP-incomplete) ist die Klasse der NP-unvollständigen Probleme.
Falls NP = P, ist NPC = P − {∅, Σ∗ } und NPI = ∅. Ist es möglich, dass NPI = ∅ ist, falls
NP 6= P ist? Dies ist nicht möglich. In der strukturellen Komplexitätstheorie wurden die
beiden folgenden Sätze bewiesen.
Satz 7.1.2: Falls NP 6= P, ist N P I 6= ∅.
Satz 7.1.3: Falls NP 6= P, gibt es in N P − {∅, Σ∗ } unvergleichbare Probleme L und L0 ,
d.h. es gilt weder L ≤p L0 noch L0 ≤p L.
Natürlich ist von keinem Problem bewiesen, dass es in NPI liegt. Daraus würde ja sofort
NP 6= P folgen. Für einige Zeit hat man das im Folgenden definierte Problem COMPOSITE als ein mögliches Kandidatenproblem angesehen, das in NPI liegen könnte. Seit
August 2002 weiß man jedoch, dass dies nicht sein kann, denn die drei Forscher Manindra Agarwal, Nitin Saxena und Neeraj Kayal konnten beweisen, dass man das Problem
PRIMES und somit das Problem COMPOSITE deterministisch in Polynomialzeit lösen
kann. Für Interessenten der Link: http://www.cse.iitk.ac.in/news/primality.html
Hinweis: Eventuell stellen wir diesen neuen Polynomialzeitalgorithmus in der Vorlesung
vor. Dann wird zu diesem auf der Webseite eine Ausarbeitung abrufbar sein.
Definition 7.1.4: COMPOSITE
Entscheide für n, ob n eine zusammengesetzte Zahl, also keine Primzahl ist.
PRIMES ist das Komplementproblem zu COMPOSITE: Entscheide, ob eine Zahl n eine
Primzahl ist.
Satz 7.1.5: PRIMES und somit auch COMPOSITE sind in P.
Als prominentester Kandidat für ein Problem in NPI verbleibt damit das Graphenisomorphieproblem:
Definition 7.1.6: GRAPH ISOMORPHISM oder GI
Für zwei ungerichtete Graphen G = (V, E) und G0 = (V 0 , E 0 ) soll entschieden werden, ob
sie isomorph sind, d.h. ob es eine bijektive Abbildung f : V → V 0 gibt, so dass {i, j} ∈ E
genau dann ist, wenn {f (i), f (j)} ∈ E 0 ist.
52
Wir erinnern uns daran, dass das auf den ersten Blick nur etwas allgemeinere Problem
SUBGRAPH ISOMORPHISM bereits NP-vollständig ist, siehe Satz 4.2.9.
Das Graphenisomorphieproblem liegt vermutlich nicht in P. Diese Vermutung basiert
zunächst auf der intensiven, aber erfolglosen Suche nach polynomiellen Algorithmen. Noch
länger untersucht wurden ähnliche Probleme über die Isomorphie von Gruppen. Selbst die
viel älteren und daher teilweise stärkeren mathematischen Methoden über Gruppen haben nicht ausgereicht, um polynomielle Algorithmen für diese Probleme zu entwerfen.
Andererseits zeigen Reduktionen, dass polynomielle Algorithmen für das Graphenisomorphieproblem polynomielle Algorithmen für die Gruppenprobleme implizieren. Gründe,
warum das Graphenisomorphieproblem wohl nicht NP-vollständig ist, folgen in Kap. 9.
7.2
Die Klasse co-NP
Definition 7.2.1: Die Klasse co-NP enthält alle Sprachen L, deren Komplementsprachen
L̄ := Σ∗ − L in NP liegen.
Trivialerweise gilt P= co-P. Außerdem wurde bereits erwähnt, dass vermutlich NP 6= coNP ist. Grund für diese Annahme war die Erkenntnis, dass wir z.B. leicht eine erfüllende
Belegung aller Klauseln einer Eingabe für SAT raten können, falls eine derartige Eingabe
existiert; es aber völlig unklar ist, wie wir eine Information raten können, aus der sich
in polynomieller Zeit nachweisen lässt, dass die Klauseln der Eingabe nicht gleichzeitig
erfüllbar sind. Die Vermutung NP 6= co-NP ist weitergehend als die Vermutung NP 6= P,
wie folgender Satz zeigt.
Satz 7.2.2: N P 6= co-NP ⇒ NP 6= P.
Beweis: Falls NP = P, folgt, da P = co-P, auch NP = P = co-P = co-NP.
2
Satz 7.2.3: Falls es eine NP-vollständige Sprache L mit L̄ ∈ N P gibt, gilt N P = co-NP.
Beweis: Wir nehmen an, dass L NP-vollständig und L̄ ∈ N P ist. Daraus wollen wir
folgern, dass jede Sprache L0 ∈ NP auch in co-NP liegt, d. h., dass L̄0 ∈ NP ist. Die
Umkehrung folgt analog. Da L NP-vollständig und L0 ∈ NP ist, gilt L0 ≤p L. Es gibt
also eine deterministisch in polynomieller Zeit berechenbare Funktion f , so dass gilt:
x ∈ L0 ⇐⇒ f (x) ∈ L.
Folgende nichtdeterministische, polynomiell zeitbeschränkte T M entscheidet L̄0 . Für die
Eingabe x wird f (x) berechnet. Danach wird nichtdeterministisch in polynomieller Zeit
entschieden, ob f (x) ∈ L̄ ist. Eine derartige T M existiert, da L̄ ∈ NP. Die Entscheidung
ist korrekt, da auch gilt x ∈ L̄0 ⇐⇒ f (x) ∈ L̄.
2
Nach diesem Satz ist es nicht überraschend, dass für kein NP-vollständiges Problem L
gezeigt werden konnte, dass L̄ ∈ NP ist. Wegen Satz 7.2.2 konnte natürlich auch nicht
gezeigt werden, dass L̄ ∈
/ NP ist.
53
7.3
Die polynomielle Hierarchie
Buch Theoretische Informatik, S. 81-83.
Definition 7.3.1: ist Definition 3.9.5 aus dem Buch.
Satz 7.3.2: ist Satz 3.9.6 aus dem Buch.
Definition 7.3.3: ist Definition 3.9.7 aus dem Buch.
Satz 7.3.4: ist Satz 3.9.8 aus dem Buch.
Satz 7.3.5: ist Satz 3.9.9 aus dem Buch.
Definition 7.3.6: ist Definition 3.9.10 aus dem Buch.
Definition 7.3.7: a) Σ0 := Π0 := 40 := P.
b) Σk+1 := NP(Σk ) für k ≥ 0.
c) 4k+1 := P(Σk ) für k ≥ 0.
d) Πk+1 :=
Sco-Σk+1 für k ≥ 0.
e) PH := k≥0 Σk .
PH heißt polynomielle Hierarchie und enthält die beschriebenen Klassen.
Satz 7.3.5 enthält in der neuen Sprechweise die Aussage MEC ∈ Σ2 . Zur Veranschaulichung beschreiben wir Σ4 ausführlich als NP(NP(NP(NP))).
Lemma 7.3.8: a) 41 = P .
b) Σ1 = N P .
c) Π1 = co-NP.
Wir finden also unsere bekannten Komplexitätsklassen wieder.
Beweis von Lemma 7.3.8: Die Aussagen a) und b) folgen einfach, da ein Orakel für
L ∈ P durch polynomiell zeitbeschränkte Unterprogramme ersetzt werden kann. Die
Aussage c) folgt aus Aussage b) nach Definition.
2
Satz 7.3.9: a) Σk+1 = N P (Πk ).
b) 4k+1 = P (Πk ).
c) Πk+1 = co-NP (Πk ).
d) Σk+1 = N P (4k+1 ).
e) Πk+1 = co-NP (4k+1 ).
Beweis: a) Nach Definition gilt Σk+1 = NP(Σk ) = NP(co-Πk ). Für L ∈ Σk+1 gibt es also
eine polynomiell zeitbeschränkte Orakel-N T M mit Orakel L0 ∈ co-Πk . Wir verwenden nun
das Orakel L̄0 ∈ Πk . Wenn das Orakel Ja“ ( Nein“) sagt, fahren wir mit der Rechnung
”
”
so fort, als hätte das Orakel für L0 Nein“ ( Ja“) gesagt.
”
”
b) und c) werden analog bewiesen.
54
d) Es ist Σk ⊆ 4k+1 , da eine Orakelfrage genügt. Also gilt Σk+1 = NP(Σk ) ⊆ NP(4k+1 ).
Sei nun B ∈ 4k+1 = P (Σk ). Dann gibt es eine polynomiell zeitbeschränkte Orakel-DT M
M0 mit Orakel L ∈ Σk für B. Jede Maschine M1 mit Orakel B kann nun durch eine OrakelT M mit Orakel L ersetzt werden, indem jede Orakelfrage für B durch das durch M0
gegebene Unterprogramm ersetzt wird. Also lässt sich jede Sprache aus N P (∆k+1 ) auch
nichtdeterministisch mit einem Orakel aus Σk berechnen, d. h. N P (∆k+1 ) ⊆ N P (Σk ) =
Σk+1 .
e) folgt, da Πk+1 = co-Σk+1 ist.
2
Satz 7.3.10: a) 4k = co-4k .
b) P (4k ) = 4k .
c) Σk ∪ Πk ⊆ 4k+1 .
d) 4k ⊆ Σk ∩ Πk .
e) Alle Klassen der polynomiellen Hierarchie sind bzgl. Durchschnitt und Vereinigung
abgeschlossen.
f ) Σk ⊆ Πk ⇒ Σk = Πk .
Beweis: Übungsaufgabe.
2
55
PH
pp
pp
pp
pp
∆3
Σ2
Σ2
@
@
Σ2
S
T
Π2
@
@
Π2
Π2
∆2
Σ1
Σ1 = NP
Σ1
@
T@
S
Π1
@
@
Π1 = co-NP
Π1 = NP
T
co-NP
Σ0 = Π 0 = ∆ 0 = ∆ 1 = P
Die polynomielle Hierarchie
Es wird vermutet, dass die gesamte Hierarchie echt ist, d.h. dass alle Sprachklassen verschieden sind.
In Satz 3.2.10 haben wir die Klasse NP charakterisiert. Der folgende Satz ist eine Erweiterung dieser Charakterisierung. Wir verzichten auf den Beweis, da er technisch etwas
aufwendig ist. Die wesentlichen Ideen haben wir aber im Beweis von Satz 3.2.10 und in
den früheren Beweisen dieses Kapitels kennengelernt.
Satz 7.3.11: Die folgenden Aussagen gelten für alle k ≥ 0.
a) A ∈ Σk genau dann, wenn es eine Menge B ∈ P und ein Polynom p gibt, so dass gilt
A = {x | ∃y1 , |y1 | ≤ p(|x|); ∀y2 , |y2 | ≤ p(|x|); . . . ; Qyk , |yk | ≤ p(|x|) : (x, y1 , . . . , yk ) ∈ B}.
Hierbei ist Q = ∀, falls k gerade, und Q = ∃, falls k ungerade.
b) A ∈ Πk genau dann, wenn es eine Menge B ∈ P und ein Polynom p gibt, so dass gilt
A = {x | ∀y1 , |y1 | ≤ p(|x|); ∃y2 , |y2 | ≤ p(|x|); . . . ; Qyk , |yk | ≤ p(|x|) : (x, y1 , . . . , yk ) ∈ B}.
Hierbei ist Q = ∃, falls k gerade, und Q = ∀, falls k ungerade.
56
Diese Charakterisierung erleichtert einige Schlussfolgerungen.
Satz 7.3.12: Falls Σk = Πk für ein k ≥ 1, folgt Σk+j = Πk+j = Σk = Πk für alle j ≥ 0.
Beweis: Induktion über j. Für j = 0 ist nichts zu zeigen. Wir nehmen an, dass Σk+j =
Πk+j = Σk ist. Sei nun A ∈ Σk+j+1 . Nach Satz 7.3.11 lässt sich A darstellen mit einer
Sprache B ∈ P und einer Quantorenfolge ∃ ∀ ∃ ∀ . . . Q der Länge k + j + 1. Die Sprache
L = {(x, y1 ) | |y1 | ≤ p(|x|); ∀y2 ; . . . ; Qyk+j+1 : (x, y1 , . . . , yk+j+1 ) ∈ B}.
ist nach Satz 7.3.11 in Πk+j . Nach Induktionsvoraussetzung ist Πk+j = Σk+j . Die Sprache
L kann daher für eine Sprache C ∈ P und ein Polynom q geschrieben werden als
L = {(x, y1 ) | |y1 | ≤ p(|x|); ∃y2 , |y2 | ≤ q(|(x, y1 )|); . . . ; Q̄yk+j+1 : (x, y1 , . . . , yk+j+1) ∈ C}.
Dabei ist Q̄ = ∀, falls Q = ∃, und Q̄ = ∃, falls Q = ∀.
Also gilt
A = {x | ∃y1 , |y1 | ≤ p(|x|); ∃y2 ; ∀y3 ; . . . ; Q̄yk+j+1 : (x, y1 , . . . , yk+j+1) ∈ C}.
Die beiden führenden ∃-Quantoren können zusammengefasst werden. Also ist wieder nach
Satz 7.3.11 A ∈ Σk+j . Nach Induktionsvoraussetzung folgt A ∈ Σk = Πk und Σk+j+1 =
Σk = Πk . Analog kann Πk+j+1 = Πk = Σk bewiesen werden.
2
Korollar 7.3.13: Falls P 6= Σk für ein k ≥ 1, ist P 6= N P .
Beweis: Es sei P = NP angenommen, d.h. Σ0 = Σ1 . Es gilt Σ0 ⊆ Π1 , also Σ1 ⊆ Π1 . Nach
Satz 7.3.10f folgt Σ1 = Π1 . Nach Satz 7.3.12 folgt Σ1 = Σk . Mit der Annahme Σ0 = Σ1
folgt Σ0 = P = Σk im Widerspruch zur Voraussetzung.
2
Korollar 7.3.14: Entweder gilt Σk 6= Σk+1 für alle k ≥ 0, oder PH enthält nur endlich
viele verschiedene Klassen Σk , k ≥ 0.
Beweis: Es sei Σk = Σk+1 angenommen. Da Σk ⊆ Πk+1 , ist Σk+1 ⊆ Πk+1 . Nach
Satz 7.3.10f ist Σk+1 = Πk+1 . Nach Satz 7.3.12 folgt Σk = Σk+1 = Σk+2 = . . ., und
PH enthält nur endlich viele verschiedene Σ-Klassen.
2
Falls PH nur endlich viele verschiedene Σ-Klassen enthält, sind dies Σ0 , Σ1 , . . . , Σk für ein
k ≥ 0. Wir sagen, dass dann die polynomielle Hierarchie auf der k-ten Stufe zusammenbricht.
Völlig analog zur Theorie der NP-Vollständigkeit gibt es für alle k eine Theorie der Σk Vollständigkeit.
Definition 7.3.15: Eine Sprache L heißt Σk -vollständig, wenn L ∈ Σk ist und für alle
L0 ∈ Σk gilt: L0 ≤p L.
57
Definition 7.3.16: Die Sprache Bk besteht aus allen booleschen Ausdrücken E über
V = {xij | 1 ≤ i ≤ k, 1 ≤ j ≤ mi }, wobei m1 , . . . , mk ≥ 0, für die die folgende Formel
wahr ist:
∃x1,1 , . . . , x1,m1 ; ∀x2,1 , . . . , x2,m2 ; . . . ; Qxk,1 , . . . , xk,mk : E(x) = 1.
Die Sprachen Bk spielen für die Klassen Σk die Rolle, die SAT für NP gespielt hat. Sie
sind die ersten Probleme, für die bewiesen wurde, dass sie Σk -vollständig sind.
Satz 7.3.17: Bk ist Σk -vollständig.
Wir verzichten auf einen Beweis dieses Satzes. Am Ende dieses etwas abstrakten Abschnittes sollten sich die Leserin und der Leser noch einmal vor Augen führen, dass wir
nur die Theorie der NP-Vollständigkeit auf kanonische Weise verallgemeinert haben.
58
8
8.1
Komplexitätstheorie und probabilistische Methoden
Probabilistische Komplexitätsklassen
siehe Buch Theoretische Informatik, Kap. 3.8. Die Bezeichnungen 8.1.1 - 8.1.10 beziehen
sich auf 3.8.1 - 3.8.10 aus dem Buch.
An dieser Stelle soll ein anderer Beweis für die Verringerung der Irrtumswahrscheinlichkeit
von BPP-Algorithmen vorgestellt werden. Dazu sind zwei wahrscheinlichkeitstheoretische
Ungleichungen nötig, die bei der Analyse randomisierter Algorithmen von grundlegender
Bedeutung sind. Eine dritte Ungleichung, die wir in Kap. 9 benötigen, wird ebenfalls
gezeigt.
Lemma 8.1.11: (Markoff-Ungleichung) Sei X eine Zufallsvariable mit endlich vielen
Werten, die alle nicht negativ sind (d.h. X ≥ 0). Dann gilt für alle t > 0
Prob(X ≥ t) ≤ E(X)/t.
Beweis: Die Aussage folgt aus folgender Rechnung, wobei A die Werte enthält, die X
annehmen kann.
P
E(X) =
x · Prob(X = x)
x∈A
P
P
=
x · Prob(X = x) +
x · Prob(X = x)
x∈A,x<t
x∈A,x≥t
≥ 0
+ t · Prob(X ≥ t).
2
Im Beweis der Markoff-Ungleichung haben wir alle Werte in [0, t) durch 0 und alle Werte
in [t, ∞) durch t nach unten abgeschätzt. Es ist klar, dass diese Abschätzung korrekt
ist, aber in vielen Fällen wohl auch sehr ungenau ist. Für jede streng monoton wachsende
Funktion f können wir X ≥ t durch f (X) ≥ f (t) ersetzen. Dann können Werte in [0, f (t))
durch 0 und Werte in [f (t), ∞) durch f (t) nach unten abgeschätzt werden. In anderen
Worten wird die Markoff-Ungleichung auf f (X) angewendet. Für f (X) = X 2 erhalten
wir die Tschebyscheff-Ungleichung siehe Lemma 8.1.12. Wenn z.B. t = 1/2 ist, ist die
Abschätzung von a2 durch 0 für a < 1/4 genauer als die von a durch 0. Für a ≥ 1/4, wird
nun a2 durch 1/16 abgeschätzt anstatt a durch 1/4. Für kleine a ≥ 41 ist a2 −1/16 < a−1/4,
für große a kehrt sich das Verhältnis um. Wenn die Abschätzung im Durchschnitt besser
ist, ergibt die Tschebyscheff-Ungleichung bessere Werte als die Markoff-Ungleichung. Die
Chernoff-Schranke verwendet eine noch stärker gekrümmte Funktion, nämlich etX für ein
t > 0, dass wir später geeignet wählen.
Lemma 8.1.12: (Tschebyscheff-Ungleichung) Sei X eine Zufallsvariable mit endlich vielen Werten. Dann gilt für alle ε > 0
Prob(|X − E(X)| ≥ ε) ≤ V (X)/ε2 .
59
Beweis: Es gilt
Prob(|X − E(X)| ≥ ε) = Prob(|X − E(X)|2 ≥ ε2 ) = Prob((X − E(X))2 ≥ ε2 ).
Auf die Zufallsvariable Y = (X − E(X))2 und ε2 kann die Markoff-Ungleichung angewendet werden. Also ist
Prob(|X − E(X)| ≥ ε) ≤ E((X − E(X))2 )/ε2 .
Bekanntlich ist E((X − E(X))2 ) = V (X).
2
Lemma 8.1.13: (Chernoff-Ungleichung) Es seien X1 , . . . , Xn unabhängige Zufallsvariablen mit Werten in {0, 1}, wobei Prob(Xi = 1) = pi ist. Es sei X = X1 + · · · + Xn die
Anzahl der Erfolge“. Dann ist E(X) = p1 + · · · + pn und
”
Prob(X ≤ (1 − δ)E(X)) ≤ e−E(X)δ
2 /2
für 0 ≤ δ ≤ 1.
Falls pi = p für alle i ist, ist X binomialverteilt zu n und p und die Chernoff-Ungleichung
ist eine sehr gute Abschätzung, um Abweichungen von X von E(X) zu messen.
Auf ähnliche Weise wie Lemma 8.1.12 lässt sich eine Abschätzung für Prob(X ≥ (1 +
δ)E(X)) beweisen.
Beweis: Im ersten Schritt ersetzen wir die ≤-Ungleichung durch eine ≥-Ungleichung, um
dann etX und dann die Markoff-Ungleichung anzuwenden. Sei t > 0.
Prob(X ≤ (1 − δ)E(X)) = Prob(−X ≥ −(1 − δ)E(X))
= Prob(e−tX ≥ e−t(1−δ)E(X) )
≤ E(e−tX )/e−t(1−δ)E(X) .
Wir betrachten zunächst nur E(e−tX ).
E(e−tX ) = E(e−t(X1 +···+Xn ) )
= E(e−tX1 ∗ · · · ∗ e−tXn )
Y
=
E(e−tXi ) (U nabhängigkeit)
1≤i≤n
=
Y
1≤i≤n
=
Y
1≤i≤n
(1 · (1 − pi ) + e−t · pi ) (Def inition Erwartungswert)
(1 + pi (e−t − 1)) (triviale U mf ormung).
60
Bekanntlich gilt 1 + x < ex für alle x < 0. Da t > 0, ist also 1 + pi (e−t − 1) < epi (e
Dies sieht komplizierter aus, wird aber zu einer Vereinfachung führen. Es folgt
E(e−tX ) <
Y
epi (e
−t −1)
=e
P
1≤i≤n
pi (e−t −1)
= eE(X)(e
−t −1)
−t −1)
.
.
1≤i≤n
Insgesamt ist
−t
eE(X)(e −1)
Prob (X ≤ (1 − δ)E(X)) < −t(1−δ)E(X) .
e
1
Hier wählen wir t = ln 1−δ
. Dann ist t > 0 und e−t = 1 − δ. Es folgt
Prob(X ≤ (1 − δ)E(X)) < (
e−δ
)E(X) .
(1 − δ)1−δ
2
Unsere Behauptung folgt, falls (1−δ)1−δ > e−δ+δ /2 ist. Dies ist äquivalent zu (1−δ) ln(1−
δ) > −δ + δ 2 /2. Diese Ungleichung folgt aus der Taylor-Reihe für x ln x.
2
Wir betrachten nun einen BPP-Algorithmus, der für die Eingabe w die richtige Antwort
mit einer Wahrscheinlichkeit von pw ≥ 21 + ε macht. Wir betrachten nun die m-fache
unabhängige Wiederholung dieses Algorithmus, wobei wir w akzeptieren, wenn mehr als
m/2 Läufe dies tun. Es sei Xi die Zufallsvariable, die beschreibt, ob der i-te Lauf die
richtige Entscheidung trifft (Xi = 1) oder nicht (Xi = 0). Dann ist E(Xi ) = pw und
für X = X1 + · · · + Xm ist E(X) = m · pw . Die Wahrscheinlichkeit für eine fehlerhafte
Entscheidung kann abgeschätzt werden durch
Prob(X ≤ m/2) = Prob(X ≤ (1 − (1 −
Für δ = 1 −
1
2pw
1
))E(X)).
2pw
können wir die Chernoff-Ungleichung anwenden. Also ist
Prob(X ≤ m/2) < e−m·pw δ
2 /2
.
Die Schranke ist für pw = 12 + ε am kleinsten. Es gibt also eine positive Konstante c,
so dass die Fehlerwahrscheinlichkeit durch e−c·m beschränkt ist. Also genügt eine lineare
Anzahl von Wiederholungen, um die Fehlerwahrscheinlichkeit auf 2−n zu senken.
Wir wissen, dass RP ⊆ NP ⊆ PP und RP ⊆ BPP ⊆ PP ist, aber wir wissen noch
nichts über das Verhältnis von NP und BPP. Hier stehen sich einseitiger Irrtum mit sehr
großer Irrtumswahrscheinlichkeit und zweiseitiger Irrtum mit sehr kleiner Irrtumswahrscheinlichkeit gegenüber. Es scheint nicht möglich zu sein, die unbeschränkte Irrtumswahrscheinlichkeit stark zu senken, selbst wenn zweiseitiger Irrtum erlaubt ist. Daher
wird NP ⊆ BPP nicht gelten. Andernfalls wären NP-vollständige Probleme mit BPPAlgorithmen zu behandeln, was in vielen Anwendungen völlig ausreicht. Um BPP ⊆ NP
zu beweisen, müssten wir zweiseitigen Irrtum bei sehr kleiner Irrtumswahrscheinlichkeit
durch einseitigen Irrtum mit allerdings sehr großer Irrtumswahrscheinlichkeit ersetzen.
61
Bisher gibt es hierfür kein Verfahren. Lange Zeit ist stark vermutet worden, dass BPP
keine Teilmenge von NP ist. Verbesserte Methoden der Derandomisierung von Algorithmen haben manchen veranlasst, die Gleichung BPP=P in Betracht zu ziehen. Dies würde
zu keiner komplexitätstheoretischen Vermutung kollidieren. Innerhalb der polynomiellen
Hierarchie können wir nur beweisen, dass BPP ⊆ Σ2 ∩ Π2 ist.
Satz 8.1.14: BP P ⊆ Σ2 ∩ Π2 .
Beweis: Wir zeigen, dass BPP ⊆ Σ2 ist. Dies ist gleichbedeutend zu co-BPP ⊆ Π2 .
Da BPP bezüglich Verwerfen“ und Akzeptieren“ symmetrisch definiert ist, gilt BPP =
”
”
co-BPP ⊆ Π2 .
Sei also L ∈ BPP. Nach Satz 3.8.4 (Buch) gibt es eine probabilistische Turingmaschine
M , die für jede Eingabe der Länge n genau p(n) Rechenschritte (p ist ein Polynom) auf
jedem Rechenweg durchführt, nur die Ausgaben 0 und 1 liefert und deren Irrtumswahrscheinlichkeit kleiner als 2−n ist, d. h. weniger als 2p(n)−n Rechenwege liefern das falsche
Resultat. Die Menge der Rechenwege identifizieren wir mit {0, 1}p(n) . Für eine Eingabe x
der Länge n sei Y (x) die Menge der Rechenwege, für die M die Ausgabe 1 liefert, und
N (x) die Menge der Rechenwege, für die M die Ausgabe 0 liefert.
Wir nehmen o. B. d. A. an, dass p(n) durch n teilbar ist, und setzen k(n) = p(n)/n. Da
in Zukunft n fest ist, kürzen wir p(n) und k(n) durch p bzw. k ab. Außerdem genügt es,
Werte für n zu betrachten, für die k < 2n ist.
Für Tripel (x, y, z) mit |x| = n, y = (y1 , . . . , yk ) ∈ {0, 1}pk , d. h. yi ∈ {0, 1}p , und
z ∈ {0, 1}p sei K so definiert, dass (x, y, z) ∈ K genau dann gilt, wenn es mindestens ein i
mit yi ⊕z ∈ Y (x) gibt. Dabei bedeutet yi ⊕z, dass die Vektoren yi und z komponentenweise
mod 2 addiert werden.
Da ein Rechenweg von M in polynomieller Zeit simuliert werden kann und die Zahl k der
betrachteten Rechenwege polynomiell ist, gilt K ∈ P. Mit der folgenden Charakterisierung
von L können wir also zeigen, dass L ∈ Σ2 ist:
x ∈ L ⇔ ∃y ∈ {0, 1}pk ∀z ∈ {0, 1}p : (x, y, z) ∈ K.
Wie können wir diese Charakterisierung von L intuitiv verstehen ? Falls x ∈ L ist, gibt es
nur wenige Rechenwege in N (x). Für jedes z ∈ {0, 1}p ist die Menge aller y⊕z, y ∈ {0, 1}p ,
gleich der Menge {0, 1}p . Nahezu alle y ⊕ z liegen also in Y (x). Für z 0 ∈ {0, 1}p mit
z 0 6= z sind auch nahezu alle y ⊕ z 0 , y ∈ {0, 1}p in Y (x), aber typischerweise sind es
teilweise andere y, die zu Elementen von Y (x) führen. Wenn wir jedoch genügend viele
verschiedene y wählen dürfen, sollte jedes z einen Partner finden, so dass die ⊕-Summe
in Y (x) liegt. Falls x 6∈ L ist, gibt es nur wenige Rechenwege in Y (x). Wenn wir nicht
sehr viele verschiedene y wählen dürfen, können wir wohl nicht für alle z einen passenden
Partner finden. Der Wert k = p/n erweist sich als passende Zahl für die Zahl der yVektoren. Im folgenden wird die Korrektheit der Charakterisierung von L bewiesen.
⇒“: Sei x ∈ L. Wähle y = (y1 , . . . , yk ) zufällig. Für festes i und festes z ist yi ⊕ z
”
ein zufälliger Rechenweg, auf dem die probabilistische Turingmaschine mit einer Wahrscheinlichkeit von mehr als 1 − 2−n akzeptiert. Also gilt Prob(yi ⊕ z 6∈ Y (x)) < 2−n . Da
62
y1 , . . . , yk unabhängige Zufallsstrings sind, folgt
Prob(∀1 ≤ i ≤ k : yi ⊕ z 6∈ Y (x)) < 2−kn .
Das bedeutet, dass die Wahrscheinlichkeit, dass (x, y, z) 6∈ K gilt, kleiner als 2−kn ist. Da
es 2p verschiedene Werte für z gibt, folgt dann
Prob(∃z : (x, y, z) 6∈ K) < 2p · 2−kn < 1.
Also gibt es ein y, so dass für alle z die Behauptung (x, y, z) ∈ K erfüllt ist.
Man beachte, dass wir im letzten Schritt ein probabilistisches Argument benutzt haben:
Daraus, dass ein zufällig gewähltes y mit positiver Wahrscheinlichkeit die gewünschte
Eigenschaft hat, haben wir geschlossen, dass es ein y mit der gewünschten Eigenschaft gibt.
Beweise mit derartigen probabilistischen Argumenten sind häufig einfacher, allerdings sind
sie nicht konstruktiv, d. h. , wir erfahren nichts darüber, wie man an ein konkretes y mit
den gewünschten Eigenschaften kommt.
⇐“: Sei x 6∈ L und y = (y1 , . . . , yk ) beliebig. Wähle z ∈ {0, 1}p zufällig. Dann be”
schreibt yi ⊕ z einen zufälligen Rechenweg (auf dem die Turingmaschine mit einer Wahrscheinlichkeit kleiner als 2−n akzeptiert) und es gilt Prob(yi ⊕ z ∈ Y (x)) < 2−n . Es folgt
Prob(∃1 ≤ i ≤ k : yi ⊕ z ∈ Y (x)) < k · 2−n < 1,
also Prob((x, y, z) ∈ K) < 1. Insbesondere gibt es also ein z, so dass (x, y, z) 6∈ K ist. 2
Die Komplexitätsklasse PP lässt sich bisher nicht in die polynomielle Hierarchie einordnen.
Wir wissen nur, dass PP ⊆ PSPACE gilt. Dabei enthält PSPACE alle Probleme, die von
deterministischen Turingmaschinen auf polynomiellem Platz entscheidbar sind.
8.2
Probabilistische Komplexitätsklassen, eine Übersicht
In der Vorlesung wurden die vier Komplexitätsklassen PP, BPP, RP und ZPP definiert.
Die Fehlerarten“ können auf die folgende Weise klassifiziert werden: Es gibt zweiseitigen
”
Fehler (d.h., Wörter aus der Sprache L dürfen auch verworfen werden, Wörter, die nicht in
L sind, dürfen auch akzeptiert werden), einseitigen Fehler (Wörter aus L dürfen verworfen
werden, Wörter, die nicht L sind, dürfen aber nicht akzeptiert werden), sowie den fehlerfreien Fall (der Algorithmus darf die Antwort verweigern, wenn er aber antwortet, muss
das Ergebnis stimmen). Es sollte klar sein, dass die Fehlerwahrscheinlichkeit bei zweiseitigem Fehler kleiner als 1/2 sein muss, anderenfalls kann man auch einfach würfeln, und
bei einseitigem Fehler kleiner als 1 sein muss, anderenfalls könnte man immer verwerfen.
Man unterscheidet daher auch die Fälle, dass die Fehlerwahrscheinlichkeit beliebig nahe
an der trivialen Schranke sein darf (hier spricht man auch von unbeschränktem Fehler)
oder dass die Fehlerwahrscheinlichkeit einen konstanten Abstand von der trivialen Fehlerschranke haben muss, in diesem Fall spricht man von beschränktem Fehler. Bei dieser
Klassifizierung der Fehlerarten erhält man sechs mögliche Definitionen von probabilistischen Komplexitätsklassen, die in der folgenden Tabelle dargestellt sind.
63
⊇
NP
beschränkter
Fehler
BPP
⊇
RP
fehlerfrei
⊇
NP ∩ co-NP
⊇
ZPP =
RP ∩ co-RP
⊆
PP
⊆
unbeschränkter
Fehler
einseitiger
Fehler
⊆
zweiseitiger
Fehler
Bei einseitigem unbeschränktem Fehler erhält man die Komplexitätsklasse NP, denn wir
haben in der Vorlesung gezeigt:
Satz: Eine Sprache L ist genau dann in NP, wenn es eine polynomiell zeitbeschränkte
probabilistische Turingmaschine M gibt, so dass für alle Wörter w ∈ Σ∗ gilt:
w ∈ L ⇒ Prob(M (w) = 1) > 0,
w∈
/ L ⇒ Prob(M (w) = 0) = 1.
Analog kann man zeigen (vgl. Übungsaufgabe 7.1):
Satz: Eine Sprache L ist genau dann in NP ∩ co-NP, wenn es eine polynomiell zeitbeschränkte probabilistische Turingmaschine M gibt, so dass für alle Wörter w ∈ Σ∗ gilt:
w ∈ L ⇒ Prob(M (w) = 0) = 0 ∧ Prob(M (w) = 1) > 0,
w∈
/ L ⇒ Prob(M (w) = 1) = 0 ∧ Prob(M (w) = 0) > 0.
D.h., NP ∩ co-NP ist die Komplexitätsklasse, die die Sprachen enthält, die in polynomieller Zeit fehlerfrei mit unbeschränkter Misserfolgswahrscheinlichkeit akzeptiert werden
können, wobei ein Misserfolg die Situation ist, dass der zugehörige Algorithmus die Antwort verweigert.
Es ist naheliegend, dass die in der Tabelle angegebenen Inklusionen gelten (wobei natürlich
für alle Inklusionen offen ist, ob sie echt sind oder nicht). Allerdings folgen nur wenige
dieser Inklusionen direkt aus den Definitionen der Komplexitätsklassen, die übrigen Inklusionen, sowie die Aussage ZPP = RP ∩ co-RP mussten extra bewiesen werden. Eine
wichtige Technik hierbei ist die Probability Amplification, d.h. die Wiederholung von Algorithmen, um die Fehler- bzw. Misserfolgswahrscheinlichkeit zu verringern. Wir haben
uns auch davon überzeugt, dass bei Anwendung der vorgestellten Variante von Probability
Amplification auf Algorithmen mit unbeschränktem Fehler exponentiell viele Iterationen
nötig sind, um Algorithmen mit beschränktem Fehler zu erhalten. Dies deutet nochmal
den Unterschied zwischen den Komplexitätsklassen mit beschränktem und unbeschränktem Fehler an.
64
9
9.1
Interaktive Beweise, Zero-Knowledge-Beweise und
das PCP-Theorem
Beweisorientierte Charakterisierungen bekannter Komplexitätsklassen
Welche Forderungen stellen wir an Beweise? Ein formaler Beweis in einem gegebenen
Kalkül darf nur auf Axiomen dieses Kalküls aufbauen und darf neue Aussagen nur aus
Schlussregeln des Kalküls, die auf Axiome und bereits gefolgerte Aussagen angewendet
werden, folgern. Wir sind aber nicht zufrieden, wenn uns jemand mitteilt, er habe einen
Beweis für eine Aussage, sondern wir wollen den Beweis sehen“, um ihn zu überprüfen.
”
Typischerweise ist es nämlich schwieriger, einen Beweis zu finden“ als ihn zu überprüfen,
”
d. h. zu verifizieren. Ein Kalkül ist aber nur dann gut geeignet“, wenn es einen allgemei”
nen, möglichst effizienten Verifikationsalgorithmus V gibt, der für Aussagen x überprüft,
ob y ein Beweis der Aussage x ist. Der Algorithmus V soll genau in diesen Fällen (x, y)
akzeptieren. Anders ausgedrückt: Die Aussage x ist relativ zu V beweisbar, wenn es ein
y gibt, so dass V die Eingabe (x, y) akzeptiert.
Wenn wir an V keine weiteren Forderungen stellen (Algorithmen sollen auf allen Eingaben
nach endlicher Zeit halten), dann haben wir soeben die rekursiv aufzählbaren Sprachen
charakterisiert. Einerseits können wir zu x nacheinander alle Beweisversuche y ausprobieren. Wenn andererseits die Sprache L rekursiv aufzählbar ist, kann, falls x ∈ L ist, dies
durch eine endliche Rechnung bewiesen werden.
Was geschieht, wenn wir fordern, dass der Verifikationsalgorithmus polynomiell zeitbeschränkt ist? Wir erinnern uns an die logikorientierte Charakterisierung der Sprachklasse
NP aus Satz 3.2.10: Die Sprache L ist genau dann in NP enthalten, wenn es ein polynomiell entscheidbares Prädikat P und ein Polynom p gibt, so dass sich die Menge aller
x ∈ L schreiben lässt als
L = {x | ∃y : |y| ≤ p(|x|) und P (x, y) ist wahr}.
In unserer neuen Denkweise ist ein polynomieller Algorithmus, der P entscheidet, ein
effizienter Verifikationsalgorithmus und y ein Beweis, dass x zu L gehört. Falls NP 6= P,
ist es einfacher, einen Beweis zu verifizieren als ihn zu finden.
In der realen Welt der Forschung und Lehre werden Beweise nicht axiomatisch geführt.
Axiomatische Beweise lassen sich oft tatsächlich nur verifizieren und nicht verstehen“.
”
Was ist denn ein Beweis? Ein Beweis ist ein sozialer Prozess, bei dem ein Beweiser (Prover), nennen wir ihn Peter, eine Beweisüberprüferin (Verifier), nennen wir sie Vera, von
einem Beweis in einem Dialog überzeugen will. In der Tat gilt ein neues Theorem als
bewiesen, wenn der Autor oder die Autorin die Experten und Expertinnen des Gebiets
überzeugt hat. Beweisdialoge dieser Art sind schon aus der Antike bekannt (Sokrates).
Nun lässt sich Überzeugung“ nicht formalisieren, und wir übernehmen aus diesen Über”
legungen nur die Idee, Beweise durch Dialoge und Interaktion zu ermöglichen.
65
Die Kontraposition des Pumping Lemmas ist eine Strategie zum Beweis, dass Sprachen
nicht regulär sind:
∀N ∈
∃z ∈ L, |z| ≥ N
∀ Zerlegung z = uvw, |uv| ≤ N, |v| ≥ 1
∃i ≥ 0 : uv i w 6∈ L
⇒ L ist nicht regulär.
Wenn Peter mit dem Pumping Lemma beweisen will, dass L nicht regulär ist, muss er
in folgendem Pumping Spiel gegen Vera gewinnen. Peter erhält die ∃-Rolle und Vera die
∀-Rolle.
Runde 1: Vera wählt eine natürliche Zahl N .
Runde 2: Peter wählt ein Wort z aus L mit mindestens N Buchstaben. Wenn ein solches
Wort nicht existiert, hat Peter verloren.
Runde 3: Vera wählt eine Zerlegung z = uvw mit |uv| ≤ N und |v| ≥ 1.
Runde 4: Peter wählt ein i ≥ 0.
Peter gewinnt genau dann, wenn er in Runde 4 ein i mit uv i w 6∈ L präsentiert. Die Sprache
L ist nicht regulär, wenn Peter eine Strategie hat, mit der er gegen jede Strategie von Vera
gewinnt. Die Gewinnstrategie von Peter ist ein Beweis, dass L nicht regulär ist. Es ist ein
interaktiver Beweis, die Interaktion zwischen Peter und Vera dauert vier Runden. Falls
Peter eine Gewinnstrategie hat, ist Vera am Ende des Beweises überzeugt und akzeptiert“
”
den Beweis. Auch die logikorientierte Charakterisierung der Sprachenklasse Σk aus Satz
7.3.11 lässt sich als ∀- und ∃-Spiel auffassen. Es gibt k Kommunikationsrunden, in denen
polynomiell viele Bits geschrieben werden können. Die Rechenzeit von Peter ist nicht
beschränkt, und Vera muss in der Lage sein, am Ende (Peter sendet in der k-ten Runde)
den Beweis in polynomieller Zeit zu akzeptieren.
Unsere bisherigen Betrachtungen haben uns bekannte Komplexitätsklassen und Beweisstrategien von einer neuen Seite beleuchtet. Wir haben Nichtdeterminismus durch Peter“,
”
einen Beweiser, ausgedrückt, der unbeschränkte Rechenzeit hat, aber nur polynomiell viele Bits übermitteln darf. In Kapitel 8 haben wir gelernt, dass Randomisierung hilfreich
ist. Was gewinnen wir oder was erhalten wir, wenn wir Nichtdeterminismus und Randomisierung gemeinsam benutzen?
Wir kommen zur Definition interaktiver Beweissysteme, wie sie von Goldwasser, Micali
und Rackoff (1989) vorgeschlagen wurden.
Definition 9.1.1: Ein interaktives Beweissystem besteht aus zwei randomisierten Algorithmen, die wir mit Peter oder Prover und Vera oder Verifier bezeichnen. Beide haben ein
eigenes Arbeitsband, einen eigenen Zufallszahlengenerator, Zugriff auf die Eingabe und
Zugriff auf ein gemeinsames Kommunikationsband. In jeder Runde ist nur eine der beiden
Personen aktiv. Die Rechnung endet, wenn Vera die Eingabe akzeptiert oder verwirft, was
66
natürlich von den benutzten Zufallsbits abhängt, d.h. (P, V )(x) ist die Zufallsvariable, die
für die Algorithmen Peter P und Vera V bei Eingabe x den Wert 0 bzw. 1 annimmt, wenn
Vera schließlich akzeptiert bzw. verwirft.
Eine Sprache L gehört zur Sprachklasse IP (= interactive proof), falls es einen Algorithmus
V gibt, der in allen Runden zusammen nur polynomielle Rechenzeit benutzt, so dass für
alle Eingaben x gilt :
x∈L
⇒
∃ Algorithmus P : Prob[(P, V )(x) = 1] ≥
3
,
4
1
.
4
Eine Sprache L gehört zur Sprachklasse IP(k), wenn L zu IP gehört und ein interaktives
Beweissystem mit k Kommunikationsrunden auskommt. Dabei gehört die Verifikation
durch Vera nicht zu den Kommunikationsrunden.
x 6∈ L
⇒
∀ Algorithmus P : Prob[(P, V )(x) = 1] ≤
Aus unseren Betrachtungen zur Sprachklasse BPP in Kapitel 8 ist klar, dass die Konstanten ε = 41 und 1 − ε = 43 in Definition 9.1.1 willkürlich gewählt sind. Peter und Vera
können denselben Algorithmus polynomiell oft parallel ausführen. Wenn Vera am Ende
eine Majoritätsentscheidung trifft, kann sie so die Irrtumswahrscheinlichkeit senken. Statt
ε = 14 ist jedes ε < 21 ebensogut wie ε = 2−n .
In einem interaktiven Beweissystem ist gefordert, dass Peter, falls x ∈ L ist, Vera mit
hoher Wahrscheinlichkeit von dieser Tatsache überzeugen kann, während sich Vera, falls
x 6∈ L ist, nur mit kleiner Wahrscheinlichkeit vom Gegenteil überzeugen lässt. Es ist
entscheidend, dass die Rechenzeit von Vera, aber nicht die von Peter polynomiell beschränkt ist. Da Vera in polynomieller Zeit nur polynomiell viele Bits lesen kann, können
wir o. B. d. A. annehmen, dass Peter nur polynomiell viele Bits schreibt. Damit folgt sofort, dass NP ⊆ IP(1) ist, wobei Peter und Vera auf die Zufallsbits verzichten können.
Die Klasse IP ist dagegen sehr groß. Es konnte gezeigt werden, dass sie gleich der Klasse
PSPACE (siehe Kapitel 11) ist, die alle Sprachen enthält, die von Turingmaschinen auf
polynomiellem Platz erkannt werden können. Damit enthält IP alle Sprachklassen der
polynomiellen Hierarchie.
Wir haben nun ein hübsches Spielzeug, aber wozu? Aus diesem Spielzeug wird im nächsten
Abschnitt ein Handwerkzeug, mit dem wir interessante Aussagen über das Graphenisomorphieproblem GI (siehe Definition 7.1.6) herleiten können.
9.2
Ist das Graphenisomorphieproblem NP-vollständig?
In Kapitel 7.1 haben wir GI als Kandidaten für die Klasse NPI vorgestellt. Da
SUBGRAPH ISOMORPHISM NP-vollständig ist, warum sollte nicht auch GI NP-vollständig sein? Wir werden aus der Annahme, dass GI NP-vollständig ist, eine Konsequenz
ziehen, die sehr wahrscheinlich nicht wahr ist. Zwar ist NP ⊆ IP(1), aber was ist mit
co-NP? Die Asymmetrie zwischen Vera und Peter führt dazu, dass wir keine einfachen
67
Schlussfolgerungen ziehen können. Wir werden zeigen, dass GI, das Komplement von GI,
in IP(2) liegt. Falls GI NP-vollständig ist, ist also jedes co-NP-vollständige Problem in
IP(2). Da jedoch für kein NP-vollständiges Problem bekannt ist, dass das Komplement in
IP(k) für ein konstantes k ist, ist dies ein deutlicher Fingerzeig für die Vermutung, dass
GI nicht NP-vollständig ist.
Beim Problem GI besteht ein Beweis, dass zwei Graphen isomorph sind, einfach in der
Angabe der Isomorphieabbildung. Wir wissen nicht, ob GI ∈ NP (oder GI ∈ co-NP) ist.
Wir kennen also keinen kurzen, leicht verifizierbaren Beweis, dass zwei Graphen nicht
isomorph sind. Im Rahmen der interaktiven Beweissysteme haben wir mehr Kommunikationsrunden und Probabilismus zur Verfügung. Wenn die Knotenmenge eines der beiden
Graphen G0 und G1 einer zufälligen Permutation unterzogen wird, lässt sich hinterher nur
herausfinden, welcher Graph das war, wenn G0 und G1 nicht isomorph sind. Dies führt
zu dem im folgenden Beweis benutzten interaktiven Beweissystem.
Satz 9.2.1: GI ∈ IP (2).
Beweis: Die Eingabe sei das Graphenpaar (G0 , G1 ) mit je n Knoten. Wenn die Knotenzahl der Graphen verschieden ist, sind die Graphen trivialerweise nicht isomorph. Dies
kann vorab in polynomieller Zeit überprüft werden. Vera und Peter benutzen folgendes
interaktives Beweissystem.
Runde 1: Vera erzeugt ein Zufallsbit i ∈ {0, 1} und eine zufällige Permutation π auf
{1, . . . , n}. Sie berechnet H := π(Gi ), d.h. den Graphen H, der aus Gi nach Umnummerierung der Knoten gemäß π entsteht. Sie schreibt H auf das Kommunikationsband.
Runde 2: Peter berechnet ein j ∈ {0, 1} und schreibt j auf das Kommunikationsband.
Entscheidung: Vera akzeptiert, wenn i = j ist.
Wir analysieren die Kommunikation. Natürlich kann Vera in polynomieller Zeit ihre Arbeit tun. Falls G0 und G1 nicht isomorph sind, d.h. (G0 , G1 ) ∈ GI, kann Peter (durch
Ausprobieren) herausfinden, ob H zu G0 oder zu G1 isomorph ist. Den entsprechenden
Index wählt er als j, und Vera akzeptiert mit Wahrscheinlichkeit 1.
Falls G0 und G1 isomorph sind, d.h. (G0 , G1 ) 6∈ GI, sind G0 , G1 und H isomorph. Die
Information H ist für Peter wertlos. Nachdem Vera i ausgewählt hat, ist für Peter Prob(i =
0) = Prob(i = 1) = 12 . Nachdem Peter nun die Information H erhalten hat, ändert sich
dies nicht. Da G0 und G1 isomorph sind, gibt es gleich viele Permutationen, die H aus
G0 erzeugen, wie es Permutationen gibt, die H aus G1 erzeugen. Peter kann also die
Wahrscheinlichkeit, dass Vera akzeptiert, nicht über 12 bringen.
Wir haben es hier mit einem interaktiven Beweissystem mit einseitigem Fehler zu tun
und, analog zu RP -Algorithmen, kann mit zweimaliger Ausführung des Protokolls der
Fehler auf 41 gesenkt werden. Da die Ausführungen parallel erfolgen, bleibt die Rundenzahl
erhalten.
2
68
Der Erfolg des soeben beschriebenen interaktiven Beweissystems beruht darauf, dass die
Zufallsbits, die Vera benutzt, Peter unbekannt bleiben. Vera benutzt also private coins“.
”
Wenn es nur einen Zufallszahlengenerator gibt, dessen Ergebnisse Peter und Vera sehen,
spricht man von public coins“. Natürlich lassen sich öffentliche Münzwürfe durch private
”
Münzwürfe simulieren, indem der Erzeuger der privaten Münzwürfe die Ergebnisse publiziert. Hier kann nur erwähnt werden, dass sich private Münzwürfe auch durch öffentliche
Münzwürfe simulieren lassen. Wir werden ein interaktives Beweissystem für GI vorstellen,
in dem die Zufallsbits veröffentlicht werden.
Definition 9.2.2: Die Klasse BP(NP) (die auch AM genannt wird) enthält alle Sprachen
L, für die es eine Sprache B ∈ P gibt mit
3
4
1
x 6∈ L ⇒ Prob(∃y : (x, r, y) ∈ B) ≤ .
4
Dabei darf y nur in |x| polynomielle Länge haben, und r ist ein Zufallsvektor mit in |x|
polynomieller Länge.
x ∈ L ⇒ Prob(∃y : (x, r, y) ∈ B) ≥
Zunächst zur Bezeichnungsweise BP(NP). Für festes r ist das Prädikat ∃y : (x, r, y) ∈ B“,
”
da B ∈ P, ein NP-Prädikat, um das herum“ ein BPP-Algorithmus eingesetzt wird. Für
”
Sprachen in BP(NP) gibt es die oben angegebenen speziellen Beweissysteme.
Satz 9.2.3: BP (N P ) ⊆ IP (2).
Beweis: Folgendes interaktives Beweissystem beweist die Behauptung.
Runde 1: Vera erzeugt einen Zufallsvektor r und schreibt ihn auf das Kommunikationsband.
Runde 2: Peter berechnet ein y und schreibt y auf das Kommunikationsband.
Entscheidung: Vera akzeptiert, wenn (x, r, y) ∈ B ist.
Vera kann ihre Arbeit in polynomieller Zeit vollbringen, da B ∈ P ist. Falls x ∈ L ist, kann
Peter mit einer Wahrscheinlichkeit von mindestens 34 ein y berechnen, das Vera überzeugt.
2
Falls x 6∈ L, gelingt ihm dies nur mit einer Wahrscheinlichkeit von höchstens 41 .
Es ist nun auch klar, warum nicht Peter die Zufallsbits erzeugen darf. Er könnte dann betrügen, indem er r so wählt, dass es, auch wenn x 6∈ L ist, ein y gibt, das Vera überzeugt.
Die Bezeichnung AM geht auf frühere Definitionen interaktiver Beweissysteme zurück.
Dabei steht A für König Artus (aus der Legende der Artusrunde) und M für den Zauberer Merlin aus derselben Legende. Im Englischen ist König Artus King Arthur. Daher
wird von Arthur-Merlin-Spielen gesprochen. Für Sprachen der Komplexitätsklasse AM
stellt Arthur (bei uns Vera) eine Frage (Anforderung), die der allmächtige (keine Rechenzeitbeschränkung) Merlin (bei uns Peter) mit großer Wahrscheinlichkeit so beantworten
kann, dass Arthur die Antwort überprüfen kann.
69
Satz 9.2.4: GI ∈ BP (N P ).
Beweis: Wieviele zu H isomorphe Graphen gibt es? Man ist versucht, die Antwort n! zu
geben. Betrachten wir aber einmal einen Graphen auf V = {1, 2, 3} mit der einzigen Kante
e1 = {1, 2}. Die Permutation π mit π(1) = 2, π(2) = 1 und π(3) = 3 erzeugt wieder H,
während π 0 mit π 0 (1) = 3, π 0 (2) = 2 und π 0 (3) = 1 den zu H isomorphen Graphen H 0 mit
der Kante e01 = {2, 3} erzeugt. Die Permutationen auf H, die wieder H ergeben (so wie im
Beispiel π), heißen Automorphismen auf H. Die Menge Aut(H) aller Automorphismen auf
H bildet eine Untergruppe der Gruppe Σn aller Permutationen. Die Gruppenoperation
ist dabei die Hintereinanderausführung von Funktionen. Seien nun π1 (H), . . . , πk (H) die
verschiedenen zu H isomorphen Graphen. Dann gilt
Σn = π1 Aut(H) + · · · + πk Aut(H) ,
d. h. wir haben Σn disjunkt in linke Nebenklassen bzgl. Aut(H) zerlegt. Dies ist einfach zu
zeigen. Falls π ∈ Aut(H), gilt πi (H) = πi ◦π(H). Sei nun π ∈ Σn beliebig. Dann gibt es ein
i ∈ {1, . . . , k} mit π(H) = πi (H), also gibt es ein π 0 ∈ Aut(H) mit π = πi ◦π 0 ∈ πi Aut(H).
Für unsere Überlegungen ist nur wichtig, dass die Menge aller (H, π) mit H ≡ G0 und
π ∈ Aut(H) genau n! Elemente enthält.
Nun können wir ähnlich zum Beweis von Satz 9.2.1 Unterschiede in Paaren (G0 , G1 )
feststellen in Abhängigkeit davon, ob G0 und G1 isomorph sind. Sei
N (G0 , G1 ) = {(H, π)|H ≡ G0 und π ∈ Aut(H)} ∪ {(H, π)|H ≡ G1 und π ∈ Aut(H)} .
Die beiden betrachteten Mengen sind identisch, falls G0 ≡ G1 , und disjunkt, falls G0 6≡ G1 .
Also gilt
n! falls G0 ≡ G1
|N (G0 , G1 )| =
.
2n! falls G0 6≡ G1
Den großen“ Unterschied zwischen n! und 2n! machen wir uns zunutze. Um die passenden
”
Wahrscheinlichkeiten zu erhalten, vergrößern wir den Unterschied noch etwas und betrachten X := (N (G0 , G1 ))5 = N (G0 , G1 ) × N (G0 , G1 ) × N (G0 , G1 ) × N (G0 , G1 ) × N (G0 , G1 ).
Dann ist |X| = (n!)5 , falls G0 ≡ G1 , und |X| = 32(n!)5 , falls G0 6≡ G1 . Ein Element aus
N (G0 , G1 ) wird einfach auf übliche Weise als Paar (H, π) codiert. Die Codierung eines
Elementes aus X ist die Konkatenation der Codierungen der fünf Elemente aus N (G0 , G1 ).
Somit hat die Codierung von Elementen aus X polynomielle Länge l in Abhängigkeit von
n. Es ist bei üblichen Codierungen von Permutationen auch sichergestellt, dass 0l kein
gültiges Codewort ist.
Es sei k := dlog(4(n!)5 )e. Für eine k×l-Matrix W mit Einträgen aus {0, 1} und (a1 , . . . , al )
∈ {0, 1}l sei
M
hj (a1 , . . . , al ) =
ai wji ,
1≤j≤k.
1≤i≤l
l
Dann kann h = (h1 , . . . , hk ) : {0, 1} → {0, 1}k als Hashfunktion bezeichnet werden. Wenn
wir W zufällig wählen, hat h mit hoher Wahrscheinlichkeit gute Eigenschaften, wie wir
70
sehen werden. Sei A ⊆ {0, 1}l und (0, . . . , 0) ∈
/ A. Sei S die Zufallsvariable, die die Anzahl
von Vektoren aus A angibt, die von einer zufälligen linearen Funktion h : {0, 1}l → {0, 1}k
auf (0, . . . , 0) abgebildet werden. Hier sehen wir, warum der Nullvektor bei der Codierung
ausgeschlossen ist. Er wird von linearen Abbildungen stets auf 0 abgebildet.
L Sei also
ai = 1. Mit Wahrscheinlichkeit 1/2 ist wij = 0 bzw. wij = 1. Unabhängig von r6=i ar wjr
nimmt hj (a1 , . . . , al ) also mit Wahrscheinlichkeit 1/2 den Wert 0 bzw. 1 an. Die einzelnen
Bits von h sind unabhängig voneinander. Also ist h(a1 , . . . , al ) mit Wahrscheinlichkeit 2−k
der Nullvektor. S kann beschrieben werden als die Summe von |A| Zufallsvariablen Zi ,
wobei Zi genau dann den Wert 1 annimmt, wenn für das i-te Element ai in A gilt, dass
h(ai ) = (0, . . . , 0).
Wir zeigen nun zunächst, dass die Zufallsvariablen Zi und Zp für i 6= p unabhängig sind.
Seien also ai und ap das i-te bzw. p-te Element von A, d. h. insbesondere ai 6= ap . Wir
zeigen, dass die Wahrscheinlichkeit, dass sowohl hj (ai1 , . . . , ail ) als auch hj (ap1 , . . . , apl ) beide Null sind, gleich 1/4 ist. Wir betrachten hj (ai1 , . . . , ail ) = 0 ∧ hj (ap1 , . . . , apl ) = 0 als
lineares Gleichungssystem über 2 mit zwei Gleichungen, wobei wj,1 , . . . , wj,l die Variablen sind. Da (ai1 , . . . , ail ) und (ap1 , . . . , apl ) verschieden und ungleich dem Nullvektor sind,
ist die Anzahl der Lösungen des Gleichungssystems gleich 2l−2 . Die Anzahl der möglichen Belegungen von wj,1 , . . . , wj,l ist 2l , so dass bei zufälliger Wahl von wj,1 , . . . , wj,l die
Wahrscheinlichkeit, dass das Gleichungssystem erfüllt wird, 1/4 beträgt.
Also ist S die Summe von |A| paarweise unabhängigen Zufallsvariablen. Der Erwartungswert E(S) und die Varianz V(S) von S erhält man mit denselben Formeln wie bei der
Binomialverteilung. Diese Formeln lauten:
E(S) = 2−k |A|
und
V(S) = 2−k (1 − 2−k )|A| ≤ E(S) .
Wir betrachten nun die Eingabemenge X, die nach Konstruktion den Nullvektor nicht
enthält. Falls G0 6≡ G1 , gilt (beachte d·e)
5
E(S) = 2−dlog(4(n!) )e · 32(n!)5
1
1
·
· 32(n!)5 = 4 .
≥
2 4(n!)5
Falls dagegen G0 ≡ G1 , gilt
E(S) = 2−dlog(4(n!)
5 )e
· (n!)5 ≤
1
.
4
Wir wenden nun Definition 9.2.2 an, um zu zeigen, dass GI ∈ BP(NP) ist. Dabei entspricht
x der Eingabe (G0 , G1 ), und r ist eine zufällige lineare Transformation h, genauer eine
zufällige Matrix der Größe k × l, wobei k und l von der Knotenzahl in den Graphen
G0 und G1 abhängen. Schließlich besteht y aus zwei Teilen y 0 und y 00 . Dabei ist y 0 die
Codierung eines Elements aus X = N (G0 , G1 )5 , wie oben besprochen. Allerdings muss
auch überprüfbar sein, ob y 0 ∈ X ist. Daher soll y 00 ein Beweis sein, dass y 0 ∈ X ist.
Der Beweis ist ein Paar (a, α) mit a ∈ {0, 1}5 und α ∈ Σ5n . Das Tripel (x, r, y = (y 0 , y 00 ))
71
gehört genau dann zu B, wenn y 00 beweist, dass y 0 ∈ X ist, d. h. für i ∈ {1, . . . , 5} muss
αi (Gai ) = H sein, wenn die angegebenen πi tatsächlich Automorphismen auf H sind und
wenn h(y 0 ) = 0 ist. Nach Definition ist B ∈ P.
Wir müssen nun in den beiden Fällen G0 ≡ G1 und G0 6≡ G1 die Wahrscheinlichkeit
des Ereignisses E := {∃y 0 |h(y 0 ) = (0, . . . , 0)} abschätzen. Sei zunächst G0 6≡ G1 . Dann
benutzen wir die Tschebyscheff - Ungleichung (Lemma 8.1.12):
Prob(|S − E(S)| ≥ ε) ≤ V(S)/ε2 .
In unserem Fall setzen wir ε := E(S) und benutzen die oben bewiesene Ungleichung
V(S) ≤ E(S). Es folgt
G0 6≡ G1 ⇒ Prob(E) = 1 − Prob(S = 0) ≥ 1 − Prob(|S − E(S)| ≥ E(S))
≥ 1 − V(S)/E(S)2 ≥ 1 − 1/E(S) ≥ 3/4 .
Im Fall G0 ≡ G1 benutzen wir die Markoff-Ungleichung (Lemma 8.1.11) für t = 1 und
erhalten Prob(S ≥ 1) ≤ E(S).
Also gilt
G0 ≡ G1 ⇒ Prob(E) = Prob(S ≥ 1) ≤ E(S) ≤ 1/4 .
2
Warum macht dieses Ergebnis es noch unwahrscheinlicher“, dass GI NP-vollständig ist?
”
Satz 9.2.5: Falls GI NP-vollständig ist, ist Σ2 = Π2 .
Nach Satz 7.3.12 folgt aus Σ2 = Π2 , dass PH = Σ2 = Π2 ist.
Beweis von Satz 9.2.5: Nach Satz 7.3.10 genügt es, Σ2 ⊆ Π2 zu zeigen. Sei also L ∈ Σ2 .
Nach Satz 7.3.11 lässt sich L als ∃∀-Formel für eine Sprache B ∈ P schreiben:
L = {x | ∃y ∀z : (x, y, z) ∈ B}.
Dabei müssen y und z in ihrer Länge polynomiell in |x| beschränkt sein. Sei p das Polynom,
das die Längenbeschränkung für y ergibt. Für L0 = {(x, y) | ∀z : (x, y, z) ∈ B} ist
L = {x | ∃y : (x, y) ∈ L0 }. Dabei ist L0 ∈ Π1 = co-NP. Wenn GI NP-vollständig ist, ist
GI co-NP-vollständig. Wir können also L0 polynomiell auf GI reduzieren und L0 durch GI
ersetzen.
Darüber hinaus wählen wir für GI eine BP(NP)-Darstellung, bei der die Irrtumswahrscheinlichkeit auf 18 2−p(n) gesetzt wurde. Also gibt es ein C ∈ P mit
(x, y) ∈ L0
(x, y) ∈
/ L0
⇒
⇒
1
Prob(∃z : (x, y, z, r) ∈ C) ≥ 1 − 2−p(n) ,
8
Prob(∃z : (x, y, z, r) ∈ C) ≤
72
1 −p(n)
2
.
8
Die Länge von z ist natürlich stets polynomiell beschränkt. Wir fassen die Aussagen
zusammen:
x∈L
⇒
⇒
⇒
∃y : (x, y) ∈ L0
∃y, |y| ≤ p(n) : Prob(∃z : (x, y, z, r) ∈ C) ≥ 1 − 81 2−p(n)
Prob(∃y, |y| ≤ p(n), ∃z : (x, y, z, r) ∈ C) ≥ 1 − 18 2−p(n) .
Wenn es ein gutes“ y gibt, ist die Wahrscheinlichkeit für die Existenz eines guten“
”
”
y genau 1. Somit kann die Existenzaussage in die Wahrscheinlichkeitsaussage hinein
”
gezogen“ werden. Im Fall x ∈
/ L nutzen wir die Tatsache aus, dass die Wahrscheinlichkeit
für die Vereinigung von Ereignissen Ei nie größer als die Summe der Wahrscheinlichkeiten
von Ei ist. Es gibt weniger als 2p(n)+1 Vektoren y mit |y| ≤ p(n).
x∈
/L
⇒
⇒
⇒
∀y, |y| ≤ p(n) : (x, y) ∈
/ L0
∀y, |y| ≤ p(n) : Prob(∃z : (x, y, z, r) ∈ C) ≤ 81 2−p(n)
Prob(∃y, |y| ≤ p(n), ∃z : (x, y, z, r) ∈ C) ≤ 2p(n)+1 · 18 · 2−p(n) = 1/4.
Ob wir ∃y ∃z oder ∃w = (y, z) schreiben, ist egal. Wir haben also eine Darstellung von L
erhalten von der Form
x∈L
⇒
Prob(∃w : (x, w, r) ∈ C) ≥ 3/4,
x∈
/L
⇒
Prob(∃w : (x, w, r) ∈ C) ≤ 1/4,
wobei C ∈ P ist.
Allgemein wissen wir, dass L1 ∈ BPP äquivalent ist zu der Aussage: es gibt eine Sprache
D ∈ P mit
v ∈ L1 ⇒ Prob((v, r) ∈ D) ≥ 3/4,
v 6∈ L1 ⇒ Prob((v, r) ∈ D) ≤ 1/4.
Anstelle der Aussage (v, r) ∈ D“ haben wir es hier mit ∃w : (x, w, r) ∈ C“ zu tun. Mit
”
”
dieser Aussage können wir den Beweis von Satz 8.1.14 für die Aussage BPP ⊆ Π2 analog
führen und erhalten, dass wir L für eine Sprache E ∈ P charakterisieren können durch
L = {x|∀t∃u∃w : (x, t, u, w) ∈ E}. Wenn wir ∃u∃w zu ∃(u, w) zusammenführen, zeigt
dies L ∈ Π2 .
2
Abschließend soll der Beweis informal in Operatorendenkweise“ beschrieben werden.
”
Es ist L ∈ Σ2 , also als ∃∀ (stets um ein Prädikat aus P ergänzt) darstellbar. Da GI co-NPvollständig, also Π1 -vollständig oder ∀-vollständig“ ist, können wir den ∀-Quantor durch
”
GI ersetzen. Aber nach Satz 9.2.4 ist GI durch BP∃ darstellbar, wobei wir BP als Operator
auffassen. Insgesamt erhalten wir für L eine ∃BP∃-Darstellung. Die Überlegungen im
Beweis zeigen, dass wir ∃BP durch BP∃ ersetzen können, also für L eine BP∃∃ = BP∃Darstellung erhalten. Da BPP ⊆ Π2 können wir BP durch ∀∃ ersetzen und erhalten eine
∀∃∃ = ∀∃-Darstellung, also eine Π2 -Darstellung. Insgesamt können wir mit Operatoren
rechnen“, wenn wir die bewiesenen Regeln beachten.
”
73
9.3
Zero-Knowledge-Beweise
In Kap. 9.1 haben wir NP ⊆ IP(1) gezeigt. In dem zugehörigen interaktiven Beweissystem
offenbart Peter, falls x ∈ L, einen Beweis, dass x ∈ L ist. Im Falle des Graphenisomorphieproblems zeigt Peter, falls G0 ≡ G1 , Vera die zugehörige Isomorphieabbildung π.
Kann Peter Vera auch davon überzeugen, dass G0 ≡ G1 ist, ohne dass Vera hinterher
effizienter eine Isomorphieabbildung berechnen kann als zuvor? Ein denkbares Szenario
wäre folgendes. Peters Passwort besteht aus zwei isomorphen Graphen G0 und G1 , die
öffentlich bekannt sein können, und einer nur ihm bekannten Isomorphieabbildung π zwischen G0 und G1 . Vera kennt G0 und G1 . Nun möchte Vera sicher sein, dass am anderen
Ende der Kommunikationsleitung wirklich Peter sitzt. Dabei ist die Leitung unsicher und
wird von Mata Hari abgehört. Wenn Vera aus der Kommunikation nichts lernen kann,
kann Mata Hari dies auch nicht und das Geheimnis bleibt gewahrt und kann für weitere
Identitätsüberprüfungen benutzt werden. Wir starten ohne formale Definition mit einem
Dialog zwischen Peter und Vera und liefern die Formalisierung nach. Seien G0 und G1
Graphen auf n Knoten.
Runde 1: Peter wählt zufällig i ∈ {0, 1} und π ∈ Σn und schreibt H := π(Gi ) auf das
Kommunikationsband.
Runde 2: Vera erzeugt zufällig j ∈ {0, 1} und schreibt j auf das Kommunikationsband.
Runde 3: Peter berechnet eine Permutation π ∗ ∈ Σn und schreibt sie auf das Kommunikationsband.
Entscheidung: Vera akzeptiert, falls H = π ∗ (Gj ).
Zunächst fällt auf, dass Peter in Runde 1 das Verhalten von Vera in dem interaktiven
Beweissystem aus dem Beweis von Satz 9.2.1 nachahmt, und Vera in der zweiten Runde
eine Information auswürfelt, die Peter im angegebenen Beweissystem berechnet. Im neuen
Dialog kann Vera ihre Arbeit natürlich in polynomieller Zeit verrichten. Nehmen wir
zunächst an, dass G0 ≡ G1 ist. In diesem Fall sind Gj und H isomorph und Peter kann
die Permutation π ∗ , die Vera überzeugt, berechnen. Falls i = j ist, ist offensichtlich
π ∗ = π eine passende Antwort. Falls jedoch i 6= j ist, kann Peter auf sein Geheimnis
zurückgreifen, nämlich eine Permutation π 0 mit G1 = π 0 (G0 ). Ist i = 1 und j = 0, dann
ist π ◦ π 0 (G0 ) = π(G1 ) = H und π ∗ = π ◦ π 0 geeignet. Ist dagegen i = 0 und j = 1, so ist
π ◦ (π 0 )−1 (G1 ) = π(G0 ) = H und π ∗ = π ◦ (π 0 )−1 geeignet.
Falls G0 6≡ G1 , muss Peter in der ersten Runde einen Graphen H auf n Knoten senden.
Sonst würde Vera die Abweichung merken und sich nicht überzeugen lassen. Da G0 6≡ G1 ,
kann H zu maximal einem der beiden Graphen isomorph sein. Falls H weder zu G0 noch
zu G1 isomorph ist, hat Peter keine Chance, Vera zu überzeugen. Ansonsten würfelt Vera
mit Wahrscheinlichkeit 1/2 das Bit j so aus, dass H und Gj nicht isomorph sind, und
Peter kann Vera nicht überzeugen.
Wir haben also ein neues interaktives Beweissystem für GI mit einseitigem Fehler. Das
Besondere soll sein, dass Vera aus dem Dialog nichts lernt. Oder lernt sie vielleicht doch
mit kleiner Wahrscheinlichkeit etwas? Es könnte doch i = j = 0 und H = G1 sein. Dann
ist π ∗ ein Isomorphismus zwischen G0 und G1 . In diesem Fall ist die zufällige Permutation
π ein Isomorphismus zwischen G0 und G1 . Dies ist aber kein Extravorteil für Vera. Sie
74
kann ja selber polynomiell viele Permutationen auswürfeln und testen, ob eine davon einen
Isomorphismus zwischen G0 und G1 darstellt. Wir merken, dass wir bei der Definition von
Zero-Knowledge“ sehr vorsichtig sein müssen.
”
Definition 9.3.1: Sei (P, V ) ein interaktives Protokoll für die Sprache L, d. h. V ist der
polynomielle Algorithmus für Vera und P der Algorithmus für Peter, der für x ∈ L Vera
mit genügend großer Wahrscheinlichkeit überzeugt. Das Protokoll hat die perfekte ZeroKnowledge-Eigenschaft, wenn es für jeden polynomiellen Algorithmus V 0 für Vera einen
probabilistischen Algorithmus M mit erwarteter polynomieller Rechenzeit gibt, der auf
jeder Eingabe x ∈ L dieselbe Wahrscheinlichkeitsverteilung wie das Protokoll (P, V 0 ) für
den Output liefert.
Vera lernt also, selbst wenn sie vom Protokoll abweicht, oder Mata Hari die Botschaften
von Vera verändert, nichts (außer der Tatsache x ∈ L), was sie nicht auch ohne den Dialog
lernen könnte.
Satz 9.3.2: GI hat interaktive Beweissysteme mit der perfekten Zero-Knowledge-Eigenschaft.
Beweis: Wir zeigen, dass das oben beschriebene interaktive Beweissystem für GI die
Zero-Knowledge-Eigenschaft hat. Sei V 0 ein polynomieller Algorithmus. Wir beschreiben
die probabilistische Simulationsmaschine auf (G0 , G1 ).
1.)
2.)
Repeat until i = j:
- erzeuge zufällig i ∈ {0, 1} und π ∈ Σn ,
- berechne H = π(Gi ),
- simuliere V 0 auf der Nachricht H von Peter in Runde 1 und
berechne, welches j der Algorithmus V 0 in Runde 2 sendet.
Gib für den Versuch mit i = j das Tripel (H, i, π) als Ausgabe aus.
Nach Voraussetzung ist jede Runde in der repeat-Schleife in polynomieller Zeit durchführbar. Da V 0 das Bit i nicht kennt, ist die Wahrscheinlichkeit für das Ereignis i = j genau
1/2. Wir warten bei einer fairen Münze, wann sie das erste Mal auf Zahl fällt. Die mittlere
Wartezeit beträgt 2. Also hat die Simulationsmaschine erwartete polynomielle Rechenzeit.
Da (P, V 0 ) simuliert wird und, falls i = j, H = π(Gi ) = π(Gj ) ist, wird mit (H, i, π) derselbe zufällige Output geliefert wie von (P, V 0 ), falls G0 ≡ G1 .
2
Können auch NP-vollständige Probleme Zero-Knowledge-Beweise haben? Dies können
wir nur unter einer weiteren Annahme zeigen. In der Kryptographie werden Einwegfunktionen f benötigt, dies sind injektive Funktionen, die in polynomieller Zeit auszuwerten
sind (berechne y = f (x)) und die nicht in polynomieller Zeit zu invertieren sind (berechne zu y ein Bit von x mit f (x) = y). Für die Existenz von Einwegfunktionen reicht
die Annahme NP 6= P nicht aus (sie ist jedoch (Übungsaufgabe) notwendig). Für das
75
Hamiltonkreisproblem kann ein interaktiver Beweis mit computational Zero-KnowledgeEigenschaft entworfen werden, d. h. unter der Annahme der Existenz einer injektiven
Einwegfunktion.
Mit injektiven Einwegfunktionen f lassen sich Bits b wie folgt probabilistisch verschlüsseln.
Für eine genügend lange Zufallszahl z wird y = f (z, b) berechnet. Aus y lässt sich nach
Annahme weder (z, b) noch das Bit b in polynomieller Zeit berechnen. Der Absender
kann, wenn er will, b entschleiern“, indem er z bekannt gibt. Es ist dann effizient zu
”
überprüfen, ob y = f (z, 0) oder y = f (z, 1) ist. Hier soll auch deutlich werden, dass
der Absender nicht nachträglich sein Bit b verändern kann. Da f injektiv ist, gibt es nur
ein Urbild zu y. Wir sprechen von Bit Commitment, da sich der Absender mit y auf
ein Bit b festlegt, das er nicht mehr ändern kann und das der Empfänger nicht vorzeitig
(bevor es der Absender will und z sendet) lesen kann. Das Senden von y entspricht dem
Übersenden einer verschlossenen Kiste, die b enthält. Dabei ist f das Schließsystem und
z der Schlüssel.
Satz 9.3.3: HC hat interaktive Beweissysteme mit der computational Zero-KnowledgeEigenschaft.
Da HC NP-vollständig ist, gilt diese Aussage mit Hilfe polynomieller Reduktionen für
alle Sprachen in NP. Für NP-vollständige Probleme würde allerdings die Existenz eines
interaktiven Beweissystems mit der perfekten Zero-Knowledge-Eigenschaft implizieren,
dass die polynomielle Hierarchie zusammenbricht.
Beweis von Satz 9.3.3: Wir geben ein interaktives Beweissystem an.
Runde 1: Peter erzeugt eine zufällige Permutation π ∈ Σn , wobei n die Knotenzahl des
betrachteten Graphen G ist. Peter erzeugt sich eine Beschreibung von π, also die Folge
π(1), . . . , π(n) und eine Liste aller umnummerierten Kanten {π(i), π(j)} mit {i, j} ∈ E
in zufälliger Reihenfolge. Diese Information schreibt er bitweise in Kisten (s. o.) verpackt
auf das Kommunikationsband. Er kann diese Bits nun nicht mehr ändern, wenn er sie
zeigen will.
Runde 2: Vera erzeugt ein Zufallsbit b ∈ {0, 1} und schreibt es auf das Kommunikationsband.
Runde 3: Falls b = 0, entschlüsselt Peter alle Kisten, und Vera erhält die Information
über die Permutation und die umnummerierten Kanten. Falls b = 1, entschlüsselt Peter
nur die Kisten für die umnummerierten Kanten eines Hamiltonkreises.
Entscheidung: Falls b = 0, akzeptiert Vera, wenn Peter tatsächlich eine Permutation
offenbart hat und die Kantenliste tatsächlich der mit der Permutation umnummerierten
Kantenliste des Graphen entspricht. Falls b = 1, akzeptiert Vera, wenn die von Peter
offenbarten n Kanten einen Hamiltonkreis darstellen.
Offensichtlich kann Vera die nötige Arbeit in polynomieller Zeit durchführen. Falls G
einen Hamiltonkreis enthält, kann Peter, indem er dem Protokoll folgt, Vera überzeugen.
Wenn G keinen Hamiltonkreis enthält, kann Peter nicht beide Anforderungen gleichzeitig
erfüllen. Da er mindestens eine Anforderung nicht erfüllt und das Bit b nur mit Wahr76
scheinlichkeit 1/2 erahnen kann, wird er mit Wahrscheinlichkeit 1/2 (oder größer) entlarvt.
Bei zweifacher paralleler Ausführung erhalten wir die geforderten Wahrscheinlichkeiten.
Warum ist dies aber ein Zero-Knowledge-Beweis? Vera kann sich die im Protokoll für sie
offenbarten Informationen selber besorgen. Sie erzeugt zufällig b ∈ {0, 1}. Falls b = 0,
erzeugt sie sich eine zufällige Umnummerierung von G und eine zufällige Permutation der
umnummerierten Kantenliste. Falls b = 1, erzeugt sie sich einen zufälligen Hamiltonkreis
auf dem vollständigen Graphen und positioniert diese Kanten an zufälligen Stellen einer
Kantenliste der Länge |E|, wobei alle anderen |E| − n Stellen leer bleiben.
2
Wie schon gesagt, können wir die Existenz einer Einwegfunktion nicht zeigen, da wir sonst
sogar NP 6= P bewiesen hätten. Wie könnte jedoch eine Einwegfunktion aussehen? Viele kryptographische Verfahren beruhen auf der Annahme, dass Faktorisieren wesentlich
schwerer als Primzahltesten ist. Es sei m so beschaffen, dass Zahlen mit m Bits effizient
auf ihre Primzahleigenschaft getestet werden können (mit randomisierten Algorithmen),
aber das Faktorisieren einer m-Bitzahl nicht effizient möglich ist. Wenn wir nun b ver”
packen“ wollen, erzeugen wir eine Primzahl p der Länge m, so dass die Parität der Bits
von p gerade b ergibt, und eine Primzahl q < p der Länge m. Das verschlüsselte Bit
wird durch n := pq beschrieben. Wie wir sehen, gehen hier Gebiete wie Komplexitätstheorie, Effiziente Algorithmen, Logik, Kryptographie, Stochastik und Zahlentheorie eine
fruchtbare Symbiose ein.
9.4
Das PCP-Theorem
Das PCP-Theorem wurde 1992 von Arora, Lund, Motwani, Sudan und Szegedy bewiesen.
Diesen fünf Wissenschaftlern gebührt aber nicht der gesamte Verdienst für dieses Resultat, das unbestritten als ein Höhepunkt der Theoretischen Informatik gilt. Sie haben aber
den entscheidenden Schlusspunkt unter eine Vielzahl von Arbeiten gesetzt. Die nackte
Aussage des Theorems, eine neue Charakterisierung von NP, wird ohne weiteren Kommentar auf alle ziemlich abstrus und uninteressant wirken. In Kap. 10 wird sich jedoch
herausstellen, dass dieses Theorem zahlreiche Implikationen für den praktischen Algorithmenentwurf hat. Die Entwicklung zu diesem Theorem hin begann ca. 10 Jahre vor dem
Beweis mit der Motivation, die Unmöglichkeit von guten Approximationsalgorithmen für
viele Probleme zu zeigen. Zwischenschritte waren die gerade behandelten Beweissysteme.
Nach 1992 ging die Entwicklung rasant weiter, stärkere Varianten des PCP-Theorems
wurden ebenso bewiesen wie verbesserte Anwendungen. Wir werden das PCP-Theorem
nicht beweisen (in einer Spezialvorlesung habe ich dafür 12 Doppelstunden gebraucht),
sondern nur versuchen, das PCP-Theorem zu formulieren und eine Idee zu bekommen,
warum es gelten könnte.
Die Klasse NP haben wir charakterisiert durch die Existenz von Beweisen polynomieller
Länge, die in polynomieller Zeit überprüft werden können. Typischerweise wird dabei der
gesamte Beweis gelesen. Die Klasse co-RP (es wird sich als natürlicher erweisen, hier co-RP
und nicht RP zu betrachten) wird charakterisiert mit Hilfe einer Quelle von Zufallsbits, so
dass für x ∈ L jeder Zufallsvektor uns überzeugt, während für x ∈
/ L höchstens die Hälfte
77
der Zufallsvektoren uns dazu verführt zu glauben, dass x ∈ L sein kann. Da RP ⊆ NP,
würde die Kombination von Beweis und RP-Zufall nicht mehr ergeben als Beweise. Eine
Kombination von co-RP und NP könnte jedoch hilfreich sein. Wir können die Zufallsbits
dazu benutzen, nur wenige Bits des Beweises auszuwählen und nur die ausgewählten Bits
zu lesen.
Definition 9.4.1: Seien r, q :
→ 0 . Ein (r(n), q(n))-beschränkter Verifizierer ist ein
polynomieller Algorithmus mit Zugriff auf die Eingabe x, O(r(n)) Zufallsbits und einen
Beweis B. Er darf auf der Grundlage von x und der Zufallsbits O(q(n)) Positionen des
Beweises berechnen, dann diese O(q(n)) Bits des Beweises lesen und muss nach einer
weiteren Rechnung x akzeptieren oder verwerfen.
Definition 9.4.2: Die Klasse PCP(r(n), q(n)) (probabilistically checkable proofs with
O(r(n)) random bits and O(q(n)) query bits) ist die Klasse aller Sprachen L, für die es
einen (r(n), q(n))-beschränkten Verifizierer mit folgenden Eigenschaften gibt:
x ∈ L ⇒ ∃ Beweis B0 : Prob[V (x, r, B0 ) = 1] = 1
x∈
/ L ⇒ ∀ Beweise B : Prob[V (x, r, B) = 0] ≥ 1/2.
Im Falle x ∈ L gibt es also einen Beweis, der uns mit den beschränkten Ressourcen mit
Sicherheit überzeugt, während uns für x ∈
/ L kein Beweis mit einer Wahrscheinlichkeit
von mehr als 1/2 überzeugt. Natürlich können wir, da die Zahl der Zufalls- und Fragebits nur größenordnungsmäßig beschränkt ist, k unabhängige Verifikationsbeweise parallel
ausführen und die Irrtumswahrscheinlichkeit auf 2−k senken. Wir finden bekannte Komplexitätsklassen in diesem neuen Konzept wieder.
Satz 9.4.3:
i) PCP (0, 0) = P.
ii) PCP (poly(n), 0) = co-RP.
iii) PCP (0, poly(n)) = NP.
Beweis:
i) Die Aussage ist trivial, da der Verifizierer nur rechnen darf. Ohne Zufallsbits ist jede positive Wahrscheinlichkeit die Wahrscheinlichkeit 1.
ii) Hier haben wir keinen Beweis (genauer: es gibt einen Beweis, den wir uns aber nicht
ansehen können), und die Zufallsbits können nur in der probabilistischen Rechnung
verwendet werden.
iii) Hier gibt es keine Zufallsbits, also wird für x ∈
/ L in jedem Fall verworfen. Da der
ganze Beweis polynomieller Länge gelesen werden kann, erhalten wir NP.
2
Lemma 9.4.4: Falls L ∈ PCP(r(n), q(n)), kann L nichtdeterministisch von einer
poly(n)2O(r(n)) = 2O(r(n)+log n) zeitbeschränkten Turingmaschine erkannt werden.
78
Die nichtdeterministische Turingmaschine hat keinen Beweis zur Verfügung wie die PCPBerechnung. Außerdem darf sie Eingaben x 6∈ L in keinem Fall akzeptieren. Für jede Belegung des Ratestrings kann die PCP-Berechnung nur polynomiell viele Beweisbits lesen,
für alle 2O(r(n)) Belegungen des Ratestrings sind es insgesamt poly(n)2O(r(n)) Beweispositionen. Die nichtdeterministische Turingmaschine rät die Belegung von poly(n)2O(r(n))
Beweisbits und deren Positionen im Beweisstring in aufsteigender Folge. Dann simuliert
sie die PCP-Berechnung auf allen Ratestrings. Die nichtdeterministische Turingmaschine verwirft die Eingabe, wenn eine Beweisposition gefragt wird, die es nicht gibt, oder
wenn die simulierte PCP-Berechnung für einen Ratestring nicht akzeptiert. Nur wenn alle Simulationen akzeptiert werden, akzeptiert die nichtdeterministische Turingmaschine.
Nach Definition 9.4.2 werden so genau die Eingaben x ∈ L akzeptiert. Wir haben es mit
2O(r(n)) Simulationen polynomieller Länge zu tun, wobei es jeweils poly(n)2O(r(n)) Zeit
dauern kann, bis ein Beweisbit gelesen wird. Damit ist die Zeit der nichtdeterministischen
Turingmaschine durch poly(n)2O(r(n)) beschränkt.
Korollar 9.4.5:
i) PCP(log n, poly(n)) = NP.
ii) PCP(log n, 1) ⊆ NP.
i) Die Beziehung ⊇ “folgt aus Satz 9.4.3 iii) und ⊆ “folgt aus Lemma 9.4.4.
”
”
ii) Dies folgt direkt aus i).
Beweis:
2
Für die Klasse NP genügt ein Beweis polynomieller Länge, wenn er vollständig gelesen
werden darf. Es kann dann auf Zufallsbits verzichtet werden, und selbst O(log n) Zufallsbits vergrößern die Ausdruckskraft nicht. Dagegen sieht PCP(log n, 1) sehr klein“ aus.
”
Mit O(log n) Zufallsbits können nur O(1) verschiedene Positionen in einem Beweis polynomieller Länge beschrieben werden. Ist es überhaupt eine Hilfe, wenn wir O(1) Bits
eines Beweises erfragen können?
PCP-Theorem 9.4.6: NP = PCP(log n, 1).
Die ⊇“-Beziehung haben wir in Korollar 9.4.5ii bewiesen. Sensationellerweise genügt es,
”
mit O(log n) Zufallsbits O(1) Beweisbits zu erfragen, um NP zu charakterisieren. Wie
groß ist O(1)? Vielleicht 10100 oder größer? Heute wissen wir, dass wenige Beweisbits
ausreichen. Zwei Beweisbits sind nur genug, wenn NP = P ist. Wenn wir die erlaubte
Irrtumswahrscheinlichkeit auf etwas über 1/2 erhöhen, reichen sogar 3 Beweisbits.
Wie sehen nun die Beweisideen für NP ⊆ PCP(log n, 1) aus? Da 3-SAT NP-vollständig ist,
genügt es 3-SAT ∈ PCP(log n, 1) zu zeigen. Falls x ∈ 3-SAT, ist eine erfüllende Belegung
y ein geeigneter Beweis. In y ist die Information lokalisiert, d.h. yi sagt nur etwas über
die Belegung der i-ten Variablen aus. Selbst wenn wir die Hälfte von y lesen können, hilft
uns das fast gar nichts. Wir müssen nun also die Information über den ganzen Beweis
verschmieren“. Jedes Beweisbit soll in einem gewissen Sinn Teilinformationen über jeden
”
Teil von y enthalten. Eine erste Idee hierzu liefern fehlerkorrigierende Codes, bei denen
79
die vollständige Information nicht verloren geht, wenn einige Bits verfälscht werden oder
eben nicht gelesen werden. Fehlerkorrigierende Codes sind zwangsläufig länger als kürzeste
Codes.
Der Beweis des PCP-Theorems besteht aus der Konstruktion von zwei Verifizierern. Der
eine kommt bereits mit O(log n) Zufallsbits aus und liest O(1) Beweissymbole aus einem
Alphabet, das langsam mit der Eingabegröße wächst. Der andere Verifizierer benutzt dagegen O(n3 ) Zufallsbits und liest O(1) Beweisbits. Mit einem Kompositionslemma werden
die beiden Verifizierer benutzt, um einen Verifizierer mit den gewünschten Eigenschaften
zu erzeugen. Was nützen nun sehr viele Zufallsbits, wenn nur wenige Beweisbits gelesen
werden dürfen? Der Beweis kann dann exponentiell lang sein und die Zufallsbits reichen
dennoch aus, um die verschiedenen Positionen der Beweisbits zu beschreiben.
Wir können einen Vektor y ∈ {0, 1}n codieren durch alle Skalarprodukte ⊕1≤i≤n yi ri für
r ∈ {0, 1}n , die Länge des Codewortes ist also 2n . Sei ein unbekanntes y einmal durch
sich selbst und einmal auf die eben beschriebene Weise codiert. Wir erhalten nun einen
Vektor a ∈ {0, 1}n und sollen möglichst wenige Bits der Codierung lesen und mit kleiner,
einseitiger Irrtumswahrscheinlichkeit entscheiden, ob y = a ist. Im ersten Fall könnten sich
y und a an genau einer Stelle unterscheiden, und solange wir die entsprechene y-Stelle
nicht lesen, wissen wir nicht, dass y 6= a ist. Wenn wir ein zufälliges Bit lesen und uns im
Fall y = a nicht irren dürfen, gilt in diesem Szenario:
1. y = a ⇒ Entscheidung y = a mit Wahrscheinlichkeit 1.
2. y 6= a ⇒ Entscheidung y 6= a mit Wahrscheinlichkeit 1/n.
Bei der Codierung durch Skalarprodukte sind unsere Chancen besser. Wir wählen einen
zufälligen Vektor r ∈ {0, 1}n , lesen das Bit y T r (Skalarprodukt im Körper 2 ) und berechnen aT r. Falls y = a, ist y T r = aT r, und wir entscheiden uns mit Sicherheit für
die Entscheidung y = a. Falls y 6= a, sei k die Zahl der Stellen, an denen sich y und
a unterscheiden. Es ist y T r = aT r genau dann, wenn r an einer geraden Anzahl der k
ausgewählten Stellen eine 1 hat. Dies geschieht mit einer Wahrscheinlichkeit von genau
1/2. Das letzte der betrachteten Bits entscheidet, ob die Zahl gerade oder ungerade ist.
Für y 6= a, kommen wir also mit der Wahrscheinlichkeit 1/2 1/n zu der Entscheidung
y 6= a.
n
Etwas allgemeiner ist jeder Vektor aus {0, 1}2 die Codierung einer booleschen Funktion. Die Funktion y(r) := y T r ist eine lineare Funktion. Wir wollen nun probabilistisch
überprüfen, ob das Codewort die lineare Funktion aT r ist. Dies ist natürlich nicht exakt
möglich, da sich die dargestellte Funktion nur an wenigen Stellen von aT r unterscheiden
muss.
Ob die dargestellte Funktion f linear ist, kann für zufällige r, s ∈ {0, 1}n mit dem Lesen
?
von 3 Bits und dem Test f (r) + f (s) = f (r + s) getestet werden. Die Notation r + s
bedeutet ausführlich (r1 + s1 , . . . , rn + sn ). Entweder wir entlarven f als nicht linear oder
f ist mit hoher Wahrscheinlichkeit fast linear. Wir haben gesehen, dass sich zwei lineare
Funktionen an der Hälfte der Stellen unterscheiden. Eine fast lineare und eine lineare
80
Funktion unterscheiden sich noch an genügend vielen Stellen, um dies mit dem Vergleich
einiger zufälliger Funktionswerte herauszufinden, zumindest mit genügend großer Wahrscheinlichkeit.
In Wirklichkeit arbeitet der Beweis nicht mit linearen Funktionen, sondern mit Polynomen von kleinem Grad. Eine Verallgemeinerung der obigen Ideen führt zu zwei effizienten
Tests. Im ersten Test wird überprüft, ob die abgespeicherte Funktion sich nur an wenigen
Stellen von einem Polynom kleinen Grades unterscheidet. Wenn dies der Fall ist, können
Funktionswerte des einzigen Polynoms kleinen Grades, das der abgespeicherten Funktion sehr ähnlich ist, mit kleiner Irrtumswahrscheinlichkeit ermittelt werden. Um dies zu
ermöglichen, muss die Funktion mehrfach auf verschiedene Weise codiert werden.
Mit unseren Überlegungen haben wir uns weit von 3-SAT-Formeln entfernt. Was haben
3-SAT-Formeln mit Polynomen zu tun? Der Zusammenhang ist einfach hergestellt. Es sei
Xi eine Variable mit Werten in einem später festzulegenden Körper. Die Klausel xi ∨xj ∨xk
ist genau dann durch einen Vektor a erfüllt, wenn das Polynom (1 − Xi )Xj (1 − Xk ) an
der Stelle a eine Nullstelle hat. Um alle Klauseln zusammen zu behandeln, benutzen wir
Hilfsfunktionen. So sei χj (c, r) = 1 genau dann, wenn das j-te Literal in der c-ten Klausel
die r-te Variable betrifft, und sj (c) = 1 genau dann, wenn das j-te Literal in der c-ten
Klausel nicht negiert ist. Es soll nun A(r) den Wert der r-ten Variablen angeben. Dann ist
für erfüllende Belegungen Π1≤j≤3 χj (c, r)(sj (c) − A(r)) = 0. Nun sind aber χ und s keine
Polynome. Wenn wir den Körper passend“ vergrößern und eine passende“ Gradschranke
”
”
wählen, gibt es jedoch Polynome χ̂ und ŝ, die auf den vorgegebenen Werten mit χ und s
übereinstimmen. Schließlich können wir die bisher betrachteten Polynome in ein Polynom
packen“, so dass die Polynomerweiterung erfüllender Belegungen nach Einsetzung in das
”
Polynom dazu führt, dass das Polynom an bestimmten vorgegebenen Punkten den Wert
0 hat. Diese Eigenschaft wird dann probabilistisch überprüft. Dies sind naturgemäß nur
wenige zentrale Beweisideen, im vollständigen Beweis sind noch mehr Schwierigkeiten zu
überwinden.
Wir werden das PCP-Theorem in Kapitel 10 anwenden.
81
10
10.1
Die Komplexität von Approximationsproblemen
Gütekriterien für Approximationsalgorithmen
Buch Theoretische Informatik, Kap. 3.7, S. 68–70.
Die Definitionen 10.1.1–10.1.5 sind die Definitionen 3.7.1–3.7.5 aus dem Buch.
Wir halten noch einmal fest, dass der Algorithmus von Karmarkar und Karp RM IN (BPP) =
1 impliziert. Später wird gezeigt, dass unter der Annahme P 6= NP jeder polynomielle
Approximationsalgorithmus A für BPP eine worst case Güte von mindestens 3/2 haben
muss.
Inzwischen gibt es ein polynomielles Approximationsschema für das Euklidische TSP. Die
Entwicklung zu diesem Resultat zeigt die Wechselbeziehungen zwischen Komplexitätstheorie und Algorithmenentwurf exemplarisch auf. Arora wollte eigentlich beweisen, dass
es kein polynomielles Approximationsschema für das Euklidische TSP gibt. Die Analyse,
warum seine Beweisversuche scheiterten, führte ihn zu dem polynomiellen Approximationsschema.
Wir führen nun Komplexitätsklassen für Optimierungsprobleme ein.
Definition 10.1.6: i) Die Klasse der Optimierungsprobleme, für die es ein voll polynomielles Approximationsschema gibt, wird mit FPAS bezeichnet.
ii) Die Klasse der Optimierungsprobleme, für die es ein polynomielles Approximationsschema gibt, wird mit PAS bezeichnet.
iii) Die Klasse der Optimierungsprobleme, die in polynomieller Zeit bis auf einen konstanten Faktor approximiert werden können, wird mit APX bezeichnet.
Natürlich gilt FPAS ⊆ PAS ⊆ APX. Das Rucksackproblem ist in FPAS enthalten und
das Euklidische TSP in PAS. Das Bin Packing Problem ist in APX enthalten.
Polynomielle Reduktionen und Turing-Reduktionen sind für Optimierungsprobleme ohne
Wert. Wir betrachten die Probleme IP und VC und ihre Optimierungsvarianten IPmax
und VCmin . Die einfachen Reduktionen IP ≤p VC (Satz 4.2.3) und VC ≤p IP zeigen
sogar, wie sich optimale Lösungen für ein Problem aus optimalen Lösungen des anderen
Problems berechnen lassen. Später werden wir sehen, dass es für IPmax , falls NP 6= P,
keine guten Approximationsalgorithmen gibt, insbesondere ist IP max ∈
/ APX. Ganz anders
ist die Situations für VCmin .
Satz 10.1.7: RM IN (V Cmin ) ≤ 2 und V Cmin ∈ AP X.
Beweis: Wir entwerfen einen Greedy Algorithmus. Wir wählen eine beliebige Kante.
Solange es noch eine Kante gibt, die mit keiner bereits gewählten Kante einen Knoten
gemeinsam hat, wird eine solche Kante gewählt. Dieses Verfahren arbeitet offensichtlich
in polynomieller Zeit.
82
Als vertex cover wählen wir die Endpunkte der ausgewählten Kanten. Diese Knotenmenge
bildet stets ein vertex cover. Ansonsten würde es eine Kante geben, die der Algorithmus
gewählt hätte. Andererseits haben wir ein Matching berechnet.
m Kanten
Unser vertex cover enthält 2m Knoten. Offensichtlich sind bereits mindestens m Knoten
nötig, um die m Kanten des Matchings zu überdecken. Also ist für unseren Algorithmus
A(I) = 2m und OPT(I) ≥ m, also RA (I) ≤ 2.
2
Warum ist die unabhängige Menge, die wir erhalten, wenn wir die Komplementmenge zu
dem berechneten vertex cover bilden, nicht eine gute Approximation für eine unabhängige
Menge maximaler Größe? Dazu betrachten wir den Graphen auf n = 2m Knoten, der aus
m sich nicht berührenden Kanten besteht. Unser Algorithmus bildet als vertex cover die
gesamte Menge V , während ein minimales vertex cover nur m Knoten enthält. Die Güte
ist 2. Das Komplement von V ist jedoch ∅, die leere Menge, zweifellos eine unabhängige
Menge. Die größte unabhängige Menge enthält offensichtlich m Knoten. Die Güte unserer
Approximation ist m0 oder ∞.
Wir benötigen also auf Optimierungsprobleme angepasste Reduktionskonzepte, nämlich
sogenannte approximationserhaltende Reduktionen.
Definition 10.1.8: Ein Optimierungsproblem Π = (D, S, w) heißt APX-reduzierbar auf
ein Optimierungsproblem Π∗ = (D ∗ , S ∗ , w ∗ ), falls es eine in polynomieller Zeit berechenbare Transformation f : D → D ∗ für die Problemeingaben, eine in polynomieller Zeit
berechenbare Rücktransformation g : S ∗ (f (D)) → S(D) für die Problemlösungen und
eine Konstante ρ > 0 gibt, so dass für alle ε > 0, alle I ∈ D und alle L∗ ∈ S ∗ (f (I))
folgendes gilt:
R(f (I), L∗ ) ≤ 1 + ρε ⇒ R(I, g(L∗ )) ≤ 1 + ε.
Dabei ist R(I, L) die Güte der Lösung L für die Eingabe I.
Dieser Reduktionsbegriff ist komplexer als die uns bekannten Reduktionsbegriffe. Bei
Entscheidungsproblemen ist die Rücktransformation einfach die Abbildung g(0) = 0 und
g(1) = 1. Hier soll eine Reduktion folgendermaßen algorithmisch genutzt werden. Wir
wollen Π für eine Eingabe I bearbeiten und kennen einen polynomiellen Approximationsalgorithmus A∗ für Π∗ mit worst case Güte 1 + δ. Der polynomielle Algorithmus A
berechnet f (I) und ruft dann A∗ für f (I) auf. Dieser Aufruf von A∗ liefert eine Lösung
L∗ mit einer durch 1 + δ beschränkten Güte. Dann wird die Lösung L := g(L∗ ) für Π
berechnet, und die Güte von L ist beschränkt durch 1 + δ/ρ. Für untere Schranken folgt
sofort, dass Π ∈
/ APX impliziert, dass Π∗ 6∈ APX ist.
Die bekannte polynomielle Reduktion von 3-SAT auf CLIQUE kann verallgemeinert werden, um für die zugehörigen Optimierungsprobleme eine APX-Reduktion mit ρ = 1 zu
liefern.
83
Definition 10.1.9: Ein Optimierungsproblem Π∗ heißt APX–vollständig, falls Π∗ ∈ APX
ist und sich jedes Problem Π ∈ APX auf Π∗ APX–reduzieren lässt. Das Optimierungsproblem Π∗ heißt APX–hart, wenn sich jedes Problem Π ∈ APX auf Π∗ APX–reduzieren
lässt.
Nun folgt auf die übliche Weise, dass PAS = APX ist, falls ein APX–vollständiges Problem
in PAS enthalten ist.
10.2
Klassische Methoden zum Nachweis der Nichtapproximierbarkeit von Optimierungsproblemen
Natürlich können wir die Nichtapproximierbarkeit von Optimierungsproblemen nur beweisen, wenn wir uns auf polynomielle Algorithmen beschränken und annehmen, dass
NP 6= P ist. Zunächst betrachten wir Approximationen mit additivem Fehler. Das Beweisprinzip für die Nichtexistenz derartiger Algorithmen ist das folgende.
Wir folgern aus der Existenz eines Approximationsalgorithmus mit additivem Fehler für
ein gegebenes NP-hartes Suchproblem, dass das zugehörige Entscheidungsproblem in polynomieller Zeit lösbar und damit P = NP ist.
Satz 10.2.1: s. Buch Satz 3.7.7.
Der Trick dieses Beweises, bestimmte Daten mit k + 1 zu multiplizieren, um eine Approximationslösung mit Fehler kleiner als 1 und damit eine optimale Lösung zu berechnen,
funktioniert für viele Probleme. Im folgenden Problem kommen keine Zahlen vor, die
multipliziert werden können. Statt dessen werden Mengen multipliziert“, besser vielfach
”
kopiert.
Satz 10.2.2: Falls NP 6= P, gibt es keinen Approximationsalgorithmus mit additivem
Fehler für das Problem, eine unabhängige Menge maximaler Größe zu berechnen.
Beweis: Sei o.B.d.A. k ganzzahlig, sonst wird k durch dke ersetzt. Wir setzen die Existenz eines Approximationsalgorithmus A mit additivem Fehler k voraus. Sei G ein Graph.
Dann sei Gk+1 der Graph, der aus k + 1 disjunkten Kopien von zu G isomorphen Graphen
besteht. Unabhängige Mengen können in den einzelnen Kopien unabhängig von den anderen Kopien von G gesucht werden. Also ist OPT(Gk+1 ) = (k + 1)OPT(G). A liefert für
Gk+1 eine unabhängige Menge M mit mindestens OPT(Gk+1 ) − k = (k + 1)OPT(G) − k =
(k + 1)(OPT(G) − 1) + 1 Knoten. Also muss M auf mindestens einer der Kopien von G
mindestens OPT(G) Knoten enthalten. Damit erhalten wir für diese Kopie von G eine
unabhängige Menge mit OPT(G) Knoten. Der Algorithmus arbeitet in polynomieller Zeit.
Also ist NP = P. Widerspruch zur Voraussetzung.
2
Wir zeigen nun, dass bestimmte Probleme, falls NP 6= P ist, nicht in FPAS oder sogar
nicht in PAS liegen.
84
Wir haben bereits erwähnt, dass das Rucksackproblem in FPAS enthalten ist. Das voll
polynomielle Approximationsschema wird (s. EFFIZIENTE ALGORITHMEN) aus einem
pseudopolynomiellen Algorithmus abgeleitet. Diese Vorgehensweise ist nicht zufällig, wie
der folgende Satz zeigt.
Satz 10.2.3: s. Buch Satz 3.7.9.
Korollar 10.2.4: s. Buch Korollar 3.7.10.
In Kap. 5.3 finden wir Probleme, für die Korollar 10.2.4 impliziert, dass sie, falls NP
6= P ist, kein voll polynomielles Approximationsschema haben. Wir wollen nun sogar
polynomielle Approximationsschemata ausschließen.
Satz 10.2.5: Sei Π ein Minimierungsproblem, in dem der Wert aller Lösungen ganzzahlig
ist. Für eine Konstante k sei bereits das Entscheidungsproblem, ob OPT(I) ≤ k ist, NPhart. Falls NP 6= P, gibt es für Π keinen polynomiellen Approximationsalgorithmus A mit
RA < 1 + k1 . Insbesondere gibt es kein polynomielles Approximationsschema.
Beweis: Die letzte Behauptung folgt aus der vorherigen, da ein polynomielles Approximationsschema für festes ε < k1 ein Approximationsalgorithmus A mit RA ≤ 1 + ε < 1 + k1
ist.
Falls es einen polynomiellen Approximationsalgorithmus A für Π mit RA < 1 + k1 = k+1
k
gibt, muss dieser Algorithmus für jede Eingabe I ∈ DΠ mit OPT(I) ≤ k eine Lösung A(I)
berechnen, die optimal ist. Jede nicht optimale Lösung hat einen Wert von mindestens
OPT(I) + 1. Die Güte einer solchen Lösung ist nicht kleiner als
OPT(I) + 1
1
1
=1+
≥1+
OPT(I)
OPT(I)
k
im Widerspruch zu RA < 1 + k1 .
2
Satz 10.2.6: Für das Problem, einen Graphen mit der minimalen Zahl von Farben zu
färben, gibt es, falls NP 6= P, keinen polynomiellen Approximationsalgorithmus A mit
RA < 34 .
Beweis: Nach Satz 5.2.3 ist GC-3 NP-vollständig. Der Wert aller Lösungen des Färbbarkeitsproblems ist ganzzahlig. Also folgt die Aussage direkt aus Satz 10.2.5.
2
Satz 10.2.7: Für das BIN PACKING Problem gibt es, falls NP 6= P, keinen polynomiellen Approximationsalgorithmus A mit RA < 32 .
Beweis: BPP ist bereits dann NP-vollständig, wenn wir uns auf den Fall einschränken
zu entscheiden, ob 2 Kisten ausreichen. Dies folgt, da PARTITION ein Spezialfall dieser
BPP-Einschränkung ist. Der Wert aller Lösungen von BPP ist ganzzahlig. Also folgt die
Aussage direkt aus Satz 10.2.5.
2
85
In Kap. 5.2 haben wir eine Komplexitätsanalyse des Färbbarkeitsproblems durchgeführt.
Wir konnten alle Teilprobleme als in P oder als NP-vollständig klassifizieren. Dabei haben
wir das Gefühl bekommen, dass wir die Komplexität des Färbbarkeitsproblems gut verstehen. Was wissen wir über die Existenz von Approximationsalgorithmen? Nach Satz 10.2.5
gibt es kein polynomielles Approximationsschema, falls NP 6= P. Also ist für das Färbbarkeitsproblem Π für RM IN (Π) noch jeder Wert in (1, ∞) oder ∞ möglich. Wir zeigen
zunächst, dass (falls NP 6= P) RM IN (Π) ≥ 43 ist. Lange Zeit war 2 die beste bekannte untere Schranke für RM IN (Π), falls NP 6= P. Der sehr komplexe Beweis ist im Buch
von Garey und Johnson nachzulesen. Wir werden sehen, dass es inzwischen viel bessere
Ergebnisse gibt.
Satz 10.2.8: Falls NP 6= P, gibt es für das Färbbarkeitsproblem, d.h. die Berechnung der
∞
chromatischen Zahl, keinen polynomiellen Approximationsalgorithmus A mit R A
< 34 .
Beweis: Wir nehmen an, dass es einen polynomiellen Approximationsalgorithmus A mit
∞
RA
< 34 gibt. Wir zeigen, dass es dann für GC-3 im Widerspruch zu NP 6= P einen
polynomiellen Algorithmus gibt.
Wir arbeiten wieder mit der Methode, Graphen aufzublähen“. Für G1 = (V1 , E1 ) und
”
G2 = (V2 , E2 ) soll der Graph G = G1 [G2 ] aus G1 entstehen, indem jeder Knoten durch eine
Kopie von G2 ersetzt wird und jede Kante durch einen vollständigen bipartiten Graphen
zwischen den beiden Kopien von G2 , die die Endpunkte der Kante repräsentieren, ersetzt
wird.
G1
G2
G 1 [ G 2]
Formal: G = G1 [G2 ] = (V, E) mit V = V1 × V2 und
E = { {(u1 , u2 ), (v1 , v2 )} | {u1 , v1 } ∈ E1 oder u1 = v1 und {u2 , v2 } ∈ E2 }.
86
Aus dem Knoten u1 wird {u1 } × V2 , auf diesem Teil existieren alle Kanten aus E2 , also
der Graph G2 . Die Kante {u1 , v1 } wird durch alle Kanten {(u1 , u2 ), (v1 , v2 )} ersetzt.
∞
Da RA
< 34 , ist A(G) < 43 OPT(G), falls OPT(G) ≥ k für eine geeignete Konstante k. Sei
nun G ein beliebiger Graph, den wir auf Dreifärbbarkeit untersuchen wollen. Sei G0 ein
vollständiger Graph auf k Knoten und G∗ := G0 [G]. Da jeder Knoten jeder Kopie von G
mit allen Knoten aller anderen Kopien von G verbunden ist, müssen für die verschiedenen
Kopien von G verschiedene Farben benutzt werden. Also ist OPT(G∗ ) = kOPT(G) ≥ k.
Da k eine von G unabhängige Konstante ist, kann G∗ in polynomieller Zeit konstruiert
werden. Wir wenden nun A auf G∗ an. Der Algorithmus liefert in polynomieller Zeit eine
Lösung mit A(G∗ ) < 43 OPT(G∗ ) = 34 kOPT(G). Wenn eine Kopie von G mit höchstens drei
Farben gefärbt ist, wissen wir, dass G dreifärbbar ist. Wenn alle Kopien von G mindestens
vier Farben haben, ist A(G∗ ) ≥ 4k, also 4k < 34 kOPT(G) und OPT(G) > 3. G ist also
nicht dreifärbbar. Wir haben GC-3 in polynomieller Zeit gelöst im Widerspruch zu NP 6=
P.
2
Die von uns bisher behandelten Probleme hatten für konstantes k Subprobleme vom Typ
Ist OPT(I) ≤ k ?“, die schwierig sind. Wir haben, unter der Annahme NP 6= P, ge”
zeigt, dass die Existenz polynomieller Approximationsalgorithmen zum Widerspruch NP
= P führt, da die beschriebenen Subprobleme in polynomieller Zeit lösbar sind. Für das
Problem IP (INDEPENDENT SET) ist die Situation anders. Für konstantes k kann in
polynomieller Zeit entschieden werden, ob es eine unabhängige Menge mit k Elementen
gibt. Es müssen nämlich nur alle k-elementigen Mengen auf ihre Unabhängigkeit getestet
werden. In dieser Situation können wir mit einer klassischen Methode nicht zeigen, dass
RM IN (IP) = ∞ ist, falls NP 6= P ist, aber wir können zeigen, dass es für IP sehr gute
Approximationsalgorithmen geben muss, wenn es überhaupt gute Approximationsalgorithmen gibt.
Satz* 10.2.9: Falls RM IN (IP) < ∞ ist, gibt es, falls NP 6= P, ein polynomielles Approximationsschema für IP.
Beweis: Sei angenommen, dass A ein polynomieller Approximationsalgorithmus für IP
∞
mit RA
< ∞ ist. Der Algorithmus wird so verändert, dass er niemals die leere Menge
ausgibt. Die leere Menge kann durch beliebige einelementige Mengen ersetzt werden, die
stets unabhängig sind. Dann ist auch r := RA < ∞.
Wir suchen für festes ε > 0 einen in n polynomiellen Algorithmus, der eine (1 + ε)optimale Lösung für IP berechnet. Der Algorithmus muss also für G eine unabhängige
Menge mit mindestens OPT(G)/(1 + ε) Elementen berechnen. Wir wählen N = N (ε), so
dass r 1/N < 1 + ε ist.
Sei G1 := G und Gi := Gi−1 [G]. Da N nur von r und ε und nicht von G abhängt,
kann GN in polynomieller Zeit berechnet werden. Wir wenden dann A auf GN an. Nach
Voraussetzung über A gilt
OPT(GN )/A(GN ) ≤ r < (1 + ε)N .
87
Wir zeigen, dass OPT(Gi ) = (OPT(G))i ist. Für i = 1 ist dies trivial. Sei die Behauptung
für i − 1 bewiesen. Gi entsteht aus Gi−1 , indem die Knoten in Gi−1 durch Kopien von
G ersetzt werden. Sei M eine größte unabhängige Menge in Gi−1 , dann enthält M nach
Induktionsvoraussetzung genau (OPT(G))i−1 Elemente. Wir ersetzen nun jedes Element
durch eine maximal unabhängige Menge in dem Graphen G, der in Gi dieses Element
ersetzt. Wir erhalten eine unabhängige Menge mit (OPT(G))i Elementen.
Andererseits muss jede unabhängige Menge für Gi auf jeder Kopie von G eine unabhängige
Menge enthalten, dies sind höchstens OPT(G) Elemente pro Kopie von G. Da aber Kopien
von G, aus denen wir Elemente für eine unabhängige Menge für Gi wählen, in Gi−1 nicht
benachbart sein können, ist es nur möglich, aus maximal (OPT(G))i−1 Kopien von G
Elemente für eine unabhängige Menge zu wählen. Daher können unabhängige Mengen
nicht mehr als (OPT(G))i Elemente enthalten.
Also ist OPT(GN ) = (OPT(G))N . Algorithmus A liefert auf GN eine Lösung MN mit
A(GN ) Elementen. Wir betrachten nun die verschiedenen Kopien von G in GN . Auf jeder
Kopie G∗ = (V ∗ , E ∗ ) von G ist MN ∩ V ∗ eine unabhängige Menge. Wir suchen die Kopie,
die die größte unabhängige Menge M liefert. Des weiteren betrachten wir die aus GN
geschrumpften Graphen GN −1 , . . . , G1 . In GN −1 können wir wieder die Kopien von G
untersuchen. Die Knoten einer G-Kopie, die in GN eine G-Kopie repräsentieren, die mit
MN einen nichtleeren Schnitt hat, bilden eine unabhängige Menge. Auch hier suchen
wir die größte unabhängige Menge, usw. Insgesamt untersuchen wir in Gi genau |V |i−1
Kopien von G. Es sei M ∗ die größte gefundene unabhängige Menge. Aus ihr können wir
mit dem Verfahren aus dem Beweis, dass OPT(Gi ) ≥ (OPT(G))i ist, eine unabhängige
Menge in GN mit |M ∗ |N Elementen konstruieren. Wenn wir diese Menge mit der von
A auf GN konstruierten Menge vergleichen, folgt aus der Konstruktion von M ∗ , dass
A(GN ) ≤ |M ∗ |N ist.
Unser polynomielles Approximationsschema liefert M ∗ als Lösung. Es gilt, wie bereits
gezeigt
OPT(GN )
.
A(GN ) >
(1 + ε)N
Also ist
1
1
|M ∗ | ≥ A(GN )1/N >
OPT(GN )1/N =
OPT(G)
1+ε
1+ε
und
OPT(G)
< 1 + ε.
|M ∗ |
Damit haben wir also tatsächlich ein polynomielles Approximationsschema entworfen. 2
Viele unserer bisherigen Resultate haben darauf hingewiesen, dass TSP ein besonders
schwieriges Problem ist. Dies wird dadurch untermauert, dass sich RM IN (TSP) = ∞,
falls NP 6= P, sehr einfach beweisen lässt.
Satz 10.2.10: Falls NP 6= P, ist RM IN (TSP) = ∞.
Beweis: s. Buch Theoretische Informatik, Satz 3.7.8.
88
2
10.3
Nichtapproximierbarkeit und das PCP-Theorem
Wir suchen nach einer Brücke zwischen der Approximierbarkeit bzw. Nichtapproximierbarkeit von Optimierungsproblemen und dem PCP-Theorem. Auch hier erweist sich eine
SAT-Variante als guter Startpunkt. Eine verallgemeinerte SAT-Variante erhält eine Zahl k
als zusätzliche Eingabe, und es soll entschieden werden, ob es eine Belegung der Variablen
gibt, die mindestens k der Klauseln erfüllt. Für k = n, der Anzahl der Klauseln, erhalten
wir SAT als Spezialfall. Die Maximierungsvarianten SATmax und 3-SATmax beschreiben
nun die Aufgabe, die Anzahl gleichzeitig erfüllbarer Klauseln zu maximieren.
Satz 10.3.1: SATmax , 3-SATmax ∈ APX. Dabei lässt sich SATmax bis auf den Faktor
4/3 und 3-SATmax bis auf den Faktor 8/7 ≤ 1, 143 in polynomieller Zeit approximieren.
Beweis: Für SATmax zeigen wir nur den Faktor 2. Dieser Faktor 2 folgt durch einen
polynomiellen Algorithmus, der stets mindestens die Hälfte aller Klauseln erfüllt. Dabei
werden die Variablen x1 , . . . , xn nacheinander behandelt. Für xi betrachte alle Klauseln, in
denen xi oder x̄i vorkommt und die noch nicht durch die Belegung von x1 , . . . , xi−1 erfüllt
worden sind. Wähle für xi den Wert ai , mit dem mindestens die Hälfte der betrachteten
Klauseln erfüllt werden.
Für Eingaben für 3-SATmax , bei denen jede Klausel genau drei verschiedene Literale
enthält, erhalten wir auf diese Weise in polynomieller Zeit den Approximationsfaktor 4/3.
Wenn eine Klausel für xi betrachtet, aber nicht erfüllt wird, setzen wir einen Verweis auf
eine im gleichen Schritt erfüllte Klausel. Durch unsere Majoritätsentscheidung können wir
dabei sicherstellen, dass jede erfüllte Klausel nur einen Verweis erhält. Ist eine Klausel am
Ende nicht erfüllt, gehen von ihr drei Verweise aus. Also ist die Anzahl erfüllter Klauseln
mindestens dreimal so groß wie die Anzahl nicht erfüllter Klauseln. Wir geben uns mit
dem Beweis des Approximationsfaktors 4/3 zufrieden.
2
Im folgenden soll gezeigt werden, dass unter der Annahme NP 6= P das Problem 3-SATmax
und damit auch SATmax für ein ε > 0 nicht in polynomieller Zeit (1 + ε)-approximierbar
sind. Insbesondere sind diese Probleme nicht in PAS enthalten.
Unsere Vorgehensweise ist folgende. Wir wollen eine beliebige Sprache L ∈ NP auf 3SATmax so reduzieren, dass folgendes für die zu x erzeugte Klauselmenge C(x) und eine
Konstante ε > 0 gilt
- x ∈ L ⇒ die Klauseln C(x) sind gemeinsam erfüllbar.
- x ∈
/ L ⇒ jede Belegung erfüllt höchstens einen Anteil von 1 − ε der Klauseln in
C(x).
Wenn nun 3-SATmax ∈ PAS ist, gibt es einen polynomiellen Approximationsalgorithmus für 3-SATmax , dessen worst case Güte kleiner als (1 − ε)−1 ist. Wir können dann L
folgendermaßen entscheiden. Wir benutzen die angegebene Reduktion und wenden den
Approximationsalgorithmus für 3-SATmax an. Falls der Anteil erfüllter Klauseln für die
89
berechnete Belegung größer als 1 − ε ist, ist x ∈ L. Ist der Anteil höchstens 1 − ε, können
wir folgern, dass x ∈
/ L ist. Für x ∈ L muss der Algorithmus, da die Klauseln in C(x)
gemeinsam erfüllbar sind, einen Anteil von mehr als 1 − ε der Klauseln erfüllen, um seine
worst case Güte einzuhalten. Wenn wir ein NP-vollständiges Problem L wählen, würde
NP = P folgen. Also ist 3-SATmax , falls NP 6= P, nicht δ-approximierbar für δ < (1 − ε)−1 .
Warum liefert der Beweis des Satzes von Cook nicht das Gewünschte? Indem wir den
Übergang von einer Konfiguration zur nächsten fälschen“, können wir die Turingmaschi”
ne dazu bringen, dass sie akzeptiert. In unserem Beweis können wir sogar alle Klauseln bis
auf den Test, dass die letzte Konfiguration akzeptierend ist, stets erfüllen, indem wir die
Rechnung der Turingmaschine einsetzen. Der Beweis des Satzes von Cook unterscheidet
also nur zwischen alle Klauseln gemeinsam erfüllbar“ und nicht alle Klauseln gemein”
”
sam erfüllbar“. Für den von Cook verfolgten Zweck war das ausreichend. Hier müssen wir
eine viel schärfere Unterscheidung erzwingen. Wie soll das gehen? Na ja, es ist nun keine
Überraschung mehr: Das PCP-Theorem lässt sich anwenden.
Satz 10.3.2: Es gibt eine Konstante ε > 0, so dass es NP-hart ist, (1 + ε)-Approximationen für 3-SATmax zu berechnen.
Beweis: Wir verfolgen die oben beschriebene Beweisstrategie und wählen eine beliebige NP-vollständige Sprache L, z.B. 3-SAT, aus. Nach dem PCP-Theorem ist L ∈
PCP(log n, 1). Es seien nun c und k Konstanten, so dass der Verifizierer höchstens cblog nc
Zufallsbits benutzt und k Beweisbits erfragt. Es ist keine Einschränkung, wenn wir annehmen, dass stets die gleiche Anzahl von Zufallsbits und Beweisbits gelesen werden. Da es
nur N := 2cblog nc ≤ nc verschiedene Zufallsfolgen gibt, werden für jede Eingabe der Länge
n bezogen auf alle Zufallsfolgen nur höchstens kN verschiedene Beweispositionen betrachtet. Also können wir die nie benutzten Beweispositionen streichen und uns auf Beweise der
Länge kN beschränken. Die möglichen Beweise werden durch die booleschen Variablen
y1 , . . . , ykN beschrieben. Es sei nun fix für 0 ≤ i ≤ N − 1 und |x| = n die folgende boolesche Funktion auf den k Variablen yj(1) , . . . , yj(k) , wobei der Verifizierer bei Eingabe x,
wenn der Zufallsvektor die Binärdarstellung von i ist, die Beweispositionen j(1), . . . , j(k)
liest. Die Funktion fix nimmt den Wert 1 genau dann an, wenn der Verifizierer bei Eingabe x, Zufallsvektor i und Beweis y die Eingabe akzeptiert. In polynomieller Zeit können
die Wertetabellen all dieser Funktionen berechnet werden. Welche Eigenschaften von den
Funktionen können wir aus den Eigenschaften des Verifizierers ableiten?
- x ∈ L ⇒ Es gibt einen Beweis, den der Verifizierer für jede Zufallsfolge akzeptiert.
Dieser Beweis als y-Eingabe führt dazu, dass alle Funktionen fix , 0 ≤ i ≤ N − 1,
den Wert 1 annehmen.
- x∈
/ L ⇒ Für alle Beweise, also y-Eingaben, führt höchstens die Hälfte der Zufallsfolgen zum Akzeptieren der Eingabe. Damit nehmen für jedes y nur höchstens die
Hälfte der Funktionen fix , 0 ≤ i ≤ N − 1, den Wert 1 an.
Die Funktionen fix hängen nur von k Variablen ab. Sie lassen sich als konjunktive Normalform und damit als Konjunktion von höchstens 2k Klauseln der Länge k darstellen.
90
Jede Klausel der Länge k lässt sich (siehe die Reduktion SAT ≤p 3-SAT) durch k − 2
Klauseln der Länge 3 ersetzen. Wir erhalten also in polynomieller Zeit für jede Eingabe
x höchstens (k − 2)2k N Klauseln der Länge 3 mit folgenden Eigenschaften.
- x ∈ L ⇒ alle Klauseln sind gemeinsam erfüllbar.
- x ∈
/ L ⇒ nur die Hälfte der Funktionen fix , 0 ≤ i ≤ N − 1, lässt sich gemeinsam erfüllen. Für die anderen Funktionen ist dann mindestens eine der (k − 2)2k
zugehörigen Klauseln unerfüllt. Stets bleiben also mindestens 12 N der (k − 2)2k N
1
Klauseln unerfüllt, der Anteil erfüllter Klauseln ist durch 1 − (k−2)2
k+1 nach oben
beschränkt.
Ein polynomieller Approximationsalgorithmus für 3-SATmax mit einer worst case Güte
von weniger als
1
1
=1+
1
(k − 2)2k+1 − 1
1 − (k−2)2k+1
kann diese beiden Fälle unterscheiden. Also haben wir das gesteckte Ziel für
ε<
1
,
(k − 2)2k+1 − 1
z.B. ε = ((k − 2)2k+1 )−1 erreicht.
2
Für 3-SATmax konnte sogar bewiesen werden, dass für jedes ε > 0 aus der Existenz eines
polynomiellen Approximationsalgorithmus mit einer Güte von 8/7 − ε folgt, dass P=NP
ist. Andererseits kennt man für 3-SATmax polynomielle Approximationsalgorithmen mit
einer Güte von 8/7. Also ist hier die Lücke zwischen unterer und oberer Schranke geschlossen.
Im Beweis von Satz 10.3.2 haben wir implizit angenommen, dass k ≥ 3 ist. Wir können
nun unser Wissen über Verifizierer, die nur 2 Beweisbits lesen dürfen, leicht erweitern. Die
Beweismethode von Satz 10.3.2 liefert dann Klauseln der Länge 2, und es kann, da 2-SAT
∈ P, in polynomieller Zeit entschieden werden, ob alle Klauseln gemeinsam erfüllbar sind,
d.h. ob x ∈ L ist. Verifizierer mit O(log n) Zufallsbits, die nur bis zu 2 Beweisbits lesen
können, können also nur Probleme in P entscheiden. Das dritte Beweisbit ist, wie wir in
Kap. 9 erwähnt haben, entscheidend.
Korollar 10.3.3: PAS $ APX, falls NP 6= P.
Beweis: Es ist 3-SATmax ∈ APX, und es ist 3-SATmax ∈
/ PAS, falls NP 6= P.
2
Es folgt, dass alle APX-harten Probleme nicht in PAS enthalten sind, falls NP 6= P. Approximationsserhaltende Reduktionen führen zu konkreten Konstanten ε, so dass Probleme
nicht (1 + ε)-approximierbar sind. Zu diesen Problemen zählen die Optimierungsvarianten von IP, VC, CLIQUE, MINIMUM COVER, MAX CUT, 3-DM und das TSP mit
Dreiecksungleichung. Das Euklidische TSP stellt also einen einfacheren Spezialfall dar.
91
Wir wenden uns nun dem Cliquenproblem zu. Alle Ergebnisse lassen sich direkt auf IP
übertragen. Der beste bekannte polynomielle Approximationsalgorithmus für CLIQUE
hat eine Approximationsgüte von O(n/ log2 n). Ist das nicht beschämend schlecht? Eine
Approximationsgüte n erhalten wir schon, wenn wir stets die Clique, die nur den Knoten 1
enthält, ausgeben. Die aus der Vorlesung GTI bekannte Reduktion 3-SAT≤p CLIQUE war
approximationserhaltend für ρ = 1. Die größte Anzahl gemeinsam zu erfüllender Klauseln war gleich der Größe der größten Clique in dem in der Transformation berechneten
Graphen. Wir erinnern uns. Es wurde bei m gegebenen Klauseln ein Graph auf 3m Knoten gebildet. Die drei Knoten, die eine Klausel repräsentierten, bildeten eine unabhängige
Menge. Knoten in verschiedenen unabhängigen Mengen wurden durch eine Kante genau
dann verbunden, wenn die durch sie repräsentierten Literale sich nicht widersprachen.
Angesichts des oben genannten Algorithmus ist die Lücke zwischen der besten erreichten
Approximationsgüte und dem eben beschriebenen Nichtapproximationsresultat gewaltig.
Satz 10.3.4: Falls NP 6= P, gibt es für keine Konstante c einen polynomiellen Approximationsalgorithmus, der CLIQUE mit Approximationsgüte c löst.
Beweis: Wir nutzen das PCP-Theorem für 3-SAT direkt aus. Zu jeder Eingabe x betrachten wir für jeden der N Zufallsvektoren r die 2k Belegungen der gelesenen Beweisbits. Für
jede Belegung der Beweisbits, die den Verifizierer zum Akzeptieren bringt, erzeugen wir
einen Knoten im Graphen. Wenn es zu r genau z(r) derartige Belegungen der gelesenen Beweisbits gibt, bilden die z(r) zugehörigen Knoten eine unabhängige Menge. Jeder
Knoten repräsentiert eine Belegung von k der Beweisbits. Zwei Knoten in verschiedenen
unabhängigen Mengen werden genau dann durch eine Kante verbunden, wenn es in den
zugehörigen Teilbelegungen der Beweisbits keinen Widerspruch gibt.
Wenn die gegebene 3-SAT-Formel erfüllbar ist, führt eine Belegung der Beweisbits für
alle Zufallsfolgen zum Akzeptieren. Wir können also eine Clique bilden, die aus jeder
unabhängigen Menge die zum Beweis gehörige Belegung auswählt.
Wenn die gegebene 3-SAT-Formel nicht erfüllbar ist, führt jede Belegung der Beweisbits
höchstens für die Hälfte der Zufallsfolgen zum Akzeptieren. Eine Clique enthält nur maximal einen Knoten jeder unabhängigen Menge. Durch jeden Knoten werden die Werte von
k Beweisbits festgelegt. Die einzelnen Knoten einer Clique enthalten keine widersprüchlichen Beweisbitbelegungen. Die durch die Clique festgelegte teilweise Beweisbitbelegung
kann zu einer vollständigen Belegung erweitert werden. Dieser vollständige Beweis wird
aber nur bei der Hälfte der Zufallsfolgen akzeptiert. Also ist die Größe der Clique durch
die Hälfte der Anzahl unabhängiger Mengen beschränkt.
Aus diesem Beweis folgt, dass CLIQUE, falls NP 6= P, nicht mit einem Faktor c < 2 in
polynomieller Zeit approximierbar ist. Wichtig ist, dass dieser Faktor von k, der Anzahl der
gelesenen Beweisbits, unabhängig ist. Wir können nämlich im Beweis des PCP-Theorems
die Fehlerwahrscheinlichkeit auf jede Konstante ε > 0 senken, indem wir konstant viele
Verifizierer parallel arbeiten lassen. Dadurch erhöht sich natürlich die Anzahl gelesener
Beweisbits, und der Trick nützt nichts, um bessere Nichtapproximierbarkeitsresultate für
3-SATmax zu erhalten. Hier führt unser obiger Beweis sofort zum Resultat, dass CLIQUE,
falls NP 6= P, nicht in polynomieller Zeit mit einem Faktor c < ε−1 approximierbar ist. 2
92
Da wir PCP(log n, 1)-Verifizierer nur konstant oft parallel arbeiten lassen dürfen, stellt
sich die Frage, wie wir noch bessere Ergebnisse erhalten können. Der Trick ist ökolo”
gisch wertvoll“. Wir benutzen ein Recycling der Zufallsbits. Natürlich können wir nicht
dieselben Zufallsbits mehrfach benutzen. Aus wenigen echten Zufallsbits erzeugen wir viel
mehr Bits, die nur noch fast zufällig sind. Sie sind aber genügend zufällig, um die Irrtumswahrscheinlichkeit von Verifizierern zu senken. Diese Ideen umzusetzen, ist technisch
sehr aufwendig. Die Beweise können in einer Stammvorlesung nicht vorgestellt werden.
Die momentan besten Resultate lauten:
- Falls NP 6= P, gibt es keinen polynomiellen Approximationsalgorithmus für CLIQUE
mit Güte n1/4 .
- Falls coRP 6= NP, gibt es für kein ε > 0 einen polynomiellen Approximationsalgorithmus für CLIQUE mit Güte n1−ε .
Für IP gelten dieselben Resultate wie für CLIQUE. Für das Graphenfärbungsproblem
gibt es etwas schlechtere Resultate.
Die klassischen Ergebnisse aus Kap. 10.2 waren schon Ende der 70er Jahre bekannt. Nach
einem längeren Stillstand hat erst das PCP-Theorem zu zahlreichen neuen Resultaten
über die effiziente Approximierbarkeit und Nichtapproximierbarkeit von Optimierungsproblemen geführt.
93
11
11.1
Komplexitätsklassen für Speicherplatzbedarf
Speicherplatzklassen und eine Charakterisierung kontextsensitiver Sprachen
Buch Theoretische Informatik, Kap 5.4 bis einschließlich Korollar 5.4.6.
11.2
Der Satz von Savitch
Wir vermuten, dass NP 6= P ist. Wir vermuten sogar, dass deterministische Turingmaschinen für bestimmte Probleme, eben NP-vollständige Probleme, exponentiell mehr Zeit
benötigen als nichtdeterministische Turingmaschinen. Wie ist die Situation beim Platzbedarf? Platz brauchen wir trivialerweise nicht mehr als Zeit“, exakter: In t(n) Re”
chenschritten werden höchstens t(n) + 1 Bandzellen besucht. Platz kann während einer
Rechnung mehrfach benutzt werden. Wir haben bei deterministischen Turingmaschinen
schon mehrfach den Trick benutzt, alle Folgen der Länge ` (z.B. alle Folgen von Übergangstripeln) auf Platz ` aufzuzählen. Daher sollte es nicht allzusehr überraschen, dass
nichtdeterministische Turingmaschinen bereits mit etwas mehr“ Platz durch determini”
stische Turingmaschinen simuliert werden können.
Für unsere Simulation benötigen wir den technischen Begriff der Bandkonstruierbarkeit,
um exotische“ Platzschranken s(n) auszuschließen. In den Übungen werden wir sehen,
”
dass alle vernünftigen Platzschranken bandkonstruierbar sind.
→
heißt bandkonstruierbar, wenn es eine
Definition 11.2.1: Eine Funktion s :
O(s(n))-platzbeschränkte deterministische TM gibt, die bei Eingabe x die Binärdarstellung von s(|x|) berechnet.
Satz 11.2.2: (Satz von Savitch)
Sei s : → bandkonstruierbar und s(n) ≥ log n.
Dann gilt NTAPE(s(n)) ⊆ DTAPE(s(n)2 ).
Beweis: Es sei M eine c·s(n)-platzbeschränkte nichtdeterministische TM. Wir wollen M
durch eine DTM M 0 simulieren. Wir wissen aus der Vorlesung GTI, dass k-Band Turingmaschinen mit Platzbedarf s(n) durch Turingmaschinen mit Platzbedarf s(n) simuliert
werden können. Daher darf M 0 mehr als ein Band benutzen. Aus Kap. 11.1 wissen wir
auch, dass für Eingaben der Länge n, die akzeptiert werden, die kürzesten akzeptierenden
Rechenwege Länge 2O(s(n)) haben. Hier geht die Bedingung s(n) ≥ log n ein. Wir haben
aber nicht genügend Platz, um derartige Rechenwege (Konfigurationenfolgen) aufzuschreiben. Daher wollen wir zwar alle Rechenwege ausprobieren, aber nicht in lexikographischer
Reihenfolge.
Der Trick ist uralt: Binäre Suche. Ausgehend von der Anfangskonfiguration probieren wir
nicht alle Nachfolgekonfigurationen aus, sondern alle mittleren“ Konfigurationen, und
”
testen nacheinander, ob wir von der Anfangskonfiguration zur mittleren Konfiguration
94
kommen können und ob wir von der mittleren Konfiguration zur akzeptierenden Konfiguration kommen können.
Wir beschreiben die Simulation zunächst softwaremäßig“, also ohne auf die eingeschränk”
te Arbeitsweise von Turingmaschinen Rücksicht zu nehmen. Entscheidend ist das Prädikat
(K1 , K2 , t) für Konfigurationen K1 und K2 und t ∈ . Das Prädikat ist genau dann wahr,
wenn es eine Berechnung von M gibt, mit der aus der Konfiguration K1 die Konfiguration
K2 in höchstens t Rechenschritten auf durch c · s(n) beschränktem Platz erreicht werden
kann. Für t = 1 ist das Prädikat genau dann wahr, wenn K1 = K2 ist oder K2 direkte
Nachfolgekonfiguration von K1 ist. Dies ist leicht zu testen.
Für t ≥ 2 gilt: (K1 , K2 , t) ist genau dann wahr, wenn es ein K3 gibt, so dass (K1 , K3 , bt/2c)
und (K3 , K2 , dt/2e) wahr sind.
Konfigurationen von M können auf Platz O(s(n)) beschrieben werden. Dabei kann nach
Voraussetzung s(n) zuvor berechnet werden. Die Zeitschranke t(n) = 2O(s(n)) lässt sich
ebenfalls auf Platz O(s(n)) durch ihre Binärdarstellung beschreiben. Wir können o.B.d.A.
annehmen, d. h. M so modifizieren, dass M sich seine Platzschranke selbst berechnet und
sich Bandmarken setzt. Wir definieren nur Konfigurationen als erreichbar, bei denen diese
Marken nicht überschritten werden. Die Anfangskonfiguration K0 ist eindeutig. Ebenfalls
durch Modifikation von M können wir erreichen, dass M nur akzeptiert, wenn zwischen
den beiden Marken nur Leerzeichen stehen, der Kopf rechts neben der linken Marke steht
und ein eindeutiger Zustand q ∗ erreicht wurde. Also ist auch die akzeptierende Konfiguration K ∗ eindeutig. M 0 berechnet zunächst die Platzschranke s∗ (n), die Zeitschranke
t∗ (n), die Anfangskonfiguration K0 und die akzeptierende Konfiguration K ∗ , o.B.d.A. ist
t∗ (n) eine Zweierpotenz. Die Zeitschranke kann einfach durch die nächstgrößere Zweierpotenz ersetzt werden. Schließlich wird M so modifiziert, dass K ∗ die einzige direkte
Nachfolgekonfiguration von K ∗ ist. Die deterministische Turingmaschine M 0 schreibt nun
für x das Prädikat (K0 (x), K ∗ , t∗ (|x|)) auf ihr erstes Band. Dieses Prädikat soll getestet
werden. Dies geschieht, indem für die Konfigurationen K 0 in lexikographischer Reihenfolge (K0 (x), K 0 , t∗ (|x|)/2) und (K 0 , K ∗ , t∗ (|x|)/2) getestet werden. Bei der Zeitschranke
speichern wir ab, welches Zeitintervall [0, t∗ (|x|)/2] bzw. [t∗ (|x|)/2, t∗ (|x|)] simuliert wird.
Zunächst wird (K 0 , K ∗ , t∗ (|x|)/2) getestet. Falls der Test negativ ausgeht, wird der Test
abgebrochen, in beiden Problemen wird K 0 durch den lexikographischen Nachfolger ersetzt. Wenn es den nicht mehr gibt, ist das zugehörige Prädikat nicht erfüllbar. Falls der
Test positiv ausgeht, gehen wir zum ersten Problem über. Geht der Test auch positiv
aus, ist der gesamte Test positiv. Ist der Test negativ, wird K 0 durch den direkten lexikographischen Nachfolger K 00 ersetzt. Der Gesamttest ist dann negativ, wenn K 00 nicht
existiert.
Offensichtlich wird x durch diesen Algorithmus genau dann akzeptiert, wenn x durch
M akzeptiert wird. Eine rein rekursive Beschreibung des Algorithmus wäre wesentlich
einfacher. Wir haben die halb iterative“ Version benutzt, um zu verdeutlichen, dass M 0
”
mit der Verwaltung des Algorithmus kein Problem hat.
Wieviel Platz braucht M 0 ? Wir sehen, dass maximal zwei Prädikate (·, ·, t∗ (|x|)/2) auf
dem Band stehen. Nur an einem dieser Probleme wird gearbeitet. Induktiv folgt dann,
95
dass stets nur höchstens zwei Prädikate (·, ·, t∗ (|x|)/2` ) auf dem Band stehen, 1 ≤ ` ≤
log (t∗ (|x|)). Die Gesamtzahl der Prädikate auf dem Band ist also durch 2 log (t∗ (|x|)) =
O(s(|x|)) beschränkt. Da die Länge jedes Prädikats durch O(s(|x|)) beschränkt ist, ist M
O(s(|x|)2 ) platzbeschränkt.
2
Wir wollen an den Beweis noch ein veranschaulichendes Beispiel anschließen. M 0 möge für
das 21. Zeitintervall der Länge t∗ /32 testen, ob aus K20 die Konfiguration K21 erreichbar
ist. Wie sieht dann die Bandinschrift aus?
(K0 , K16 , t∗ /2)
: noch nicht getestet.
(K16 , K20 , t∗ /8) : noch nicht getestet.
(K20 , K21 , t∗ /32) : im Test.
(K21 , K22 , t∗ /32) : positiv getestet.
(K22 , K24 , t∗ /16) : positiv getestet.
(K24 , K32 , t∗ /4) : positiv getestet.
Wenn der Test positiv ausgeht, können wir zusammenfassen, dass (K20 , K24 , t∗ /8) positiv
getestet ist. Es wird (K16 , K20 , t∗ /8) getestet. Wenn der Test von (K20 , K21 , t∗ /32) jedoch
0
negativ ausgeht, wird K21 durch ihren lexikographischen Nachfolger K21
ersetzt.
0
(K20 , K21
, t∗ /32) : noch nicht getestet.
0
(K21 , K22 , t∗ /32) : im Test.
Wenn K21 keinen lexikographischen Nachfolger hat, ist auch (K20 , K22 , t∗ /16) negativ
0
getestet. Es muss der lexikographische Nachfolger K22
von K22 getestet werden.
0
(K20 , K22
, t∗ /16) : noch nicht getestet.
0
(K22
, K24 , t∗ /16) : im Test.
Die Gedanken werden analog weiter geführt, wenn auch K22 keinen lexikographischen
Nachfolger hat.
Korollar 11.2.3: P SP ACE = N P SP ACE.
Korollar 11.2.4: Es gilt Σk , Πk , ∆k ⊆ P SP ACE.
Beweis: Induktion über k. Für k = 0 ist Σ0 = Π0 = ∆0 = P ⊆ PSPACE. Sei
Σk ⊆ PSPACE. Dann gilt Σk+1 = NP(Σk ) ⊆ NP(PSPACE) = PSPACE. Die letzte
Gleichung benutzt zunächst die Aussage, dass PSPACE-Orakel durch eine DTM mit polynomiellem Platzbedarf ersetzt werden können, also ist NP(PSPACE) = NPSPACE.
Aus Korollar 11.2.3 folgt NPSPACE = PSPACE. Es ist ∆k+1 ⊆ Σk+1 ⊆ PSPACE und
Πk+1 ⊆ Σk+2 ⊆ PSPACE.
2
Viel schwächer als die Vermutung NP 6= P ist die Vermutung PSPACE 6= P. Selbst diese
Vermutung ist noch unbewiesen. Aus der strukturellen Komplexitätstheorie ist bekannt,
dass für bandkonstruierbare Funktionen s gilt: DTIME(s(n)) ( DTAPE(s(n)), mit einem
Band der Länge O(s(n)) können also mehr Probleme gelöst werden als in Zeit O(s(n)).
96
11.3
PSPACE-vollständige Probleme
Probleme außerhalb von PSPACE müssen als äußerst komplex gelten. Von den Problemen
in PSPACE können wir wieder einige Probleme als schwerste Probleme auszeichnen.
Definition 11.3.1: L heißt PSPACE-vollständig, wenn L ∈ PSPACE ist und für alle
L0 ∈ PSPACE gilt L0 ≤p L.
Nachdem wir in Kap. 7.3 die Σk -vollständigen Sprachen Bk kennengelernt haben, liegt es
nahe zu vermuten, dass die Vereinigung aller Bk PSPACE-vollständig ist.
Definition 11.3.2: QUANTIFIED BOOLEAN FORMULAS (QBF)
Boolesche Formeln F bestehen aus einem booleschen Ausdruck E über einer Variablenmenge V = {x1 , . . . , xn } und Quantoren Qi und haben die Form F = (Q1 x1 ) . . . (Qn xn )E.
Das Problem QBF besteht darin zu entscheiden, ob F wahr ist.
Es soll noch einmal ausdrücklich darauf hingewiesen werden, dass n variabel ist. Es zeigt
sich wiederum, dass boolesche Probleme“ gute Kandidaten für erste vollständige Proble”
me sind.
Satz 11.3.3: QBF ist PSPACE-vollständig.
Beweis: QBF ∈ PSPACE. Sei (Q1 x1 ) . . . (Qn xn )E die Eingabe. Für n = 0 muss der
Ausdruck E, der nur Konstanten enthält, darauf überprüft werden, ob er gleich 1 (wahr)
ist. Dies ist sogar auf linearem Platz möglich. Sei ein platzeffizienter Algorithmus An−1
für n − 1 Quantoren bekannt. Wir ersetzen in einer Kopie von E die Variable x1 zunächst
durch 0 und nennen den neuen Ausdruck E0 . Wir wenden An−1 auf (Q2 x2 ) . . . (Qn xn )E0 an
und notieren das Resultat res0 . Dann wenden wir An−1 auf (Q2 x2 ) . . . (Qn xn )E1 an, wobei
E1 aus E entsteht, indem x1 auf 1 gesetzt wird, aus res0 und res1 kann das Ergebnis res
für (Q1 x1 ) . . . (Qn xn )E direkt berechnet werden. Der Algorithmus An benötigt gegenüber
An−1 nur O(1) Extraplatz. Also braucht An nur O(n) Extraplatz gegenüber der Eingabe.
Also ist QBF ∈ DTAPE(N ), wobei N die Länge der Eingabe ist.
Sei nun L ∈ PSPACE. Dann gibt es eine deterministische Turingmaschine M mit einem
Band, die L mit polynomiell beschränktem Band akzeptiert. Nach den Ergebnissen aus
Kap. 11.1 ist die Turingmaschine für ein Polynom p sowohl 2p(n) -zeitbeschränkt als auch
p(n)-platzbeschränkt.
Wir wollen L ≤p QBF zeigen. Aus dem Beweis, dass SAT NP-vollständig ist, wissen wir
bereits, wie sich Turingmaschinenberechnungen in boolesche Ausdrücke umformulieren
lassen. Wir beschreiben Konfigurationen auf analoge Weise durch boolesche Variablen.
Für jede Eingabe x, für die M testet, ob x ∈ L ist, soll eine boolesche Formel Qx in
polynomieller Zeit derart konstruiert werden, dass x ∈ L genau dann ist, wenn Qx wahr
ist. Für Variablenmengen I1 und I2 , die Konfigurationen von M beschreiben, soll Fj (I1 , I2 )
genau dann wahr sein, wenn M aus der zu I1 gehörenden Konfiguration in höchstens 2j
97
Schritten in die Konfiguration I2 gelangen kann. Dann kann Qx folgendermaßen gewählt
werden:
Qx = ∃I0 ∃If [Fp(n) (I0 , If ) ∧ INITIAL(I0 ) ∧ ACC(If )].
Dabei testet INITIAL(I0 ), ob I0 Anfangskonfiguration für die Eingabe x ist, und ACC(If ),
ob If akzeptierend ist. Diese Tests können wir wie im NP-Vollständigkeitsbeweis für SAT
codieren. Es genügt also anzugeben, wie wir Fj definieren.
Es liegt nahe, wie im Beweis des Satzes von Savitch folgende Formel zu verwenden.
Fj (I1 , I2 ) = ∃I(Fj−1 (I1 , I) ∧ Fj−1 (I, I2 )).
Die Formel beschreibt zwar den richtigen Sachverhalt, die Länge von Fp(n) wäre aber
2p(n) . Exponentiell lange Formeln lassen sich aber offensichtlich nicht in polynomieller
Zeit erzeugen. Mit einem einfachen Trick können wir ein Vorkommen von Fj−1 einsparen.
Fj (I1 , I2 ) = ∃I∀J∀K[(¬(J = I1 ∧ K = I) ∧ ¬(J = I ∧ K = I2 )) ∨ Fj−1 (J, K)].
Wir lesen die Formel. Wir können die innere Formel nach der de Morgan-Regel umformen
zu
(¬[(J, K) = (I1 , I) ∨ (J, K) = (I, I2 )]) ∨ Fj−1 (J, K).
Falls die erste Klammer nicht erfüllt ist, gilt (J, K) = (I1 , I) oder (J, K) = (I, I2 ). In diesen
beiden Fällen muss Fj−1 (J, K) erfüllt sein, d. h. Fj−1 (I1 , I) und Fj−1 (I, I2 ) müssen erfüllt
sein für eine Konfiguration I. Die Schreibweise ∃I oder ∀J ist natürlich schlampig. Wir
dürfen nur über Variablen und nicht über Konfigurationen quantifizieren. Dies bereitet
uns aber kein Problem. Wir quantifizieren über die entsprechenden Variablen und fügen,
wie im Beweis der NP-Vollständigkeit von SAT, die Bedingungen, dass die Variablen
Konfigurationen beschreiben, hinzu.
Die Formel Fj enthält außer Fj−1 nur O(p(n)) Variablen und boolesche Ausdrücke der
Länge O(p(n)). Also hat Fj Länge O(jp(n)). Da die Turingmaschine 2p(n) -zeitbeschränkt
ist, ist Qx eine boolesche Formel der Länge O(p(n)2 ), die genau dann wahr ist, wenn die
Turingmaschine x akzeptiert. Es ist offensichtlich, dass Qx in polynomieller Zeit erzeugt
werden kann.
2
Wir stellen zunächst ohne Beweis weitere PSPACE-vollständige Probleme vor. Brettspiele
für zwei Personen sind im Allgemeinen endliche Spiele. Beim Schach sichert die Regel
Remis, wenn dreimal die gleiche Stellung auf dem Brett erreicht wird“, dass jedes Spiel
”
endet. Daraus folgt, dass es in jeder Spielsituation nur drei Möglichkeiten gibt:
Spieler I hat eine Gewinnstrategie.
Spieler II hat eine Gewinnstrategie.
Beide Spieler haben Remisstrategien.
Die erste Situation lässt sich, wenn Spieler I am Zug ist und noch k Züge möglich sind
(o.B.d.A. wird bei Spielende ohne Figurenbewegung weitergespielt“), folgendermaßen
”
beschreiben.
∃ ein Zug für mich ∀ Züge des Gegners ∃∀ . . . Qk : Ich habe gewonnen.
98
Spiele sind also spezielle Eingaben für QBF, also sind Spiele in PSPACE enthalten.
Diese Aussage mutet unsinnig an, da Spiele eine feste (Brett-) Größe haben. Wir müssen
also annehmen, dass wir die Spiele auf natürliche Weise auf beliebig große Bretter verallgemeinern können. Dies ist einfach für Dame und Go, aber schwierig für Schach. Die Spiele
sind so allgemein, dass sich Klauseln durch Spielstellungen codieren lassen. Es konnte also gezeigt werden, dass die verallgemeinerten Spiele Dame und Go, PSPACE-vollständig
sind. Dies erklärt, warum diese Spiele auch bei häufigem Spielen nicht langweilig werden
(müssen).
Wir definieren noch die verallgemeinerte Version von HEX.
Definition 11.3.4: GENERALIZED HEX
Für einen ungerichteten Graphen G = (V, E) mit Quelle q ∈ V und Senke s ∈ V wählen
die Spieler abwechselnd Knoten aus V − {q, s}. Spieler I gewinnt, wenn es auf V1 ∪ {q, s}
für die von ihm gewählte Knotenmenge V1 einen Weg zwischen q und s gibt. Es ist zu
entscheiden, ob Spieler I für G eine Gewinnstrategie hat.
Satz 11.3.5: GENERALIZED HEX ist PSPACE-vollständig.
Das tatsächliche Spiel HEX ist ein Spiel fester Größe. Die Löcher im Brett entsprechen
den Knoten im Graphen. Benachbarte Löcher werden im Graphen durch eine Kante verbunden.
Für Spiele war klar, wie sie sich als boolesche Formeln polynomieller Länge schreiben
lassen. Außerdem muss“ die Zahl der Quantorenwechsel bei wachsender Brettgröße mit”
wachsen. Dadurch war die Verbindung zu PSPACE-vollständigen Problemen gegeben. Für
PSPACE-vollständige Probleme aus dem Bereich FORMALE SPRACHEN und AUTOMATENTHEORIE ist die Verbindung nicht so offensichtlich.
Definition 11.3.6: REGULAR EXPRESSION NON-UNIVERSALITY
Für reguläre Ausdrücke über einem endlichen Alphabet Σ soll entschieden werden, ob sie
L 6= Σ∗ darstellen.
Satz 11.3.7: REGULAR EXPRESSION NON-UNIVERSALITY ist PSPACE-vollständig.
Definition 11.3.8: CONTEXT SENSITIVE LANGUAGES (CSL)
Für Eingaben x#w, wobei x die Codierung einer kontextsensitiven Grammatik Gx und
w ∈ Σ∗ ist, soll entschieden werden, ob w zu der durch Gx beschriebenen Sprache gehört.
Satz 11.3.9: CSL ist PSPACE-vollständig.
Beweis: Wir haben in Kap. 11.1 gezeigt, dass CSL ∈ NTAPE(n) ist. Somit ist CSL
∈ NPSPACE = PSPACE.
Sei nun L ∈ PSPACE. Wir zeigen L ≤p CSL. Es sei M eine DTM, die L auf polynomiell
beschränktem Band erkennt, und p das zugehörige Polynom. Sei L0 = {y$p(|y|) | y ∈ L}.
Mit dieser so genannten Padding-Technik wird y künstlich verlängert. Da L auf durch p
99
beschränktem Band erkannt werden kann, kann L0 auf linearem Band erkannt werden.
Damit ist L0 kontextsensitiv. Die zugehörige kontextsensitive Grammatik hat konstante
Länge und kann (siehe Buch, Beweis Satz 5.4.5) effizient berechnet werden, ihre Codierung
sei G(L).
Für eine Eingabe y, die auf Zugehörigkeit zu L getestet werden soll, wird nun in polynomieller Zeit der String G(L)#y$p(|y|) erzeugt. Dieser String gehört genau dann zu CSL,
wenn y ∈ L ist.
2
Wir haben viele NP-vollständige Probleme kennengelernt, die nichtdeterministisch in linearer Zeit gelöst werden konnten. Hier haben wir ein PSPACE-vollständiges Problem,
das nichtdeterministisch auf linearem Band erkannt werden kann. Das Problem QBF
kann sogar deterministisch auf linearem Band erkannt werden. NP-vollständig heißt nicht
schwierig in NP“, sondern: Falls ein NP-vollständiges Problem in P ist, sind alle NP”
Probleme in P. Ebenso sind PSPACE-vollständige Probleme nicht schwierig in PSPACE,
sie können durchaus speicherplatzeffizient gelöst werden. Erweist sich jedoch ein PSPACEvollständiges Problem L als zu Σn gehörig, dann gilt für alle L0 ∈ PSPACE, dass L0 ≤p L
ist. Es ist also PSPACE ⊆ P(Σn ) = ∆n+1 und mit Korollar 11.2.4 sogar PSPACE
= ∆n+1 , d. h. die polynomielle Hierarchie bricht zusammen. Falls L ∈ Σ0 = P, wäre
also PSPACE = ∆1 = P. Für PSPACE-vollständige Probleme ist es also besonders unwahrscheinlich, dass sie polynomielle Algorithmen haben.
11.4
Das LBA-Problem und der Satz von Immerman/Szelepcsényi
Gibt es über PSPACE eine Hierarchie analog zur polynomiellen (Zeit-) Hierarchie? Die
Antwort ist leicht: Nein. Die Begründung ist, dass bereits PSPACE = NPSPACE ist (Korollar 11.2.3). Wenn wir uns aber genauer auf eine Platzschranke festlegen, wird die Situation wieder spannend. Nach dem Satz von Savitch wissen wir nur, dass NTAPE(s(n)) ⊆
DTAPE(s(n)2 ) ist.
Insbesondere das LBA-Problem (LBA = linear bounded automaton) ist ein seit den 60er
Jahren im Mittelpunkt des Interesses stehendes, ungelöstes Problem. Es ist die Frage, ob
NTAPE(n) = DTAPE(n) ist. Äquivalent ist die Frage, ob das Wortproblem (ist x ∈ L?)
für kontextsensitive Sprachen von linear bandbeschränkten deterministischen Turingmaschinen gelöst werden kann. Es ist also denkbar, dass es eine Hierarchie von Klassen
Σk TAPE(s(n)), Πk TAPE(s(n)), ∆k TAPE(s(n)) gibt. Besser gesagt: Es war denkbar. Im
Jahr 1987 wurde nämlich folgender Satz von Immerman und Szelepcsényi bewiesen.
Satz 11.4.1: Für bandkonstruierbare Funktionen s :
NTAPE(s(n)) = co-NTAPE(s(n)).
Beweis: Buch Theoretische Informatik, Satz 5.4.9.
100
→
mit s(n) ≥ log n gilt
12
Vollständige Probleme in P, NTAPE(log n) und
#P
12.1
Log-SPACE-Reduktionen
Wir haben für viele Probleme gezeigt, dass sie NP-vollständig oder gar PSPACE-vollständig
sind. Sinn dieser Aussagen ist die Implikation, dass diese Probleme (sehr wahrscheinlich)
nicht effizient lösbar sind. Dabei war es nicht ausgeschlossen, dass diese Probleme nichtdeterministisch sehr schnell oder auf linearem Platz gelöst werden können. Gleichzeitig
sind die NP-vollständigen Probleme Kandidaten für den Nachweis, dass NP 6= P ist.
Wir wollen nun Komplexitätsklassen innerhalb von P untersuchen. Vollständige Probleme
werden dann ebenfalls in P sein. Analog zu den Vorbetrachtungen darf nicht erwartet werden, dass diese Probleme schwer in P“ sind, also nur mit großem polynomiellen Aufwand
”
lösbar sind. Sie sind Kandidaten, um P von anderen Komplexitätsklassen zu trennen.
Innerhalb von P wird der Reduktionsbegriff ≤p“ sinnlos, da L ≤p L0 für alle L, L0 ∈
”
P , L0 6= ∅, L0 6= Σ∗ gilt. Wir brauchen also einen neuen Reduktionsbegriff. Außerdem
wollen wir Turingmaschinen mit geringerem Platzbedarf als n betrachten. Dies würde
aber bedeuten, dass die Turingmaschine nicht die gesamte Eingabe lesen kann und auch
keine Ausgabe der Länge n berechnen kann. Der Ausweg besteht darin, für das Lesen und
Schreiben besondere Bänder vorzusehen.
Wir betrachten also Turingmaschinen mit drei Bändern:
- Ein Read-Only-Band, auf dem die Eingabe zwischen zwei Marken steht. Auf dieses
Band darf nichts geschrieben werden, und die Marken dürfen nicht überschritten
werden.
- Ein Write-Only-Band, auf dem zu Beginn nichts steht, der Kopf dieses Bandes darf
nicht nach links gehen. Die Inschrift dieses Bandes ist am Ende der Rechnung die
Ausgabe.
- ein normales Arbeitsband.
Der Platzbedarf der Turingmaschine ist das Maximum von 1 und der Zahl der auf dem
Arbeitsband besuchten Zellen.
Satz 12.1.1: DTAPE(log n) ⊆ NTAPE(log n) und DTAPE(log n) ⊆ P .
Beweis: Die erste Inklusion gilt trivialerweise. Für die zweite Inklusion genügt es wieder,
die Zahl möglicher Konfigurationen einer c log n platzbeschränkten deterministischen Turingmaschine zu zählen. Die Inschrift des Eingabebandes ist für jede Rechnung konstant.
Nur die Kopfposition variiert. Es gibt n + 2 mögliche Kopfpositionen auf dem Eingabeband und höchstens c log n Kopfpositionen auf dem Arbeitsband. Hinzu kommen |Γ|c log n
101
verschiedene Inschriften des Arbeitsbandes und |Q| Zustände. Die Zahl der Konfigurationen lässt sich also abschätzen durch |Q|(n + 2) c log n |Γ|c log n = c|Q|(n + 2)(log n)nc log |Γ|
und damit durch ein Polynom in n. Wir können wieder die Schranke vorab berechnen
und Rechnungen, die diese Zeitschranke überschreiten, abbrechen. Die Turingmaschine
ist dann in eine Endlosschleife geraten.
2
Definition 12.1.2: L1 heißt log-SPACE reduzierbar auf L2 , Notation L1 ≤log L2 , wenn es
eine Abbildung f : Σ∗1 → Σ∗2 gibt, die von einer log n-platzbeschränkten deterministischen
Turingmaschine berechnet werden kann, so dass gilt:
∀x ∈ Σ∗1 : (x ∈ L1 ⇐⇒ f (x) ∈ L2 ).
Definition 12.1.3: Für eine Sprachklasse C (z.B. P oder NTAPE(log n)) heißt L ∈ C
log-SPACE-vollständig für C, falls L0 ≤log L für alle L0 ∈ C gilt.
Die Aussagen des folgenden Satzes zeigen, dass die neuen Begriffe die von Reduktionen
zu erwartenden Eigenschaften haben.
Satz 12.1.4: a) L1 ≤log L2 , L2 ≤log L3 ⇒ L1 ≤log L3 .
b) L1 ≤log L2 , L2 ∈ DTAPE(log n) ⇒ L1 ∈ DTAPE(log n).
c) Es sei L log-SPACE-vollständig für C ⊇ DTAPE(log n), dann gilt L ∈ DTAPE(log n)
genau dann, wenn DTAPE(log n) = C ist.
Beweis: Übungsaufgabe.
2
Wir wissen nun, dass DTAPE(log n) ⊆ P ⊆ NP ⊆ PSPACE ist. Die strukturelle Komplexitätstheorie hat nachgewiesen, dass DTAPE(log n) 6= PSPACE ist. Eine der obigen
Inklusionen muss also echt sein. Wir wissen aber nicht welche. Wir glauben sogar, dass
alle drei Inklusionen echt sind.
12.2
Ein P-vollständiges Problem
Um den Umgang mit log-SPACE-Reduktionen einzuüben und um einen Kandidaten kennenzulernen, der P und DTAPE(log n) trennen könnte, stellen wir ein Problem vor, das
log-SPACE-vollständig für P ist.
Definition 12.2.1: EMPTINESS OF CONTEXT FREE LANGUAGES (ECFL)
Für kontextfreie Grammatiken soll entschieden werden, ob die zugehörige Sprache leer
ist.
Satz 12.2.2: ECFL ist log-SPACE-vollständig für P.
Beweis: In der Vorlesung GTI wird gezeigt, dass ECFL ∈ P ist.
Sei nun L ∈ P . Wir werden eine O(log n)-platzbeschränkte deterministische Turingmaschine entwerfen, die zu x eine kontextfreie Grammatik Gx derart erzeugt, dass die zu
102
Gx gehörige Sprache genau dann leer ist, wenn x ∈ L ist. Da co-P = P ist, gehen wir
von einer polynomiell zeitbeschränkten deterministischen Turingmaschine M für L̄ aus.
Ihre Rechenzeit sei durch das Polynom p beschränkt. Wir konstruieren die Grammatik
Gx so, dass sie keine Terminals enthält. Damit ist höchstens das leere Wort ε ableitbar.
Eine Ableitung von ε soll einer akzeptierenden Berechnung von M für x entsprechen. Das
wiederum bedeutet, da M die Sprache L̄ erkennt, x 6∈ L.
Die Menge der Variablen (Nichtterminalbuchstaben) von Gx sieht folgendermaßen aus. Sie
enthält neben dem Startsymbol S Variablen (X, i, t) für 0 ≤ i ≤ p(n)+1 und 0 ≤ t ≤ p(n).
X kann jeder Buchstabe des Bandalphabets von M sein oder jedes Paar [q, Y ] aus einem
Zustand von M und einem Buchstaben des Bandalphabets oder #. Das Sonderzeichen #
soll für die Turingmaschine andeuten, dass wir uns am Anfang oder Ende der Bandinschrift
befinden. Offensichtlich soll i die Position auf dem Band kennzeichnen und t den Zeitpunkt
der Simulation.
Die Menge der Produktionen (Ableitungsregeln) besteht aus vier Gruppen.
1.) S → ([qf , Y ], i, t) für alle i, t, Y und alle akzeptierenden Zustände qf . Es wird also
eine denkbare Endkonfiguration geraten.
2.) Es seien X, Y, Z Symbole, also # oder Bandbuchstaben oder Paare [q, U ] aus Zustand und Bandbuchstabe. Ein derartiges Paar soll andeuten, dass der Kopf auf diese
Position schaut. Wenn X, Y, Z die Situation an den Positionen i − 1, i, i + 1 zum
Zeitpunkt t − 1 beschreibt, ist bei einer deterministischen Turingmaschine nur ein
Symbol an Position i zum Zeitpunkt t möglich. Für dieses Symbol W = f (X, Y, Z)
sind die Ableitungen (W, i, t) → (X, i − 1, t − 1)(Y, i, t − 1)(Z, i + 1, t − 1) zulässig für
1 ≤ i ≤ p(n) und 1 ≤ t ≤ p(n). Dabei werden Tripel (·, i, ·) mit i < 0 oder i > p(n)
weggelassen.
3.) (#, i, 0) → ε ist zulässig für i = 0 und i > n, ebenso (B, i, 0) → ε für das Leerzeichen
B, i = 0 und i > n.
4.) (xi , i, 0) → ε ist zulässig für i ∈ {2, . . . , n} und den i-ten Buchstaben xi der Eingabe
x, und ([q0 , x1 ], 1, 0) → ε ist zulässig.
Da auf logarithmischem Platz bis p(n) gezählt werden kann, lässt sich Gx von einer deterministischen Turingmaschine auf logarithmischem Arbeitsband erzeugen.
∗
Es bleibt zu zeigen, dass S → ε“ und M akzeptiert x“ äquivalent sind.
”
”
Falls M die Eingabe x akzeptiert, kann diese erfolgreiche Rechnung rückwärts geraten
werden. Die Gruppe 2 der Regeln erzwingt zwar, dass Informationen über eine Bandzelle
und einen Zeitpunkt mehr als einmal notiert werden. Dies führt aber zu keinen Problemen,
da am Ende alle Beschreibungen der Anfangskonfiguration durch ε ersetzt werden.
Wenn andererseits S nach ε abgeleitet werden kann, beginnt die Ableitung mit einer
Regel aus Gruppe 1. Danach werden, bis Variablen für den Zeitpunkt 0 erreicht werden,
nur Regeln der Gruppe 2 angewendet. Für jede Situation können hierbei alle denkbaren
103
∗
Vorgängersituationen erzeugt werden. Da aber schließlich in der Ableitung S → ε nach
den Regeln aus Gruppe 3 und 4 das leere Wort ε abgeleitet wird, muss in jedem Fall die
Anfangskonfiguration erreicht werden. Dies ist aber nur möglich, wenn die Rechnung von
M den gleichen Weg rückwärts zurücklegt und dabei x akzeptiert wird.
2
Damit haben wir nachgewiesen, dass ECFL nur in dem unwahrscheinlichen Fall, dass
DTAPE(log n) = P ist, deterministisch auf logarithmischem Platz entschieden werden
kann.
12.3
Ein NTAPE(log n)-vollständiges Problem
Folgendes Problem wird DTAPE(log n) und NTAPE(log n) trennen, wenn die beiden Klassen verschieden sind.
Definition 12.3.1: GRAPH REACHABILITY PROBLEM (GRP)
Für einen gerichteten Graphen G = (V, E) soll entschieden werden, ob es einen gerichteten
Pfad vom Knoten 1 zum Knoten n = |V | gibt.
Satz 12.3.2: GRP ist log-SPACE-vollständig für NTAPE(log n).
Beweis: GRP ∈ NTAPE(log n), da wir den gerichteten Pfad raten können. Auf dem
Band muss nur jeweils der letzte Knoten des Pfades vermerkt sein. Dann wird in der
Eingabe zufällig ein möglicher Nachfolger dieses Knotens ausgewählt.
Sei nun L ∈ NTAPE(log n). Wir wollen L ≤log GRP beweisen. Sei M eine nichtdeterministische Turingmaschine, die L auf Platz O(log n) erkennt. Nach dem Beweis von
Satz 12.1.1 können Konfigurationen von M auf Platz O(log n) beschrieben werden, wenn
nicht der Inhalt des Eingabebandes, sondern nur die zugehörige Kopfposition notiert wird.
Wir bilden nun eine Eingabe x, die auf Zugehörigkeit zu L getestet werden soll, auf einen
gerichteten Graphen Gx ab. Die Knoten von Gx entsprechen den Konfigurationen von
M , die Anfangskonfiguration wird zum Knoten 1. Schließlich gibt es einen zusätzlichen
Knoten, der Endknoten des Pfades werden soll. Für alle Paare (I, J) von Konfigurationen wird nun getestet, ob J direkte Nachfolgekonfiguration von I bei Eingabe x sein
kann. Im positiven Fall erhält Gx die Kante von I nach J. Schließlich erhält Gx für alle
akzeptierenden Konfigurationen K Kanten von K zum zusätzlichen Knoten.
Es ist klar, dass Gx mit logarithmischem Arbeitsband erzeugt werden kann. Da Wege im
Graphen zulässigen Rechnungen entsprechen, gibt es in Gx genau dann einen Pfad vom
Knoten 1, der Anfangskonfiguration, zum Endknoten, der alle akzeptierenden Endkonfigurationen vereinigt“, wenn die Turingmaschine M die Eingabe x akzeptiert.
2
”
12.4
Die Klasse #P
Bisher haben wir uns vor allem mit Entscheidungsproblemen beschäftigt: Gibt es (mindestens) eine Belegung der gegebenen Variablen, die alle Klauseln erfüllt? Wir haben dann
104
in Kap. 6 gesehen, dass die zugehörigen Suchprobleme kaum schwieriger sind. Finde, falls
existent, eine Belegung der Variablen, die alle Klauseln erfüllt. Noch nicht behandelt
haben wir sogenannte Anzahlprobleme oder #-Probleme. Die Notation kommt aus der
häufig benutzten Bezeichnung #M für die Mächtigkeit von M . Ein typisches #-Problem
ist #-SAT.
Definition 12.4.1: #-SAT
Für eine Menge V von Variablen und eine Menge C von Klauseln soll die Anzahl der
erfüllenden Belegungen berechnet werden.
Es sollte nun klar sein, wie #-HC, #-CLIQUE oder #-PARTITION definiert sind. Diese
Probleme haben alle gemeinsam, dass die zu berechnende Anzahl höchstens exponentiell
ist und daher auf polynomiellem Band darstellbar ist. Es gibt keine naheliegende Idee, wie
diese Anzahlprobleme von nichtdeterministischen Turingmaschinen in polynomieller Zeit
gelöst werden können. Implizit löst aber unser NP-Algorithmus für SAT auch #-SAT. Wir
können den Algorithmus so modifizieren, dass für n = |V | jede Folge aus {0, 1}n genau
auf einem Berechnungsweg geraten wird. Danach wird die geratene Variablenbelegung
nur noch deterministisch verifiziert. Also: Es gibt soviele akzeptierende Rechenwege wie
es erfüllende Variablenbelegungen gibt. Dies führt zur Betrachtung der Klasse #P.
Definition 12.4.2: #P enthält alle Suchprobleme Π, für die es eine nichtdeterministische
Turingmaschine gibt, die für jede zulässige Eingabe I ∈ DΠ genau |SΠ (I)| akzeptierende
Rechenwege hat, wobei die Länge jedes akzeptierenden Rechenweges durch ein Polynom
in der Länge von I beschränkt ist.
Definition 12.4.3: Ein Suchproblem Π ist #P-vollständig, wenn Π ∈ #P ist und alle
Probleme Π0 ∈ #P sich auf Π Turing-reduzieren lassen, d.h. Π0 ≤T Π für alle Π0 ∈ #P.
Es sollte nicht überraschen, dass wir bei Suchproblemen wieder auf den Begriff der TuringReduktion zurückgreifen. Ohne Beweis wollen wir das folgende, nicht überraschende Ergebnis anführen.
Satz 12.4.4: #-SAT ist #P-vollständig.
In der Vorlesung EFFIZIENTE ALGORITHMEN wird ein polynomieller Algorithmus angegeben, der Graphen G = (V, E) darauf testet, ob sie ein perfektes Matching (PM) haben,
das sind b|V |/2c knotendisjunkte Kanten. Erstaunlicherweise ist #-PM bereits für bipartite Graphen #P-vollständig. Es ist dies das Problem der Berechnung der Permanente
einer n × n-Matrix X aus Nullen und Einsen
X
perm(X) :=
x1,π(1) ∗ · · · ∗ xn,π(n) .
π Permutation auf {1,...,n}
Die Permanente sieht nun wiederum fast so aus wie die Determinante. Die Berechnung
der Determinante ist aber in polynomieller Zeit möglich (s. LINEARE ALGEBRA).
105
Dies gilt für Determinanten in beliebigen Ringen, also erst recht auch für den Körper
2.
Da xij ∈ {0, 1}, ergibt x1,π(1) ∗ · · · ∗ xn,π(n) über 2 den gleichen Wert wie über . Bei der
Determinante muss dieses Produkt mit (−1)sign(π) multipliziert werden. Über 2 ist jedoch
−1 ≡ +1 mod 2. Über 2 stimmen also Determinante und Permanente überein. Also kann
perm(X) mod 2 in polynomieller Zeit berechnet werden. Erstaunlicherweise können wir
also effizient feststellen, ob es gerade oder ungerade viele bipartite, perfekte Matchings
gibt, aber wir können vermutlich nicht effizient die Anzahl bipartiter, perfekter Matchings
berechnen.
106
13
13.1
Nichtuniforme Komplexitätsklassen
Schaltkreise und zugehörige Komplexitätsmaße
Wir haben schon in der Einleitung auf den Unterschied zwischen nichtuniformen und
uniformen Rechnern hingewiesen. Hier soll der Unterschied formalisiert werden. Für Turingmaschinen haben wir im allgemeinen Sprachen L ⊆ Σ∗ betrachtet, und es ist keine
Einschränkung, nur Sprachen über dem Alphabet Σ = {0, 1} zu betrachten. Sprachen
über {0, 1} und Folgen boolescher Funktionen f = (fn ) mit fn ∈ Bn , d.h.
fn : {0, 1}n → {0, 1}, stehen in eineindeutiger Beziehung. Zu L gehören die Funktionen
f L = (fnL ) mit fnL (x) = 1 genau für x ∈ L ∩ {0, 1}n. Zu f = (fn ) gehört die Sprache Lf ,
die die Vereinigung aller fn−1 (1) ist. Hierbei haben wir bereits, wie wir es auch in Zukunft
tun werden, 0-1-Vektoren und 0-1-Strings miteinander identifiziert.
Turingmaschinen (wie alle Rechner) sind uniform. Sie arbeiten mit einem Programm für
Eingaben beliebiger Länge. Auf der Softwareebene haben wir es also mit uniformen Rechnern zu tun. Dagegen können wir auf der Hardwareebene nur nichtuniforme Rechner“
”
entwerfen. Die Zahl der Inputs ist auf Hardwareebene fest. Für jede Eingabelänge können
und müssen wir einen neuen Rechner“ entwerfen. Das übliche Hardwaremodell ist ein
”
Schaltkreis. Schaltkreise bestehen aus Bausteinen vom Typ ∧, ∨ und ¬ mit 2 Eingängen
oder einem Eingang. Eingang eines Bausteins kann jede Komponente des Inputs x, eine
boolesche Konstante oder die Ausgabe eines Bausteins mit kleinerer Nummer sein. Damit
sollte auch klar sein, was an den einzelnen Bausteinen eines Schaltkreises berechnet wird.
Schaltkreise lassen sich gut durch gerichtete azyklische Graphen beschreiben.
x1
x2
x3
x4
Richtung der
Kanten
Die Größe eines Schaltkreises ist die Zahl seiner Bausteine, in unserem Beispiel 9. Die
Schaltkreisgröße misst die Hardwaregröße und die Zahl der Rechenschritte und damit die
sequentielle Rechenzeit. Allerdings arbeiten Schaltkreise parallel. Die Tiefe eines Schaltkreises ist die größte Zahl von Bausteinen auf einem gerichteten Pfad, in unserem Beispiel
107
5. Die Tiefe misst die parallele Rechenzeit. Wir werden noch sehen, dass es zwischen der
parallelen Rechenzeit und dem Speicherplatzbedarf enge Beziehungen gibt. Diese Vorüberlegungen führen zu den folgenden Komplexitätsklassen.
Definition 13.1.1: a) SIZE(c(n)) ist die Klasse der Folgen boolescher Funktionen f =
(fn ), die durch Schaltkreise der Größe O(c(n)) berechenbar sind. P-SIZE ist die Vereinigung aller SIZE(nk ).
b) DEPTH(d(n)) ist die Klasse der Folgen boolescher Funktionen f = (fn ), die durch
Schaltkreise der Tiefe O(d(n)) berechenbar sind.
Worin bestehen nun eigentlich die Unterschiede zwischen uniformer und nichtuniformer
Komplexität? Die in allen Programmiersprachen und auch für Turingmaschinen bestehende Möglichkeit bedingter Abfragen lässt sich in Schaltkreisen nicht ohne Mehraufwand
simulieren. Die Probleme von Simulationen in der anderen Richtung sind weit grundlegenderer Natur. Aus der Vorlesung GTI wissen wir, dass es unentscheidbare Sprachen L gibt,
z.B. das Halteproblem. Die zugehörigen booleschen Funktionen f L = (fnL ) sind jedoch trivialerweise durch Schaltkreise berechenbar, z.B. durch die DNF. Höhere Komplexitäten
als exponentielle Komplexität treten für boolesche Funktionen nicht auf. So stellt sich
unter anderem die Frage, ob die zu NP-vollständigen Problemen gehörigen booleschen
Funktionen nicht vielleicht polynomielle Schaltkreisgröße haben. In diesem Kapitel gehen
wir den Beziehungen zwischen uniformer und nichtuniformer Komplexität etwas näher
auf den Grund.
13.2
Simulationen von Turingmaschinen durch Schaltkreise
Zunächst wollen wir Zeit von Turingmaschinen und Größe von Schaltkreisen in Beziehung
setzen, danach den Platzbedarf von Turingmaschinen und die Tiefe von Schaltkreisen.
Wir haben schon gesehen, dass die Probleme bei der Simulation von Turingmaschinen
durch Schaltkreise in den bedingten Abfragen liegen. Die Folge der Kopfbewegungen einer
Turingmaschine ist für verschiedene Eingaben im Allgemeinen verschieden. Wir zeigen
zunächst, dass ansonsten eine Simulation sehr einfach ist.
Definition 13.2.1: Eine Turingmaschine heißt stereotyp (engl.: oblivious), wenn die Folge der Kopfbewegungen nur von der Eingabelänge, aber nicht vom Inhalt der Eingabe
abhängt.
Satz 13.2.2: Falls L ⊆ {0, 1}∗ von einer stereotypen Turingmaschine in Zeit t(n) akzeptiert wird, gibt es für die booleschen Funktionen f L = (fnL ) Schaltkreise der Größe
O(t(n)).
Beweis: Wir führen den Beweis nur für Turingmaschinen M mit einem Band. Wir halten
die Eingabelänge n fest. Dann ist die Kopfposition pos(t) nach t Schritten für 0 ≤ t ≤ t(n)
für alle Eingaben x mit |x| = n gleich. Die t-te Konfiguration von M auf Eingabe x
wird nun eindeutig beschrieben durch den Zustand q(t, x) und den Bandinhalt b(t, x, j)
108
für −t(n) + 1 ≤ j ≤ t(n) + 1. Wir codieren Zustände und Bandbuchstaben durch 0-1Folgen der Länge dlog |Q|e bzw. dlog |Γ|e. Die 0-te Konfiguration ist gegeben: q(0, x) = q0 ,
b(0, x, j) = xj für 1 ≤ j ≤ n und b(0, x, j) = B für das Leerzeichen B sonst. Wir können
annehmen, dass die Turingmaschine, anstatt zu akzeptieren oder zu verwerfen, eine 1
oder 0 in Bandposition 1 schreibt. Dann kann die Turingmaschine, ohne noch etwas zu
verändern oder zu stoppen, weiter arbeiten“. Die Ausgabe ist also b(t(n), x, 1).
”
Wir zeigen nun, wie wir q(t + 1, x) und alle b(t + 1, x, j) aus q(t, x) und allen b(t, x, j)
berechnen können. Die Übergangsfunktion von M sei δ : Q × Γ → Q × Γ × {R, L, N }.
Mit δ1 und δ2 bezeichnen wir die ersten beiden Projektionen von δ. Dann gilt
(1) q(t + 1, x) = δ1 (q(t, x), b(t, x, pos(t))),
(2) b(t + 1, x, pos(t)) = δ2 (q(t, x), b(t, x, pos(t))),
(3) b(t + 1, x, j) = b(t, x, j) für j 6= pos(t).
Da δ eine endliche Funktion unabhängig von |x| ist, gibt es für (1) und (2) einen Schaltkreis, z.B. die zugehörigen DNFs, der Größe O(1). Um (3) zu realisieren, sind überhaupt keine Bausteine nötig. Umgangssprachlich müssen nur die zugehörigen Drähte
verlängert“ werden. Da wir t(n) Schritte simulieren, hat der Schaltkreis Größe O(t(n)).
”
2
Satz 13.2.3: Jede t(n)-zeitbeschränkte Turingmaschine mit t(n) ≥ n kann durch eine
O(t(n)2 )-zeitbeschränkte stereotype Turingmaschine simuliert werden.
Beweis: Der Beweis ähnelt der Simulation von k-Band Turingmaschinen durch Turingmaschinen mit einem Band. Im 0-ten Schritt wird die Simulation vorbereitet. Es werden
Marken # auf die Positionen 0 und n + 1 geschrieben. Außerdem wird die Position des zu
simulierenden Kopfes, also Position 1, mit einer Marke $ neben dem Buchstaben versehen.
Der Kopf der Maschine steht auf der linken #-Marke. Die Turingmaschine merkt sich den
Zustand q0 der zu simulierenden Maschine. Dies alles kann stereotyp in O(n) Schritten
erfolgen.
Vor der Simulation des j-ten Schrittes ist der simulierenden Maschine der Zustand q
der simulierten Maschine bekannt. Die Position, wo der simulierte Kopf steht, enthält
zusätzlich $, und die #-Marken stehen an den Positionen 1−j und n+j. Die Bandinschrift
ist ansonsten vollständig simuliert. Der Kopf steht auf der linken #-Marke.
Während der Simulation des j-ten Schrittes wird zunächst die linke Marke um eine Position nach links verschoben. Dann wird nach rechts gesucht, bis die $-Position gefunden
wird. Dort stehe der Buchstabe a. Es sei δ(q, a) = (q 0 , a0 , d). Dann merkt sich die Maschine
den neuen Zustand q 0 . Falls d = N , wird (a, $) durch (a0 , $) ersetzt. Falls d = R, wird
(a, $) durch a0 ersetzt und die rechts anschließende Position mit $ markiert. Falls d = L,
wird (a, $) durch (a0 , $∗ ) ersetzt. Danach geht der Kopf nach rechts weiter, versetzt die
#-Marke um eine Position nach rechts. Dann geht der Kopf nach links bis zur linken
#-Marke. Wird unterwegs die $∗ -Marke gefunden, wird sie gelöscht und der linke Nachbar mit $ markiert. Der j-te Schritt kann also in O(n + j) Schritten stereotyp simuliert
werden.
Die Gesamtkosten der Simulation betragen O(t(n)(n + t(n))) = O(t(n)2 ).
109
2
Satz 13.2.4: Jede t(n)-zeitbeschränkte und s(n)-platzbeschränkte Turingmaschine kann
durch eine O(t(n) log s(n)) = O(t(n) log t(n))-zeitbeschränkte stereotype Turingmaschine
simuliert werden.
Wir verzichten auf den Beweis dieses Satzes. Uns ist vor allem wichtig, dass polynomiell
zeitbeschränkte Turingmaschinen durch polynomiell zeitbeschränkte, stereotype Turingmaschinen simuliert werden können.
Korollar 13.2.5: Falls L ⊆ {0, 1}∗ von einer t(n)-zeitbeschränkten und s(n)-platzbeschränkten Turingmaschine akzeptiert wird, gibt es für die booleschen Funktionen f L =
(fnL ) Schaltkreise der Größe O(t(n) log s(n)) = O(t(n) log t(n)).
Beweis: Satz 13.2.2 und Satz 13.2.4 .
2
Korollar 13.2.6: P ⊆ P-SIZE.
Die Schaltkreise in den Simulationen für Satz 13.2.3 und 13.2.4 haben große Tiefe. Die
Tiefe ist im wesentlichen so groß wie die Schaltkreisgröße. Andererseits lässt sich jede
boolesche Funktion auf n Variablen mit der DNF in Tiefe n+dlog ne realisieren. Wir zeigen
nun, wie wir Turingmaschinen durch Schaltkreise mit oftmals kleiner Tiefe simulieren
können. Die Simulation ist dann gut, wenn die Turingmaschinen nur geringen Platzbedarf
haben. Hier bekommen wir erste Argumente für die These, dass parallele Rechenzeit und
Speicherplatzbedarf eng verknüpft sind.
Satz 13.2.7: Die Sprache L ⊆ {0, 1}∗ werde von einer t(n)-zeitbeschränkten und s(n)platzbeschränkten Turingmaschine erkannt. Es sei l(n) := max{s(n), dlog ne}. Für die
booleschen Funktionen f L = (fnL ) gibt es Schaltkreise der Tiefe
O(l(n) log t(n)) = O(l(n)2 ).
Beweis: Da wir hier wieder von Platzschranken s(n) < n ausgehen (sonst ist die Aussage
des Satzes trivial), nehmen wir wieder an, dass die Eingabe auf einem Read-Only-Band
steht. Die Zahl der Konfigurationen ist daher beschränkt durch
k(n) = |Q|(n + 2)|Γ|cs(n) cs(n).
Da die Turingmaschine auf allen Eingaben stoppt, ist t(n) ≤ k(n) und log t(n) ≤ log k(n) =
O(l(n)). Also gilt auch
O(l(n) log t(n)) = O(l(n)2 ).
Wir modifizieren die gegebene Turingmaschine so, dass sie niemals stoppt, sondern statt
dessen nichts mehr verändert und weiter arbeitet“. Die Rechnung auf Eingabe x kann
”
also beschrieben werden durch k0 (x), . . . , kt(n) (x). Es ist x ∈ L genau dann, wenn die erste
Zelle des Arbeitsbandes nach t(n) Rechenschritten die Zahl 1 enthält.
Für jede Konfiguration k(x) ist die Nachfolgekonfiguration k 0 (x) eindeutig bestimmt. Sie
hängt nicht von der gesamten Eingabe x ab, sondern nur von dem xi , so dass der Kopf auf
110
dem Eingabeband auf Position i steht. Wir definieren nun für jedes Konfigurationenpaar
(k, k 0 ) die Funktion ak,k0 (x). Sie soll genau dann 1 sein, wenn k 0 (x) direkter Nachfolger von
k(x) ist. Wenn in Konfiguration k der Kopf auf dem Eingabeband auf Position i steht,
ist ak,k0 (x) eine der Funktionen 0, 1, xi und x̄i . Die Matrix A(x) = (ak,k0 (x)) kann also in
Tiefe 1 berechnet werden.
Das boolesche
A, B mit booleschen Werten ist definiert
W Produkt C zweier Matrizen
i
durch cij =
(x) das Produkt von i Kopien von A(x). Da
W m ai,m ∧ bm,j . Es sei nun A
i
00
0
aik,k0 (x) = k00 ai−1
∧
a
,
folgt,
dass
a
00
k ,k
k,k 0 (x) = 1 genau dann ist, wenn bei Eingabe x
k,k
0
die Konfiguration k die i-te Nachfolgekonfiguration von k ist. Ein Induktionsbeweis für
diese Aussage ist einfach. Für i = 1 haben wir A1 (x) = A(x) gerade so gewählt. Für
i > 1 gibt es genau eine Konfiguration k 00 , die nach i − 1 Schritten erreicht wird. Es ist
aik,k0 (x) = 1 genau dann, wenn für eine Konfiguration k 00 sowohl ai−1
k,k 00 (x) = 1 als auch
ak00 ,k0 (x) = 1 ist.
Es sei nun T = 2dlog t(n)e . Wir können die Matrix AT durch fortgesetztes Quadrieren mit
dlog t(n)e booleschen Matrizenmultiplikationen berechnen. Nach Definition kann jede Matrizenmultiplikation in Tiefe dlog k(n)e + 1 durchgeführt werden. Die Gesamttiefe beträgt
also dlog t(n)e(dlog k(n)e + 1). Wenn K ∗ die Menge der akzeptierenden
Konfigurationen
W
bezeichnet und k0 die Anfangskonfiguration ist, gilt fnL (x) = k∈K ∗ aTk0 ,k (x).
Die Gesamttiefe unseres Schaltkreises beträgt somit
1 + dlog t(n)e(dlog k(n)e + 1) + dlog k(n)e = O(l(n) log t(n)).
2
Korollar 13.2.8: DTAPE(log n) ⊆ DEPTH(log2 n).
13.3
Simulation von Schaltkreisen durch nichtuniforme Turingmaschinen
Wir haben schon diskutiert, warum Schaltkreisfolgen C = (Cn ) für boolesche Funktionen
f = (fn ) nicht immer durch Turingmaschinen simuliert werden können. Es werden daher
nichtuniforme Turingmaschinen betrachtet.
Definition 13.3.1: Eine nichtuniforme Turingmaschine M ist eine Turingmaschine, die
mit einem weiteren Read-Only-Band versehen ist. Für Inputs x mit n = |x| enthält dieses
Extraband ein Orakel an , das zwar von n = |x|, aber nicht von x selber abhängen darf.
Die Rechenzeit wird auf normale Weise gemessen. Der Speicherplatzbedarf ist die Summe
aus dem Speicherplatzbedarf auf dem Arbeitsband und dlog |an |e.
Diese Definition bedarf einiger Erläuterungen. Wir bezeichnen an wieder als Orakel. Wenn
wir nämlich aus |x| auf effiziente Weise a|x| berechnen können, kann das Orakel wiederum
durch dieses Programm ersetzt werden, und wir erhalten eine (uniforme) Turingmaschine.
Zum Speicherplatzbedarf wird dlog |an |e und nicht, wie vielleicht erwartet, |an | addiert.
111
Wir haben gesehen, dass für Turingmaschinen k(n) ≈ 2s(n) ist. Konfigurationen für nichtuniforme Turingmaschinen müssen die Kopfposition auf dem Orakelband enthalten. Dafür
gibt es |an | Möglichkeiten. Indem wir dlog |an |e zu s(n) addieren, bleibt die Beziehung
k(n) ≈ 2s(n) richtig. Außerdem hoffen wir, dass wir in gutartigen Fällen nicht das gesamte
Orakel auf das Band schreiben müssen, sondern nur kleine Teile des Orakels. Schön wäre
es, wenn dafür Platz O(log |an |) ausreicht. Diese Diskussion greifen wir am Ende dieses
Abschnitts wieder auf.
Satz 13.3.2: Die Folge boolescher Funktionen f = (fn ) möge durch Schaltkreise C =
(Cn ) der Größe c(n) = Ω(n) berechnet werden. Dann kann die Sprache Lf von einer nichtuniformen Turingmaschine in Zeit t(n) = O(c(n)2 ) auf Platz s(n) = O(c(n)) akzeptiert
werden.
Beweis: Als Orakel verwenden wir die einzige Information, die wir vorliegen haben,
nämlich den Schaltkreis Cn der Größe c(n) für fn . Dazu benötigen wir eine Codierung
von Schaltkreisen. Wir nummerieren die Inputs und Bausteine von Cn mit 1, . . . , n + c(n).
Bausteine werden nun codiert durch ihre Nummer, ihren Typ (∧, ∨, ¬) und die Nummern
der direkten Vorgänger. Damit kann jeder Baustein mit O(log c(n)) Bits codiert werden.
Die Codierung von Cn , und damit das Orakel an , hat Länge O(c(n) log c(n)).
Die Turingmaschine kann nun den Schaltkreis Schritt für Schritt simulieren. Nach der
Simulation von i − 1 Bausteinen stehen die Ergebnisse dieser Bausteine auf dem Arbeitsband. Für die Simulation des i-ten Bausteins werden die Nummern der Vorgänger gelesen,
die Werte der Vorgänger auf dem Eingabeband bzw. dem Arbeitsband gesucht. Dann ist
es einfach, das Ergebnis des Bausteins zu berechnen und auf das Arbeitsband zu schreiben. Mit zwei Arbeitsbändern ist es leicht, jeden Baustein in Zeit O(c(n)) zu simulieren.
Auf den Arbeitsbändern genügt Platz O(c(n)), das Orakelband trägt nur O(log c(n)) zum
Platzbedarf bei.
2
Satz 13.3.3: Die Folge boolescher Funktionen f = (fn ) möge durch Schaltkreise C =
(Cn ) der Tiefe d(n) = Ω(log n) berechnet werden. Dann kann die Sprache Lf von einer nichtuniformen Turingmaschine in Zeit t(n) = O(n2d(n) ) auf Platz s(n) = O(d(n))
akzeptiert werden.
Auch dieser Satz zeigt den engen Zusammenhang zwischen paralleler Rechenzeit (Tiefe)
und Speicherplatzbedarf auf.
Beweis von Satz 13.3.3: Wir haben nicht genügend Platz, die Ergebnisse aller Bausteine von Cn auf das Arbeitsband zu schreiben. Wir haben im wesentlichen nur Platz
für die Ergebnisse der Bausteine auf einem gerichteten Pfad in Cn . Die Schaltkreise Cn
sind daher als Orakel nicht geeignet. Wir ersetzen die Schaltkreise Cn durch Formeln Fn
der gleichen Tiefe. Formeln sind spezielle Schaltkreise, in denen jeder Baustein nur einen
direkten Nachfolger haben darf. Die Variablen dürfen mehrfach vorkommen, jede Kopie
einer Variablen darf aber nur einen direkten Nachfolger haben. Der zugrunde liegende
Graph ist also ein Baum. Es ist leicht, einen Schaltkreis durch eine entsprechende Formel
112
zu ersetzen. Wir gehen die Bausteine gemäß ihrer Nummerierung durch. Wenn ein Baustein B genau i Nachfolger hat, wird der Baum mit Wurzel B i-mal kopiert. Aus dem
Schaltkreis in Kap. 13.1 wird dann folgende Formel.
x1
x2
x4
x2
x3
x2
x3
x4
x3
x4
1
3
8
5
2
6
9
4
7
10
Als Orakel an wird nun die Formel Fn in binärer Codierung verwendet. Formeln lassen sich
auf wenig Platz simulieren, da jedes Ergebnis nur einmal benutzt wird. Als Nummerierung
benutzen wir die Postorder auf den Bausteinen (s. Abbildung). Jeder Baustein wird nun
codiert durch seinen Typ und Zahlen il , ir ∈ {0, . . . , n}. Die Codierung il für den linken
Vorgänger hat folgende Interpretation. Falls il = 0, ist der linke Vorgänger ein Baustein.
Falls il ≥ 1, ist der linke Vorgänger der Input xil . Ebenso ist die Codierung ir für den
rechten Vorgänger zu verstehen. Auf sie kann für Negationsbausteine verzichtet werden.
Auf diese Weise genügen für jeden Baustein O(log n) Bits. Bäume der Tiefe d haben
höchstens 2d − 1 Knoten. Also hat die Codierung von Fn höchstens O((log n)2d(n) ) Bits.
Es folgt dlog |an |e = O(d(n)).
Die Turingmaschine simuliert die Formel nun Schritt für Schritt. Die Ergebnisse der Bausteine werden gelöscht, wenn sie benutzt wurden. Neue Ergebnisse werden an die Ergebnisliste rechts angehängt. Wegen der Postorder wird ein Baustein direkt nach seinen
beiden Teilformeln simuliert. Die Ergebnisse der Vorgänger stehen dann am rechten Ende
des Arbeitsbandes. Vorgänger, die Variablen sind, werden auf dem Eingabeband gelesen.
Die anderen Ergebnisse werden am rechten Ende des Arbeitsbandes gelesen und gelöscht,
das neue Ergebnis rechts angefügt. Mit Hilfe eines zweiten Arbeitsbandes zum Zählen
kann jeder Baustein in Zeit O(n) simuliert werden. Daher folgt die Zeitschranke. Auf dem
Arbeitsband für das Zählen brauchen wir nur Platz O(log n). Es bleibt zu zeigen, dass
auf dem eigentlichen Arbeitsband nicht mehr als d(n) Bits stehen.
Dies zeigen wir durch Induktion über d. Für d = 1 ist die Aussage trivial. Für d > 1 wird
zunächst der linke Teilbaum ausgewertet. Er hat höchstens Tiefe d−1. Es stehen also nicht
mehr als d − 1 Bits auf dem Arbeitsband. Am Ende steht nur noch das Ergebnis dort. Bei
der Simulation des rechten Teilbaumes stehen höchstens d − 1 Bits auf dem Arbeitsband,
113
mit dem Ergebnis für den linken Teilbaum nur d Bits. Am Ende der Simulation stehen
noch die 2 Bits für die Vorgänger der Wurzel auf dem Arbeitsband. Sie werden gelöscht,
und das Ergebnis der gesamten Simulation wird auf das Band geschrieben.
2
Wir notieren den Inhalt des Arbeitsbandes für die Beispielformel und die Eingabe
(0, 1, 0, 1): 0k1k1, 1k1k1, 1k1, 1k1k1, 1k1, 0k0.
Die Simulationen von Turingmaschinen durch Schaltkreise sind auch für nichtuniforme Turingmaschinen zu verwenden. Da Schaltkreise nur auf festen Eingabelängen arbeiten, sind
die Orakel konstante Eingaben, die Schaltkreisen keine Probleme bereiten. Wir können
die Ergebnisse nun neu interpretieren.
– Schaltkreisgröße und nichtuniforme Zeit für Turingmaschinen sind polynomiell verknüpft, falls beide mindestens linear in der Eingabelänge sind.
– Schaltkreistiefe und nichtuniformer Platz für Turingmaschinen sind polynomiell verknüpft, falls beide mindestens logarithmisch in der Eingabelänge sind.
Um ähnliche Ergebnisse für uniforme Turingmaschinen zu erhalten, müssen Voraussetzungen an die zugehörigen Schaltkreise gestellt werden. Es gibt mehrere Definitionen für
uniforme Schaltkreise. Der Begriff der Uniformität ist allerdings sehr robust, so dass alle
Definitionen zu ähnlichen Ergebnissen führen. Wir begnügen uns hier mit einer Definition.
Definition 13.3.4: Eine Folge von Schaltkreisen C = (Cn ) der Größe c(n) heißt uniform,
wenn aus n die binäre Codierung von Cn von einer O(log c(n)) platzbeschränkten Turingmaschine berechnet werden kann.
Uniforme Schaltkreise können direkt durch Turingmaschinen simuliert werden. Das Orakel wird ersetzt durch eine Turingmaschine, die das Orakel berechnet“. Wir wissen, dass
”
die Zeitkomplexität von O(log c(n))-platzbeschränkten Turingmaschinen polynomiell in
c(n) ist. Also sind Schaltkreisgröße uniformer Schaltkreise und Zeitkomplexität von Turingmaschinen polynomiell verknüpft. Hierbei ist zu beachten, dass die Schaltkreise, die
Turingmaschinen simulieren, uniform sind. Dieses Resultat untermauert wiederum die
erweiterte Churchsche These.
Es stellt sich fast die Frage, ob es überhaupt sinnvolle“ Schaltkreise gibt, die nichtuniform
”
sind. Dies ist in der Tat der Fall. Lange Zeit waren die einzigen bekannten Schaltkreise
mit Tiefe O(log n) für die Division zweier Zahlen im Sinne von Definition 13.3.4 nichtuniform. Erst im Jahr 2001 wurden uniforme Schaltkreise der Tiefe O(log n) für die Division
gefunden. Der Vorteil der nichtuniformen Schaltkreise für die Division bestand darin,
dass man bei der Konstruktion der Schaltkreise Primzahlen p1 , . . . , pl , die von der Eingabelänge abhängen, benutzt hat. Dies ermöglichte es, durch Anwendung des Chinesischen
Restklassensatzes Operationen modulo dieser Primzahlen und damit auf kleineren Zahlen
auszuführen.
Auf die nichtuniformen Komplexitätsklassen SIZE(c(n)), P-SIZE und DEPTH(d(n)) neben den uniformen Komplexitätsklassen DTIME(t(n)), P und DTAPE(s(n)) kann auf
jeden Fall auch in der Praxis nicht verzichtet werden. Andererseits haben wir aber auch
gesehen, dass es im Normalfall enge Beziehungen zwischen uniformer und nichtuniformer
Komplexität gibt.
114
Wir werden nun auch für nichtuniforme Rechner, also Schaltkreise, nichtdeterministische Komplexitätsklassen einführen, um zu zeigen, dass es in beiden Bereichen ähnliche
Probleme gibt. Dann wenden wir uns der praktisch höchst interessanten Frage zu, ob NPvollständige Probleme, selbst wenn NP 6= P ist, polynomielle Schaltkreise haben können.
Dies ist also die Frage, ob Hardwarelösungen das NP 6= P-Problem umgehen können.
13.4
Eine Charakterisierung der Sprachen mit polynomiellen
Schaltkreisen
In den bisherigen Abschnitten dieses Kapitels haben wir uns mit nichtuniformen Schaltkreisen vertraut gemacht und uns an nichtuniforme Komplexitätsklassen herangetastet.
Jetzt sind wir in der Lage, allgemein nichtuniforme Komplexitätsklassen zu definieren und
zu untersuchen. Es wird sich zeigen, dass für nichtuniforme Komplexitätsklassen Schaltkreise ein gutes Beschreibungsmittel sind. Die Definition der Komplexitätsklassen geht
aber auf Turingmaschinen mit Orakeleingabe zurück. Wir werden nun nur noch das Alphabet {0, 1} benutzen. Dabei benutzen wir die Abbildung h·, ·i : ({0, 1}∗ )2 → {0, 1}∗ als
Codierung eines Paares (x, y) als String in {0, 1}∗ . Die Länge von hx, yi ist O(|x| + |y|),
und (x, y) soll aus hx, yi in Zeit O(|x| + |y|) berechenbar sein.
Definition 13.4.1: Sei F eine Klasse von Funktionen h : → {0, 1}∗ . Insbesondere sei
Poly die Klasse aller Funktionen h, für die |h(n)| durch ein Polynom p(n) beschränkt ist.
Sei C eine Klasse von Sprachen über {0, 1}. Dann ist
C/F := {L ⊆ {0, 1}∗ | ∃B ∈ C ∃h ∈ F : L = {x | hx, h(|x|)i ∈ B}}
die Klasse aller Sprachen, die relativ zu einer Orakelfunktion aus F zur Klasse C gehören.
Der folgende Satz zeigt, dass diese Definition mit unserer Intuition übereinstimmt.
Satz 13.4.2: Die Sprache L gehört genau dann zu P/Poly, wenn die booleschen Funktionen f L = (fnL ) polynomielle Schaltkreise haben.
Beweis: Sei zunächst angenommen, dass L ∈ P/Poly ist. Dann gibt es eine Sprache
B ∈ P und ein Orakel polynomieller Länge h ∈ Poly, so dass L = {x | hx, h(|x|)i ∈ B}
ist. Also gibt es eine polynomiell zeitbeschränkte Turingmaschine, die entscheidet, ob
hx, h(|x|)i ∈ B ist. Für die Simulation durch einen Schaltkreis für Eingaben x der Länge
n ist h(|x|) = h(n) ein konstanter String. Nach Korollar 13.2.5 kann diese Turingmaschine
durch polynomielle Schaltkreise simuliert werden.
Sei nun angenommen, dass es für f L = (fnL ) Schaltkreise Cn polynomieller Größe gibt. Es
sei B die Sprache aller hx, yi, so dass y die Codierung eines Schaltkreises C auf |x| Inputs
ist und C auf x den Wert 1 berechnet. Der Beweis von Satz 13.3.2 zeigt, dass B ∈ P ist.
Sei nun h(n) die Codierung von Cn . Dann ist h ∈ Poly und L = {x | hx, h(|x|)i ∈ B}.
Also ist L ∈ P/Poly.
2
Korollar 13.4.3: P-SIZE = P/Poly.
115
Wir werden in Zukunft die gebräuchlichere Bezeichnung P/Poly verwenden. Damit wird
deutlich gemacht, dass nur das Vorhandensein von Orakeln nichtuniforme von uniformen
Komplexitätsklassen unterscheidet. Nach Definition 13.4.1 ist auch die Klasse NP/Poly
definiert. Was haben wir uns unter dieser Klasse vorzustellen?
Definition 13.4.4: Die Sprache L ⊆ {0, 1}∗ hat erzeugende Schaltkreise Cn polynomieller Größe, wenn k(n), die Zahl der Inputs von Cn , und c(n), die Zahl der Bausteine von
Cn , polynomiell beschränkt sind und wenn es n + 1 ausgewählte Bausteine G0 , . . . , Gn in
Cn gibt, so dass gilt
L ∩ {0, 1}n = {(res(G1 , a), . . . , res(Gn , a)) | a ∈ {0, 1}k(n) , res(G0 , a) = 1}.
Hierbei gibt res(G, a) an, was an Baustein G bei Eingabe a berechnet wird.
Die Vektoren in L ∩ {0, 1}n sind also genau die Vektoren, die an (G1 , . . . , Gn ) für die
Eingaben berechnet werden, für die an G0 der Wert 1 berechnet wird. Wir erklären diesen
Begriff an Sprachen L ∈ P/Poly. Dann gibt es für fnL polynomielle Schaltkreise Cn mit
genau n Inputs. Diese Schaltkreise erzeugen auf triviale Weise L∩{0, 1}n . Als (G1 , . . . , Gn )
wählen wir den Inputvektor (x1 , . . . , xn ) und als G0 den Outputbaustein, an dem fnL (x)
berechnet wird. Natürlich stimmt L∩{0, 1}n mit der Menge der Vektoren x = (x1 , . . . , xn )
überein, für die fnL (x) = 1 ist. Der Begriff erzeugende Schaltkreise wird aber nicht durch
diese einfache Betrachtung, sondern durch den folgenden Satz motiviert.
Satz 13.4.5: Die Sprache L gehört genau dann zu NP/Poly, wenn L erzeugende Schaltkreise polynomieller Größe hat.
Beweis: Sei zunächst angenommen, dass L ∈ NP/Poly ist. Also gibt es eine Sprache
B ∈ NP und ein Orakel h ∈ Poly, so dass gilt
L = {x | hx, h(|x|)i ∈ B}.
Nach Satz 7.3.11 gibt es, da NP = Σ1 ist, eine Sprache L0 ∈ P und ein Polynom p, so dass
gilt
L = {x | ∃y ∈ {0, 1}p(|x|) : hx, h(|x|), yi ∈ L0 }.
Da L0 ∈ P ist, gibt es nach Korollar 13.2.5 Schaltkreise Cn polynomieller Größe q(n), die
auf dem Inputvektor (x, y) der Länge n + p(n) arbeiten, das Orakel h(n) als konstanten
Input haben und genau dann 1 berechnen, wenn hx, h(n), yi ∈ L0 ist. Diese Schaltkreise
erzeugen L. Als (G1 , . . . , Gn ) wählen wir (x1 , . . . , xn ) und als G0 den Outputbaustein.
Genau für alle x ∈ L gibt es ein y, so dass Cn auf (x, y) den Wert 1 berechnet.
Sei nun angenommen, dass Cn eine Folge erzeugender Schaltkreise polynomieller Größe
für L ist. Wir definieren das Orakel h(n) als Codierung von Cn , G0 , . . . , Gn und k(n).
Dann ist h ∈ Poly. Sei B die Menge aller hx, yi, so dass für n = |x| gilt:
– y ist die Codierung eines Schaltkreises auf k(n) Inputs sowie von n + 1 Bausteinen
G0 , . . . , Gn und von k(n).
– es gibt einen Input a ∈ {0, 1}k(n) mit res(G0 , a) = 1 und res(Gi , a) = xi für 1 ≤ i ≤ n.
116
Es gilt B ∈ NP. Die erste Bedingung kann deterministisch überprüft werden. Die zweite Bedingung kann nichtdeterministisch überprüft werden, indem a geraten wird. Nach
Definition gilt L = {x | hx, h(|x|)i ∈ B}, und damit ist L ∈ NP/Poly.
2
Nun sollte es niemanden mehr überraschen, dass es ein interessantes offenes Problem ist,
ob NP/Poly 6= P/Poly ist.
13.5
Probleme in BPP haben polynomielle Schaltkreise
Die Klasse BPP beschreibt Probleme, die praktisch gut handhabbar sind, da die Irrtumswahrscheinlichkeit sehr klein gemacht werden kann. Falls BPP eine echte Oberklasse von
P ist, können wir die Irrtumswahrscheinlichkeit vermutlich nicht auf 0 senken.
Dies gilt allerdings nur, wenn wir uns auf uniforme Algorithmen beschränken. Der nächste
Satz zeigt, dass Probleme in BPP nichtuniform, also mit Schaltkreisen, irrtumsfrei in polynomieller Zeit gelöst werden können. Da RP ⊆ BPP, folgt die Existenz von Schaltkreisen
polynomieller Größe, die Zahlen darauf testen, ob sie Primzahlen sind.
Satz 13.5.1: BPP ⊆ P/Poly, d.h. die zu Sprachen L ∈ BPP gehörigen booleschen Funktionen f L = (fnL ) haben Schaltkreise polynomieller Größe.
Beweis: Sei M eine BPP-Turingmaschine für L. Wenn es einen Rechenweg von M gibt,
der für alle x mit |x| = n das richtige Ergebnis liefert, dann kann dieser Rechenweg
als Orakel polynomieller Länge dienen. Deterministische Turingmaschinen können ohne
Zeitverlust probabilistische Turingmaschinen auf einem gegebenen Rechenweg simulieren.
Allerdings muss es für M einen solchen Rechenweg nicht geben. Wir wenden Satz 3.8.4
(Buch) für k = 2|x| an. Die probabilistische Turingmaschine Mk ist, da ε eine Konstante
ist, polynomiell zeitbeschränkt.
Rechenwege probabilistischer Turingmaschinen mit Zeitschranke p(n) lassen sich als Vektoren a ∈ {0, 1}p(n) beschreiben. Es gibt 2n+p(n) Paare (x, a) aus Eingaben und Rechenwegen. Da die Irrtumswahrscheinlichkeit von Mk durch 2−2n für n = |x| beschränkt ist,
ist die Zahl falscher Rechenwege für festes x durch 2p(n)−2n beschränkt. Also ist die Zahl
der Paare (x, a), für die a ein falscher Rechenweg für die Eingabe x ist, durch 2p(n)−n beschränkt. Da 2p(n) − 2p(n)−n ≥ 1 ist, gibt es mindestens einen Rechenweg h(n) ∈ {0, 1}p(n) ,
der für alle Eingaben x mit |x| = n korrekt ist. Nach Definition ist h ∈ Poly. Sei
B = {hx, yi | y ∈ {0, 1}p(|x|), Mk (x) = 1 auf Rechenweg y}.
Nach unseren Vorbemerkungen ist B ∈ P . Also ist L = {x | hx, h(|x|)i ∈ B} ∈ P/Poly
und nach Satz 13.4.2 hat f L = (fnL ) Schaltkreise polynomieller Größe.
2
Die im Beweis von Satz 13.5.1 konstruierten“ Schaltkreise sind nichtuniform. Wir haben
”
keine Idee, wie wir den goldenen“ Rechenweg h(n) effizient berechnen können. Wir se”
hen also, dass der Unterschied zwischen uniformen und nichtuniformen Schaltkreisen aus
heutiger Sicht gravierend ist.
117
13.6
Kann SAT polynomielle Schaltkreise haben?
Falls NP = P, ist SAT ∈ P und hat polynomielle Schaltkreise. Aber selbst wenn NP 6= P ist,
können wir bisher nicht ausschließen, dass SAT polynomielle Schaltkreise hat. Wir wollen
in diesem Abschnitt eine typische Vorgehensweise aus der Komplexitätstheorie vorstellen.
Wir glauben nicht, dass SAT polynomielle Schaltkreise hat. Aus der Annahme, dass SAT
doch polynomielle Schaltkreise hat, leiten wir eine noch unwahrscheinlichere Aussage her
und unterstützen damit unsere ursprüngliche Vermutung.
Definition 13.6.1: Eine Sprache L heißt polynomiell selbstreduzierbar, wenn sie von
einer polynomiell zeitbeschränkten Orakelturingmaschine mit Orakel L akzeptiert wird,
wobei für Eingaben der Länge n das Orakel nur für Eingaben der Länge m < n befragt
werden darf.
Satz 13.6.2: SAT ist polynomiell selbstreduzierbar.
Beweis: Die Eingabe bestehe aus der Variablenmenge V = {x1 , . . . , xn } und der Klauselmenge C = {c1 , . . . , cm }. Wir befragen das Orakel für V 0 = {x2 , . . . , xn } und die
Klauselmenge C 0 = {c01 , . . . , c0m }, wobei c0i aus ci entsteht, indem x1 durch 0 ersetzt wird.
Danach befragen wir das Orakel für V 0 und C 1 = {c11 , . . . , c1m }, wobei c1i aus ci entsteht,
indem x1 durch 1 ersetzt wird. Die Eingabe wird genau dann akzeptiert, wenn eine der
beiden Orakelfragen mit Ja“ beantwortet worden ist.
2
”
Bevor wir unser Hauptergebnis dieses Abschnitts beweisen können, benötigen wir noch
zwei Hilfsaussagen. Leider sind deren Beweise recht technisch.
Mit L≤n bezeichnen wir die Vereinigung aller L∩{0, 1}m mit m ≤ n. Für Turingmaschinen
M und Sprachen B bezeichnen wir mit L(M ) die von M akzeptierte Sprache und mit
L(M, B) die Sprache, die M akzeptiert, wenn als Orakel die Sprache B benutzt wird.
Lemma 13.6.3: Es sei A polynomiell selbstreduzierbar und sei M die zugehörige polynomiell zeitbeschränkte Turingmaschine. Falls L(M, B)≤n = B≤n ist, dann ist auch
A≤n = B≤n .
Beweis: Induktion über n. Für n = 0 darf M das Orakel nicht befragen. Also arbeitet
M für alle Orakel gleich, d.h. A≤0 = L(M, A)≤0 = L(M, B)≤0 = B≤0 .
Im Induktionsschritt ist L(M, B)≤n+1 = B≤n+1 vorausgesetzt. Damit gilt aber auch
L(M, B)≤n = B≤n und nach Induktionsvoraussetzung A≤n = B≤n . Nach Definition 13.5.1
befragt M für Eingaben x mit |x| ≤ n + 1 das Orakel nur für Wörter y mit |y| ≤ n. Für
diese Wörter sind jedoch die Orakel A und B, wie gezeigt, gleich. Es folgt
A≤n+1 = L(M, A)≤n+1 = L(M, A≤n )≤n+1 = L(M, B≤n )≤n+1 = L(M, B)≤n+1 = B≤n+1 .
2
118
Im Folgenden sei eine Codierung von Eingaben für SAT festgelegt. Ein polynomieller
Schaltkreis für SAT ist eine Folge C0 , C1 , . . . von Schaltkreisen, wobei wir davon ausgehen, dass der Schaltkreis Ci als Eingabe eine Codierung einer Formel (=Konjunktion von
Klauseln) bekommt, wobei die Länge der Codierung höchstens i ist. Sei M die Orakelturingmaschine aus dem Beweis der Selbstreduzierbarkeit für SAT. Wir bezeichnen mit
L(M, Cm ) die Sprache, die von dieser Turingmaschine akzeptiert wird, wenn sie anstelle
der Orakelaufrufe den Schaltkreis Cm auswertet. Wenn M polynomiell zeitbeschränkt ist
und Cm polynomielle Größe hat, kann man (durch Simulation) für jede Eingabe x mit
|x| ≤ m in polynomieller Zeit testen, ob x ∈ L(M, Cm ) ist.
Wie schon früher sei genau dann L(M, Cm )(w) = 1, wenn w ∈ L(M, Cm ), und ansonsten
0. Dann gilt:
∀ Codierungen w mit Länge höchstens m : L(M, Cm )(w) = Cm (w).
(1)
D.h., wir erhalten auf w dasselbe Ergebnis, wenn wir den Schaltkreis Cm auswerten oder
wenn wir die Orakelturingmaschine M mit Orakel Cm laufen lassen. Diese Eigenschaft von
Schaltkreisen für SAT (oder allgemeiner von Schaltkreisen für polynomiell selbstreduzierbare Sprachen) wird auch als Selbsttest-Eigenschaft bezeichnet. Lemma 13.5.3 besagt,
dass bereits aus der Bedingung (1) folgt, dass Cm für Eingaben mit Länge höchstens m
das Problem SAT berechnet. Im folgenden Beweis werden wir den Ausdruck
∃ Schaltkreis S polynomieller Größe ∀w, |w| ≤ m : L(M, S)(w) = S(w)
(2)
benutzen. Wenn SAT polynomielle Schaltkreise C0 , C1 , . . . hat, erfüllt Cm für S eingesetzt
die Bedingung in (2). Aus Lemma 13.5.3 folgt, wie eben gesagt, dass ein Schaltkreis S in (2)
auf Eingaben mit Länge höchstens m das Problem SAT löst. Wir werden diesen Ausdruck
in die Σ3 -Charakterisierung einer Sprache integrieren, die sich durch die Verwendung von
S in eine Σ2 -Charakterisierung umformen lässt. Da S hinter einem Existenzquantor steht,
braucht der verwendete polynomielle Schaltkreis für SAT nicht bekannt und auch nicht
einmal berechenbar zu sein.
Satz: SAT ∈ P/P oly ⇒ Σ2 = Σ3 .
Beweis: Sei C0 , C1 , . . . eine Folge von polynomiellen Schaltkreisen für SAT mit den o.g.
Eingabekonventionen. Es genügt zu zeigen, dass Σ3 ⊆ Σ2 folgt. Sei also L ∈ Σ3 . Nach
Satz 7.3.11 gibt es ein Polynom p und eine Sprache B ∈ P, so dass
L = {x | ∃y, |y| ≤ p(|x|), ∀z, |z| ≤ p(|x|), ∃z 0 , |z 0 | ≤ p(|x|) : (x, y, z, z 0 ) ∈ B}.
Aufgrund der Charakterisierung von NP in Satz 3.2.10 gibt es eine Sprache R ∈ NP, so
dass
L = {x | ∃y, |y| ≤ p(|x|), ∀z, |z| ≤ p(|x|) : (x, y, z) ∈ R}.
Da SAT NP-vollständig ist, gilt R ≤p SAT, d.h., es gibt eine polynomiell berechenbare
Funktion f , so dass f (x, y, z) eine Konjunktion von Klauseln ist, die genau dann erfüllbar
ist, wenn (x, y, z) ∈ R. Dabei ist die Größe von f (x, y, z) polynomiell in der Länge von
119
(x, y, z) beschränkt. Wir gehen o.B.d.A. davon aus, dass die Länge der Codierung von
f (x, y, z) durch p(|x|) beschränkt ist. Im Folgenden unterscheiden wir nicht mehr explizit
zwischen f (x, y, z) und seiner Codierung. Wir erhalten:
L = {x | ∃y, |y| ≤ p(|x|), ∀z, |z| ≤ p(|x|) : f (x, y, z) erfüllbar}.
(3)
Um zu zeigen, dass L ∈ Σ2 , beweisen wir die folgende Charakterisierung von L. Sei M
wieder die Orakelturingmaschine aus dem Beweis der Selbstreduzierbarkeit von SAT.
L = {x | ∃ Schaltkreis S polynomieller Größe ∃y, |y| ≤ p(|x|),
∀w, |w| ≤ p(|x|), ∀z, |z| ≤ p(|x|) :
(a) L(M, S)(w) = S(w) und
(b) S(f (x, y, z)) = 1}.
(4)
Zunächst beachten wir, dass die Bedingungen (a) und (b) in polynomieller Zeit getestet
werden können, da es sich um die Simulation einer polynomiell zeitbeschränkten Orakelturingmaschine mit einem durch einen polynomiellen Schaltkreis ersetzten Orakel und
um die Simulation von polynomiellen Schaltkreisen handelt. Also handelt es sich um eine
Charakterisierung nach Satz 7.3.11, d.h., es folgt L ∈ Σ2 .
Es bleibt die Korrektheit der Charakterisierung zu zeigen. Wir beginnen mit der Inklusion
⊆“. Sei x ∈ L gegeben. Als Schaltkreis S wählen wir den polynomiellen Schaltkreis
”
Cp(|x|) für SAT; dieser erfüllt nach der Vorbetrachtung die Bedingung (a) für alle w mit
|w| ≤ p(|x|). Da x ∈ L, gibt es wegen (3) ein y, |y| ≤ p(|x|), so dass für alle z, |z| ≤ p(|x|),
die Formel f (x, y, z) erfüllbar ist. Da die Länge von f (x, y, z) durch p(|x|) beschränkt ist,
berechnet der Schaltkreis S für SAT auf dieser Formel eine 1.
Wir zeigen nun die Inklusion ⊇“. Das Wort x erfülle also die Charakterisierung (4). Da
”
nach dieser Charakterisierung
∀w, |w| ≤ p(|x|) : L(M, S)(w) = S(w),
berechnet der Schaltkreis S nach Lemma 13.5.3 für Eingaben mit Länge höchstens p(|x|)
das Problem SAT. Wegen Bedingung (b) gibt es ein y, |y| ≤ p(|x|), so dass für alle
z, |z| ≤ p(|x|) die Formel f (x, y, z) erfüllbar ist. Wegen (3) folgt x ∈ L.
2
Da wir vermuten, dass Σ2 6= Σ3 ist, haben wir nun eine gute Basis für die Vermutung,
dass zumindest die polynomiell selbstreduzierbaren NP-vollständigen Probleme keine polynomiellen Schaltkreise haben.
Der für diese wichtige Aussage benutzte Beweis ist nicht mehr anschaulich, leider! In
der Komplexitätstheorie ist stets darauf zu achten, dass man nicht der Gefahr erliegt,
Aussagen der Art If horses can whistle, then pigs can fly“ zu beweisen. In diesem Kapitel
”
sind wir wohl dieser Gefahr noch nicht erlegen.
120
13.7
Branchingprogramme und nichtuniformer Platz
Die Beziehungen zwischen Schaltkreisgröße und Zeitbedarf nichtuniformer Turingmaschinen sind sehr eng, während die Beziehungen zwischen Schaltkreistiefe (und damit paralleler Rechenzeit) und Platzbedarf nichtuniformer Turingmaschinen eng, aber nicht sehr eng
sind. Hier stellen wir ein Berechnungsmodell für boolesche Funktionen vor, dessen Größe
einen sehr engen Bezug zum Platzbedarf nichtuniformer Turingmaschinen hat.
Definition 13.7.1: Ein Branchingprogramm über der Menge X = {x1 , . . . , xn } boolescher Variablen ist ein gerichteter azyklischer Graph mit höchstens zwei Senken, die mit
booleschen Konstanten markiert sind. Innere Knoten sind mit einer booleschen Variablen
aus X markiert und haben zwei ausgehende Kanten, von denen eine mit 0 und die andere
mit 1 markiert ist. Jeder Knoten v stellt eine boolesche Funktion fv : {0, 1}n → {0, 1} dar.
Man erhält den Wert fv (a), wenn man an v startet und an xi -Kanten der mit ai markierten
Kante folgt und schließlich die Markierung der erreichten Senke ausgibt. Die Größe eines
Branchingprogramms ist gleich der Anzahl seiner Knoten. Die Branchingprogrammgröße
BP (f ) einer booleschen Funktion f ist die Größe des kleinsten Branchingprogrammes,
das f berechnet.
Satz 13.7.2: Sei fn : {0, 1}n → {0, 1} eine Folge boolescher Funktionen, dann gibt es
nichtuniforme Turingmaschinen, die fn mit Platzbedarf O(log(BP (fn ))+log n) berechnen.
Beweis: Die nichtuniforme Turingmaschine erhält als Orakel bei Eingabelänge n die Beschreibung eines Branchingprogrammes Gn , das fn mit Größe BP (fn ) berechnet. Dabei
wird Gn als Folge der Knoten beschrieben, wobei die Beschreibung eines Knotens die
Knotennummer, die Markierung und die Nummern der beiden Nachfolger enthält. Die
Funktion fn wird o.B.d.A. am Knoten 1 dargestellt. Die Beschreibung eines Knotens hat
die Länge O(log(BP (fn ))+log n), also ist die Orakellänge O(BP (fn )(log(BP (fn ))+log n))
und trägt O(log BP (fn ) + log log n) zum Platzbedarf bei. Bei der Auswertung von fn ist
es ausreichend, wenn der aktuelle Knoten auf dem Berechnungspfad auf dem Arbeitsband steht. Hat der Knoten die Markierung xi , wird auf dem Inputband der Wert von xi
bestimmt und damit die Nummer des Nachfolgeknotens auf dem Berechnungspfad festgelegt. Alle weiteren Informationen über den aktuellen Knoten werden gelöscht und es wird
vom Orakelband die Beschreibung des nun aktuellen Knotens kopiert. Der Platzbedarf
auf dem Arbeitsband ist durch die Beschreibungslänge für einen Knoten beschränkt. 2
Satz 13.7.3: Sei fn : {0, 1}n → {0, 1} eine Folge boolescher Funktionen, die mit Platzbedarf s(n) von einer nichtuniformen Turingmaschine berechnet werden kann. Dann kann
fn von Branchingprogrammen der Größe 2O(s(n)+log n) berechnet werden.
Beweis: Wir wissen, dass 2O(s(n)+log n) eine Schranke für die Anzahl verschiedener Konfigurationen der gegebenen nichtuniformen Turingmaschinen ist. Für jede Konfiguration
erzeugen wir einen Knoten des Branchingprogrammes. Die Berechnung startet an dem
Knoten, der der Anfangskonfiguration entspricht. Endkonfigurationen werden Senken.
Akzeptierende Endkonfigurationen werden zu einer 1-Senke verschmolzen, verwerfende
121
Endkonfigurationen zu einer 0-Senke. Alle anderen Konfigurationen werden mit der Variablen xi markiert, die auf dem Eingabeband gelesen wird. Der c-Nachfolger, c ∈ {0, 1},
entspricht der Konfiguration, die Nachfolgekonfiguration für den Fall xi = c ist. Damit ist
offensichtlich, dass das erzeugte Branchingprogramm fn berechnet.
2
122
14
14.1
Untere Schranken für die Komplexität boolescher
Funktionen
Schaltkreisgröße
Nach den Ergebnissen aus Kap. 13 ist klar, dass wir für Funktionenfolgen, die zu Problemen in NP gehören, keine nichtpoynomiellen unteren Schranken kennen. Die Situation
ist noch schlimmer. Selbst für Funktionen fn : {0, 1}n → {0, 1}n gibt es keine nichtlinearen unteren Schranken und für keine Funktion kann nachgewiesen werden, dass sie nicht
gleichzeitig mit linearer Größe und logarithmischer Tiefe berechenbar ist.
Die größte bewiesene untere Schranke für die Schalkreisgröße einer explizit beschriebenen
(d. h. die Folge beschreibt ein Problem in NP) booleschen Funktion ist seit Beginn der
80er Jahre eine Schranke der Größe 3n − O(log n). Hierbei setzen wir voraus, dass an
Bausteinen jede boolesche Funktion mit zwei Inputs (also z. B. auch EXOR) realisiert
werden kann. Die Schranke n − 1 ist für jede Funktion, die essentiell von n Variablen
abhängt, dagegen trivial. Ein zusammenhängender Graph mit n Quellen und einer Senke,
braucht 2n − 1 Knoten und damit n − 1 Bausteine. Die Beweise aller Schranken der Größe
(2 + ε)n, ε ≥ 0, (es gibt gar nicht viele) sind kompliziert. Wir stellen daher nur eine
2n − 3-Schranke vor.
n
Satz 14.1.1: Es sei T≥2
die so genannte Thresholdfunktion, die überprüft, ob die Eingabe
n
mindestens zwei Einsen enthält. Dann ist C(T≥2
) ≥ 2n − 3.
n
Beweis: Der topologisch erste Baustein G1 eines optimalen Schaltkreises für T≥2
hat
zwei Variablen als Vorgänger. Der Schaltkreis kann nämlich verkleinert werden, wenn er
auf eine Konstante zugreift. Gleiches gilt, wenn ein Baustein dieselbe Variable an beiden
Eingängen hat. Es seien xi und xj die Eingänge von G1 . Es sei x0 = x und x1 = x. Dann
realisiert G1
(xai ∧ xbj )c oder xi ⊕ xj ⊕ a
für geeignete a, b, c ∈ {0, 1}. Wenn xj den Fan-out 1 hat, kann im ersten Fall durch die
Konstantsetzung xi = a der Schaltkreis von xj unabhängig gemacht werden. Die Funktion
n
T≥2
hängt aber für xi = a noch von xj ab (sofern n ≥ 2). Wenn xi und xj den Fan-out 1
haben, dann erhalten wir für xi = xj = 0 und für xi = xj = 1 denselben Subschaltkreis
n−2
n
und im zweiten Fall durch die
im Widerspruch dazu, dass T≥2
im ersten Fall durch T≥2
Konstante 1 ersetzt wird. Also können wir o. B. d. A. davon ausgehen, dass xj Fan-out
n−1
. Da wir die von xj
2 hat. Wir setzen xj = 0 und erhalten einen Schaltkreis für T≥2
erreichten Bausteine eliminieren können, folgt für n ≥ 2
n
n−1
) + 2.
C(T≥2
) ≥ C(T≥2
2
Die Behauptung folgt, da T≥2
(x1 , x2 ) = x1 ∧ x2 ist.
123
2
14.2
Formelgröße und Branchingprogrammgröße
Für diese beiden mit dem Platzbedarf verwandten Komplexitätsmaße gibt es nicht lineare, aber keine quadratischen unteren Schranken. Die besten Schranken gehen auf eine
Methode zurück, die von Nechiporuk in den 60er Jahren entwickelt wurde.
Lemma 14.2.1: Die Anzahl boolescher Funktionen fn : {0, 1}n → {0, 1} mit BP(fn ) ≤ s
ist für s ≥ 2 durch (s − 2)ns−2 ((s − 1)!)2 + 2 nach oben beschränkt.
Beweis: Wir benutzen eine umgekehrte topologische Reihenfolge der Knoten des Branchingprogramms, wobei die ersten beiden Knoten die Senken sind. Der Faktor ns−2 beschreibt die Möglichkeiten, die inneren Knoten zu markieren, und der Faktor s − 2 die
Tatsache, dass ein Branchingprogramm mit s Knoten, von denen zwei Senken sind, s − 2
nicht konstante Funktionen berechnet. Der Summand 2 erfasst die konstanten Funktionen. Der j-te innere Knoten hat die Wahl zwischen j + 1 Knoten (j − 1 innere Knoten und
2 Senken) für den 0-Nachfolger und ebenso vielen Knoten für den 1-Nachfolger. Damit ist
die Anzahl verschiedener Verknüpfungen durch ((s − 1)!)2 nach oben beschränkt.
2
Satz 14.2.2: Sei f : {0, 1}n → {0, 1} eine boolesche Funktion, die von allen n Variablen
essentiell abhängt. Seien S1 , . . . , Sk ⊆ X = {x1 , . . . , xn } disjunkte Variablenmengen und
si die Anzahl verschiedener nicht konstanter Subfunktionen von f , die entstehen, wenn
alle Variablen außerhalb von Si durch Konstanten ersetzt werden. Dann gilt
X
BP(f ) = Ω(
(log si )/ log log si ).
1≤i≤k
Hinter dieser Methode steht die Idee, dass Funktionen mit vielen verschiedenen Subfunktionen schwierig sein müssen. Allerdings ist zu beachten, dass es eine Funktion mit extrem
vielen Subfunktionen gibt, die lineare Schaltkreisgröße hat.
Beweis von Satz 14.2.2: Sei G ein Branchingprogramm minimaler Größe für f und sei
ti die Anzahl der mit Variablen aus Si markierten Knoten. Dann gilt
BP(f ) ≥ t1 + · · · + tk + 2
und es genügt ti = Ω((log si )/ log log si ) zu zeigen. Da f von allen Variablen essentiell
abhängt, gilt ti ≥ |Si |.
Jede Subfunktion von f auf Si wird durch ein Branchingprogramm berechnet, das wir auf
folgende Weise aus G erhalten. Die Variablen außerhalb von Si werden durch Konstanten
ersetzt. Damit steht für die zugehörigen Knoten der Nachfolger fest und die in den Knoten
eingehenden Kanten können direkt zum Nachfolger geleitet werden. Also ist die Größe
des entstehenden Branchingprogramms durch ti + 2 beschränkt. Nach Lemma 14.2.1 ist
die Anzahl der nicht konstanten Subfunktionen von f auf Si also auf folgende Weise
beschränkt:
si ≤ ti · |Si |ti ((ti + 1)!)2 .
124
Da |Si | ≤ ti , folgt für ti ≥ 4
i
si ≤ ttii +1 ((ti + 1)!)2 ≤ t4t
i .
Hieraus folgt
ti log ti = Ω(log si )
und schließlich
ti = Ω((log si )/ log log si ).
2
Satz 14.2.3: Mit den Voraussetzungen von Satz 14.2.2 gilt für die Formelgröße L(f ),
dass
X
L(f ) = Ω(
log si )
1≤i≤k
ist.
Beweis: Formeln können durch binäre Bäume dargestellt werden, wobei viele Blätter mit
derselben Variablen markiert sein dürfen. Wir zeigen die untere Schranke für die Anzahl
der Blätter, die um 1 größer als die Anzahl innerer Knoten ist. Sei ti die Anzahl der mit
Variablen aus Si markierten Blätter. Es genügt zu zeigen, dass ti ≥ 41 log si ist.
Wir betrachten nun die Menge Wi der Knoten in der Formel, für die im linken und im
rechten Teilbaum Si -Blätter liegen. Dann ist |Wi | = ti − 1. Wir betrachten nun Pfade
im Baum, die an Si -Blättern oder Wi -Knoten starten und in Wi -Knoten oder der Wurzel
enden, ohne im Inneren Wi -Knoten zu enthalten. Bei jedem Wi -Knoten kommen zwei
dieser Pfade an, bei der Wurzel eventuell ein weiterer Pfad. Also gilt für die Anzahl pi
der Pfade, dass pi ≤ 2|Wi | + 1 ist. Wenn wir nun die Variablen außerhalb von Si durch
Konstanten ersetzen und den Start eines Pfades als Funktion g auffassen, dann wird am
Ende des Pfades g, g, 0 oder 1 berechnet. Also gibt es maximal 4pi Si -Subfunktionen, d.h.
si ≤ 4pi ≤ 42|Wi |+1 ≤ 42ti
und somit log si ≤ 4ti und ti ≥
1
4
log si .
2
Schließlich wollen wir eine Funktion angeben, mit der wir die größtmöglichen unteren
Schranken erhalten, die mit der Nechiporuk-Methode erzielbar sind.
Definition 14.2.4: Die Funktion ISAn (indirect storage access, indirekte Adressierung)
ist für n = 2k auf n + k Variablen x0 , . . . , xn−1 , a0 , . . . , ak−1 definiert. Der Vektor (ak−1 ,
. . . , a0 ) wird als Binärzahl |a| ∈ {0, 1, . . . , n − 1} und damit als indirekte Adresse interpretiert. Dann betrachten wir die k x-Variablen x|a| , . . . , x|a|+k−1 (die Indizes werden mod n
interpretiert) und interpretieren diesen Vektor als Binärzahl α(x, a) ∈ {0, 1, . . . , n − 1}.
Schließlich ist ISAn (a, x) = xα(a,x) .
Satz 14.2.5:
i) BP(ISAn ) = Ω(n2 / log2 n).
125
ii) L(ISAn ) = Ω(n2 / log n).
Beweis: Wir betrachten die bn/kc disjunkten Variablenmengen Si = {x(i−1)k , . . . , xik−1 },
1 ≤ i ≤ bn/kc. Wir sind an unteren Schranken für die Anzahl si der Si -Subfunktionen
interessiert. Dazu setzen wir die a-Variablen nur auf eine Weise konstant, nämlich die, für
die |a| = (i − 1)k ist. Die Variablen aus Si dienen nun als direkte Adresse, die auf jede
x-Variable, insbesondere aber auf die n − k x-Variablen außerhalb von Si zeigen kann.
Daher liefern alle 2n−k Belegungen dieser Variablen verschiedene Subfunktionen. Es folgt
si ≥ 2n−k und log si = Ω(n). Da (log x)/ log log x eine monoton wachsende Funktion ist,
ist (log si )/ log log si = Ω(n/ log n). Die Schranken folgen aus Satz 14.2.2 und Satz 14.2.3,
da wir bn/kc = Ω(n/ log n) Si -Mengen haben.
2
Auf eingeschränkte Branchingprogrammmodelle, für die exponentielle untere Schranken
beweisbar sind, gehen wir nicht näher ein. Diese Modelle und Schranken sind einerseits
durch die Entwicklung von Techniken motiviert, mit denen untere Schranken bewiesen
werden können. Andererseits bilden einige dieser Modelle Datenstrukturen für boolesche
Funktionen, die vielfältige Anwendungen, insbesondere in der Verifikation finden.
14.3
Reduktionskonzepte für Schaltkreise und zugehörige Komplexitätsklassen
Wir stellen hier Reduktionskonzepte vor, mit denen sich untere Schranken für die Komplexität boolescher Funktionen übertragen lassen. In diesem Zusammenhang ist es sinnvoll,
auch Komplexitätsklassen vorzustellen, die auf Schaltkreisen mit beschränkter Tiefe aufbauen.
Da Nick Pippenger 1979 die entscheidenden Ergebnisse über die Robustheit dieser Komplexitätsklassen erzielt hat, wurden diese Klassen von Cook mit NC (Nick’s Class) bezeichnet.
Definition 14.3.1: a) NC ist die Klasse boolescher Funktionen f = (fn ), fn ∈ Bn,m(n) ,
die durch Schaltkreise polynomieller Größe und polylogarithmischer Tiefe logO(1) n berechnet werden können.
b) NC k ist die Klasse boolescher Funktionen f = (fn ), fn ∈ Bn,m(n) , die durch Schaltkreise
polynomieller Größe und Tiefe O(logk n) berechnet werden können.
Bemerkung 14.3.2: NC 1 ⊆ NC 2 ⊆ . . . ⊆ NC k ⊆ NC k+1 ⊆ . . . ⊆ NC ⊆ P/Poly.
NC-Schaltkreise gelten als effiziente Schaltkreise. An die Tiefe, also die parallele Rechenzeit stellen wir also weitaus größere Anforderungen als an die Schaltkreisgröße, also die
sequentielle Rechenzeit. Die zentrale Rolle, die die Klasse P bzw. P/Poly für die Effizienz
sequentieller Berechnungen spielt, wird für parallele Berechnungen durch die Klasse NC k
bzw. NC übernommen.
Bisher haben wir Schaltkreise betrachtet, deren Bausteine höchstens zwei Eingänge haben.
In der Praxis ist dieser sogenannte Fan-in nicht durch 2 beschränkt. Daher werden auch
126
Schaltkreise mit unbeschränktem Fan-in betrachtet, d. h. ∧- und ∨-Bausteine dürfen eine
beliebige Anzahl von Eingängen haben. Die der NC-Hierarchie entsprechende Hierarchie
wird mit AC (Alternating Class) bezeichnet. Diese Namensgebung soll auf den engen
Zusammenhang zu alternierenden Turingmaschinen, die wir in dieser Vorlesung nicht
behandeln, hinweisen.
Definition 14.3.3: a) AC ist die Klasse der Folgen boolescher Funktionen f = (fn ),
fn ∈ Bn,m(n) , die durch Schaltkreise mit unbeschränktem Fan-in, polynomieller Größe
und polylogarithmischer Tiefe berechnet werden können.
b) AC k bzw. AC 0,d ist die Klasse der Folgen boolescher Funktionen f = (fn ), fn ∈
Bn,m(n) , die durch Schaltkreise mit unbeschränktem Fan-in, polynomieller Größe und Tiefe
O(logk n) bzw. d berechnet werden können.
Bei unbeschränktem Fan-in können bereits in konstanter Tiefe Funktionen, die von allen
Eingaben abhängen, berechnet werden. Daher ist die Definition der Klassen AC 0 , wobei
O(log0 n) als O(1) interpretiert wird, und AC 0,d sinnvoll. Bei Betrachtungen von AC 0,d
wird angenommen, dass neben den Eingabevariablen x1 , . . . , xn auch deren Negationen
x̄1 , . . . , x̄n Eingänge des Schaltkreises sind. Auch hier gilt offensichtlich die folgende Bemerkung.
Bemerkung 14.3.4: AC 0,1 ⊆ AC 0,2 ⊆ . . . ⊆ AC 0,d ⊆ AC 0,d+1 ⊆ . . . ⊆ AC 0 ⊆ AC 1 ⊆
. . . ⊆ AC k ⊆ AC k+1 ⊆ . . . ⊆ AC.
Die NC- und AC-Hierarchie sind eng verzahnt.
Satz 14.3.5: a) NC k ⊆ AC k .
b) AC k ⊆ NC k+1 .
c) NC = AC.
Beweis: a) Jeder NC k -Schaltkreis ist auch ein AC k -Schaltkreis.
b) Sei C = (Cn ) eine Folge von Schaltkreisen für f = (fn ) mit unbeschränktem Fan-in,
polynomieller Größe p(n) und Tiefe O(logk n). Für ∧- und ∨-Bausteine ist es nutzlos,
wenn zwei oder mehrere Eingänge gleich sind. Es gilt z. B. y ∧ x ∧ y = x ∧ y. Auch sollten
nicht xi und x̄i Eingänge des gleichen Bausteins sein. Konstante Eingänge sind ebenfalls
sinnlos. Also hat jeder Baustein weniger als p(n)+n Eingänge. Derartige Bausteine können
durch balancierte, binäre Bäume mit Bausteinen des gleichen Typs ersetzt werden. Die
Schaltkreisgröße wächst höchstens um den Faktor p(n) + n und bleibt polynomiell. Die
Tiefe wächst höchstens um den Faktor dlog(p(n) + n)e = O(log n) und ist O(logk+1 n).
c) Diese Aussage folgt aus den Aussagen a) und b).
2
Wir haben erwähnt, dass es auch für Schaltkreise kaum befriedigende untere Schranken für
die Komplexität von Problemen gibt. Den Ausweg kennen wir bereits. Wir bestimmen mit
Hilfe von Reduktionskonzepten die relative Komplexität von Problemen. Das erfolgreiche
Konzept von Orakelturingmaschinen ersetzen wir hier durch Orakelschaltkreise.
127
Definition 14.3.6: Es sei g = (gn ) mit gn ∈ Bk(n),l(n) für polynomiell wachsende Funktionen k und l. Orakelschaltkreise mit Orakel g dürfen neben den üblichen Bausteinen
auch Bausteine für gi und ḡi , wobei i ≤ p(n) für ein Polynom p ist, enthalten.
Der Einfachheit halber nehmen wir im folgenden an, dass auch die negativen Literale
x̄1 , . . . , x̄n zu den Inputs der Schaltkreise gehören. Ein Problem P1 ist insbesondere dann
auf P2 reduzierbar, wenn P1 in einem gewissen Sinn ein Spezialfall von P2 ist.
Definition 14.3.7: f = (fn ) ist eine Projektion von g = (gn ), Notation f ≤proj g,
wenn f durch g-Orakelschaltkreise berechenbar ist, die nur aus einem Orakelbaustein
bestehen. Eine Projektion heißt read-once Projektion, Notation f ≤rop g, wenn in den
Orakelbaustein jede Variable xi nur einmal (eventuell negiert) eingeht.
Im Allgemeinen enthalten Orakelschaltkreise sowohl viele normale Bausteine als auch
viele Orakelbausteine. Daher stellt sich die Frage, welche Kosten die Orakelbausteine
verursachen.
Definition 14.3.8: a) f = (fn ) heißt NC 1 -reduzierbar auf g = (gn ), Notation f ≤1 g,
wenn f durch g-Orakelschaltkreise polynomieller Größe und Tiefe O(log n) berechenbar
ist. Der Fan-in normaler Bausteine ist dabei durch 2 beschränkt. Ein Orakelbaustein für
gi oder ḡi trägt den Summanden i zur Schaltkreisgröße bei, seine Tiefe ist dlog ie.
b) f = (fn ) heißt AC 0 -reduzierbar (constant depth reducible) auf g = (gn ), Notation
f ≤cd g, wenn f durch g-Orakelschaltkreise mit unbeschränktem Fan-in, polynomieller
Größe und Tiefe O(1) berechenbar ist. Ein Orakelbaustein für gi oder ḡi trägt den Summanden i zur Schaltkreisgröße bei, seine Tiefe ist 1.
Lemma 14.3.9: a) f ≤proj g ⇒ f ≤cd g ⇒ f ≤1 g.
b) ≤proj , ≤cd und ≤1 sind reflexiv und transitiv.
Beweis: a) Falls f ≤proj g, lässt sich fn durch einen Orakelbaustein für gi oder ḡi mit
i ≤ p(n) für ein Polynom p berechnen. Dieser g-Orakelschaltkreis beweist auch f ≤cd g.
Falls f ≤cd g, lässt sich f durch g-Orakelschaltkreise mit unbeschränktem Fan-in berechnen. Die Größe ist polynomiell und die Tiefe O(1). Wir ersetzen wie im Beweis von
Satz 14.3.5 ∧- und ∨-Bausteine mit zu großem Fan-in durch balancierte binäre Bäume.
Jeder Baum hat polynomielle Größe und logarithmische Tiefe. Für die Orakelbausteine
ändert sich nur die Bewertung der Tiefe, die Tiefe jedes Orakelbausteins ist O(log n).
Der so erhaltene Fan-in 2 g-Orakelschaltkreis hat polynomielle Größe und logarithmische
Tiefe.
b) Offensichtlich gilt f ≤proj f , f ≤cd f und f ≤1 f , da sich fn durch einen fn Orakelbaustein berechnen lässt.
Wir zeigen die Transitivität zunächst für Projektionen. Sei f ≤proj g und g ≤proj h. Dann
gibt es (o.B.d.A. monoton wachsende) Polynome p und q, so dass sich fn durch einen
Orakelbaustein gi oder ḡi mit i ≤ p(n) und gi durch einen Orakelbaustein hj oder h̄j mit
j ≤ q(i) berechnen lässt. Also lässt sich fn durch einen Orakelbaustein hj oder h̄j mit
j ≤ q ◦ p(n) berechnen.
128
Sei nun f ≤cd g und g ≤cd h. Wir konstruieren einen h-Orakelschaltkreis für fn , indem wir
in dem wegen f ≤cd g existierenden g-Orakelschaltkreis (unbeschränkter Fan-in, polynomielle Größe, konstante Tiefe c) für fn jeden g-Orakelbaustein durch einen wegen g ≤cd h
existierenden h-Orakelschaltkreis ersetzen. Diese h-Orakelschaltkreise haben polynomielle
Größe und eine durch eine Konstante c0 beschränkte Tiefe. Der h-Orakelschaltkreis für fn
hat eine durch cc0 beschränkte Tiefe. Die Kosten i der g-Orakelbausteine für gi oder ḡi
werden für ein Polynom q durch q(i) ersetzt. Damit bleiben die Kosten polynomiell.
Sei schließlich f ≤1 g und g ≤1 h. Der Orakelschaltkreis für f ≤1 h wird genauso wie
im letzten Abschnitt konstruiert. Analog folgt, dass die Größe polynomiell bleibt. Für
die Abschätzung der Tiefe betrachten wir einen Pfad in dem g-Orakelschaltkreis für fn .
Wenn dieser Pfad k Bausteine und m Orakelbausteine für g-Funktionen mit i(1), . . . , i(m)
Inputs enthält, gilt für eine Konstante c
k + dlog i(1)e + · · · + dlog i(m)e ≤ c log n.
Die Tiefe des h-Orakelschaltkreises, der den Orakelbaustein gi(j) oder ḡi(j) ersetzt, ist
für eine Konstante c0 ≥ 1 durch c0 dlog i(j)e beschränkt. Insgesamt ist also die Tiefe des
h-Orakelschaltkreises für fn durch cc0 log n beschränkt.
2
Satz 14.3.10: a) Falls g ∈ AC k und f ≤cd g, ist f ∈ AC k .
b) Falls g ∈ NC k und f ≤1 g, ist f ∈ NC k .
Beweis: a) Wir starten mit g-Orakelschaltkreisen mit unbeschränktem Fan-in, die fn
mit polynomieller Größe und einer durch eine Konstante c beschränkten Tiefe berechnen.
Diese Schaltkreise existieren, da f ≤cd g vorausgesetzt ist. Nun ersetzen wir, wie bei
Orakeln üblich, die g-Orakelbausteine durch AC k -Schaltkreise. Analog zu dem Beweis
von Lemma 14.3.9 folgt, dass die Größe polynomiell bleibt. Jeder Orakelbaustein wird
durch einen Schaltkreis der Tiefe O(logk n) ersetzt, also ist die Gesamttiefe O(logk n).
b) Der Beweis verläuft bis auf die Abschätzung der Tiefe analog zum Beweis von Aussage
a). Auf jedem Pfad des g-Orakelschaltkreises für fn liegen O(log n) normale Bausteine und
Orakelbausteine für gi(1) , . . . , gi(m) bzw. deren Negationen. Dabei ist nach Voraussetzung
die Summe aller dlog i(j)e für eine Konstante c durch c log n beschränkt. Die Orakelbausteine werden durch Schaltkreise mit Fan-in 2 ersetzt, deren Tiefe für ein Polynom p durch
O(logk p(i(j))) und damit für eine Konstante c0 durch c0 logk i(j) beschränkt ist. Da für
k ≥ 1 die Funktion x → xk konvex ist, ist die Summe aller c0 logk i(j) für eine Konstante
c00 durch c00 logk n beschränkt.
2
Falls f ≤proj g und g polynomielle Formelgröße hat, hat auch f polynomielle Formelgröße,
gleiches gilt für die Branchingprogrammgröße.
14.4
Schaltkreise mit unbeschränktem Fan-in und konstanter
Tiefe
Bevor wir in das Thema dieses Unterkapitels einsteigen, soll erwähnt werden, dass für
unbeschränkte Tiefe für den Spezialfall monotoner Schaltkreise (nur AND und OR sind
129
als Bausteine zugelassen) exponentielle Schranken bekannt sind. Allerdings ist diese Basis
nicht vollständig und es können nur genau die monotonen Funktionen (a ≤ b ⇒ f (a) ≤
f (b)) realisiert werden.
Bisher haben wir exponentielle untere Schranken für die Komplexität von Problemen
nur unter (allerdings plausiblen) Vermutungen zeigen können. Für Schaltkreise mit stark
beschränkter Tiefe ist die Situation anders. Wir wollen die drei wichtigsten Resultate
vorstellen. Allerdings sind die Beweise so kompliziert, dass wir jeweils nur die Beweisideen
vorstellen.
Die kleinste Klasse innerhalb der AC-NC-Hierarchie ist AC 0 . Es gibt heutzutage viele
Methoden, um zu zeigen, dass Funktionen nicht in AC 0 enthalten sind. Wir werden die
Methode von Håstad (1986) vorstellen. Håstad hat 1994 für diese Arbeit den Gödelpreis
erhalten.
Satz 14.4.1: Die Paritätsfunktion PARn (x1 , . . . , xn ) = x1 ⊕ · · · ⊕ xn ist nicht in AC 0
enthalten.
Die Methode von Håstad ist sehr exakt. Die Methode kann direkt angewendet werden auf
alle Funktionen, die nur lange Primimplikanten und Primklauseln haben. Mit Reduktionen
können weitere Funktionen als nicht zu AC 0 gehörig nachgewiesen werden.
Wir kennen keine Methode, um zu zeigen, dass Funktionen in NP−NC 1 liegen. Andererseits ist NC 1 − AC 0 6= ∅, da die Paritätsfunktion trivialerweise in NC 1 enthalten ist. Wir
sind daher an Komplexitätsklassen zwischen AC 0 und NC 1 interessiert.
Definition 14.4.2: ACC k [m] ist die Klasse aller booleschen Funktionen, die in Schaltkreisen mit unbeschränktem Fan-in, polynomieller Größe, Tiefe O(logk n) über Bausteinen, die ∧, ∨ und MOD-m realisieren können, berechenbar sind.
In ACC 0 [2]-Schaltkreisen sind bei konstanter Tiefe und polynomieller Größe Konjunktionen und Paritätsbausteine erlaubt. Wir können auf Disjunktionen leicht verzichten, da
Negationen durch ⊕1“ ersetzt werden können und sich daher Disjunktionen mit den de
”
Morgan Regeln ersetzen lassen. Das folgende Ergebnis stammt von Razborov (1987), wobei der Beweis von Paterson vereinfacht wurde. Smolensky hat die Resultate auf ACC 0 [p]
und beliebige Primzahlen p und Primzahlpotenzen erweitert. Bis heute kann für Zahlen
m mit zwei verschiedenen Primfaktoren, also z. B. m = 6, nicht nachgewiesen werden,
dass Funktionen in NP − ACC 0 [m] liegen.
Satz 14.4.3: Die Majoritätsfunktion MAJn (x1 , . . . , xn ), die den Wert 1 liefert, wenn
mindestens die Hälfte der Inputs Einsen sind, ist nicht in ACC 0 [2] enthalten. Schaltkreise
1/(2k−1) )
der Tiefe k über {∧, ⊕} benötigen mindestens 2Ω(n
Bausteine. Damit die Größe
log n
1
nötig. Andererseits
polynomiell wird, ist für eine Konstante c mindestens Tiefe 2 c+log
log n
log n
genügt bei Tiefe O( log log n ) polynomielle Größe.
Damit ist die Majoritätsfunktion auch nicht in AC 0 enthalten. Mit geeigneten Reduktionen kann für zahlreiche weitere Funktionen nachgewiesen werden, dass sie weder in AC 0
noch in ACC 0 [2] liegen.
130
Die Majoritätsfunktion ist auch in NC 1 enthalten. Daher wäre es konsequent, im nächsten
Schritt zusätzlich Majoritätsbausteine zuzulassen. Statt dessen werden Thresholdbaun
steine erlaubt, die Thresholdfunktion T≥k
(x1 , . . . , xn ) liefert den Wert 1, wenn die Einn
n
gabe mindestens k Einsen enthält. T≤k ist die Negation von T≥k+1
. Offensichtlich ist
n
n
MAJn = T≥dn/2e . Andererseits ist jede Thresholdfunktion T≥k eine Projektion von MAJ2n .
In der Eingabe für MAJ2n werden n − k Variablen auf 1 und k Variablen auf 0 gesetzt, um
n
T≥k
zu erhalten. Konjunktionen und Disjunktionen sind ebenfalls Thresholdfunktionen,
n
n
nämlich T≥n
und T≥1
. Die Paritätsfunktion ist keine Thresholdfunktion, sie kann aber
durch Thresholdschaltkreise polynomieller Größe in Tiefe 2 dargestellt werden.
Definition 14.4.4: TC 0,d und TC k sind die Klassen boolescher Funktionen, die in Thresholdschaltkreisen mit unbeschränktem Fan-in, polynomieller Größe (hier zählen auch die
Kanten) und Tiefe d bzw. O(logk n) berechenbar sind.
Satz 14.4.5: Die Paritätsfunktion ist in TC 0,2 enthalten.
Beweis: Auf der ersten Ebene benutzen wir für jedes ungerade k ≤ n zwei Thresholdbausteine und realisieren T≥k (x1 , . . . , xn ) und T≤k (x1 , . . . , xn ). Dieses Paar von Bausteinen liefert für alle Eingaben mindestens eine 1. Genau dann, wenn die Eingabe k Einsen
enthält, liefert das Paar zwei Einsen. Wir haben l = dn/2e Bausteinpaare. Sie liefern l
Einsen, wenn die Zahl der Einsen im Input gerade ist, und l + 1 Einsen, wenn die Zahl der
Einsen ungerade ist. Also erhalten wir in der zweiten Ebene die Paritätsfunktion, wenn
2l
wir T≥l+1
auf die Bausteine der ersten Ebene anwenden.
2
Korollar 14.4.6: AC k ⊆ ACC k [2] ⊆ TC k ⊆ NC k+1 für alle k.
Beweis: Die erste Beziehung ist trivial, die zweite folgt aus Satz 14.4.5 und die dritte
aus der Tatsache, dass die Thresholdfunktionen in NC 1 liegen (Übungsaufgabe).
2
Wir wissen aus Satz 14.4.3, dass MAJ ∈ TC 0,1 − ACC 0 [2] ist. Da die Paritätsfunktion in
den einzelnen Variablen weder monoton noch antiton ist, ist PAR ∈
/ TC 0,1 . Mit Satz 14.4.5
folgt PAR ∈ TC 0,2 − TC 0,1 . Das innere Produkt (Skalarprodukt) IP zweier Vektoren ist
definiert durch
IP(x1 , . . . , xn , y1 , . . . , yn ) = x1 y1 ⊕ x2 y2 ⊕ · · · ⊕ xn yn .
Nach Satz 14.4.5 ist IP ∈ TC 0,3 . Hajnal, Maass, Pudlák, Szegedy und Turán (1987) haben
gezeigt, dass IP ∈
/ TC 0,2 ist. In Kap. 14.5 werden wir daraus mit Hilfe einer Reduktion
folgern, dass die Multiplikation nicht in TC 0,2 enthalten ist.
Satz 14.4.7: Das innere Produkt ist nicht in TC 0,2 enthalten.
Aus heutiger Sicht kann noch nicht widerlegt werden, dass TC 0,3 = NP (uniforme Variante
von TC 0,3 ) ist.
Im folgenden wollen wir die Beweise der Sätze 14.4.1, 14.4.3 und 14.4.7 zumindest skizzieren.
131
Satz 14.4.1: Die Paritätsfunktion PARn (x1 , . . . , xn ) = x1 ⊕ · · · ⊕ xn ist nicht in AC 0
enthalten. Schaltkreise mit unbeschränktem Fan-in und Tiefe d benötigen mindestens
1/d
2(n /10)−1 Bausteine. Damit die Größe polynomiell wird, ist für eine Konstante c minlog n
nötig. Andererseits genügt bei Tiefe d logloglogn n e + 1 eine Größe von
destens Tiefe c+log
log n
O(n2 / log n).
Beweis: Die obere Schranke ergibt sich folgendermaßen. Wir fassen jeweils dlog ne Variablen mit der Paritätsfunktion zusammen. Wenn wir dafür ein Minimalpolynom oder
die duale Variante einsetzen, genügt Tiefe 2 bei linearer Größe. Mit höchstens dn/ log ne
dieser Module können wir die Paritätsfunktion in Größe O(n2 / log n) realisieren. Die Tiefe
beträgt 2d logloglogn n e. Dabei gehen wir von einem binären Baum der Tiefe dlog ne aus, in dem
jeweils dlog log ne Ebenen durch parallele Module ersetzt werden. Wenn wir nun für die
Ebenen abwechselnd ∧-∨-Schaltkreise und ∨-∧-Schaltkreise einsetzen, können benachbarte Ebenen verschmolzen werden.
Es bleibt die untere Schranke für Tiefe d zu zeigen. Die anderen Ergebnisse folgen daraus
durch Standardrechnungen.
Der Beweis ist ein Induktionsbeweis über die Tiefe d. Wir unterscheiden Σd - und Πd Schaltkreise, bei denen die Bausteintypen ∧ und ∨ auf den Ebenen abwechseln und die
Outputebene einen ∨-Baustein (bei Σd -Schaltkreisen) bzw. einen ∧-Baustein (bei Πd Schaltkreisen) enthält. Dabei geht man davon aus, dass mit Hilfe der de-Morgan-Regeln
Negationen an die Eingänge geschoben werden und bei der Tiefe nicht mitzählen. Diese
Bezeichnungen sind absichtlich ähnlich zu denen der polynomiellen Hierarchie gewählt,
denn Disjunktionen entsprechen ∃-Quantoren und Konjunktionen ∀-Quantoren.
Es ist offensichtlich, dass Σ2 - und Π2 -Schaltkreise für PARn auf der ersten Ebene 2n−1
Bausteine mit Fan-in n haben. Wie kann der Induktionsschritt durchgeführt werden?
Betrachten wir einen Schaltkreis, dessen erste Ebene aus ∧-Bausteinen und dessen zweite Ebene aus ∨-Bausteinen besteht, diese beiden Ebenen bilden also Σ2 -Schaltkreise.
Wenn wir nun diese Teilschaltkreise durch äquivalente Π2 -Schaltkreise ersetzen, enthalten die Ebenen 2 und 3 ∧-Bausteine und können verschmolzen werden. Das Ergebnis ist
ein Schaltkreis der Tiefe d − 1, für den die Induktionsvoraussetzung angewendet werden
kann. Dies ist aber nur dann sinnvoll, wenn die Ersetzung der Σ2 -Schaltkreise durch Π2 Schaltkreise die Größe der Schaltkreise nicht zu sehr vergrößert hat. Dies kann jedoch im
allgemeinen nicht sichergestellt werden.
Håstad hat den Fan-in auf der ersten Ebene (im Folgenden kurz 1-Fan-in) zum Maßstab
gemacht. Damit dieser für den gegebenen Schaltkreis klein ist, erhält der Schaltkreis zu
Beginn eine Dummy-Ebene mit Bausteinen mit Fan-in 1, die also die Identität realisieren. Aber was ist gewonnen? Ein Σ2 -Schaltkreis mit kleinem 1-Fan-in kann u.U. nur durch
einen Π2 -Schaltkreis mit großem 1-Fan-in ersetzt werden, z.B. hat x1 x2 ∨x3 x4 ∨· · ·∨xn−1 xn
auf der ersten Ebene Fan-in 2. Die Primklauseln haben jedoch Länge n/2, und Π2 Schaltkreise brauchen auf der ersten Ebene Fan-in n/2. Die Paritätsfunktion hat die
Struktureigenschaft, dass wir nach Konstantsetzung einiger Variablen eine Paritätsfunktion (oder ihre Negation) auf weniger Variablen erhalten. Vielleicht können wir ja sicher stel132
len, dass es genügt, wenige Variablen geeignet konstant zu setzen, um die Σ2 -Schaltkreise
durch Π2 -Schaltkreise mit kleinem Fan-in auf der ersten Ebene zu ersetzen (analoges gilt
dann natürlich für die Ersetzung von Π2 -Schaltkreisen durch Σ2 -Schaltkreise)? Niemand
weiß, wie eine solche Konstantsetzung zu berechnen ist. Håstads Switching Lemma sichert
aber die Existenz einer geeigneten Konstantsetzung.
Um das Switching-Lemma anzugeben, betrachten wir zufällige Belegungen einer Teilmenge von Variablen. Sei Rnl die Menge aller partiellen Belegungen von n Variablen, bei denen l Variablen unbelegt bleiben. Wir können partielle Belegungen aus Rnl zufällig gemäß
Gleichverteilung wählen, indem wir zunächst zufällig eine Menge von n − l Variablen
wählen und die Variablen in dieser Menge anschließend zufällig gemäß Gleichverteilung
mit Nullen oder Einsen belegen. Durch Anwendung einer solchen Konstantsetzung ρ auf
eine Funktion f entsteht die Subfunktion f|ρ auf l Variablen. Das Switching-Lemma lautet:
Switching-Lemma: Sei f : {0, 1}n → {0, 1} eine Funktion, die Σ2 -Schaltkreise mit 1Fan-in höchstens s hat, und sei l > 0. Sei ρ eine zufällig gewählte partielle Belegung aus
Rnl . Die Wahrscheinlichkeit, dass f|ρ keinen Π2 -Schaltkreis mit 1-Fan-in höchstens t hat,
ist kleiner als
t
5ls
.
n
Wir verzichten auf den Beweis des Switching-Lemmas und verweisen für die Beweisidee
auf das Buch von Jukna (Extremal Combinatorics, Springer, 2001, S. 118ff.). Wir wollen aber intuitiv erklären, warum das Switching Lemma gilt. Die Funktion f kann nach
Voraussetzung als Disjunktion von recht kurzen Primimplikanten, die Länge ist durch t
beschränkt, dargestellt werden. Wie zuvor an dem Beispiel x1 x2 ∨ x3 x4 ∨ · · · ∨ xn−1 xn
gesehen, können die Primklauseln lang sein. Eine einzelne lange Primklausel hat bei der
zufälligen Konstantsetzung eine große Chance, durch 1 ersetzt zu werden. Allerdings arbeitet die Konstantsetzung nicht unabhängig auf den Primklauseln, da diese gleiche Literale
und entgegengesetzte Literale enthalten können. Kurze Primimplikanten implizieren aber,
dass Konstantsetzungen, die mit hoher Wahrscheinlichkeit nicht zu viele Variablen durch
Konstanten ersetzen, dennoch lange Primklauseln genügend verkürzen.
Wir führen nun die oben skizzierte Beweisidee aus und beweisen den Satz indirekt. Sei
1/d
C die größte Zweierpotenz mit C < 2n /10 und sei ni := bn/(10 log C)d−i+1 c. Mit einer
Induktion über die Tiefe i beweisen wir die folgende Aussage (*): Für i ∈ {2, . . . , d + 1}
gibt es weder einen {∧, ∨}-Schaltkreis mit Tiefe i und unbeschränktem Fan-in für PARni
noch für PARni , bei dem die Anzahl der Bausteine auf den Ebenen 2, . . . , i höchstens C
ist und der 1-Fan-in durch log C beschränkt ist.
Der Induktionsanfang ist i = 2. Dann ist die Anzahl der Variablen
n
10n log C
10n log C
n2 =
=
>
= 10 log C.
(10 log C)d−1
(10 log C)d
n
Die Ungleichung folgt dabei aus der Definition von C. Andererseits ist aus Rechnerstrukturen bekannt, dass die Primimplikanten und Primklauseln für Parity auf n2 Variablen
133
mindestens die Länge n2 haben. Nach der Rechnung ist der 1-Fan-in log C aber kleiner
als n2 /10. Ein solcher Schaltkreis kann also nicht PARn2 oder PARn2 berechnen.
Für den Induktionsschritt von i − 1 nach i setzen wir voraus, dass die Aussage für Tiefe
i − 1 bewiesen ist.
Annahme: Es gibt {∧, ∨}-Schaltkreise mit unbeschränktem Fan-in, Tiefe i und 1-Fan-in
log C für PARni oder PARni , bei denen die Anzahl der Bausteine auf den Ebenen 2, . . . , i
durch C beschränkt ist.
O.B.d.A. bestehe die erste Ebene aus ∧-Bausteinen. Aus der Größenschranke folgt, dass
die Anzahl der ∨-Bausteine auf der zweiten Ebene höchstens C ist.
Wir betrachten nun die Funktion, die an einem ∨-Baustein g der zweiten Ebene berechnet
wird. Aufgrund des beschränkten 1-Fan-ins des Schaltkreises ist dies eine Funktion, die
als Disjunktion von Monomen der Länge höchstens log C darstellbar ist. Wir wenden auf
diese Funktion das Switching-Lemma mit
ni
l=
und s = t = log C
10 log C
an. Die Misserfolgswahrscheinlichkeit ist kleiner als
t log C log C
5l log C
1
5ni log C
1
≤
=
= .
ni
10(log C)ni
2
C
Wenn wir also das Switching-Lemma auf alle (d.h. maximal C) Funktionen, die auf der
zweiten Ebene berechnet werden, anwenden, ist die Misserfolgswahrscheinlichkeit kleiner
als C · 1/C = 1. Dies heißt, dass es eine partielle Belegung in Rnl i gibt, so dass nach
Ausführung dieser Belegung alle Funktionen, die auf der zweiten Ebene des Schaltkreises berechnet werden, in Konjunktionen von Klauseln der Länge höchstens t = log C
umgeformt werden können. Nach Durchführung dieser Umformung erhalten wir einen
Schaltkreis, der auf der zweiten und dritten Ebene ∧-Bausteine enthält. Diese Bausteine können zu einer Ebene zusammengefasst werden. Der entstandene Schaltkreis hat die
Tiefe i − 1, einen 1-Fan-in von höchstens log C und er berechnet Parity (oder die Negation
von Parity) auf l = bni /(10 log C)c = ni−1 Variablen. Die Anzahl der Bausteine auf den
Ebenen 2, . . . , i − 1 ist nicht größer als die Anzahl der Bausteine auf den Ebenen 2, . . . , i
in dem gegebenen Schaltkreis der Tiefe i. Die Aussage für die Negation der berechneten Funktion folgt durch Negation der Ausgabe und anschließendes Verschieben dieser
Negation zu den Eingängen mit Hilfe der de-Morgan-Regeln. Wir erhalten damit einen
Widerspruch zur Induktionsvoraussetzung. Also ist die Annahme falsch und wir haben
die Aussage (*) bewiesen.
Aus der Aussage (*) folgt nun die untere Schranke des Satzes: Wenn es einen {∧, ∨}Schaltkreis mit unbeschränktem Fan-in, Tiefe d und Größe höchstens C für PARn gäbe,
könnten wir durch Einfügen von Dummy-Bausteinen an den Eingängen einen {∧, ∨}Schaltkreis mit unbeschränktem Fan-in, Tiefe d + 1, höchstens C Bausteinen auf den
Ebenen 2, . . . , d + 1 und 1-Fan-in 1 konstruieren. Diesen gibt es aber nach der Aussage
(*) nicht.
2
134
Beweisskizze von Satz 14.4.3: Die Menge {0, 1} mit den Operationen ⊕ und ∧ bildet den Körper 2 . Daher ist es hier naheliegend, anstelle der im Beweis von Satz 14.4.1
benutzten kombinatorischen Methoden algebraische Methoden zu verwenden. Indem wir
in der DNF für f Negationen durch ⊕1 und die äußere Disjunktion durch die Paritätsfunktion ersetzen, erhalten wir, nachdem wir ausmultipliziert haben, ein Polynom über
2 für f . Da in der Mintermdarstellung der DNF stets höchstens ein Term 1 liefern kann,
ist die Ersetzung der äußeren Disjunktion durch die Paritätsfunktion korrekt.
Wir zeigen zunächst, dass sich jede Funktion in ACC 0 [2] gut durch ein Polynom kleinen
Grades approximieren lässt, und dann, dass dies für bestimmte Thresholdfunktionen nicht
möglich ist. Die untere Schranke für die Majoritätsfunktion folgt, da jede Thresholdfunktion auf n Variablen eine Projektion von MAJ2n ist.
Was sind Approximationen? Wir definieren den Abstand d(f, g) zweier boolescher Funktionen f und g als die Zahl der Inputs a mit f (a) 6= g(a) und den Abstand d(f, A)
zwischen f und einer Funktionenmenge A als Minimum aller d(f, g) mit g ∈ A.
Es sei Pd die Menge der Polynome, deren Grad durch d beschränkt ist. Offensichtlich
erhöhen Additionen, also ⊕-Bausteine, den Grad nicht, wohl aber Multiplikationen, also
∧-Bausteine. So hat das Produkt p von n Variablen, also Polynomen vom Grad 1, selber
Grad n. Es ist p = x1 ∧ · · · ∧ xn . Offensichtlich kann dieses Produkt durch ein Polynom
kleinen Grades approximiert werden. Der Abstand zum Nullpolynom beträgt nur 1. Diese
triviale Erkenntnis wollen wir verallgemeinern.
Behauptung 1: Sei H eine Teilmenge von Pd und h die Konjunktion aller Funktionen
in H. Dann kann h durch ein Polynom, dessen Grad nicht zu groß ist, gut approximiert
werden. Genauer: Für jedes r gibt es ein g ∈ Pdr mit d(h, g) ≤ 2n−r .
Wir zeigen die Behauptung durch Abzählargumente, d. h. wir benutzen das einfache
Schubfachprinzip (pigeon-hole principle): Werden z Objekte auf k Schubfächer verteilt,
enthält mindestens ein Schubfach mindestens dz/ke Objekte (Engländer argumentieren
mit Tauben und Taubenschlägen).
Sei H = {h1 , . . . , hm }, also h = h1 ∧ · · · ∧ hm . Sei H ∗ die Menge aller Summen einiger
hi = hi ⊕ 1. Dann ist H ∗ ⊆ Pd . Für q1 , . . . , qr ∈ H ∗ ist also g = q1 ∧ · · · ∧ qr ∈ Pdr . Wir
werden zeigen, dass ein g die Behauptung erfüllt.
Dazu untersuchen wir die Beziehungen zwischen h und den Funktionen in H ∗ . Falls h(a) =
1, sind alle hi (a) = 1, also alle hi (a) = 0 und somit q(a) = 0 für q ∈ H ∗ . Falls h(a) = 0,
gibt es ein i mit hi (a) = 0. Da hi Summand genau der Hälfte der Funktionen in H ∗ ist,
gilt für genau die Hälfte der 2m formalen Summen q ∈ H ∗ , dass q(a) = 1 ist. Ein q ∈ H ∗
heißt gut für S ⊆ h−1 (0), wenn |q −1 (1) ∩ S| ≥ |S| /2 ist. Für jedes a ∈ S gilt für die
Hälfte der Funktionen q, dass a ∈ q −1 (1) ist. Ein solches Paar (a, q) nennen wir Erfolg.
Also beträgt die Zahl der Erfolge |S| |H ∗ | /2. Diese Erfolge verteilen sich irgendwie auf
|H ∗ | Funktionen. Also gibt es nach dem Schubfachprinzip ein q ∈ H ∗ , das gut für S ist.
Sei S0 = h−1 (0). Wir wählen eine gute Funktion q1 für S0 . Sei S1 = S0 − q1−1 (1). Wir
wählen eine gute Funktion q2 für S1 , usw., bis wir q1 . . . , qr und S1 , . . . , Sr erhalten haben.
Nach Definition von gut ist |Si+1 | ≤ |Si | /2 und somit |Sr | ≤ |S0 | /2r ≤ 2n−r . Sei nun
135
g = q1 ∧ · · · ∧ qr . Dann ist g ∈ Pdr . Falls h(a) = 1, ist (s.o.) qi (a) = 0 für alle i und
g(a) = 1. Falls h(a) = 0 und g(a) = 1, ist qi (a) = 0 für alle i. Nach Konstruktion heißt
dies, dass a ∈ Sr ist. Also gibt es höchstens 2n−r Abweichungen zwischen g und h, d. h.
d(f, g) ≤ 2n−r .
Die nächste Behauptung beschreibt eine allgemeine untere Schranke.
Behauptung 2: Schaltkreise mit unbeschränktem Fan-in über {⊕, ∧}, die nur k ∧Level haben und f berechnen, haben für jedes r ≥ 1 mindestens d(f, Prk )2r−n Bausteine.
Die Schranke wird sogar für die Zahl der ∧-Bausteine bewiesen. Wir zeigen, dass mit
l ∧-Bausteinen und k ∧-Ebenen nur Funktionen berechnet werden können, die durch
Polynome aus Prk mit durch l2n−r beschränktem Abstand approximiert werden können.
Dies ist offensichtlich nur eine Umformulierung der Behauptung.
Wir zeigen die Behauptung mit Induktion über l. Für l = 0 können nur Polynome vom
Grad 1 berechnet werden, die sich selbst ohne Fehler approximieren. Wir nennen im folgenden einen Input a Fehler, wenn er bei der Approximation irgendeines Bausteines zu
einer Abweichung führt. Werden h1 , . . . , hm durch p1 , . . . , pm approximiert, approximieren
wir h = h1 ⊕ · · · ⊕ hm durch p = p1 ⊕ · · · ⊕ pm , ohne einen neuen Fehler zu erhalten. Nun
betrachten wir den l-ten ∧-Baustein, der h = h1 ∧· · ·∧hm berechnet. Ohne diesen Baustein
war die Zahl der Fehler durch (l − 1)2n−r beschränkt. Die Funktionen h1 , . . . , hm werden
in Subschaltkreisen mit höchstens k −1 ∧-Ebenen berechnet. Die zugehörigen Approximationen haben daher einen durch r k−1 beschränkten Grad. Das Polynom p∗ = p1 ∧ · · · ∧ pm
approximiert h ohne neuen Fehler, der Grad ist aber nur durch mr k−1 beschränkt. Wir
wenden Behauptung 1 für H = {p1 , . . . , pm } an und erhalten eine Approximation p für h,
deren Grad durch rr k−1 = r k beschränkt ist und die, da d(p, p∗ ) ≤ 2n−r , höchstens 2n−r
neue Fehler erzeugt. Die Zahl der Fehler ist also durch l2n−r beschränkt.
Schließlich muss diese Schrankenmethode angewendet werden.
n
Behauptung
3: Es sei 2a + r k < n. Dann kann T≥n−a
nicht mit k ∧-Ebenen und
n r−n
Bausteinen berechnet werden.
höchstens a 2
Nach Behauptung 2 genügt
es zu zeigen, dass jedes Polynom g mit durch r k beschränktem
n
Grad an mindestens na Stellen von T≥n−a
abweicht. Sei U die Menge der Inputs b mit
n
g(b) 6= T≥n−a (b). Es sei ∆u der Minterm, der an der Stelle u den Wert 1 liefert. Dann gilt
M
n
T≥n−a
=
∆u ⊕ g.
u∈U
n
kritische
Es sei E die Menge der na Inputs mit genau n − a Einsen. Dies sind für T≥n−a
Eingaben. Wir konzentrieren uns auf Eingaben aus E. Für Vektoren b und c sei b ∧ c =
(b1 ∧ c1 , . . . , bn ∧ cn ). Die Anzahl der Einsen
in b∧ c ist mindestens n − 2a und höchstens
n − a. Jeder Funktion f ordnen wir eine na × na - Matrix M f zu. Die Zeilen und Spalten
entsprechen jeweils den Eingaben aus E. Der Matrixeintrag in Zeile b und Spalte c ist
f (b ∧ c).
n
Als Hilfsmittel betrachten wir den Rang der Matrizen M f . Dies ist einfach für T = T≥n−a
,
n
denn M T ist nach Definition die Einheitsmatrix, deren Rang a ist. Für die anderen
136
Funktionen ist dies schwieriger. Dabei hat sich der τ -Operator als hilfreich erwiesen.
Dieser Operator hat auch viele weitere Anwendungen. Wir definieren b ≤ c durch bi ≤ ci
für alle i. Dann ist die Funktion τ f definiert durch
M
τ f (b) =
f (c).
c≤b
Dieser Operator ist nach Definition linear, d. h. τ (f1 ⊕ f2 ) = τ f1 ⊕ τ f2 . Wir wenden τ nun
auf unsere Beziehung zwischen T , g und ∆u an. Es folgt
M
τT =
τ ∆u ⊕ τ g.
u∈U
Auch der Matrixoperator M ist linear. Also gilt
M
MτT =
M τ ∆u ⊕ M τ g.
u∈U
Aus der Linearen Algebra sollte bekannt sein, dass die Rangfunktion für Matrizen sublinear ist, d. h. Rang(A ⊕ B) ≤ Rang(A) + Rang(B). Also ist
X
Rang(M τ T ) ≤
Rang(M τ ∆u ) + Rang(M τ g).
u∈U
Die Ränge der betrachteten Matrizen lassen sich nun abschätzen. Die Funktion τ T nimmt
für Eingaben mit weniger als n − a Einsen den Wert 0 an und für Eingaben mit genau
n − a Einsen den Wert 1. Dies folgt
direkt nach Definition. Also ist M τ T = M T und, wie
oben gesehen, Rang(M τ T ) = na .
Von der Funktion g wissen wir nur, dass sie ein Polynom mit durch r k beschränktem Grad
ist. Damit ist g eine Summe von Monomen t, deren Länge durch r k < n − 2a beschränkt
ist. Sei b ein Input mit j ≥ n − 2a Einsen. Falls t(b) = 0, ist τ t(b) = 0, da t monoton ist.
Falls t(b) = 1, können wir genau die s = j −r k ≥ 1 Stellen, an denen b den Wert 1 hat und
die nicht in t vorkommen, auch durch Nullen ersetzen, ohne dass t seinen Wert ändert.
Also gibt es in der Definition von τ t(b) genau 2s Einsen. Da s ≥ 1, ist 2s gerade und
τ t(b) = 0. Damit ist τ t die Nullfunktion. Gleiches gilt dann für τ g, und Rang(M τ g) = 0.
Nach Definition ist τ ∆u (b) = 1 genau dann, wenn b ≥ u ist. Die Matrix M τ ∆u hat also
1-Einträge genau an den Positionen (b, c) mit b ≥ u und c ≥ u. Damit sind alle Zeilen für
b 6≥ u Nullzeilen, und alle Zeilen für b ≥ u gleich. Somit ist der Rang von M τ ∆u durch 1
beschränkt.
Wenn wir nun alle Rangabschätzungen einsetzen, folgt |U | ≥ na .
Schließlich müssen wir die freien Parameter r und a wählen. Für r = bn1/(2k−1) c und
a = b(n − r k − 1)/2c ergeben sich nach einer mühseligen, aber elementaren Rechnung die
behaupteten Schranken.
2
137
Beweisskizze von Satz 14.4.7: Das innere Produkt fassen wir als Funktion auf
{0, 1}n ×{0, 1}n auf. Bei Eingaben (a, b) haben beide Teile Länge n, und a ist die Belegung
der x-Variablen. Die Menge {0, 1}n × {0, 1}n fassen wir nun geometrisch als Quadrat auf.
Teilrechtecke sind Mengen A × B mit A, B ⊆ {0, 1}n . Für n = 3 stellen wir IP bildlich
dar.
000
001
010
011
100
101
110
111
000 001 010 011 100 101 110 111
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
Mit Ausnahme der
000-Zeile
hat jede Zeile gleich viele 0 wie 1. Allgemein ist IP−1 (1) =
22n−1 −2n−1 und IP−1 (0) = 22n−1 +2n−1 . Sei A = {011, 100, 110} und B = {001, 010, 101,
110}. Das Rechteck A × B ist eingezeichnet. Es enthält 8 1-Einträge und 4 0-Einträge.
Sind nun 8 und 4 sehr verschieden? Ein Satz aus der Kombinatorik (das Lemma von
”
Lindsey“) besagt, dass für die Fläche F := |A| · |B| eines Rechtecks A × B folgendes gilt:
√
n
−1
F
IP (1) ∩ (A × B) ≤ + F · 2
2
2
Gleiches gilt auch für IP−1 (0). Mit anderen Worten: Für große Rechtecke ist die Anzahl
der 1-Einträge (bzw. der 0-Einträge) in der Nähe der Hälfte der Fläche.
Dieses Ergebnis ist erstaunlicherweise der Schlüssel zum Beweis der unteren Schranke
für Majoritätsschaltkreise der Tiefe 2. Wenn ein Majoritätsschaltkreis der Tiefe 2 eine
Funktion f darstellt, muss es einen Baustein auf der ersten Ebene geben, der auf einem
Mindestbruchteil das gleiche berechnet wie f . Diese Idee formalisieren wir im folgenden.
Ein Schaltkreis S heißt ε-Diskriminator für eine boolesche Funktion f auf n Variablen,
falls
|{x : f (x) = S(x)}|
1
≥ +ε
n
2
2
ist.
Behauptung: Sei S ein Majoritätsschaltkreis der Tiefe 2, der eine Funktion fS berechr
net. Wenn der Baustein auf der zweiten Ebene die Funktion T≥(r+1)/2
realisiert, dann ist
mindestens ein Baustein auf der ersten Ebene ein 1/(2r)-Diskriminator für fS .
Beweis:
Wir schreiben abkürzend T1 := fS−1 (1), T0 := fS−1 (0) und k := (r + 1)/2.
Seien g1 , . . . , gr die Funktionen, die auf den Inputkanten des Bausteins auf der zweiten
Ebene realisiert werden. Wir schauen uns alle r ·2n Paare (gi , x) an und nennen ein solches
Paar richtig, wenn gi (x) = fS (x) ist. Wir schätzen zunächst ab, wieviele richtige Paare es
mindestens geben muss.
138
Für einen Vektor a mit fS (a) = 1 gilt, dass mindestens k der Funktionen gi auf a auch eine
Eins berechnen. Analog gilt für einen Vektor a mit fS (a) = 0, dass mindestens r − k + 1
viele gi eine Null berechnen. Über alle a summiert, finden wir somit mindestens
L := T1 k + T0 (r − k + 1) = T1 k + T0 k = k2n
viele richtige Paare. Nach dem Schubfachprinzip gibt es dann ein gi , so dass es mindestens
L/r = 2n k/r richtige Paare (gi , ·) gibt. Dieses gi rechnet somit auf einem Inputanteil von
k/r = (1/2) + (1/2r) richtig und ist daher ein 1/(2r)-Diskriminator.
2
Wir betrachten nun einen Majoritätsschaltkreis S, der IP in Tiefe 2 realisiert. O.B.d.A.
können wir annehmen, dass der Outputbaustein eine monotone Majoritätsfunktion darstellt. Sei w der maximale Fan-In eines Knotens im Schaltkreisgraphen. Nach der oben
bewiesenen Behauptung gibt es einen Baustein G auf der ersten Ebene von S, der ein
1/(2w)-Diskriminator von IP ist. Die Anzahl der Einsen, die G als Input bekommen
kann, liegt im Intervall [0, w]. Daher können wir die Menge X der x-Vektoren und die
Menge Y der y-Vektoren wie folgt partitionieren:
Für l = 0, . . . , w sei Al ⊆ X die Menge aller x-Vektoren, die genau l Einsen in das Gatter
G liefern. Analog definieren wir Mengen Bl für Y . Damit haben wir X × Y disjunkt
in R := (w + 1)2 viele Rechtecke Ai × Bj zerlegt. Nach Wahl der Rechtecke berechnet
G auf jedem Rechteck eine Konstante. Angenommen, die Rechtecke haben die Flächen
F1 , . . . , FR . Nach dem oben aufgeführten Satz aus der Kombinatorik kann G nur auf
höchstens
√
√
R
F1
F1 · 2 n
FR · 2 n
FR
22n 2n/2 X p
Fi
( +
)+···+(
+
)=
+
2
2
2
2
2
2 i=1
vielen Inputs mit dem inneren Produkt übereinstimmen. Wegen der Konkavität der Wurzelfunktion ist dieser Ausdruck maximal, wenn alle Fi gleich sind, also Fi = 22n /R. Damit
ist der Wert des Ausdrucks beschränkt durch
U :=
22n 2n/2 √
22n 23n/2
+
+
(w + 1).
R · 2n =
2
2
2
2
G ist ein 1/(2w)-Diskriminator für IP, also folgt
U
1
1
1
1
≥
+
,
somit
ist
(w
+
1)
≥
,
22n
2 2w
2n/2
w
was zeigt, dass w exponentiell groß sein muss, und somit wächst die Größe von S exponentiell.
2
14.5
Einige Beispiele für Reduktionen
Zunächst zeigen wir, dass bereits read-once Projektionen mächtig genug sind, um interessante Resultate zu liefern. Innerhalb der Komplexitätsklasse P/Poly gibt es ein bezüglich
≤rop vollständiges Problem.
139
Definition 14.5.1: CIRCUIT VALUE PROBLEM (CVP)
Für Eingaben, die aus Codierungen von Schaltkreisen C mit Fan-in 2 mit c Bausteinen
und n Inputs und einem Inputvektor a ∈ {0, 1}n bestehen, soll entschieden werden, ob
der Schaltkreis C auf der Eingabe a den Wert 1 berechnet.
Satz 14.5.2: CVP ist bezüglich ≤rop P/Poly-vollständig.
Beweis: Zunächst ist zu zeigen, dass CVP ∈ P/Poly ist. Die Bausteine werden nacheinander gemäß ihrer Nummerierung simuliert. Für den i-ten Baustein werden die Nummern
der Vorgänger mit allen Nummern der Inputs und früheren Bausteinen verglichen. Nur ein
Vergleich gibt den Wert 1. Es seien vj die Vergleichswerte und aj die an den Inputs bzw.
Bausteinen berechneten Werte. Dann ist die Disjunktion aller vj ∧ aj der Input unseres
Bausteins. Nachdem beide Inputs berechnet sind, werden alle Bausteintypen simuliert,
und an Hand der Codierung des Bausteintyps wird das richtige Ergebnis herausgefiltert.
Insgesamt kann jeder Baustein mit polynomieller Schaltkreisgröße simuliert werden.
Sei nun f ∈ P/Poly. Offensichtlich kann fn durch einen CVP-Orakelbaustein mit polynomieller Eingabe berechnet werden. Die Eingabe des Orakelbausteins bestehe aus der
Codierung des Schaltkreises polynomieller Größe für fn und der aktuellen Eingabe für fn .
2
Wir haben untere Schranken für PARn und IPn bewiesen. Diese werden nun auf die
arithmetischen Funktionen BSUMn (Summe von n Bits), MULn (Multiplikation zweier
n-Bitzahlen), SQUn (Quadrieren einer n-Bitzahl), INVn (Berechnung der n signifikanten
Bits von x−1 aus einer n-Bitzahl x) und DIVn (Division zweier n-Bitzahlen, genauer
Berechnung der n signifikantesten Bits) übertragen. Damit diese Funktionen schwierig
sind, genügt es, wenn ein Bit schwierig ist. Wir werden aber in den Reduktionen sogar
die gesamte Information wieder finden. Hier ist zu beachten, dass read-once Projektionen
(f ≤rop g), aber auch Projektionen, die Tiefe von Schaltkreisen erhalten, also folgt z.B.
aus g ∈ TC0,d und f ≤rop g auch f ∈ TC0,d .
Satz 14.5.3: PAR≤rop IP≤rop MUL≤rop SQU≤rop INV ≤rop DIV, BSUM≤rop MUL.
Beweis:
1.) PAR≤rop IP, da IPn (x1 , . . . , xn , 1, . . . , 1) = PARn (x1 , . . . , xn ).
2.) IP≤rop MUL. Es sei N eine Folge von dlog ne Nullen. Wir betrachten die Multiplikation der m-Bitzahlen, m = n + (n − 1)dlog ne, x0 = (xn−1 , N, xn−2 , N, . . . , x1 , N, x0 )
und y 0 = (y0 , N, y1 , N, . . . , yn−2 , N, yn−1 ). Wenn wir die Schulmethode der schriftlichen Multiplikation betrachten, erhalten wir eine Spalte die x0 y0 , x1 y1 , . . . , xn−1 yn−1
enthält. Die jeweils dlog ne benachbarten Spalten enthalten nur Nullen, so dass es
zu keinen Überträgen kommt. Damit ist das Produktbit in der benachbarten Spalte
gerade x0 y0 ⊕ · · · ⊕ xn−1 yn−1 und damit IPn (x0 , . . . , xn−1 , y0 , . . . , yn−1 ).
3.) BSUM≤rop MUL. Wir verwenden die Methode aus der Reduktion IP≤rop MUL und
setzen y0 = · · · = yn−1 = 1. Dann erhalten wir in der betrachteten Spalte und den
davor liegenden Spalten die Binärdarstellung von BSUMn (x0 , . . . , xn−1 ).
140
4.) MUL≤rop SQU. Wir betrachten das Quadrat der (3n + 2)-Bitzahl
z = (xn−1 , . . . , x0 , 0, . . . , 0, yn−1, . . . , y0 ).
Es sei |z| der Wert von z. Dann gilt
|z|2 = (|x|22n+2 + |y|)2 = |x|2 · 24n+4 + |x| · |y| · 22n+3 + |y|2 .
Es kommt also zu keinen Überträgen zwischen den Zahlen |x|2 , |x| · |y| und |y|2 und
damit finden wir |x| · |y| im Ergebnis von SQU3n+2 (z).
5.) SQU≤rop INV. Wir betrachten die Invertierung der (10n)-Bitzahl 1 − |q| mit |q| =
|x| · 2−t + 2−T mit x = (xn−1 , . . . , x0 ), t = 4n und T = 10n. Es sei (q−1 , . . . , q−10n ) die
0
0
Binärdarstellung von |q| und (q−1
, . . . , q−10n
) die Binärdarstellung von 1 − |q|. Nach
0
0
Definition ist q−10n = 1 und daher q−10n = 1 und q−i
= q −i für alle i < 10n. Damit
0
0
ist (q−1 , . . . , q−10n ) eine für read-once Projektionen zulässige Eingabe. Im folgenden
stellen wir (1 − |q|)−1 als unendliche Reihe dar:
(1 − |q|)−1 =
=
=
=
1 + |q| + |q|2 + |q|3 + · · ·
1 + (|x|2−t + 2−T ) + (|x|2−t + 2−T )2 + (|x|2−t + 2−T )3 + · · ·
1 + |x|2−t + |x|2 2−2t + 2−T + 2|x|2−t−T + 2−2T + (|x|2−t + 2−T )3 + · · ·
1 + |x|2−t + |x|2 2−2t + Rest.
Der Rest lässt sich für n ≥ 2 abschätzen durch
2−10n + 2−12n + 2−20n + 2 · 2−9n < 2−8n .
Also stellen die 8n + 1 signifikanten Bits von (1 − |q|)−1 die Zahl 1 + |x|2−t + |x|2 2−2t
dar. Da |x|2 ≤ 22n , kommt es auch hier zu keinen Überlappungen und wir finden
0
0
das Quadrat von x in INV10n (q−1
, . . . , q−10n
).
6.) INV≤rop DIV. Es ist ausreichend, den Zähler von x/y durch die Zahl 1 zu ersetzen.
2
Die Aussage MUL≤rop SQU besagt, dass die Multiplikation im wesentlichen nicht schwieriger als das Quadrieren ist (und das bezüglich des eingeschränktesten Reduktionskonzeptes ≤rop ). Es konnte bewiesen werden, dass SQU6≤rop MUL ist. Aber natürlich ist
SQU≤proj MUL, da SQUn (x) =MULn (x, x) ist. Bei dieser Projektion wird jedes Bit von
x zweimal verwendet.
Abschließend stellen wir noch zwei ≤cd -Reduktionen vor; wobei MULTADDn die Addition
von n n-Bitzahlen beschreibt.
Satz 14.5.4: MUL≤cd MULTADD≤cd BSUM.
141
1.) MUL ≤cd MULTADD. Dies folgt aus der Schulmethode der schriftlichen Multiplikation. Im ersten Schritt werden in Tiefe 1 mit n2 Bausteinen alle xi yj berechnet. Der zweite
Schritt der schriftlichen Multiplikation ist die Addition von n Zahlen, die nach Auffüllung
mit Nullen Länge 2n − 1 haben. Dies kann an einem MULTADD-Orakelbaustein geschehen.
2.) MULTADD ≤cd BSUM. Diese Behauptung ist schwer zu beweisen, da MULTADD
offensichtlich schwieriger“ als BSUM ist. Wir wollen mit Hilfe von BSUM-Orakelbau”
steinen die Zahlen ai = (ai,n−1 , . . . , ai,0 ) für 1 ≤ i ≤ n addieren. In der ersten Stufe
benutzen wir parallel n Orakelbausteine für BSUMn , wobei der j-te Orakelbaustein, 0 ≤
j ≤ n − 1, die Bits a1j , . . . , anj addiert. Als Ergebnis erhalten wir n Zahlen b0 , . . . , bn−1
mit je dlog(n + 1)e Bits, so dass die Summe aller |bj |2j gleich der Summe s aller |ai | ist.
Für 0 ≤ r < l := dlog(n + 1)e können die Zahlen |br |2r , |br+l |2r+l , |br+2l |2r+2l , . . . kostenlos
addiert werden, indem sie einfach aneinandergehängt werden. Wir erhalten also l(1) := l
Zahlen, deren Länge durch 2n beschränkt ist und deren Summe s ist. Mit diesen wenigen
Summanden wiederholen wir den Trick der ersten Stufe und erhalten l(2) = dlog(l(1)+1)e
Summanden, deren Länge durch 2n beschränkt ist und deren Summe s ist.
Die Tiefe bleibt leider nicht konstant, wenn wir analog fortfahren. Wir argumentieren“
”
nun auf analoge Weise weiter. Es seien x und y die schließlich entstehenden 2 Summanden,
deren Summe s ist. Von wievielen Bits der in Stufe 2 berechneten l(2) Summanden hängt
ein einzelnes Bit, z. B. xi , der beiden Summanden x und y ab? Aus l(j) Summanden
werden in einem Schritt l(j + 1) := dlog(l(j) + 1)e Summanden gemacht, wobei jedes Bit
der neuen Summanden von genau einem Bit jedes vorherigen Summanden, also insgesamt
von l(j) Bits abhängt. Wenn wir k = k(n) Stufen benötigen, um auf 2 Summanden zu
kommen, hängt xi also von l(2)∗· · ·∗l(k−1) Bits der l(2) in Stufe 2 erzeugten Summanden
ab. Da l(j + 1) := dlog(l(j) + 1)e und l(2) = O(log log n) ist, folgt
l(2) ∗ · · · ∗ l(k − 1) = O((log log n)2 ) = o(log n).
Diese Abschätzung lässt sich folgendermaßen begründen. Es ist k = O(log∗ n), wobei
log∗ n angibt, wie oft wir log auf n anwenden müssen, um die Schranke 2 zu unterschreiten. Es ist l(2) = O(log log n) und das Produkt der übrigen O(log∗ n) Faktoren
∗
(log log log n)O(log n) = (log log log)O(log log log log n) = O(log log n), wobei die letzte Gleichung einfach ist, wenn man beide Seiten logarithmisiert. Wir berechnen nun die Bits xi
und yi von x und y direkt aus den l(2) Summanden der Stufe 2 in Tiefe 2 durch ihre
DNF. Da xi und yi nur von o(log n) Bits dieser l(2) Summanden abhängen, hat die DNF
o(n) Minterme.
Schließlich müssen noch x und y addiert werden. Die Carry Look Ahead-Methode (s.
RECHNERSTRUKTUREN) liefert einen AC 0 -Schaltkreis zur Addition zweier Zahlen.
142
Übersicht über Ω(N log N )-Schranken
Satz
von
Ben-Or





































































































ELEMENT
UNIQUENESS
-CLOSENESS
































































































≤N CLOSEST
PAIR
≤N SORTIEREN
≤N KONVEXE HÜLLE
≤N LINE SEGMENT
INTERSECTION
TEST
≤N INTERSECTION OF
HALF-PLANES
≤N CONTOUR OF
UNION OF
RECTANGLES
≤N MEASURE OF UNION OF
RECTANGLES
143
≤N ALL NEAREST
NEIGHBORS








≤N EUCLIDEAN
MINIMUM
SPANNING TREE
n
≤N TRIANGULATION
Übersicht über NP-harte Probleme
Methoden: 1: Restriktion, 2: Lokale Ersetzung, 3: Verbundene Komponenten
<3p GC-3
<1p GC < k, k > 3
<1p GC- k, k > 3
<2p GC-3 für D<4 <2p GC-3 für D<4 und planare Graphen
<2,3
p KP*
<1,2
p PARTITION
144
<3
p CLIQUE
3
2
L <p SAT <p 3-SAT
<1p MULTIPROCESSOR SCHEDULING
<2p SEQUENCING WITH INTERVALS
< k -th SMALLEST SUBSET
T
<1p KP
<1
<1p BPP
<1
p IP p VC
<1p SUBGRAPH
ISOMORPHISM
<1p HITTING SET
<2p BOOLEAN SUMS
<3p MINIMUM TARDINESS SEQUENCING
<3p DHC
<3p 3-DM
<1p MED
<2p HC
<1p TSP
1
<1,2
p HAMILTONIAN PATH <p BOUNDED DEGREE SPANNING TREE
<1p MINIMUM COVER
<2p PARTITION INTO TRIANGLES
<2p MINIMUM TEST COLLECTION
<3p 4-PARTITION <3p 3-PARTITION
für polynom. große Zahlen
<3p MP3
für polynom. große Zahlen
<3p SEQUENCING WITH INTERVALS
für polynom. große Zahlen
<3p SUBFOREST ISOMORPHISM
Unmöglichkeit von Approximationsalgorithmen, falls NP6=P
Additiver Fehler:
pol. Approx.schema:
voll pol. Approx.schema:
Konstanter mult. Fehler:
Endliche Güte:
PSPACE-vollst. Probleme:
P-vollständige Probleme:
P/Poly-vollständige Probleme:
NTAPE(log n)-vollst. Probl.:
#P-vollständige Probleme:
Projektionen, cd-Reduktionen:
KP
IP
IP
alle stark NP-vollständigen Probleme
< 1, 5 : BPP (bzgl. worst case Güte)
8
− ε : 3-SATmax
7
TSP
CLIQUE
IP
QBF, GENERALIZED HEX
REGULAR EXPRESSION NON-UNIVERSALITY
CSL
EMPTINESS OF CONTEXT FREE LANGUAGES
CIRCUIT VALUE PROBLEM
GRAPH REACHABILITY
#SAT
PERM
PAR ≤rop IP ≤rop MUL ≤rop SQU ≤rop INV ≤rop DIV,
BSUM ≤rop MUL,
SQU ≤proj MUL,
MUL ≤cd MULTADD ≤cd BSUM
145
Auflistung aller Probleme aus dem
Komplexitätstheorieskript
Problemname
BIN PACKING
Bk
BDST
CVP
CSL
DHC
2-DM
3-DM
ECFL
GC
Boolesche Ausdrücke
BOOLEAN SUMS
BOUNDED DEGREE
SPANNING TREE
CIRCUIT VALUE PROBLEM
CLIQUE
COMPOSITE
CONTEXT SENSITIVE
LANGUAGES
DIRECTED HAMILTONIAN
CIRCUIT
BIPARTITES MATCHING
Dreidimensionales Matching
EMPTINESS OF CONTEXT
FREE LANGUAGES
GENERALIZED HEX
GRAPH COLORABILITY
GC-k für k ≥ 3
GC≤ k für k ≥ 3
GC-k für k ≤ 2
GC≤ k für k ≤ 2
GC-3 für Grad ≤ 4
GC-3 für planare Graphen
GC-3 für Grad ≤ 4
und planare Graphen
Charakterisierung
NP-vollständig
RM IN = 1
falls P 6= NP, ist RA ≥ 23
für alle
P Algorithmen A
k -vollständig
NP-vollständig
Seite
Buch 55
Buch 70
NP-vollständig
P/Poly-vollständig bzgl. ≤proj
NP-vollständig
∈APX
/
P
26
140
Buch 52
92
S. 52
PSPACE-vollständig
NP-vollständig
P
NP-vollständig
85
58
28
99
Buch 56
22
22
log-SPACE-vollständig für P
PSPACE-vollständig
NP-vollständig
NP-vollständig
NP-vollständig
P
P
NP-vollständig
NP-vollständig
102
99
38
38
38
38
38
39
41
NP-vollständig
42
146
GI
GRP
HC
IP
IP
MAJ
MED
MP3
Problemname
GRAPH ISOMORPHISM
GRAPH REACHABILITY
PROBLEM
HAMILTONIAN CIRCUIT
HAMILTONIAN PATH
HITTING SET
INDEPENDENT SET
Inneres Produkt
KNAPSACK
Charakterisierung
vermutl. in NPI
GI ∈ IP(2)
GI ∈ BP(NP)
hat interaktives Beweissystem
mit perfekter Zero-Knowledge
Eigenschaft
log-SPACE-vollständig
für NTAPE(log n)
NP-vollständig
hat interaktives Beweissystem
mit der computational
Zero-Knowledge Eigenschaft
NP-vollständig
NP-vollständig
NP-vollständig
∈
/ APX
TC0,3 − TC0,2
NP-vollständig,
pseudopol.Algorithmus
voll pol. Approximationsschema
k-th SMALLEST
SUBSET
Majoritätsfunktion
MAX CUT
MAX CUT
für planare Graphen
MINIMUM COVER
MINIMUM EQUIVALENT
DIGRAPH
MINIMUM TARDINESS
SEQUENCING
MINIMUM TEST
COLLECTION
Meisterschaftsproblem
mit 3-Punkte-Regel
MULTIPROCESSOR
SCHEDULING
Paritätsfunktion
147
Seite
52, 67
68
70
75
104
Buch 58
76
26
25
93
131
Buch 53
Buch 60
EA-Skript
NP-hart
NC1 − ACC0 [2]
NP-vollständig
51
130
41
P
NP-vollständig
41
26
NP-vollständig
27
NP-vollständig
32
NP-vollständig
30
NP-vollständig
33
NP-vollständig
TC0,2 − AC0
27
130, 131
Problemname
PARTITION
QBF
SAT
PARTITION INTO
TRIANGLES
3-PARTITION
4-PARTITION
Permanente
PRIMES
QUANTIFIED BOOLEAN
FORMULAS
REGULAR EXPRESSION
NON-UNIVERSALITY
SATISFIABILITY PROBLEM
#-SAT
3-SAT
2-SAT
SATmax
3-SATmax
TSP-1
SEQUENCING WITH
INTERVALS
SUBFOREST ISOMORPHISM
SUBGRAPH ISOMORPHISM
TRAVELING SALESMAN
PROBLEM
TSP-2
TSP4
VC
Euklidisches TSP
VERTEX COVER
Charakterisierung
NP-vollständig,
pseudopolynomieller
Algorithmus
Seite
Buch 55
NP-vollständig
stark NP-vollständig
stark NP-vollständig
#P-vollständig
P
28
45
43
105
S. 52
PSPACE-vollständig
97
PSPACE-vollständig
NP-vollständig
pol. selbstreduzierbar
#P-vollständig
NP-vollständig
P
∈ APX
∈ APX
für alle Algorithmen A
und alle ε > 0 ist
RA ≥ 8/7 − ε
99
Buch 47
118
105
Buch 51
Buch 51
89
89
stark NP-vollständig
NP-vollständig
NP-vollständig
NP-äquivalent
Falls P 6= NP, ist RM IN = ∞
stark NP-vollständig
NP-äquivalent
RM IN ≤ 32
49
49
26
Buch 66
Buch 71
Buch 62
polyn. Approximationsschema
NP-vollständig
RM IN ≤ 2
148
89
Buch 70
EA-Skript
82
25
82
Herunterladen