aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
aktuelle Version des Vorlesungsskripts - ZIB
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
5 Bäume und Wege<br />
(a) F. Schiller. (b) Vierwaldstätter See. (c) W. Tell.<br />
Abbildung 5.2: Mathematik in der Belletristik: Schillers Schauspiel „Wilhelm Tell“.<br />
gegeben ist. Ferner seien ein Startknoten s und möglicherweise ein Endknoten t gegeben.<br />
Das Verfahren findet einen kürzesten gerichteten Weg von s zu allen anderen Knoten<br />
bzw. einen kürzesten (s, t)-Weg.<br />
Der Algorithmus wird häufig als Markierungsmethode bezeichnet. (Warum, wird aus<br />
dem Weiteren klar.) Seine Idee kann man wie folgt beschreiben.<br />
Wir beginnen im Startknoten s, markieren s und ordnen s die permanente Distanz<br />
Null (= Länge <strong>des</strong> kürzesten Weges von s zu sich selbst) zu. Alle übrigen Knoten v<br />
seien unmarkiert, und wir ordnen ihnen als temporäre Distanz (= Länge <strong>des</strong> kürzesten<br />
bisher gefundenen (s, v)-Weges) entweder +∞ oder die Länge <strong>des</strong> Bogens (s, v), falls<br />
dieser in D existiert, zu. Der unmarkierte Knoten mit der kleinsten temporären Distanz<br />
ist dann der Knoten, der am nächsten zu s liegt. Nennen wir den Knoten u. Da alle<br />
Bogenlängen nicht-negativ sind, ist der Bogen (s, u) der küzeste Weg von s nach u. Wir<br />
markieren daher u und erklären die temporäre Distanz von u als permanent, weil wir<br />
den (global) kürzesten (s, u)-Weg gefunden haben. Nun bestimmen wir alle Nachfolger<br />
v von u und vergleichen die temporäre Distanz von v mit der permanenten Distanz von<br />
u plus der Länge <strong>des</strong> Bogens (u, v). Ist diese Summe kleiner als die bisherige temporäre<br />
Distanz, wird sie die neue temporäre Distanz, weil der bisher bekannte Weg von s nach<br />
v länger ist als der Weg von s über u nach v. Wir wählen nun wieder eine kleinste der<br />
temporären Distanzen, erklären sie als permanent, da der bisher gefundene Weg durch<br />
Umwege über andere Knoten nicht verkürzt werden kann, markieren den zugehörigen<br />
Knoten und fahren so fort bis entweder alle Knoten oder der gesuchte Endknoten t<br />
markiert sind. Etwas formaler kann man diesen Algorithmus wie folgt aufschreiben.<br />
(5.17) DIJKSTRA-Algorithmus.<br />
Eingabe: Digraph D = (V, A), Gewichte c(a) ≥ 0 für alle a ∈ A, ein Knoten s ∈ V<br />
(und möglicherweise ein Knoten t ∈ V \ {s}).<br />
Ausgabe: Kürzeste gerichtete Wege von s nach v für alle v ∈ V und ihre Länge (bzw. ein<br />
kürzester (s, t)-Weg).<br />
92