Numerische Methoden und Algorithmen in der Physik

Werbung
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Numerische Methoden und Algorithmen in der
Physik
Hartmut Stadie, Christian Autermann
18.12.2008
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
1/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
2/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Übersicht
Einführung NP-vollständige Probleme
Literaturliste
Einleitung
NP-Vollständigkeit
Beispiel
MST und Euler-/Hamiltonkreis
Traveling Salesman
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
3/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Informationen
Material:
Stroustrup: The C++ Programming Language, 3rd edition
http://www.mathematik.uni-marburg.de/∼cpp/
B. Stroustrup: C++ In-depth Series
A. Koenig, B. E. Moo: Accelerated C++
Press et al: Numerical Recipes, 3rd edition
T. H. Cormen et al: Introductions to Algorithms, 2nd edition
http://wwwiexp.desy.de/studium/lehre/numalg/
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
4/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP-vollständige Probleme
Übersicht
Bei der Entwicklung von Algorithmen wird in der Regel versucht
die „Kosten”, also die Laufzeitabängigkeit und z.B. den
Speicherbedarf zu reduzieren.
Alle bisher betrachteten Algorithmen waren mit mindestens
polynomischem Aufwand lösbar. D.h. bei einem input der Größe
n verhielt sich die Laufzeit höchstens wie O(nk ), wobei k eine
beliebige Konstante ist.
Gilt dies für alle Probleme?
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
5/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP-vollständige Probleme
Die Antwort ist Nein!
Beispiel:
Turing’s „Halting Problem”
Betrachte Algorithmus A, der bestimmen soll, ob ein Algorithmus
B(~k) für alle möglichen inputs ki ein Ergebnis liefert, also in
endlicher Zeit beendet wird.
Einen solchen Algorithmus A kann es nicht geben (Turing).
Beweis
Siehe z.B. Wikipedia
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
6/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP Vollständigkeit
Eine bestimmte Klasse von Problemen nennt man NP-vollständig.
Es ist bis heute unbekannt, ob diese Probleme in polynomischem
Aufwand gelösst werden können.
Es kann gezeigt werden, dass wenn ein NP-vollständiges Problem
mit polynomischen Aufwand gelöst werden kann, dann können alle
NP-vollständigen Probleme mit O(nk ) Aufwand gelöst werden.
Bisher ist weder ein solcher Algorithmus entwickelt worden, noch
ist bewiesen, dass ein solcher Algorithmus nicht existieren kann.
→ 1 Million Dollar Preisgeld für die Be- oder Widerlegung (Clay
Mathematics Institute).
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
7/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP-vollständige Probleme
Definition
P: Klasse aller Probleme die durch Algorithmen mit polynomischen
Aufwand O(nk ) gelöst werden können.
NP: Klasse aller Probleme, für die eine Lösungshypothese mit
polynomischen Aufwand getestet werden kann. Es ist also offenbar
P ⊆ NP.
NPC : (NP-vollständig) Klasse der Probleme, für die ein
Algorithmus mit polynomischen Aufwand nicht bekannt ist. Es gilt
NPC ⊆ NP. Falls ein Element A gefunden wird, für das gilt A ∈ P
und A ∈ NPC , dann gilt P = NP und NPC = 0.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
8/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP-Vollständigkeit
Generelles
Bei der Entwicklung eines Algorithmus für ein spezielles Problem
kann es nützlich sein zuerst zu prüfen, ob das Problem
NP-vollständig ist.
In diesem Fall sucht man besser direkt nach einer guten
approximativen Lösung, als nach einem schnellen Algorithmus, der
das Problem löst.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
9/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Nachweis auf NP-Vollständigkeit
Man zeigt das ein Problem NP-vollständig ist, in dem man z.B.
zeigt das es durch einen Reduktionsalgorithmus R mit
polynomischen Aufwand auf ein neues Problem umgeformt werden
kann, dass bekanntermaßen NP-vollständig ist.
Im Umkehrschluss gilt, dass ein polynomischer Algorithmus A
durch einen polynomischen Reduktionsalgorithmus R zu einem
neuen Algorithmus mit polynomischen Aufwand wird. Die Klasse
der polynomischen Algorithmen ist also offenbar abgeschlossen.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
10/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
NP-vollständige Probleme
Beispiel für ein NP-vollständiges Problem
Die Frage ob eine Aussagenlogik (siehe z.B. Schaltlogik oben)
erfüllbar ist, d.h. für bestimmte Bedingungen (Startwerte) wahr ist,
ist nur mit exponentiellen Aufwand beantwortbar und damit
NP-vollständig.
Für obiges Problem müssen alle 23 Startwertmöglichkeiten getestet
werden.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
11/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Übersicht
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Minimal Spanning Trees
Eulerkreis Problem
Hamiltonkreis Problem
Traveling Salesman
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
12/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Beispiele für ähnliche aber P bzw. NP-vollständige Probleme
Minimal spanning trees (Minimaler Spannbaum) verbindet alle
Punkte eines Graphen mit dem kürzest möglichen Wegenetz.
Durch einen Punkt dürfen beliebig viele Wege führen.
Ein Eulerzug enthält jede Kante eines gegebenden Graphen Kreises
exakt einmal. (Der Eulerzug oder Eulerkreis wird offen genannt,
wenn der Start- und Endknoten nicht identisch sind). Es existieren
effiziente (linear), exakte Lösungsverfahren.
Ein Hamiltonkreis ist ein geschlossener Kreis, der alle Knoten des
Graphen enthält (und keinen Knoten zweimal durchläuft oder
überschreitet). Es ist ein fundamentales NP-vollständiges Problem
der Graphentheorie.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
13/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Minimal spanning trees
Minimaler Spannbaum
Für eine Menge von Punkten soll das kürzest mögliche Wegenetz
gefunden werden, das alle Punkte verbindet.
Beispiel: Eine Menge von Häusern soll miteinander vernetzt
werden, es wird kein Wert auf Redundanz gelegt, aber die Kosten
(also die Länge des Netzes) sollen so gering wie möglich sein.
Es existieren Algorithmen, deren Aufwand O(K ln P) bzw.
O(K + P ln P) ist, wobei P die Anzahl der Punkte und K die Zahl
der möglichen erlaubten Kanten ist.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
14/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Minimal spanning trees
Minimaler Spannbaum
Die grau unterlegten Wege bilden einen Minimalen Spannbaum mit
Gewicht 37. Der MST ist nicht eindeutig, in diesem Beispiel könnte
man die Kante b → c mit Gewicht 8 durch die Kante a → h mit
Gewicht 8 ersetzen.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
15/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Minimal spanning trees
Der folgende Algorithmus gehöhrt zu der Klasse der gierigen
Algorithmen; der Greedy Algorithmus wählt in jedem Schritt den
Nachfolgezustand, der zu diesem Zeitpunkt den größten Gewinn
verspricht.
Pseudocode: Generische MST Implementation
MST(Graph G)
Baum A = 0
while A noch kein Minimaler Spannbaum ist
Suche Kante (u,v) die ’sicher’ ist
A = A + (u,v)
return A
A ist zu jedem Zeitpunkt ein Abschitt eines Minimalen Spannbaumes. In
diesem Sinne ist eine Kante (u,v) “sicher”, wenn auch A+(u,v) ⊆ MST ist.
Das verbleibende Problem ist, eine sichere Kante zu finden!
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
16/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Minimal spanning trees
Pseudocode: Kruskal Algorithmus
Kruskal-MST(Graph G)
for jeden Punkt v in G do
Definiere elementaren Cluster C(v)
Erstelle Liste K aller Kanten, sortiert nach Gewicht
Baum A = 0
while A weniger als n-1 Kanten hat (oder Anzahl C > 1)
Kante (u,v) = K[0]
Lösche Element 0 aus K
if C(v) != C(u) then
Erweitere A um die Kante (v,u)
Kombiniere C(v) und C(u) zu einem Cluster
return Baum A
Es werden nach und nach Minimale Teil-Spannbäume angelegt. Schleifen
werden vermieden, indem nur unabhängige Cluster kombiniert werden.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
17/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Minimal spanning trees
(1)
(2)
(3)
(4)
(5)
(6)
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
18/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Eulerkreisproblem
Eine Menge von Kanten soll zu einem zusammenhängenden Zug
verbunden werden.
Beispiel: Das Haus vom Nikolaus
5
@
@
@
3
@
@4
@
@
@
@
1
@
@
@2
Dieses Problem ist offenbar lösbar, ein (offener) Eulerkreis ist z.B.
1 → 3 → 5 → 4 → 3 → 2 → 4 → 1 → 2.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
19/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Eulerkreisproblem
Das Königsberger Brückenproblem
Das Problem geht zurück auf Leonhard Euler, der 1736 einen
Rundweg über die sieben Pregel Brücken in Königsberg suchte, so
dass jede nur einmal überschritten werden muss.
Wie lautet die Lösung? Bzw. warum ist es nicht lösbar?
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
20/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Eulerkreisproblem
Königsberger Brückenproblem
3
•P
P
2
•
•
PP
PP
PP 4
P
•
1
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
21/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Eulerkreisproblem
Königsberger Brückenproblem
3
•P
P
2
•
PP
PP
PP 4
P
•
•
1
Dieses Problem ist nicht lösbar! Euler bewies 1736, dass höchstens
zwei Knoten mit einer ungeraden Anzahl von Kanten existieren
dürfen, damit ein Eulerzug gefunden werden kann. Der Zug ist ein
Eulerkreis, wenn es keine ungeraden Knoten gibt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
22/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Eulerkreisproblem
Algorithmus von Fleury (1883)
1
Starte an einem Knoten mit ungerade Zahl von Kanten, falls
solcher nicht existiert, dann wähle einen beliebigen Knoten
2
Wähle für den aktuellen Knoten eine Kante, die den Graph
nicht in zwei Teile teilt, ausser wenn keine Alternative existiert
3
Der Endpunkt der Kante ist der neue aktuelle Knoten. Gehe
zu (2) falls noch nicht benutzte Kanten existieren.
Das Ergebnis ist ein Eulerkreis, wenn keine ungeraden Knoten
existieren bzw. ein Eulerzug. Der Algorithmus ist von der Ordnung
O(N 2 ), es existieren auch lineare Algorithmen.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
23/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Hamiltonkreisproblem
Es soll nun eine Menge von Knoten miteinander zu einem
geschlossenen Zug verbunden werden.
Im Gegensatz zum Eulerkreis ist das Hamiltonkreisproblem
NP-vollständig und damit wesentlich schwieriger zu lösen, obwohl
es auf den ersten Blick sehr ähnlich ist.
Beispiel: Hamilton hat ein mathematisches Spiel auf einem
Dodekaeder beschrieben, bei dem ein Spieler einen Wegabschnitt
aus fünf Punkten vorgibt, den ein anderer Spieler vervollständigen
muss.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
24/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Hamiltonscher Dodekaeder
Finde einen geschlossenen Weg, der alle Punkte verbindet.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
25/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Übersicht
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Lösungen des TSP
Approximation mit MST
Approximation mit Simulierter Abkühlung
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
26/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Traveling Salesman Problem
Beispiel für ein NP-vollständiges Problem
Das wohl bekannteste Beispiel für NP-Vollständigkeit ist das
Problem des Handlungsreisenden (TSP), ein Spezialfall eines
Hamiltonkreises, nämlich der mit dem kürzesten Weg:
Eine Anzahl N von Städten soll besucht, und schließlich zum
Ausgangspunkt zurückgekehrt werden. Dabei soll die Anzahl der
zurückzulegenden Kilometer (bzw. die Kosten) minimiert werden.
Es gibt keine exakte Lösung mit Aufwand O(nk ) für irgendein k.
Der „brutale Algorithmus” der einfach alle Möglichkeiten testet,
braucht O(N!), andere optimiertere Algorithmen brauchen “nur”
etwa O(n2 2n ) Schritte. Der aktuelle Rekord liegt bei 85900
Städten, um die exakte Lösung zu bestimmen wurden 135 CPU
Jahre benötigt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
27/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Traveling Salesman Problem
Approximation
Große NP-vollständige Probleme werden approximativ gelöst. Der
Approximationsalgorithmus ist dabei polynomisch zeitabhängig.
Die Genauigkeit des Algorithmus in bezug auf die exakte Lösung
sei durch (1 + ) parametrisiert, wobei > 0.
Man spricht von einem voll polynomischen Approximationsalgorithmus, falls das Laufzeitverhalten sowohl in bezug auf die
Größe des inputs N, als auch in bezug auf 1/ polynomisch ist,
k
also von der Ordnung O( Nj ) für irgendein j und k.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
28/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Traveling Salesman Problem
Dreiecksungleichung
Die Dreiecksungleichung lautet:
s(u → w ) ≤ s(u → v ) + s(v → w )
(1)
Der direkte Weg ist immer kürzer als ein Umweg.
Wird dies nicht vorausgesetzt, also werden z.B. die Kosten eines
Wegs nicht rein geometrisch berechnet, sondern z.B. durch
Zustand der Strasse, Steigung, Gegend, etc zusätzlich gewichtet,
dann ist das Traveling Salesman Problem auch approximativ für
=const nicht mehr polynomisch lösbar.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
29/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Traveling Salesman Problem
Nächster Nachbar Methode
Eine einfache Methode ist die, iterativ den jeweils nächsten
Nachbar (im Sinne von kürzester Entfernung) zu der Tour
hinzuzufügen, bis alle Punkte besucht wurden.
Diese Methode ist beliebig schlecht, u.a. weil bis zum Schluss nicht
berücksichtig wurde, dass zum Startpunkt zurückgekehrt werden
muss.
Weitere Methoden:
Minimal Spanning Trees (→ Übung),
Christofides-Heuristik (höchstens Faktor 1.5 schlechter als
ideale Lösung),
Post-Optimierungsverfahren,
Abstrakte lokale und globale Suchverfahren, wie z.B.
Simulierte Abkühlung (→ Übung).
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
30/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Ein Minimaler Spannbaum (MST) ist ein Graph, der alle Punkte
durch das kürzeste Wegenetz verbindet, dabei allerdings
verschiedene Punkte mehrfach kreuzen kann.
Mit Hilfe eines MST kann eine Tour für den Handlungsreisenden
gefunden werden, die höchstens um den Faktor 2 länger ist als die
ideale Tour, der Laufzeitaufwand des Algorithmus ist O(n2 ln n)
(wenn die Dreiecksungleichung gilt).
Minimal Spanning Trees (MST)
1
Erzeuge einen minimalen Spannbaum für den
zugrundeliegenden Graphen
2
Verdopple jede Kante im resultierenden Spannbaum
3
Wähle einen beliebigen Startknoten und folge den Kanten des
verdoppelten Spannbaums im Sinne eines Eulerkreises. Bereits
besuchte Knoten werden dabei durch die direkte Kante zum
folgenden Knoten übersprungen, sofern es sich nicht um den
letzten Knoten des Kreises handelt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
31/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
(1): Ausgangsverteilung der acht zu besuchenden Städte
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
32/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
(2): Der Minimale Spannbaum für die zu besuchenden Städte.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
33/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
(3): Verdoppelung der Kanten. Wähle einen beliebigen Startknoten
und folge den Kanten des verdoppelten Spannbaums im Sinne
eines Eulerkreises. Bereits besuchte Knoten werden dabei durch die
direkte Kante zum folgenden Knoten übersprungen, sofern es sich
nicht um den letzten Knoten des Kreises handelt.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
34/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
(4): Resultierende MST-Tour.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
35/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
(5): Die ideale Lösung ist in diesem Beispiel nur um 23% kürzer.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
36/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Simulierte Abkühlung (simulated annealing)
Grundidee:
Nachbildung eines Abkühlungsprozesses:
langsame Abkühlung sorgt dafür, dass die Moleküle ausreichend
Zeit haben, sich zu ordnen und stabile Kristalle zu bilden. Dadurch
wird ein energiearmer Zustand, nahe am Optimum erreicht
Einfache Anwendung:
1
wähle zufälligen Schritt d zwischen [−δ, δ] mit u = x + d
2
wenn E (u) < E (x) wähle x = u
3
sonst: wähle x = u mit Wahrscheinlichkeit
(x
p(u) ∼exp(− E (u)−E
)
T
4
erniedrige langsam T und die maximale Schrittweite δ
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
37/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Simulierte Abkühlung
Grundlage: Metropolisalgorithmus
Akzeptiere immer Schritte bergab und manchmal Schritte bergauf
(engl.: Metropolis-Hastings algorithm Metropolis et. al. 1953)
Eigenschaften der Simulierten Abkühlung:
findet globale Minima
auch für kombinatorische Probleme anwendbar
z.B. Handlungsreisendenproblem
wenn Schrittrichtung zufällig, fast immer falsch bei
mehrdimensionalen Räumen
viele Funktionsauswertungen
gutes Abkühlungsschema muss wolhüberlegt sein oder
empirisch gefunden werden
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
38/ 39
Einführung NP-vollständige Probleme
MST und Euler-/Hamiltonkreis
Traveling Salesman
Simulierte Abkühlung
Anwendung auf das Problem des Handlungsreisenden
Die Energie E des Systems ist gegeben durch die Kosten, also die
absolute Länge der aktuellen Tour. Dies soll minimiert werden.
Der Zustand des Systems x beschreibt die Reihenfolge, in der die
Punkte oder Städte angefahren werden sollen. Der neue Zustand u
kann also die Reihenfolge x sein, wobei ein Teilabschnitt δ ⊂ x
z.B. in umgekehrter Richtung befahren wird, oder an eine andere
Stelle in x verschoben wird.
Numerische Methoden und Algorithmen in der Physik
Christian Autermann
39/ 39
Herunterladen