Kein Folientitel - Universität Paderborn

Werbung
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, …….)
Friedhelm Meyer auf der Heide
1
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: (a1, …, an) 2 {0,1}n
HC : Lösung: Knotenfolge (1, v2, …, 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
!
HC : 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!)
Friedhelm Meyer auf der Heide
2
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)).
Friedhelm Meyer auf der Heide
3
HEINZ NIXDORF INSTITUT
Backtrack-Regeln für 3-SAT
Universität Paderborn
Algorithmen und Komplexität
Frage: Wann ist Teillösung (a1, …, ai, 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]
Friedhelm Meyer auf der Heide
4
HEINZ NIXDORF INSTITUT
Backtrackregeln für HC
Universität Paderborn
Algorithmen und Komplexität
Teillösung: Weg (1,v1, …, vi, * … *)
Frage: Wann ist (1, v1, …, vi) garantiert nicht zu HC
erweiterbar?
Antwort: Falls G \ {1, v1 …, vi-1 , vi}
nicht zusammenhängend ist
(weiter Kriterien sind hier möglich.)
Friedhelm Meyer auf der Heide
5
HEINZ NIXDORF INSTITUT
Brand & 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 1, v1 … vn-1 mit minimaler Länge.
Beobachtung:
Da G vollständig ist, ist jede der (n-1)! möglichen Rundreise zulässig.
Idee: Durchlaufe G wieder mit Tiefensuche, berechne an jeden 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
Friedhelm Meyer auf der Heide
6
HEINZ NIXDORF INSTITUT
Untere Schranke bei TSP
Universität Paderborn
Algorithmen und Komplexität
Teillösung 1, v1 … vi, Länge D
Betrachte G‘ = G \ {1, v1, … vi}
sei d‘ = Länge der kürzesten Kante {1,j} , j
{v1 … vi}
d‘‘ = Länge der kürzesten Kante {vi, j}, j 2 {1, v1 … vi-1}
für l {1, v1 … vi}:
dl = Summe der beiden kürzesten Kanten
inzident zu l in G‘.
Beh: Jede Rundreise die 1, v1 …vi enthält, hat Länge
LB =
Friedhelm Meyer auf der Heide
7
Herunterladen