Kein Folientitel - Universität Paderborn

Werbung
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
Herunterladen