Sie sind auf Seite 1von 10

08.01.

2021

Graphenalgorithmen
Informatik-GK 12/2
2021

Das kürzeste-Wege-Problem

Eingabe: Ein kantengewichteter gerichteter oder


ungerichteter Graph mit positiven Gewichten
2 Knoten: Start und Ziel

Ausgabe: Ein kürzester Weg vom Start zum Ziel

1
08.01.2021

G1
4
v w
5
3
3
2 5
u x y

6 6 7
8 5 6

z s t
4 2

Bestimme die kürzesten Wege vom Startknoten u zu allen anderen Knoten.


Notiere dabei die Reihenfolge der rot markierten Knoten.

Gib den kürzesten Weg von u nach t und dessen Distanz an.

Der Dijkstra-Algorithmus

1. Markiere den Startknoten rot und initialisiere ihn mit der


Distanz 0.
Bezeichne diesen als aktuellen Knoten.

2
08.01.2021

Der Dijkstra-Algorithmus
2. Gehe vom aktuellen Knoten zu allen Nachbarknoten.
Führe für jeden Nachbarknoten folgendes durch:
Berechne die Summe aus der Distanz am aktuellen Knoten und der
Länge der Strecke dorthin.
Unterscheide 3 Fälle:
(1) Nachbarknoten bereits rot markiert: Mache nichts
(2) Nachbarknoten hat keine Distanz: Weise ihm die Summe als
Distanz zu. Markiere die Strecke zum aktuellen Knoten.
(3) Nachbarknoten hat bereits eine Distanz:
Distanz kleiner als Summe: Mache nichts.
Distanz größer als Summe: Streiche die dortige Kennzahl
sowie die Markierung.
Weise Knoten danach die Summe als neue Distanz zu.
Markiere die Strecke zur aktuellen Stadt.

3
08.01.2021

Der Dijkstra-Algorithmus

3. Betrachte alle Knoten, die zwar eine Distanz haben, aber


noch nicht rot markiert sind.
Suche den Knoten mit der kleinsten Distanz.

4. Bezeichne diesen als aktuellen Knoten.


Weisen mehrere Knoten die kleinste Distanz auf, wähle einen
beliebigen davon.

5. Markiere den aktuellen Knoten rot.


Zeichne die dort markierte Strecke in rot ein.

6. Falls es noch Knoten gibt, die nicht rot markiert sind, gehe zu 2.

4
08.01.2021

5
08.01.2021

6
08.01.2021

7
08.01.2021

8
08.01.2021

5
G2

3
b c
5
2

3
a 2 1 f

1
2
d e
1

G3
4
b e

1 2 3 2
3 3
4
a d g
4
2 2
2 1

c f
4

9
08.01.2021

G4
2 2
a d g
3 4 7 8
6

b e h
9 4 8 7

c f i
5 7

10