IBM Presentations: Blue Pearl DeLuxe template

Werbung
Fachhochschule Wedel
Lokale Variante des Algorithmus von Dijkstra zur
Berechnung kürzester Wege und das Problem der
Aktualisierung von Wegen bei Leitungsausfällen
vorgetragen von Alex Prentki
Seminararbeit WS04/05
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Agenda
Problemstellung
Grundlagen der Graphentheorie
Der Dijkstra Algorithmus
Problem bei Leitungsausfällen
Lösungsansätze
Fazit
Seite 2
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Problemstellung
ƒ
Finden kürzester Wege interessant in vielen Bereichen
– Routingverfahren (RIP & OSPF)
– Logistik: Transportwege in einem Distributionssystem
– KI: viele Probleme können als Suchprobleme dargestellt
werden
ƒ
Seite 3
Problem: Häufig sehr viele Knoten im Suchraum
– Beispiel Schach:
25 Züge bei gegebener Stellung möglich
5 eigene und 5 gegnerische Züge vorausplanen
es müssen 2513 Züge überschaut werden!
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Ein ungerichteter Graph besteht aus einer Menge E
von Ecken und einer Menge K von Kanten.
Die Ecken werden oft auch Knoten oder Punkte
genannt. „Ungerichtet“ heißt es deswegen, weil
zwischen Anfangs- und Endpunkt der Kante nicht
unterschieden wird. e
2
e3
k2
k
1
k5
e1
k3
k4
„gerichtet“
Seite 4
e5
Dienstag, 21. Dezember 2004
e4
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Von Nachbarn spricht man, wenn zwei Ecken e und f
eines ungerichteten Graphen benachbart sind, d.h.
wenn es eine Kante von e nach f gibt.
e1
e2
e4
e3
Seite 5
e5
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Ein Pfad von einem Anfangsknoten a zu einem Endknoten
z ist eine Knotenfolge (oder auch Kantenfolge) von
p Knoten e1,e2,...,ep mit e1=a, ep=z. Die Knotenfolge kann
einen Knoten mehrfach durchlaufen.
(Wiederholungsmöglichkeit)
e2
e3= z
e1= a
e4
e5
Seite 6
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Ein Weg von einem Anfangsknoten a zu einem Endknoten
z ist ein Pfad, bei dem alle verwendeten Kanten
verschieden sind (ohne Wiederholungsmöglichkeit). Ist
der Startknoten gleich dem Endknoten des Weges, so
heißt der Weg geschlossen, andernfalls heißt er offen.
e2
e3= z
„offen“
e1= a
e4
e5
Seite 7
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Ein Weg von einem Anfangsknoten a zu einem Endknoten
z ist ein Pfad, bei dem alle verwendeten Kanten
verschieden sind (ohne Wiederholungsmöglichkeit). Ist
der Startknoten gleich dem Endknoten des Weges, so
heißt der Weg geschlossen, andernfalls heißt er offen.
e2= a = z
e3
e5
e4
„geschlossen“
e1
Seite 8
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
Bei bewerteten Graphen wird jeder Kante ein Wert aus der
praktischen Anwendung zugewiesen. Die Länge eines
Weges zwischen einem Startknoten s und einem Zielknoten
z ist dann gegeben als die Summe der Bewertungen auf den
Kanten des Weges.
Hamburg
Länge = 980km
150
280
Berlin
Hannover
190
460
Frankfurt
Seite 9
Dresden
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Grundlagen der Graphentheorie
kW-Baum
ƒ Ein kürzeste-Wege-Baum ist immer ein Untergraph
eines kantenbewerteten Graphen G, bei dem alle
Kantenbewertungen positiv bzw. ≥ 0 sind.
ƒ Der kW-baum
ist ein
gerichteter
Baum mit der Wurzel w.
„umfassender“
Graph
G
kW-Baum
w
Seite 10
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Edsger Wybe Dijkstra (1930-2002)
ƒ Geboren in Rotterdam
ƒ International angesehener Computer
Wissenschaftler
ƒ Lebte lange in Holland und arbeitete an
der Eindhoven Universität für Technologie
ƒ Anfang der 70er war er in der Forschungsabteilung der
„Burroughs Corporation“ tätig
ƒ 1972 Turing Award
ƒ 1984 - 2000 Lehrstuhl an der University of Texas
Seite 11
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus
Basiert auf einer geschickten Auswahl des zu
bearbeitenden Knotens.
1. Definition und Initialisierung der Distanz D:
Alle Knoten, die nicht unmittelbare Nachbarn der
Wurzel sind, erhalten D = ∞
2. Bildung von zwei Mengen
Menge B enthält alle Knoten, für welche schon ein
Weg von der Wurzel aus bekannt ist. Ein Knoten i ist
in B, wenn D[i] ≠ ∞
Menge E enthält alle endgültig markierten Knoten.
Seite 12
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus
3. Auswahl des Knotens mit der geringsten
Distanz
4. Vorgänger dieses Knotens merken
5. Knoten aus B entfernen und in E einfügen
6. Distanzen zu „neuen“ Nachbarn ermitteln
7. Wiederholung ab Schritt 3 bis Zielknoten in E
eingefügt oder alle Knoten bearbeitet wurden
Jeder Knoten kennt nun den Vorgänger,
über den er am schnellsten zu erreichen ist!
Seite 13
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus - Anfangszustand
V=A
B
7
∞
2
∞
4
C
1
∞
13
∞
5
Wurzel A
Z(iel)
G
∞
∞
6
10
F
4
∞
9
3
∞
E
5
∞
1
∞
D
B = { G,F
B,G,F
} }
E = { B} }
Seite 14
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus – Schritt 2
V=A
B
7
∞
2
∞
4
∞
10
F
C
∞
5
Wurzel A
A → B → C = 11
G
V=A
∞
∞
A→B→G=6
∞
∞
E
∞
Z(iel)
∞
D
B = { G,F
G,F,C
F,C } }
E = { B,G
B} }
Seite 15
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus – Schritt 3
V=A
B
4
10
A → G → F = 11 F
B = { F,E
C,F,E
C,F } }
E = { B,G
B,G,C
} }
6
∞
C
1
∞
2
5
Wurzel A
Seite 16
7
A → BV=G
→ C = 11
G
V=A
∞
∞
A→G→C=6
∞
9
∞
E
∞
Z(iel)
∞
D
A → G → E = 14
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus – Schritt 4
V=A
B
4
2
1
5
Wurzel A
13
∞
A → G → C → Z = 19
Z(iel)
G
V=A
10
6
A → G → F = 11 F
V=A
B = { F,E,Z
E,Z
F,E } }
E = { B,G,C,F
B,G,C } }
Seite 17
V=G
C
7
∞
9
∞
E
∞
∞
D
A → G → E = 14
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus – Schritt 5
V=A
B
4
2
1
13
A → G → C → Z = 19
5
Wurzel A
Z(iel)
G
V=A
10
6
F
V=A
B = { E,Z
Z} }
E = { B,G,C,F,E
B,G,C,F } }
Seite 18
V=G
C
7
∞
9
3
∞
A→
E
V=F
G
→
∞
∞
D
E = 14
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Der Dijkstra Algorithmus – Schritt 6
V=A
B
4
V=G
C
7
2
1
A → G → C → Z = 19
5
Wurzel A
13
G
V=A
10
6
F
V=A
4
∞
9
3
E
V=F
5
∞
Z(iel)
V=E
∞
D
B={Z
Z,D
D }} }
Kürzester
Weg
von
A nach
A→
F→
E→
Z
D == 17
18Z = 17
E = { B,G,C,F,E,Z
B,G,C,F,E } }
Seite 19
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Problem der Aktualisierung von Wegen bei Leitungsausfällen
Szenario
ƒ Leitung fällt auf Grund eines Unwetterschadens aus
ƒ Router bemerken den Ausfall und starten eine
komplette Neuberechnung ALLER Wege
ƒ Router tauschen die Informationen untereinander aus
sehr hoher Rechenaufwand
Warum gibt es nichts effizienteres?
Seite 20
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Problem der Aktualisierung von Wegen bei Leitungsausfällen
ƒ ... weil die Wissenschaft sich mit der Laufzeit O[n2]
des Dijkstra Algorithmus zufrieden gibt!
ƒ Der scheinbar sehr hohe Rechenaufwand relativiert
sich durch die steigende Rechenleistung der
Hardware
Wir wollen uns damit jedoch jetzt nicht zufrieden
stellen lassen!
Seite 21
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Lösungsansatz
Idee
ƒ Router haben einmal alle kürzesten Wege für jedes Ziel berechnet
und diese abgespeichert
ƒ Der Router müsste bei einem Ausfall nun lediglich einen Weg
kennen, über den er diesen umgeht, bis er auf einen anderen
Knoten des ursprünglichen Pfades trifft. Ab dort würde der „alte“
Pfad dann fortgesetzt.
ƒ Dieser Pfad soll im Folgenden Umgehungsweg heißen
ƒ Umgehungspfade wurden vorher berechnet und Router soll bei
Ausfall sofort auf diesen umschalten
Seite 22
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Lösungsansatz
Konsequenzen
ƒ Router müssen für jedes Ziel einen zusätzlichen
Umgehungsweg berechnen:
Dijkstra Algorithmus läuft normal, bricht aber früher ab.
(wenn ein Knoten des ursprünglichen Pfades erreicht)
ƒ Diese Pfade könnten im Router als Array
abgespeichert werden:
Umgehungswege[i] = j
Seite 23
i = ausgefallener Knoten
j = Umgehungsknoten
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Realisierung – Beipiel 1
A mussFGfällt
als aus
Umgehungsweg kennen,
Router
G kennt dann bereits den Weg über E nach Z
7
B
4
2
1
13
5
Wurzel A
Z(iel)
G
V=A
6
10
F
V=A
Seite 24
C
4
1
9
3
E
V=F
5
Dienstag, 21. Dezember 2004
D
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Realisierung – Beipiel 2
F muss G als Umgehungsweg kennen,
Router
E
ist
defekt
G nutzt dann ebenfalls seinen
Umgehungsweg über C nach Z
7
B
4
2
1
13
5
Wurzel A
Z(iel)
G
V=A
6
10
F
V=A
Seite 25
C
4
1
9
3
E
V=F
5
Dienstag, 21. Dezember 2004
D
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Bewertung des Lösungsansatzes
+ Leitungsausfall kann sofort umgangen werden
+ weniger Rechenaufwand
-
Mehr Speicherbedarf
Umgehungswege nur partiell optimal (Beispiel 2)
Keine „echte“ Lösung des Problems, aber Einsatz
für zeitkritische Leitungsabschnitte denkbar
Seite 26
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Fazit
Zielsetzung dieser Arbeit war es,
ƒ eine Einführung in die graphentheoretische Wegoptimierung zu geben
ƒ den Dijkstra Algorithmus zu veranschaulichen
ƒ Herrn Dijkstra mit einer besseren
Lösung zu übertreffen!
Seite 27
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Seminararbeit WS04/05
Fachhochschule Wedel
Ende
Vielen Dank für Ihre Aufmerksamkeit
Seite 28
Dienstag, 21. Dezember 2004
© 2004 Alex Prentki
Herunterladen