7. Übung – Algorithmen II - am Institut für Theoretische Informatik

Werbung
7. Übung – Algorithmen II
Dennis Luxen, Johannes Singler
Institut für Theoretische Informatik, Prof. Sanders
Luxen:
1 KITDennis
– Universität
des Landes Baden-Württemberg und
nationales
Forschungszentrum
in der Helmholtz-Gemeinschaft
7. Übung
– Algorithmen
II
Fakultät für Informatik
Institut für Theoretische
Informatik
www.kit.edu
Organisatorisches
Übungsblätter
Die Musterlösung des vierten Übungsblatts steht seit heute online.
Das fünfte (große) Übungsblatt erscheint am/bis 23. Dezember
Für Fragen bitte das Forum/Email benutzen
⇒ Links auf der Vorlesungswebsite
2 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Inhalt heute
1
2
Wiederholung Eulersche Graphen
Definition, Eigenschaften, Algorithmus
Gute Heuristiken TSP = gute Heuristiken für anderes Problem?
Demo Applet
3 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Eulersche Grapnen
4 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Motivation des Problems
von Leonhard Euler 1736 bewiesen
Grundstein für Graphentheorie
5 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Motivation des Problems
von Leonhard Euler 1736 bewiesen
Grundstein für Graphentheorie
Motivation: Ist es möglich alle Brücken in Königsberg genau einmal
zu passieren um danach am Start zu stehen?
5 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Motivation des Problems
von Leonhard Euler 1736 bewiesen
Grundstein für Graphentheorie
Motivation: Ist es möglich alle Brücken in Königsberg genau einmal
zu passieren um danach am Start zu stehen?
Alternative Motivation: Zeichnen Sie einen gegebenen Graphen
G = (V , E ) in einem einzigen geschlossenen Zug, d.h. ohne den Stift
abzusetzen und ohne eine Kante zwei mal zu malen.
5 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Definition und Beobachtungen
Betrachte einen beliebigen, ungerichteten (Multi-)Graphen G = (V , E )
mit |E | = m. Eine allgemeine Tour T = (v0 , e1 , v1 , . . . , vm−1 , em , v0 )ist
eine (geschlossene) Euler-Tour, falls {e1 , . . . , em } = E.
6 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Definition und Beobachtungen
Betrachte einen beliebigen, ungerichteten (Multi-)Graphen G = (V , E )
mit |E | = m. Eine allgemeine Tour T = (v0 , e1 , v1 , . . . , vm−1 , em , v0 )ist
eine (geschlossene) Euler-Tour, falls {e1 , . . . , em } = E.
Beobachtungen:
1 Die Euler-Tour endet dort wo sie beginnt. Ist also ein Kreis.
6 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Definition und Beobachtungen
Betrachte einen beliebigen, ungerichteten (Multi-)Graphen G = (V , E )
mit |E | = m. Eine allgemeine Tour T = (v0 , e1 , v1 , . . . , vm−1 , em , v0 )ist
eine (geschlossene) Euler-Tour, falls {e1 , . . . , em } = E.
Beobachtungen:
1 Die Euler-Tour endet dort wo sie beginnt. Ist also ein Kreis.
2 Jede Kante des Graphen ist genau einmal enthalten.
6 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Definition und Beobachtungen
Betrachte einen beliebigen, ungerichteten (Multi-)Graphen G = (V , E )
mit |E | = m. Eine allgemeine Tour T = (v0 , e1 , v1 , . . . , vm−1 , em , v0 )ist
eine (geschlossene) Euler-Tour, falls {e1 , . . . , em } = E.
Beobachtungen:
1 Die Euler-Tour endet dort wo sie beginnt. Ist also ein Kreis.
2 Jede Kante des Graphen ist genau einmal enthalten.
3 Knoten des Graphen dürfen beliebig oft enthalten sein.
6 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Definition und Beobachtungen
Betrachte einen beliebigen, ungerichteten (Multi-)Graphen G = (V , E )
mit |E | = m. Eine allgemeine Tour T = (v0 , e1 , v1 , . . . , vm−1 , em , v0 )ist
eine (geschlossene) Euler-Tour, falls {e1 , . . . , em } = E.
Beobachtungen:
1 Die Euler-Tour endet dort wo sie beginnt. Ist also ein Kreis.
2 Jede Kante des Graphen ist genau einmal enthalten.
3 Knoten des Graphen dürfen beliebig oft enthalten sein.
Ein Graph mit den obigen Eigenschaften heißt Eulersch.
6 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Satz (Eulersche Graphen)
Satz
Ein Graph G = (V , E ) ist genau dann Eulersch, wenn er
zusammenhängend ist und alle Knoten geraden Grad haben.
7 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Satz (Eulersche Graphen)
Satz
Ein Graph G = (V , E ) ist genau dann Eulersch, wenn er
zusammenhängend ist und alle Knoten geraden Grad haben.
Beweis erfolgt in zwei Richtungen.
7 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Satz (Eulersche Graphen)
Satz
Ein Graph G = (V , E ) ist genau dann Eulersch, wenn er
zusammenhängend ist und alle Knoten geraden Grad haben.
Beweis erfolgt in zwei Richtungen.
Beweis - Teil 1
Erste Richtung offensichtlich.
Graph muss zusammenhängend sein.
Gerader Grad jedes Knotens muss auch sein:
Tour, die an einem Knoten ankommt, muss diesen auch wieder
verlassen können.
7 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
Wir definieren allgemein eine Tour T = (v0 , e1 , v1 , . . . , em , vm )
größtmöglicher Länge als „Spaziergang“ in G bei dem keine Kante
wiederholt wird. Wir zeigen:
(i) v0 = vm
Ist v0 6= vm , dann ist Knoten, v0 zu einer ungeraden Zahl von Kanten der
Tour inzident.
8 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
Wir definieren allgemein eine Tour T = (v0 , e1 , v1 , . . . , em , vm )
größtmöglicher Länge als „Spaziergang“ in G bei dem keine Kante
wiederholt wird. Wir zeigen:
(i) v0 = vm
Ist v0 6= vm , dann ist Knoten, v0 zu einer ungeraden Zahl von Kanten der
Tour inzident.
Weil aber degg (v0 ) gerade ist, gibt es eine Kante e ∈ E, die zu v0
inzident ist und nicht in T enthalten.
8 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
Wir definieren allgemein eine Tour T = (v0 , e1 , v1 , . . . , em , vm )
größtmöglicher Länge als „Spaziergang“ in G bei dem keine Kante
wiederholt wird. Wir zeigen:
(i) v0 = vm
Ist v0 6= vm , dann ist Knoten, v0 zu einer ungeraden Zahl von Kanten der
Tour inzident.
Weil aber degg (v0 ) gerade ist, gibt es eine Kante e ∈ E, die zu v0
inzident ist und nicht in T enthalten.
T kann also um diese Kante verlängert werden.
8 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
Wir definieren allgemein eine Tour T = (v0 , e1 , v1 , . . . , em , vm )
größtmöglicher Länge als „Spaziergang“ in G bei dem keine Kante
wiederholt wird. Wir zeigen:
(i) v0 = vm
Ist v0 6= vm , dann ist Knoten, v0 zu einer ungeraden Zahl von Kanten der
Tour inzident.
Weil aber degg (v0 ) gerade ist, gibt es eine Kante e ∈ E, die zu v0
inzident ist und nicht in T enthalten.
T kann also um diese Kante verlängert werden.Widerspruch.
8 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
Wir definieren allgemein eine Tour T = (v0 , e1 , v1 , . . . , em , vm )
größtmöglicher Länge als „Spaziergang“ in G bei dem keine Kante
wiederholt wird. Wir zeigen:
(i) v0 = vm
Ist v0 6= vm , dann ist Knoten, v0 zu einer ungeraden Zahl von Kanten der
Tour inzident.
Weil aber degg (v0 ) gerade ist, gibt es eine Kante e ∈ E, die zu v0
inzident ist und nicht in T enthalten.
T kann also um diese Kante verlängert werden.Widerspruch.
(ii) {ei : i = 1, 2, . . . , m } = E
8 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fortsetzung Beweis
Beweis - Teil 2
(ii) {ei : i = 1, 2, . . . , m } = E
Sei V (T ) Menge derjenigen Knoten aus der Tour.
Angenommen V (T ) 6= V , dann gibt es (weil G zusammenhängend) die
Kante e = (vk , v 0 ) ∈ E mit vk ∈ V (T ) und v 0 6∈ V (T ).
Die Tour kann nun verlängert werden als:
(v0 , e, vk , ek +1 , vk +1 , . . . , vm−1 , em , v0 , e1 , v1 , . . . , ek , vk )
Widerspruch, diese Tour hat Länge m + 1.
⇒ Jeder Knoten kommt mindestens ein Mal in Tour vor!
Sei nun V (T ) = V und E (T ) 6= E und e ∈ E \E (T ), e = vk , vl .
Analog zum vorherigen Fall führt folgende Tour zum Widerspruch:
vk , ek +1 , vk +1 , . . . , vm−1 , em , v0 , e1 , v1 , . . . , ek , vk , e, vl )
Es folgt der Satz.
9 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Algorithmus
Idee: Erweitere solange eine Tour, bis sie Eulersch wird.
Überprüfe, ob jeder Knoten geraden Grad hat.
Wähle v0 ∈ V beliebig, setze T0 = (v0 ).
Wiederhole für i = 0, 1, 2, . . . , m, dann ist Tm die gesuchte
Euler-Tour.
Sei Ti (v0 , e1 , v1 , . . . , ei , vi ) die bisher konstruierte Tour. Wähle eine
Kante ei +1 ∈ E \{e1 , ldots, ei }, die Knoten vi enthält so, dass die
Graphen (V , E \{e1 , . . . , ei }) und (V , E \{e1 , . . . , ei , ei +1 }) gleich
viele Komponenten haben.
10 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Beweis der Korrektheit
Siehe nächstes Übungsblatt!
11 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Demo: Applet
http://www.cut-the-knot.org/Curriculum/Combinatorics/
FleuryAlgorithm.shtml
12 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Grundlegende TSP Heuristiken
13 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
k-Optimalität
Definition
Eine Tour T heisst k -optimal (kurz: k -opt), falls es unmöglich ist, eine
kürzere Tour T 0 durch Tauschen von k vielen Kanten in der Tour gegen
k beliebige andere Kanten, die nicht zur Tour gehören, zu erhalten.
14 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
k-Optimalität
Definition
Eine Tour T heisst k -optimal (kurz: k -opt), falls es unmöglich ist, eine
kürzere Tour T 0 durch Tauschen von k vielen Kanten in der Tour gegen
k beliebige andere Kanten, die nicht zur Tour gehören, zu erhalten.
Optimum offensichtlich n-optimal
14 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
k-Optimalität
Definition
Eine Tour T heisst k -optimal (kurz: k -opt), falls es unmöglich ist, eine
kürzere Tour T 0 durch Tauschen von k vielen Kanten in der Tour gegen
k beliebige andere Kanten, die nicht zur Tour gehören, zu erhalten.
Optimum offensichtlich n-optimal
Reines Verbesserungsverfahren, initiale Lösung notwendig
Berechnung braucht für festes k Laufzeit O (nk )
14 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
k-Optimalität
Definition
Eine Tour T heisst k -optimal (kurz: k -opt), falls es unmöglich ist, eine
kürzere Tour T 0 durch Tauschen von k vielen Kanten in der Tour gegen
k beliebige andere Kanten, die nicht zur Tour gehören, zu erhalten.
Optimum offensichtlich n-optimal
Reines Verbesserungsverfahren, initiale Lösung notwendig
Berechnung braucht für festes k Laufzeit O (nk )
Für große k impraktikabel, meist ≤ 5
14 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Beispielskizze
15 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Beispielskizze
1
2-Opt Lösungen idR. ca. 15% schlechter als das Optimum
15 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Beispielskizze
1
2
2-Opt Lösungen idR. ca. 15% schlechter als das Optimum
k -Optimalität ist Grundlage für viele erfolgreiche Heuristiken
15 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Demo: Applet
http://www-e.uni-magdeburg.de/mertens/TSP/node3.html
16 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Fine.
17 Dennis Luxen:
7. Übung – Algorithmen II
Fakultät für Informatik
Institut für Theoretische Informatik
Herunterladen