Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004.

Ähnliche Präsentationen


Präsentation zum Thema: "Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004."—  Präsentation transkript:

1 Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004

2 2 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert NP-vollständige Probleme SAT und 3-SAT (Masterreduktionen) CLIQUE KNOTENÜBERDECKUNG SUBSETSUM RUCKSACK (einfach: rationaler Rucksack!) HAMILTONKREIS TSP Übungen: PARTITION, BIN PROGRAMMING, COLOR, INDEPENDENT SET, 1in3SAT, …

3 3 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert NP-vollständig – Was nun? 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)

4 4 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Heuristiken …. 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, …….)

5 5 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Backtracking ….findet Anwendung bei Problemen, deren Lösungen aus vielen Komponenten zusammengesetzt sind. Bsp : 3 SAT : Lösung: (b 1, …, b n ) 2 {0,1} n HK : Lösung: Knotenfolge (v 1 =v i1, v i2, …, v in =v n ) 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 ! 2 n Blätter HK : n-ärer Baum der Tiefe n ! n n Blätter oder (etwas schlauer) Baum mit Graden n-1, n-2, n-3, … ! (n-1)! Blätter. Worst Case und Best Case: O(2 n ) bzw. O(n n ) bzw. O (n!)

6 6 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Idee des Backtracking 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).

7 7 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Backtrack-Regeln für 3-SAT Frage: Wann ist Teillösung (b 1, …, b i, 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 (x 1 Ç :x 2 Ç x 5 ) 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: :=(x 1 x 2 x 3 ) (:x 1 x 2 ) (:x 2 x 3 ) (:x 3 x 1 ) (:x 1 :x 2 :x 3 )

8 8 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Backtrackregeln für HK Teillösung: Weg (v 1 =v i1, …, v ij, * … *) Frage: Wann ist (v i1, …, v ij ) garantiert nicht zu HK erweiterbar? Antwort: Falls G \ {v i1 …, v ij } nicht zusammenhängend ist oder einen Knoten vom Grad 1 enthält Beispiel:

9 9 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Branch & Bound ….. ist Backtracking für Optimierungsprobleme. Beispiel TSP: Gegeben: vollständiger Graph G mit Kantengewichten d(i,j) Gesucht : Rundreise v 1 =v i1 … v in =v n 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

10 10 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Untere Schranke bei TSP Teillösung: Weg (v 1 =v i1, …, v ij, * … *), Länge D Betrachte G = G \ {v i1, … v ij } Seid=Länge der kürzesten Kante {v i1,v k }, v k {v i1, …, v ij } d=Länge der kürzesten Kante {v ij, v k }, v k {v i1, …, v ij } für l {i1, …, ij}: d l =Summe der beiden kürzesten Kanten von dem Knoten v l zu v k {v i1, …, v ij } (falls vorhanden). Beh: Jede Rundreise die v i1, …, v ij enthält, hat Länge LB =

11 11 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Klaus Volbert Vorschau Approximationsalgorithmen –Max-Cut Problem –Problem des Handlungsreisenden –Rucksackproblem


Herunterladen ppt "Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Sommersemester 2004."

Ähnliche Präsentationen


Google-Anzeigen