5 Parametrisierte Komplexität Es sei daran erinnert, dass ein Vertex Cover“ eines Graphen G = (V, E) eine Teilmenge ” C ⊆ V der Knotenmenge ist, die von jeder Kante e ∈ E mindestens einen Randknoten enthält. Mit Hilfe der Knoten aus C kann man gewissermaßen alle Kanten des Graphen kontrollieren. Es sei weiter daran erinnert, dass eine unabhängige Menge (independent set) eines Graphen G = (V, E) eine Teilmenge U ⊆ V der Knotenmenge ist, die aus paarweise nicht benachbarten Knoten besteht. Im Gegensatz dazu ist eine Clique in G ist eine Teilmenge U ⊆ V der Knotenmenge, die aus paarweise benachbarten Knoten besteht. Offensichtlich gilt folgendes für die Entscheidungsprobleme IS (Independent Set) und VC (Vertex Cover): • U ist eine Clique in G = (V, E) gdw U eine unabhängige Menge in Ḡ = (V, Ē) = (V, (V × V ) \ E) ist. Daher ergibt sich mit der Reduktionsabbildung (G, k) 7→ (Ḡ, k) die Karp-Reduktion CLIQUE ≤pol IS: eine Clique der Größe k in G wäre nämlich eine unabhängige Menge der Größe k in Ḡ und umgekehrt. Die NP-Härte von CLIQUE verberbt sich somit auf IS. • U ist eine unabhängige Menge in G = (V, E) gdw Ū = V \ U ein Vertex Cover in G ist. Daher ergibt sich mit der Reduktionsabbildung (G, k) 7→ (G, |V | − k) die KarpReduktion IS ≤pol VC: eine unabhängige Menge der Größe k in G liefert und mit ihrem Komplement nämlich ein Vertex Cover der Größe |V | − k in G und umgekehrt. Die NP-Härte von IS vererbt sich daher auf VC. In Bezug auf Bezug auf Entscheidungs- oder Optimierungsalgorithmen sind CLIQUE, IS und VC isomorphe“ Probleme. Wir wissen bereits, dass dies in Bezug auf Approximations” algorithmen falsch ist, da VC zur Klasse APX der (mit Güte 2) approximierbaren Probleme gehört, wohingegen IS (unter der P 6= NP Voraussetzung) keine Approximationsalgorithmen mit konstanter Güte zulässt. In diesem Abschnitt wird sich ein ähnlicher Gegensatz ergeben: VC gehört zur Klasse FPT der sogenannten Fest-Parameter behandelbaren“ Probleme, wo” hingegen IS (unter der P 6= NP Voraussetzung) nicht zu FPT gehört. Die Aussage über IS ” gilt entsprechend auch für das folgende Problem: Dominating Set (DS) Knotenüberwachung durch möglichst wenige Knoten Eingabe Ein Graph G = (V, E) und eine Kostenschranke k Frage Kann man mit k Knoten alle Knoten überwachen, d.h., existiert eine Teilmenge D ⊆ V (genannt dominating set“) der Maximalgröße k, so dass jeder Knoten ” v ∈ V \ D mindestens einen Nachbarn in D besitzt. Kommentar Dieses Problem findet Anwendungen bei der Überwachung von Rechnern in einem Rechnernetz. Oberflächlich betrachtet sind die Probleme VC und DS enge Verwandte, wie durch die folgende polynomielle Reduktion unterstrichen wird: Lemma 5.1 VC ≤pol DS. 1 Beweis Es sei (G, k) mit G = (V, E) eine gegebene Eingabeinstanz von VC. Wir verwenden die (effizient berechenbare) Eingabetransformation (G, k) 7→ (G′ , k + n), wobei G′ aus G durch die in Abbildung 1 dargestellte lokale Ersetzung hervorgeht. G a e G’ b a0 e 0 b0 a1 b1 a2 b2 Abbildung 1: Lokale Ersetzung bei der polynomiellen Reduktion von VC auf DS. Wie aus der Abbildung ersichtlich hat G′ die Knotenmenge V0 ∪ V1 ∪ V2 ∪ E0 (mit der offensichtlichen Bedeutung von V0 , V1 , V2 , E0 ). Die Kantenmenge von G′ ist ebenfalls leicht aus der Abbildung abzulesen. Wir werden im Folgenden die Knoten aus V mit den Knoten aus V0 identifizieren. Der Beweis wird abgeschlossen durch die Behauptung Es gibt genau dann ein Vertex Cover der Maximalgröße k in G, wenn es eine Dominating Set der Maximalgröße k + n in G′ gibt. Nehmen wir an, dass wir in G jede Kante mit Knoten aus U ⊆ V überwachen können und |U| ≤ k. Dann können wir in G′ jeden Knoten mit den Knoten aus U ∪ V1 überwachen. Es gilt |U ∪ V1 | = |U| + n ≤ k + n. Nehmen wir an, dass wir in G′ jeden Knoten mit Knoten aus U ′ ⊆ V0 ∪ V1 ∪ V2 ∪ E0 überwachen können und |U ′ | ≤ k + n. Wir können oBdA annehmen, dass in U ′ keine Knoten aufgenommen werden, die in ihrer Überwachungspotenz“ von anderen Knoten dominiert ” werden. Zum Beispiel ist v1 potenter“ als v2 , da v1 die Knoten v0 , v1 , v2 überwacht und ” v2 lediglich die Knoten v1 , v2 . Somit gilt oBdA U ′ ∩ V2 = ∅. Da andererseits alle Knoten aus V2 überwacht werden müssen und v2 nur von sich selbst oder von v1 aus überwacht werden kann, gilt V1 ⊆ U ′ . Durch V1 werden bereits alle Knoten aus V0 überwacht, aber noch keine Knoten aus E0 . Das Restproblem ist also auf die Überwachung der Knoten aus E0 zusammengeschrumpft. Unter diesen Bedingungen gilt für jede Kante e = {a, b}, dass a0 (bzw. b0 ) mindestens so potent“ ist wie e0 . Knoten a0 (bzw. b0 ) könnte nämlich potentiell ” neben e0 noch weitere Knoten aus E0 überwachen. Wir können also oBdA annehmen, dass U ′ die Form U ′ = V1 ∪U0 mit U0 ⊆ V0 hat, wobei die maximal k Knoten aus U0 die Überwachung von E0 gewährleisten. Es folgt, dass U = {v| v0 ∈ U0 } ein Vertex Cover der Maximalgröße k in G ist. qed. 2 Folgerung 5.2 DS ist NP -vollständig. In Abschnitt 5.1 werden wir die Fest-Parameter Behandelbarkeit von VC herausarbeiten. In Abschnitt 5.2 präsentieren wir eine formale Definition der Klasse FPT und gehen auf den dazu passenden Reduktionsbegriff ein, mit Hilfe dessen die Nichtmitgliedschaft von IS und DS in FPT (unter der P 6= NP Voraussetzung) bewiesen werden könnte. 5.1 Ein Fest-Parameter behandelbares Beispielproblem Der Star dieses Unterabschnittes ist das Problem VC. Wir wollen im folgenden herausarbeiten, dass VC gegenüber CLIQUE, IS oder DS eine Sonderrolle einnimmt. Beginnen wir mit einer Gemeinsamkeit der genannten Probleme. Wenn wir die Kostenschranke k zu einer Konstanten einfrieren, dann werden Probleme von der Art CLIQUE, n IS, VC oder DS trivialisiert. Wir können nämlich mit Exhaustive Search alle k Teilmengen U ⊆ V der Größe k der Reihe nach durchmustern und jeweils auf die entsprechende Eigenn schaft testen. Falls k eine von n = |V | unabhängige Konstante ist, dann gilt k = O(nk ) und wir erhalten eine polynomielle Zeitschranke. Nun ist nk zwar ein Polynom, aber Ω(nk ) Rechenschritte sind für große Konstanten k (selbst bei moderater Eingabelänge n) nicht tolerierbar. Der Ansatz der parametrisierten Komplexität ist zu überprüfen, ob nicht auch eine Zeitschranke der Form f (k)nc eingehalten werden kann. Hierbei ist f eine beliebige, nur von k (aber nicht von n) abhängige Funktion und c ≥ 1 ist eine von n und k unabhängige Konstante. Für konstantes k und c = 1 hätten wir zum Beispiel eine lineare Laufzeitschranke vorliegen, im Vergleich zu nk eine radikale Verbesserung. Für VC geht dieser Plan voll auf: Satz 5.3 (Downey und Fellows, 1992) VC kann in O(2k n) Schritten (auf einer Random Access Maschine mit uniformem Kostenmaß) gelöst werden. Beweisskizze Wir skizzieren nur die Idee, die den Faktor 2k ins Spiel bringt. Von jeder Kante e = {v, w} enthält ein Vertex Cover den Knoten v oder den Knoten w. Wir können daher einen binären Entscheidungsbaum T aufbauen. Jeder Knoten von T repräsentiert ein partielles Vertex Cover, das anfangs (im Wurzelknoten von T ) noch leer ist. Jede neue binäre Entscheidung führt dazu, dass T sich an einem bisherigen Blattknoten z wieder binär verzweigt und das von z repräsentierte partielle Vertex Cover um einen Knoten erweitert wird. Um das Wachstum von T levelweise voranzutreiben, protokollieren wir an jedem Knoten z die korrespondierende partielle Lösung Uz und die Menge der noch unüberwachten Kanten Ez . Wir brechen den Wachstumsprozess von T an einem Blatt z ab, wenn (der Misserfolgsfall) |Uz | = k, Ez 6= ∅ oder wenn (der Erfolgsfall) Ez = ∅. T braucht (wegen der Kostenschranke k) nicht über Tiefe k hinaus wachsen und enthält daher O(2k ) Knoten. Falls T zu wachsen aufhört, ohne dass der Erfolgsfall eingetreten ist, dann existiert kein Vertex Cover der Größe k. Im Erfolgsfall hingegen haben wir ein Vertex Cover der Maximalgröße k aufgespürt. Der Overhead, der an jedem Knoten von T zu leisten ist, ist polynomiell in n beschränkt. Eine 3 verfeinerte Implementierung und eine genauere Analyse zeigen, dass eine Laufzeitschranke der Form O(2k n) eingehalten werden kann. Die in diesem Beweis benutzte Datenstruktur trägt den Namen beschränkter Suchbaum ” (bounded search tree)“. Eine weitere Schlüsseltechnik ist die sogenannte Reduktion auf ” einen Problemkern“, deren Anwendung auf Vertex Cover zu folgendem Resultat führt: Satz 5.4 (Buss, 1989) VC kann in O(k k + n) Schritten (auf einer Random Access Maschine mit uniformem Kostenmaß) gelöst werden. Beweisskizze Wir skizzieren nur die Idee, die zu der additiven“ Form f (k) + g(n) der ” Zeitschranke führt. Die Reduktion auf den Problemkern von Vertex Cover mit fester Kostenschranke k nutzt die folgenden offensichtlichen Tatsachen aus: - Jeder Knoten von einem k überschreitenden Grad muss in das Vertex Cover“ C auf” genommen werden. - Bei einem Graphen ohne isolierte Knoten ist jedes vertex cover“ auch eine dominating ” ” set“. Wenn jeder Knoten maximal k Nachbarn hat und es gibt ein Vertex Cover“ (und ” somit eine dominating set“) der Größe k ′ , dann kann es maximal k ′ (k + 1) Knoten ” geben. Dies legt folgenden Algorithmus nahe: 1. Teste, ob es mehr als k Knoten mit jeweils mehr als k Nachbarn gibt. Falls JA, dann kann es kein Vertex Cover“ der Größe k geben. Falls NEIN, dann nimm die p ≤ k ” Knoten mit jeweils mehr als k Nachbarn in das (anfangs leere) Vertex Cover“ C auf, ” reduziere die Kostenschranke auf k ′ := k − p, entferne aus G alle Knoten aus C und die zu ihnen inzidenten Kanten sowie alle resultierenden isolierten Knoten (die zu einer Überwachung der Kanten des Restgraphen nichts beitragen können) und erhalte so den Restgraphen“ G′ . ” 2. Teste, ob G′ mehr als k ′ (k + 1) Knoten enthält. Falls JA, dann kann es in G′ kein Vertex Cover“ der Größe k ′ (und somit in G kein Vertex Cover“ der Größe k) geben. ” ” Falls NEIN, dann mache weiter wie folgt. 3. Teste, ob G′ (ein Graph mit maximal k ′ (k + 1) Knoten) ein Vertex Cover“ C ′ der ” Größe k ′ besitzt. Falls JA, dann gib C ∪ C ′ als Vertex Cover“ der Größe k von G aus. ” Falls NEIN, dann existiert kein Vertex Cover“ der geforderten Größe. ” Bei geschickter Implementierung kann die Reduktion auf den Problemkern (hier: die Berechnung des Restgraphen G′ ) in Linearzeit geschehen. Die Berechnung eines Vertex Cover“ ” einer Größe von maximal k ′ ≤ k (sofern vorhanden) kann bei geschickter Implementierung in O(k k ) Schritten geschehen. Dies führt zu der Zeitschranke O(k k + n). 4 Folgerung 5.5 (Balasubramanian, Downey, and Fellows, 1992) VC kann in O(2k k 2 + n) Schritten (auf einer Random Access Maschine mit uniformem Kostenmaß) gelöst werden. Beweis Reduziere zuerst auf den Problemkern und wende auf diesen die Methode mit den beschränkten Suchbäumen an. qed. Der folgende Satz stammt aus dem Jahre 2006 und liefert eine sehr komfortable Zeitschranke für Vertex Cover: Satz 5.6 — ohne Beweis — VC kann in O kn + 1.2738k Schritten (auf einer Random Access Maschine mit uniformem Kostenmaß) gelöst werden. Diese Schranke ist um eine Galaxie“ besser als die Zeitschranke nk eines naiven Verfahrens! ” Für welche Probleme außerhalb von P lässt sich ein Eingabeparameter k dingfest machen, so dass Lösungsalgorithmen mit einer Zeitschranke der Form f (k)nc existieren? Für welche Probleme existieren solche Eingabeparameter k nicht? Um diese Frage korrekt zu beantworten bedarf es einiger abstrakter Definitionen, die den Kern der Fest-Parameter Behandelbarkeit herausarbeiten. 5.2 Probleme innerhalb und außerhalb FPT Definition 5.7 Ein parametrisiertes Problem (sprich: eine parametrisierte formale Sprache) liegt vor, wenn die Eingabeparameter in einen Variablen-Parameter Teil und einen Fest-Parameter Teil zerfallen. Syntaktisch korrekte Eingaben sind also Paare (x, p) — genauer: Kodierungen solcher Paare — wobei x die Kollektion der Variablen-Parameter und p die Kollektion der Fest-Parameter repräsentiert. Definition 5.8 Eine parametrisierte Sprache heißt Fest-Parameter behandelbar (fixed-parameter tractable), wenn ihr Mitgliedschaftsproblem in f (k)nc Schritten lösbar ist. Hierbei ist n die Länge von x, k die Länge von p, f eine nur von k (aber nicht von n) abhängige Funktion und c ≥ 1 eine von n und k unabhängige Konstante. Die Klasse der Fest-Parameter behandelbaren parametrisierten Sprachen bezeichnen wir als FPT. Aus der Definition von FPT folgt sofort: P ⊆ FPT (1) Bemerkung 5.9 Die Definition von FTP ist robust gegen einige Modifikationen. Zum Beispiel ändert sich die Klasse FPT nicht, wenn wir p und k identifizieren (also etwa vorausetzen, dass p die unäre Kodierung einer Zahl k ist). Von dieser Vereinfachung machen wir meistens Gebrauch und sprechen von dem Fest-Parameter k der Eingabe. Weiterhin ändert sich FPT nicht, selbst wenn wir Laufzeitschranken der Form f (k) + nc (anstelle f (k) · nc ) fordern (wie 1997 von Cai, Chen, Downey und Fellows gezeigt wurde). 5 Mit diesen Definitionen können wir das Resultat des vorigen Abschnitts zusammenfassen wie folgt: Satz 5.10 VC ∈ FPT. Obwohl wir im Rahmen dieser Vorlesung nicht näher darauf eingehen können, sei bemerkt, dass FPT eine sehr reichhaltige Klasse ist, und dass die Nachweise zur Mitgliedschaft in FPT einige grundlegende Methoden und Tricks zum Algorithmenentwurf hervorgebracht haben. Andererseits gibt es auch eine breite Palette von Problemen, die (vermutlich) nicht zu FPT gehören. In diese Kategorie der Fest-Parameter harten Probleme gehören zum Beispiel CLIQUE, IS und DS. Die Vermutung der Fest-Parameter Härte eines Problems wird wieder mit einem geeigneten Reduktionsbegriff gestützt. Anders als bei der Klasse NPC haben sich aber mehrere harte Klassen gebildet, die oberhalb von FPT eine Hierarchie bilden. Auch hierauf können wir im Rahmen dieser Vorlesung nicht näher eingehen. Wir definieren lediglich den Reduktionstypus, den man in der Fest-Parameter Komplexitätstheorie zugrunde legen sollte: Definition 5.11 Seien L, L′ parametrisierte formale Sprachen. L heißt Fest-Parameter transformierbar in L′ , falls eine in f (k)nc Schritten berechenbare Fest-Parameter Eingabetransformation (x, k) 7→ (x′ , k ′ ) mit k ′ = g(k) und (x, k) ∈ L ⇔ (x′ , k ′ ) ∈ L′ existiert. Hierbei ist n die Länge von x, f, g sind nur von k (aber nicht von n) abhängige Funktionen und c ≥ 1 ist eine von n und k unabhängige Konstante. Zum Beispiel ist die (aus der Vorlesung Theoretische Informatik“ bekannte) polynomielle ” Reduktion von CLIQUE nach IS (Übergang zum Graphen mit der gleichen Knoten- aber komplementären Kantenmenge) eine Fest-Parameter Transformation (mit g(k) = k ′ = k). Die polynomiellen Reduktionen von IS nach VC (mit k ′ = n − k) und von VC nach DS (mit k ′ = n + k) hingegen sind keine Fest-Parameter Transformationen, da Fest-Parameter k ′ jeweils eine (verbotene) Abhängigkeit von n aufweist. Offensichtlich gilt: Lemma 5.12 Falls L Fest-Parameter transformierbar in L′ ist und L′ ∈ FPT, dann folgt L ∈ FPT. Umgekehrt bedeutet dies natürlich, dass sich eine etwaige Fest-Parameter Härte von L auf L′ vererben würde. Wir bemerken abschließend, dass die Hierarchie die von FPT und den diversen Klassen von Fest-Parameter harten Problemen gebildet wird windschief“ zur polynomiellen Platz” Zeit Hierarchie liegt. Probleme aus NP können bereits Fest-Parameter hart sein. Andererseits gehören sogar einige PSPACE-vollständige Probleme zur Klasse FPT. 6 6 Zwischenbilanz zum Thema P versus NP“ ” Bei großen Softwareprojekten entstehen nach einer Strukturierungs- und Modellierungsphase meist klar umrissene Teilprobleme. Ein Lernziel beim Studium der Effizienten Algorithmen und der Komplexitätstheorie ist • zu erkennen, wenn ein Teilproblem mit einem effizienten Algorithmus lösbar ist, • zu erkennen, wenn dies nicht der Fall ist (zum Beispiel aufgrund der NP -Härte des Problems). NP -harte Probleme verschwinden nicht, wenn wir sie als NP -hart erkannt haben. Es stellt sich also weiterhin die Frage, wie mit harten Problemen umzugehen ist. In den voran gegangenen Abschnitten haben wir ein paar Methoden zum Umgang mit NP-harten Problemen (sowie die theoretischen Grenzen dieser Methoden) kennen gelernt: Einschränkung des Problems Suche nach (praktisch relevanten) und effizient lösbaren Teilproblemen eines NP-vollständigen Problems. Zum Beispiel sind 2-SAT (im Gegensatz zu 3-SAT) und 2-dimensionales Matching (im Gegensatz zum 3-dimensionalen Matching) effizient lösbar. PRECEDENCE CONSTRAINED SCHEDULING wird effizient lösbar, wenn wir nur Bäume (Sortier- oder Montagebäume) als partielle Relation auf der Menge der Aufgaben zulassen. Manche Zahlenprobleme (wie PARTITION oder KNAPSACK) sind pseudopolynomiell lösbar und somit polynomiell lösbar im Falle kleiner“ Zahlparameter in der Eingabe. Die ” Grenzen dieses Ansatzes ergeben sich durch extrem eingeschränkte aber immer noch NP-harte Teilprobleme bzw., im Falle der Zahlprobleme, durch das Phänomen der starken NP-Vollständigkeit. Aufgabe des Anspruches der Optimalität Versuche ein NP-hartes Optimierungsproblem mit einem Approximationsalgorithmus zu lösen, welcher in Polynomialzeit eine gute“ (aber i.A. nicht optimale) Lösung liefert. ” Die Grenzen dieses Ansatzes (den wir am Beispiel der Probleme TSP und KNAPSACK diskutiert haben) ergeben sich durch das Phänomen der NP-harten Approximation. Fest-Parameter Behandelbarkeit Versuche aus den Eingabeparametern einen sogenannten Fest-Parameter“ k zu isolieren, der für die NP-Härte des Problems verantwortlich ” ist und suche einen Algorithmus mit einer Zeitschranke der Form f (k)nc . Diesen Ansatz haben wir am Beispiel von Vertex Cover diskutiert. Seine Grenzen findet er im Phänomen der Fest-Parameter Härte. Ein anderer (bisher von uns nicht diskutierter) Ansatz besteht darin ein mächtigeres Maschinenmodell als die Deterministische Turing Maschine (DTM) zu verwenden. Wir diskutieren ein paar konkrete Vorschläge: Probabilistisches Maschinenmodell Statte M mit einer perfekten Münze aus. M hat pro Schritt zwei Handlungsalternativen und wählt durch Münzwurf eine davon zufällig 7 aus. Dieser Ansatz führt zum Modell der Probabilistischen Turing Maschine (PTM). Um das Mitgliedschaftsproblem für Sprache L zu lösen, muss eine PTM M Eingaben x ∈ L mit “hinreichend hoher” Wahrscheinlichkeit akzeptieren und Eingaben x ∈ / L mit “hinreichend hoher” Wahrscheinlichkeit verwerfen. Wir gehen in einem späteren Stadium der Vorlesung noch genauer auf PTMs und die entsprechenden Komplexitätsklassen ein. Parallelrechnermodell Verwende p parallel arbeitende Prozessoren, die miteinander kommunizieren können, um kooperativ ein gemeinsames Problem zu lösen. In diese Rubrik fallen neben der Parallel Random Access Machine (PRAM) und den diversen Rechnernetzwerken auch die sogenannten (in den letzten zwei Dekaden in Mode gekommenen) DNA-Rechner. Ein NP -hartes Problem lässt sich allerdings auch von einem Parallelrechner nicht zufriedenstellend lösen, da jeder Faktor an Zeitgewinn mit einem mindestens ebenso großen Faktor an zusätzlichem Hardwareaufwand bezahlt wird. Wir können im Rahmen dieser Vorlesung auf Parallelrechner nicht näher eingehen. Qauntenrechner Die DTM und dazu verwandte Modelle sind mathematische Abstraktionen von physikalischen Rechnern, die den Gesetzen der klassischen Mechanik gehorchen. In den letzten zwei Dekaden wurde eine neue Generation von Rechnern vorgeschlagen, die den Gesetzen der Quantenmechanik gehorchen. Ein Quantenrechner ist zu einem bestimmten Zeitpunkt nicht in einer Konfiguration, sondern in einer Überlagerung von vielen Konfigurationen. Erst durch externe Beobachtung kollabiert die Überlagerung zu einer einzigen Konfiguration (gemäß einer zur Überlagerung assoziierten Wahrscheinlichkeitsverteilung). Quantenrechner sind vermutlich wesentlich mächtiger als DTMs. Zum Beispiel konnte Peter Shor nachweisen, dass das Faktorisierungsproblem (Berechnung der Primfaktorzerlegung einer gegebenen ganzen Zahl) und das Diskrete-Logarithmus-Problem auf Quantenrechnern effizient lösbar sind. Auf der vermeintlichen Härte dieser Probleme beruhen die meisten aktuell verwendeten asymmetrischen Kryptosysteme. Es ist zur Zeit noch völlig unklar, ob Quantenrechner physikalisch realisiert werden können. Im Rahmen dieser Vorlesung werden wir auf Quantenrechner nicht weiter eingehen können. Ein weiterer Ansatz, den wir im Rahmen dieser Vorlesung nicht behandeln können ist die Average-Case Analyse Average-case Analyse steht im Gegensatz zur worst-case Analyse. Hier wird die Forderung aufgegeben, auf allen Eingaben erfolgreich sein zu müssen. Man verwendet ein Wahrscheinlichkeitsmaß auf den Eingabeinstanzen und ist zum Beispiel zufrieden, wenn die mittlere Laufzeit polynomiell ist. Ein Argument für average-case Analyse (oder zumindest gegen worst-case Analyse) ist, dass die von polynomiellen Reduktionen produzierten Eingabeinstanzen i.A. kunstvoll und bizarr anmuten. Es könnte also sein, dass genau der Eingabetypus, welcher die NP-Härte bezeugt, in Anwendungen nicht (oder selten) anzutreffen ist. Ein Argument gegen average-case Analyse ist, dass die Auswahl eines analysierbaren Wahrscheinlichkeitsmaßes meist willkürlich und durch die Anwendung nicht zu rechtfertigen ist. 8 Smoothed Analysis Es handelt sich um eine Mischform von average-case und worst-case Analyse, bei welcher gemittelt wird über Eingaben, die aus leichten zufälligen Abänderungen von worst-case Eingaben entstehen. Zum Beispiel konnte gezeigt werden, dass der Simplex-Algorithmus zum Optimieren unter linearen Randbedingungen zwar im worst-case eine exponentielle Laufzeit hat. Die Smoothed Analysis“ jedoch führt im ” statistischen Mittel zu einer polynomiellen Zeitschranke. Schließlich gibt es den sogenannten heuristischen Ansatz“ zum Lösen von NP-harten ” Optimierungsproblemen. Heuristiken und Metaheuristiken Eine Heuristik ist ein Algorithmus, der in der Praxis ganz gut zu funktionieren scheint, ohne dass dies durch eine mathematisch beweisbare Qualitätsgarantie abgesichert wäre. Metaheuristiken sind vielseitig verwendbare Heuristiken, die durch geeignete Adjustierung einiger programmierbarer Parameter auf die Lösung von konkreten Problemen spezialisiert werden können. Daneben gibt es ad-hoc Heuristiken, die für ein konkretes Problem zusammengeschustert wurden. Beispiele für Metaheuristiken sind: • Branch and Bound • Lokale Optimierung • Simulated Annealing • Tabu Search • Neuronale Netze oder Hopfield Netze • Genetische Algorithmen • Great Deluge (große Überschwemmung) • Roaming Ants (umherstreifende Ameisen) Auch diesen Ansatz werden wir aus Zeitgründen nicht weiter verfolgen können. 7 Die Struktur von NP Falls P = NP , dann gibt es zur Struktur von NP nicht viel zu berichten. Alle Betrachtungen dieses Abschnittes basieren auf der Vermutung 1 P 6= NP. Wir verwenden im Folgenden Vermutung 1 als Voraussetzung, ohne dies jedesmal explizt kennntlich zu machen. Wir machen also öfter eine Aussage A, die streng genommen die Form: P 6= NP ⇒ A haben müsste. Es sei daran erinnert, dass NPC die Klasse der NP -vollständigen Probleme bezeichnet. Die Klasse NPI := NP \ (P ∪ NPC ) 9 bezeichne die Klasse der Sprachen aus NP , die einerseits nicht zu P gehören, andererseits aber auch nicht NP-vollständig sind. Aus der NP -Vollständigkeitstheorie folgt direkt, dass die Existenz einer NP -vollständigen Sprache in P die Gleichheit von P und NP zur Folge hätte. Vermutung 1 zugrunde gelegt, müssen also NPC und P disjunkte Teilmengen von NP sein. Mit der Definition von NPI ergibt sich eine erste Strukturaussage: • NP zerfällt in die paarweise disjunkten Klassen P, NPC und NPI . Diese Einsicht ist in Abbildung 2 visualisiert. NPC NP NPI P Abbildung 2: Die Struktur von NP . Wir kennen bereits zahlreiche Sprachen (Probleme) in P bzw. NPC . Wie schaut es aber mit NPI aus: könnte es sein, dass NPI leer ist? Dies würde bedeuten, dass jede Sprache aus NP \ P bereits NP-vollständig sein müsste. Der folgende Satz schließt diese Möglichkeit aus: Satz 7.1 (Ladner, 1975) NPI 6= ∅. Beweis Der Beweis benutzt die Technik der Diagonalisierung und basiert auf folgenden Tatsachen: • Die Binärstrings bezitzen die natürliche“ Aufzählung ε, 0, 1, 00, 01, 10, 11, 000, . . .. Der ” i-te Binärstring dieser Aufzählung wird im Folgenden als α(i) notiert. • Jede Boolesche CNF-Formel kann auf natürliche Weise über dem Binäralphabet {0, 1} kodiert werden. Binärstrings, die keine ordentlichen CNF-Codewörter sind, können mit einer Formel für die Nullkonstante identifiziert werden. Auf diese Weise repräsentiert jeder Binärstring α eine CNF-Formel Fα . • Wie wir aus dem Kapitel über die Universelle Turing-Maschine (UTM) wissen, kann auch jede DTM auf natürliche Weise durch einen Binärstring kodiert werden. Strings, die keine ordentlichen DTM-Codewörter sind, können mit einem Akzeptor für die leere Menge identifiziert werden. Auf diese Weise repräsentiert jeder Binärstring α eine 10 DTM Mα . T Rechenschritte von Mα sind durch O(|α|T log T ) Rechenschritte der UTM simulierbar. • Der natürliche Code α einer DTM kann durch Anhängen von 01n mit einer beliebig großen Anzahl n von Einsen gepolstert“ werden. Dann hat jede DTM unendlich viele ” Codewörter. Die Rechenzeit der UTM hängt aber weiterhin nur von der Länge der nicht-gepolsterten Kodierung ab. SAT bezeichne die Menge der Binärstrings, die eine erfüllbare CNF-Formel repräsentieren. Für jede Funktion H : → definieren wir die folgende Variante von SAT: N N SATH := {α01n H(n) | α ∈ SAT ∧ n = |α|} Für die folgende induktiv definierte (und trickreiche) Wahl der Funktion H gilt (wie wir unter der Voraussetzung P 6= NP noch zeigen werden): SATH ∈ NPI : • Für n ≤ 4 setze H(n) = 1. • Für n ≥ 5 setze H(n) auf die kleinste Zahl i < log log n mit folgender Eigenschaft: Für alle Binärstrings α mit |α| < log n gibt Mα(i) nach maximal i|α|i Schritten das Indikatorbit aus, welches anzeigt, ob α ∈ SATH . Falls kein in diesem Sinne erfolgreicher“ ” Index i existiert, dann setze behelfsweise H(n) = ⌈log log n⌉. Es ist offensichtlich, dass H(n) eine in n monoton wachsende Funktion ist. Somit existiert der Grenzwert limn→∞ H(n) (evtl. ∞). Die zentralen Bausteine für den Rest des Beweises sind die folgenden weiteren Eigenschaften der Funktion H: Behauptung 1: H(n) ist in poly(n) Schritten berechenbar. Behauptung 2: SATH ∈ P ⇒ limn→∞ H(n) < ∞. Behauptung 3: SATH ∈ / P ⇒ limn→∞ H(n) = ∞. Wir demonstrieren zunächst, wie sich mit Hilfe der drei Behauptungen SATH ∈ NPI ableiten lässt. Aus Behauptung 1 ergibt sich SATH ∈ NP . Wir haben auszuschließen, dass SATH zu P oder zu NPC gehört. Wir zeigen, dass die Annahme einer Mitgliedschaft in P oder NPC jeweils zu einem Widerspruch zur P 6= NP Voraussetzung führt. Angenommen, SATH ∈ P. Dann hat H(n) gemäß Behauptung 2 einen endlichen Grenzwert, sagen wir C. Das bedeutet aber, dass eine CNF-Formel Fα der Kodierungslänge n = |α| nur mit maximal nC Einsen (polynomiell in n viele) ausgepolstert wird. Somit kann ein Polynomialzeitalgorithmus für SATH benutzt werden, um SAT in Polynomialzeit zu lösen. Daraus ergäbe sich P = NP im Widerspruch zur P 6= NP Voraussetzung. Nehmen wir nun an, dass SATH ∈ NPC . Dies impliziert SATH ∈ / P, was gemäß Behauptung 3 wiederum limn→∞ H(n) = ∞ impliziert. Eine CNF-Formel Fβ der Kodierungslänge |β| wird demnach im Rahmen der Sprache SATH mit superpolynomiell vielen Einsen ausgepolstert. Wegen der (angenommenen) NP-Härte von SATH (und wegen der Polynomialzeitberechenbarkeit von H) muss eine in Polynomialzeit 11 H(m) berechenbare Reduktionsabbildung der Form α 7→ β01m mit m = |β| existieren, die SAT auf SATH reduziert. Das Anhängen von superpolynomiell in m vielen Einsen kann nur dann in p poly(|α|) Schritten geschehen, wenn β signifikant kürzer als α ist. Zum Beispiel kann |β| ≤ |α| gefolgert werden. Iteratives Anwenden der Reduktionsabbildung führt dann aber zu einem Polynomialzeitalgorithmus für SAT im Widerspruch zur P 6= NP Voraussetzung. Die Schlussfolgerung aus dieser Diskussion ist, dass SATH ∈ NPI . Jedoch haben wir abschließend noch die drei Behauptungen zu beweisen. Beweis von Behauptung 1: Es gibt log log n Kandidatenzahlen i und weniger als 2n Kandidatenstrings α (da die Anzahl der Binärstring einer Maximallänge k gleich 2k+1 −1 < 2k+1 ist). Für jedes fest gewählte Paar (i, α) ist im Wesentlichen folgendes zu tun: • Verwende die UTM, um die Rechnung von Mα(i) auf Eingabe α für i|α|i < log log(n) log(n)log log(n) Schritte zu simulieren. Für jeden fest gewählten Binärstring α ist zu testen, ob α ∈ SATH . Dies kann wie folgt geschehen: • Teste (Test 1), ob α das Symbol 0 enthält und, gegebenenfalls, zerlege α gemäß α = β01m . • Interpretiere β als CNF-Formel Fβ und teste (Test 2) diese auf Erfüllbarkeit (wegen |β| < |α| ≤ log n in poly(n) Schritten machbar). • Berechne rekursiv1 H(|β|) und teste (Test 3), ob m = |β|H(|β|) . • Setze das Indikatorbit für α ∈ SATH ?“ auf 1, falls α alle drei Tests besteht; ” andernfalls setze das Indikatorbit auf 0. Um das kleinste erfolgreiche“ i zu finden, müssen die Indikatorbits zu den α-Strings ” mit den Indikatorbits verglichen werden, welche die DTMs Mα(i) angesetzt auf α produzieren. Bei vernünftiger Implementierung des skizzierten Algorithmus zur Berechnung von H(n) ergibt sich eine polynomiell in n beschränkte Laufzeit. (Wir verzichten an dieser Stelle auf die Angabe weiterer Details.) Beweis von Behauptung 2: Unter der Annahme SATH ∈ P existiert eine DTM M, welche die Mitgliedschaft in SATH korrekt in Polynomialzeit entscheidet. Für eine hinreichend groß gewählte Konstante j vollzieht M auf Eingaben der Länge n maximal jnj Rechenschritte. Da M (wie jede andere DTM auch) unendlich viele Kodierungsstrings besitzt, existiert ein Index k ≥ j mit M = Mα(k) . Aus der Definition von H ergibt sich dann aber, dass die Funktion H(n) durch k nach oben beschränkt ist. Beweis von Behauptung 3: Wir führen einen indirekten Beweis und zeigen, dass ein endlicher Grenzwert k von H(n) impliziert, dass SATH ∈ P . Grenzwert k bedeutet, dass es einen Index n0 gibt, so dass H(n) = k für alle n ≥ n0 . Aus der Definition von H 1 Bei der genauen Zeitanalyse muss ausgenutzt werden, dass der Parameter |beta|, auf welchem der rekursive Aufruf erfolgt, wesentlich kleiner ist als der Parameter n, mit dem wir gestartet waren. 12 ergibt sich dann, dass Mα(k) das Mitgliedschaftsproblem für die Sprache SATH mit Laufzeitschranke knk löst (wobei die endlichen vielen Strings einer Länge unterhalb von n0 von der endlichen Kontrolle übernommen werden können). Damit ist der Beweis des Satzes abgeschlossen. qed. Wir wollen nun die Stuktur von NP differenzierter untersuchen. Definition 7.2 Wir sagen zwei Sprachen L1 und L2 sind polynomiell äquivalent, wenn sie wechselseitig aufeinander polynomiell reduzierbar sind. In Zeichen: pol L1 ∼ L2 :⇔ L1 ≤pol L2 und L2 ≤pol L1 . Diese Relation ist (offensichtlich) eine Äquivalenzrelation. Eine Äquivalenzklasse bezüglich pol pol ∼“ heiße Schwierigkeitsgrad bezüglich ∼“ oder kurz p-Grad. ” ” Wenn wir polynomielle Unterschiede zwischen Laufzeiten ignorieren, können wir zwei polynomiell äquivalente Sprachen als (im Wesentlichen) gleich schwer betrachten. Die folgende Definition liefert eine partielle Ordnung auf den p-Graden; Definition 7.3 Wir sagen L1 ist leichter als L2 bezüglich polynomieller Reduktion, wenn zwar L1 polynomiell reduzierbar auf L2 ist, aber nicht umgekehrt. In Zeichen (mit ¬“ für ” logische Negation“): ” L1 <pol L2 :⇔ L1 ≤pol L2 und ¬(L2 ≤pol L1 ) . Wir sagen der p-Grad von L1 ist leichter als der p-Grad von L2 , wenn L1 leichter als L2 bezüglich polynomieller Reduktion ist. Es ist leicht einzusehen, dass <pol auf Sprachen eine irreflexive, asymmetrische partielle Ordnung bildet, die auch auf p-Graden wohldefiniert (also nicht abhängig von der Auswahl des Repräsentanten eines p-Grades) ist. In diesem Lichte besteht NP aus einer Hierarchie von p-Graden. Eine Teilhierarchie ist in Abbildung 3 zu sehen. Die folgenden Aussagen sind nicht schwer zu zeigen. Übg. • Die leere Menge und Σ∗ bilden zwei triviale p-Grade, angesiedelt auf der untersten Stufe der Hierarchie. • P \ {∅, Σ∗ }, also die restlichen Sprachen aus P, bilden den nächst-einfachsten p-Grad, den wir als P-Grad bezeichnen. • NPC , also die NP -vollständigen Probleme, bilden den schwersten p-Grad in NP . • Da NPI nicht leer ist, können wir willkürlich eine Sprache L aus NPI rausgreifen. Ihr p-Grad muss echt zwischen dem P-Grad und NPC liegen. 13 NPC Grad zu L aus NPI P-Grad * Abbildung 3: Eine Teilhierarchie der p-Grade. Es stellt sich nun die Frage, ob die Struktur der p-Grade zwischen P und NPC nicht wesentlich komplexer ist, als dies durch Abbildung 3 suggeriert wird. Dies ist in der Tat der Fall, wie folgende Sätze belegen: Satz 7.4 (Ladner, 1975) und NPC . 1. Es gibt unendlich lange Ketten von p-Graden zwischen P 2. Es gibt unvergleichbare p-Grade zwischen P und NPC . Die erste Aussage bedeutet, dass es Sprachen L0 , L1 , L2 , . . . , L∗ ∈ NP gibt, so dass L0 ∈ P, L∗ ∈ NPC und L0 <pol L1 <pol L2 <pol · · · <pol L∗ . Die Sprachen L1 , L2 , . . . spannen eine unendliche Kette zwischen den p-Graden P und NPC auf. Die zweite Ausage macht deutlich, dass <pol nur eine partielle, nicht aber totale, Ordnung auf den p-Graden liefert. Der Beweis dieses Satzes, den wir in unserer Vorlesung auslassen, basiert (wie schon der Beweis von Satz 7.1) auf der Diagonalisierungstechnik. Wir wollen im Folgenden das Bild durch die Betrachtung von co-NP abrunden. Die allgemeine Definition einer Komplementärklasse zu einer Sprachklasse C ist wie folgt: co-C := {L̄ : L ∈ C} . C = co-C würde gerade bedeuten, dass C abgeschlossen unter Komplementbildung ist. Wir formulieren jetzt die Vermutung, dass NP diese Abschlusseigenschaft nicht besitzt: Vermutung 2 NP 6= co-NP . Die folgende Überlegung zeigt, dass Vermutung 2 stärker ist als Vermutung 1: 14 Bemerkung 7.5 NP 6= co-NP ⇒ P 6= NP . Beweis Wir führen einen indirekten Beweis, d.h., wir beweisen (unter Ausnutzung von P = co-P) die Aussage P = NP ⇒ NP = co-NP : P = NP ⇒ co-NP = co-P = P = NP . qed. co-NP ist eine zu NP duale Klasse. Strukturen in NP haben ihr duales Pendant in co-NP . Eine erste Illustration dieses Sachverhaltes liefert Lemma 7.6 co-NPC , also die Komplementärklasse der NP -vollständigen Sprachen, stimmt überein mit der Klasse co-NP-vollständigen Sprachen. Beweis Wir nutzen die Implikation L1 ≤pol L2 ⇒ L̄1 ≤pol L̄2 aus. Somit sind die folgenden Aussagen äquivalent: L0 ∈ co-NPC ⇔ ⇔ ⇔ ⇔ ⇔ L̄0 ∈ NPC (L̄0 ∈ NP ) ∧ (∀L ∈ NP : L ≤pol L̄0 ) (L0 ∈ co-NP ) ∧ (∀L ∈ NP : L̄ ≤pol L0 ) (L0 ∈ co-NP ) ∧ (∀L ∈ co-NP : L ≤pol L0 ) L0 ist co-NP-vollständig. qed. Definition 7.7 Eine Beziehung ≤P OL zwischen formalen Sprachen heißt abstrakte polynomielle Reduktion, wenn ≤P OL transitiv ist und wenn L ≤P OL L′ und L′ ∈ P impliziert, dass L ∈ P. Wir merken kurz an, dass Lemma 7.6 allgemeiner hätte formuliert werden können: an der Stelle der polynomiellen Reduktion ≤pol“ könnte eine beliebige abstrakte polynomielle ” Reduktion ≤P OL“ stehen, welche zusätzlich die Bedingung ” L1 ≤P OL L2 ⇒ L̄1 ≤P OL L̄2 erfüllt. Cook- oder Levin-Reduktionen bezitzen diese Eigenschaft ebenfalls, wie sich leicht zeigen ließe. Somit ergibt sich die Übg. Folgerung 7.8 Die Komplementärklasse der unter Cook- bzw. Levin-Reduktionen NP -vollständigen Sprachen stimmt überein mit der Klasse unter Cook- bzw. Levin-Reduktionen co-NPC -vollständigen Sprachen. 15 Das folgende Lemma gibt ein paar zur NP 6= co-NP -Voraussetzung äquivalente Bedingungen an. Lemma 7.9 Folgende Aussagen sind äquivalent: 1. NP 6= co-NP . 2. NPC ∩ co-NP = ∅. 3. co-NPC ∩ NP = ∅. 4. NP ∩ co-NP ⊆ NPI ∪ P. Beweis Zur Äquivalenz der ersten beiden Aussagen genügt es freilich NP = co-NP ⇔ NPC ∩ co-NP 6= ∅ zu zeigen. NP = co-NP ⇒ NPC ∩ co-NP 6= ∅ erhalten wir wie folgt: NP = co-NP ⇒ NPC = co-NPC ⇒ NPC ∩ co-NP = NPC 6= ∅ . Nehmen wir umgekehrt an, dass NPC ∩ co-NP 6= ∅. Dann gibt es eine NP -vollständige Sprache L0 , die auch zu co-NP gehört. Da jede Sprache L ∈ NP auf L0 polynomiell reduzierbar ist, ergibt sich hieraus NP ⊆ co-NP . Dies wiederum impliziert co-NP ⊆ co-co-NP = NP und wir erhalten NP = co-NP . Zur Äquivalenz von Aussage 2 und 3 genügt es freilich NPC ∩ co-NP 6= ∅ ⇔ co-NPC ∩ NP 6= ∅ zu zeigen. Hierzu nutze aus, dass für alle Sprachen L die Aussagen L ∈ NPC ∩ co-NP und L̄ ∈ co-NPC ∩ NP äquivalent sind. Die Äquivalenz der Aussagen 2 und 4 ist offensichtlich. qed. Die durch Lemma 7.9 beschriebene Situation ist in Abbildung 4 noch einmal zusammengefasst. NP co-NP NPC co-NPC P Abbildung 4: Struktur von NP ∪ co-NP unter der NP 6= co-NP -Voraussetzung. 16