HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen und Komplexität Sommersemester 2004 Klaus Volbert 1 HEINZ NIXDORF INSTITUT NP-vollständige Probleme • • • • • • • • Universität Paderborn Algorithmen und Komplexität SAT und 3-SAT (Masterreduktionen) CLIQUE KNOTENÜBERDECKUNG SUBSETSUM RUCKSACK (einfach: rationaler Rucksack!) HAMILTONKREIS TSP Übungen: PARTITION, BIN PROGRAMMING, COLOR, INDEPENDENT SET, 1in3SAT, … Klaus Volbert 2 NP-vollständig – Was nun? HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität • Spezialfälle – Ist wirklich die Lösung des allgemeinen Problems verlangt? • Heuristiken – Im worst-case: exponentielle Laufzeit – Für „manche“ Eingaben: polynomielle Laufzeit • Approximationsalgorithmen – Ziel: für jede Eingabe polynomielle Laufzeit – Lösung ist nicht optimal, aber wir können etwas über die Qualität sagen (z.B. „Wert der Ausgabe ist höchstens doppelt so schlecht wie der Wert einer opt. Lösung“) Klaus Volbert 3 HEINZ NIXDORF INSTITUT Heuristiken Universität Paderborn Algorithmen und Komplexität …. sind Algorithmen, die exakte Lösungen für Probleme berechnen, „in der Praxis“ „häufig“ sehr schnell sind, aber typischerweise sehr schlechte worst case Laufzeit haben. Beispiele: - Backtracking - Branch & Bound - Lokale Verbesserung (Genetische Algorithmen, Simulated Annealing, …….) Klaus Volbert 4 HEINZ NIXDORF INSTITUT Backtracking Universität Paderborn Algorithmen und Komplexität ….findet Anwendung bei Problemen, deren Lösungen aus vielen Komponenten zusammengesetzt sind. Bsp : 3 SAT : Lösung: (b1, …, bn) 2 {0,1}n HK : Lösung: Knotenfolge (v1=vi1, vi2, …, vin=vn) Erste Idee: „erschöpfende Suche“ (exhaustive search) Durchsuche systematisch alle Lösungen durch Tiefen- oder Breitensuche im Suchbaum. 3 SAT: Binärer Baum der Tiefe n ! HK : n-ärer Baum der Tiefe n ! oder (etwas schlauer) Baum mit Graden n-1, n-2, n-3, … ! 2n Blätter nn Blätter (n-1)! Blätter. Worst Case und Best Case: O(2n) bzw. O(nn) bzw. O (n!) Klaus Volbert 5 HEINZ NIXDORF INSTITUT Idee des Backtracking Universität Paderborn Algorithmen und Komplexität Führe Tiefensuche aus, versuche frühzeitig an einem Knoten zu erkennen, ob unter ihm noch eine zulässige Lösung liegt, d.h.: ob die durch den Knoten beschriebene Teillösung zur Gesamtlösung vervollständigt werden kann. Falls nicht, gehe gar nicht erst in den Subbaum hinein, sondern gehe eine Kante rückwärts im Baum (backtrack). Klaus Volbert 6 HEINZ NIXDORF INSTITUT Backtrack-Regeln für 3-SAT Universität Paderborn Algorithmen und Komplexität Frage: Wann ist Teillösung (b1, …, bi, x, x, …, x) für eine 3SAT-Formel garantiert nicht zur Gesamtlösung erweiterbar? Antwort: Wenn die belegten Variablen bereits mindestens eine Klausel falsch macht. Bsp. : enthält Klausel (x1 Ç :x2 Ç x5) und Teillösung ist (0,1,1,00, x x … x) Frage: Wann ist Teillösung garantiert zur Gesamtlösung erweiterbar? Antwort: Wenn die belegten Variablen bereits in jeder Klausel je mindestens ein Literal wahr macht. [Einfache Variante des Davis-Putnam Algorithmus] Beispiel: :=(x1 x2 x3 ) (:x1 x2) (:x2 x3) (:x3 x1) (:x1 :x2 :x3 ) Klaus Volbert 7 HEINZ NIXDORF INSTITUT Backtrackregeln für HK Universität Paderborn Algorithmen und Komplexität Teillösung: Weg (v1=vi1, …, vij, * … *) Frage: Wann ist (vi1, …, vij) garantiert nicht zu HK erweiterbar? Antwort: Falls G \ {vi1 …, vij} nicht zusammenhängend ist oder einen Knoten vom Grad 1 enthält Beispiel: Klaus Volbert 8 HEINZ NIXDORF INSTITUT Branch & Bound Universität Paderborn Algorithmen und Komplexität ….. ist „Backtracking für Optimierungsprobleme“. Beispiel TSP: Gegeben: vollständiger Graph G mit Kantengewichten d(i,j) Gesucht : Rundreise v1=vi1 … vin=vn mit minimaler Länge. Beobachtung: Da G vollständig ist, ist jede der (n-1)! möglichen Rundreisen zulässig. Idee: Durchlaufe G wieder mit Tiefensuche, berechne an jedem Knoten untere Schranken LB für die Länge der kürzesten Rundreise, die mit dieser Teillösung T erreichbar ist. d.h.: Berechne Zahl LB, so dass jede Rundreise, die Erweiterung von T ist, Länge mindestens LB hat. Führe Backtrack durch, falls LB < beste bisher gefundene Lösung Klaus Volbert 9 HEINZ NIXDORF INSTITUT Untere Schranke bei TSP Universität Paderborn Algorithmen und Komplexität Teillösung: Weg (v1=vi1, …, vij, * … *), Länge D Betrachte G‘ = G \ {vi1, … vij} Sei d‘ = Länge der kürzesten Kante {vi1,vk} , vk {vi1, …, vij} d‘‘ = Länge der kürzesten Kante {vij, vk}, vk {vi1, …, vij} für l {i1, …, ij}: dl = Summe der beiden kürzesten Kanten von dem Knoten vl zu vk {vi1, …, vij} (falls vorhanden). Beh: Jede Rundreise die vi1, …, vij enthält, hat Länge LB = Klaus Volbert 10 HEINZ NIXDORF INSTITUT Vorschau Universität Paderborn Algorithmen und Komplexität • Approximationsalgorithmen – Max-Cut Problem – Problem des Handlungsreisenden – Rucksackproblem Klaus Volbert 11