Datenstrukturen und Algorithmen SS07

Werbung
Datenstrukturen und
Algorithmen SS07
Datum: 27.6.2007
Michael Belfrage
[email protected]
belfrage.net/eth
Programm von Heute
• Online Algorithmen
– Update von Listen
• Move to Front (MTF)
• Transpose
• Approximationen für das Traveling
Salesman Problem (TSP)
– MST-Heuristik
– Christofides-Heuristik
Update von Listen
• Gegeben:
– Liste von Elementen
– Sequenz von Anfragen
• Gesucht
– Algorithmus welcher die Anfragekosten minimiert. (Dabei darf die Liste nach einer Anfrage umgeordnet werden)
• Kosten:
– i-tes Element zugreifen kostet i
– Umordnen ist gratis (in diesem Modell)
Update von Listen
Beispiel
Liste von Elementen:
L
I
S
T
Sequenz von Anfragen:
T, E, S, T, T, E, S, T
E
Update von Listen
Beispiel
Liste von Elementen:
L
I
S
T
E
Sequenz von Anfragen:
T, E, S, T, T, E, S, T
Anfragekosten (ohne Umordnung):
4 + 5 + 3 + 4 + 4 + 5 + 3 + 4 = 32
Update von Listen
Umordnungsstrategien
– Move To Front (MTF):
• Setze das zuletzt zugegriffene Element an
den Anfang der Liste
– Transpose:
• Vertausche das zugegriffene Element mit
seinem Vorgänger (falls vorhanden)
Update von Listen
Beispiel: Move to Front
Liste von Elementen:
L
I
S
T
Sequenz von Anfragen:
1. T
L I
S T E
2. E
T L
I S E
3. S
E T
L I S
4. T
S E
T L I
E
Update von Listen
[Fortsetzung] Beispiel: Move to Front
Liste von Elementen:
L
I
S
T
E
Sequenz von Anfragen:
T, E, S, T, T, E, S, T
Anfragekosten:
4 + 5 + 5 + 3 + 1 + 3 + 3 + 3 = 27
Update von Listen
Beispiel: Transpose
Liste von Elementen:
L
I
S
T
Sequenz von Anfragen:
1. T
L I
S T E
2. E
L I
T S E
3. S
L I
T E S
4. T
L I
T S E
E
Update von Listen
[Fortsetzung] Beispiel: Transpose
Liste von Elementen:
L
I
S
T
E
Sequenz von Anfragen:
T, E, S, T, T, E, S, T
Anfragekosten:
4 + 5 + 5 + 3 + 2 + 5 + 5 + 1 = 30
Update von Listen
Anfragekosten im worst-case mittels
kompetitiver Analyse:
– Move To Front
• das doppelte des optimalen Algorithmuses
– Transpose
• beliebig höher als der optimale Algorithmus
:(
Für Beweise siehe:
–
–
D. D. Sleator, and R. E. Tarjan (1985), Amortized efficiency of list
update and paging rules. Communications of the ACM 28, 202–208.
www.cs.cmu.edu/~sleator/papers/amortized-efficiency.pdf
TSP-Approximationen
• Traveling Salesman Problem (TSP)
– Problembeschreibung:
• Siehe dazu den ausgezeichneten Artikel:
http://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden
– Approximationen unter der Annahme,
dass Dreicksungleichung gilt im Graph:
• MST-Heuristik
– Maximal Faktor 2 Abweichung vom Optimum
• Christofides-Heuristik
– Maximal Faktor 1.5 Abweichung vom Optimum
MST-Heuristik
Input:
Graph G:=(V,E)
Algorithmus:
1. Konstruiere MST von G
(z.B. mittels Kruskal)
2. Verdoppele alle Kanten vom MST
3. Traversiere MST mit Abkürzung
MST-Heuristik
A
4
2
Beispiel:
Graph G:=(V,E)
5
B
5
D
Algorithmus:
1. Konstruiere MST von G
2. Verdoppele alle Kanten vom MST
3. Traversiere MST mit Abkürzung
7
3
E
4
6
9
C
MST-Heuristik
A
4
2
Beispiel:
Graph G:=(V,E)
5
B
5
D
Algorithmus:
1. Konstruiere MST von G
2. Verdoppele alle Kanten vom MST
3. Traversiere MST mit Abkürzung
7
3
E
4
6
9
C
MST-Heuristik
A
4
2
Beispiel:
Graph G:=(V,E)
5
B
5
D
Algorithmus:
1. Konstruiere MST von G
2. Verdoppele alle Kanten vom MST
3. Traversiere MST mit Abkürzung
7
E
3
4
6
9
C
MST-Heuristik
A
4
5
2
Beispiel:
Graph G:=(V,E)
D
Algorithmus:
1. Konstruiere MST von G
2. Verdoppele alle Kanten vom MST
3. Traversiere MST mit Abkürzung
( A , D , B , C , E , A )
B
5
7
E
3
4
6
9
C
Christofides-Heuristik
Input:
Graph G:=(V,E)
Algorithmus:
Definition: Ein Matching M auf einem
Graphen G:=(V,E) ist eine Teilmenge
von E, sodass jeder Knoten von G in
genau einer Kante aus M enthalten ist
1. Konstruiere MST von G
(z.B. mittels Kruskal)
2. Bestimme MCM auf ungeraden Knoten
3. Füge Kanten vom MCM hinzu
4. Traversiere mit Abkürzungen
Minimal Cost Matching
Christofides-Heuristik
A
Beispiel:
Graph G:=(V,E)
Algorithmus:
1.
2.
3.
4.
4
2
5
B
5
D
7
9
Konstruiere MST von G
Bestimme MCM auf ungeraden Knoten
Füge Kanten vom MCM hinzu
Traversiere mit Abkürzungen
3
E
4
6
C
Christofides-Heuristik
A
Beispiel:
Graph G:=(V,E)
Algorithmus:
1.
2.
3.
4.
4
2
5
B
5
D
7
9
Konstruiere MST von G
Bestimme MCM auf ungeraden Knoten
Füge Kanten vom MCM hinzu
Traversiere mit Abkürzungen
3
E
4
6
C
Christofides-Heuristik
A
Beispiel:
Graph G:=(V,E)
Algorithmus:
1.
2.
3.
4.
4
2
5
B
5
D
7
9
Konstruiere MST von G
Bestimme MCM auf ungeraden Knoten
Füge Kanten vom MCM hinzu
Traversiere mit Abkürzungen
3
E
4
6
C
Christofides-Heuristik
A
Beispiel:
Graph G:=(V,E)
Algorithmus:
1.
2.
3.
4.
4
2
5
B
5
D
7
9
Konstruiere MST von G
Bestimme MCM auf ungeraden Knoten
Füge Kanten vom MCM hinzu
Traversiere mit Abkürzungen
3
E
4
6
C
Christofides-Heuristik
A
Beispiel:
Graph G:=(V,E)
Algorithmus:
1.
2.
3.
4.
4
2
5
B
5
D
7
9
Konstruiere MST von G
Bestimme MCM auf ungeraden Knoten
Füge Kanten vom MCM hinzu
Traversiere mit Abkürzungen
(A, B, C, E, D, A)
3
E
4
6
C
Ende der Stunde.
Questions?
if yes, send an e-mail.
Herunterladen