finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB
5.3 Kürzeste Wege neue Algorithmen oder Modifikationen bekannter Algorithmen entdeckt, die aus theoretischer oder praktischer Sicht schneller als die bekannten Verfahren sind oder sonstige Vorzüge haben. Es gibt keinen Algorithmus zur Bestimmung eines kürzesten (s, t)-Weges, der nicht (zumindest implizit) auch alle übrigen kürzesten Wege von s nach v, s = v = t, berechnet. Die Algorithmen für Kürzeste-Wege-Probleme kann man in zwei Kategorien einteilen, und zwar solche, die negative Bogenlängen zulassen, und solche, die nur nichtnegative Bogenlängen behandeln können. Von jedem der beiden Typen stellen wir einen Vertreter vor. Ferner wollen wir noch einen Algorithmus behandeln, der kürzeste Wege zwischen allen Knoten berechnet. Vermutlich haben sich die Menschen schon in grauer Vorzeit mit der Bestimmung kürzester Wege beschäftigt, um z.B. Transporte zu vereinfachen, den Handel zu erleichtern etc. Mathematik – im heutigen Sinne – wurde dabei sicherlich nicht verwendet. Eines der ältesten (uns bekannten) Wegeprobleme der (belletristischen) Literatur kommt aus einer klassischen Quelle: Friedrich Schillers (1759–1805) Schauspiel “Wilhelm Tell”. Dieser konnte bereits 1291 nicht nur gut schießen, sondern auch optimieren. Und nur mit dieser Kombination konnte er die Schweiz befreien! Tell befindet sich nach dem Apfelschuss am Ufer des Vierwaldstätter Sees unweit des Ortes Altdorf. Er muss unbedingt vor dem Reichsvogt Hermann Geßler die Hohle Gasse in Küßnacht erreichen, siehe Abbildung 5.2(b). Schiller berichtet: Tell. Nennt mir den nächsten Weg nach Arth und Küßnacht Fischer. Die offne Straße zieht sich über Steinen Den kürzern Weg und heimlichern Kann Euch mein Knabe über Lowerz führen. Tell(gibtihmdieHand). Gott lohn Euch Eure Guttat. Lebet wohl. Der Fischer löst für Tell in dieser Szene offensichtlich ein graphentheoretisches Optimierungsproblem. In einem Graphen (Wegenetz am Vierwaldstätter See) mit Kantenlängen (Reisezeit) soll der kürzeste Weg zwischen zwei vorgegebenen Punkten (Altdorf und Küßnacht) bestimmt werden. Tell behandelt sogar eine kompliziertere Variante mit einer zusätzlichen Nebenbedingung: Die Summe von „Verhaftungskoeffizienten“ muss unterhalb eines sicheren Grenzwertes bleiben. Man kann dies auch als multikriterielles Optimierungsproblem auffassen (Weglänge und Sicherheit gleichzeitig optimieren). Dies ist ein Aufgabentyp, den wir auch heute noch nicht gut beherrschen. (In der Vorlesung wird mehr dazu berichtet). 5.3.1 Ein Startknoten, nichtnegative Gewichte Das Verfahren, das wir nun darstellen wollen, ist mehrfach entdeckt worden. Es wird allgemein nach Dijkstra (1959) benannt. Wir gehen davon aus, dass ein Digraph D = (V, A) mit “Gewichten” bzw. “Längen” oder “Entfernungen” c(a) ≥ 0 für alle a ∈ A 91
5 Bäume und Wege (a) F. Schiller. (b) Vierwaldstätter See. (c) W. Tell. Abbildung 5.2: Mathematik in der Belletristik: Schillers Schauspiel „Wilhelm Tell“. gegeben ist. Ferner seien ein Startknoten s und möglicherweise ein Endknoten t gegeben. Das Verfahren findet einen kürzesten gerichteten Weg von s zu allen anderen Knoten bzw. einen kürzesten (s, t)-Weg. Der Algorithmus wird häufig als Markierungsmethode bezeichnet. (Warum, wird aus dem Weiteren klar.) Seine Idee kann man wie folgt beschreiben. Wir beginnen im Startknoten s, markieren s und ordnen s die permanente Distanz Null (= Länge des kürzesten Weges von s zu sich selbst) zu. Alle übrigen Knoten v seien unmarkiert, und wir ordnen ihnen als temporäre Distanz (= Länge des kürzesten bisher gefundenen (s, v)-Weges) entweder +∞ oder die Länge des Bogens (s, v), falls dieser in D existiert, zu. Der unmarkierte Knoten mit der kleinsten temporären Distanz ist dann der Knoten, der am nächsten zu s liegt. Nennen wir den Knoten u. Da alle Bogenlängen nicht-negativ sind, ist der Bogen (s, u) der küzeste Weg von s nach u. Wir markieren daher u und erklären die temporäre Distanz von u als permanent, weil wir den (global) kürzesten (s, u)-Weg gefunden haben. Nun bestimmen wir alle Nachfolger v von u und vergleichen die temporäre Distanz von v mit der permanenten Distanz von u plus der Länge des Bogens (u, v). Ist diese Summe kleiner als die bisherige temporäre Distanz, wird sie die neue temporäre Distanz, weil der bisher bekannte Weg von s nach v länger ist als der Weg von s über u nach v. Wir wählen nun wieder eine kleinste der temporären Distanzen, erklären sie als permanent, da der bisher gefundene Weg durch Umwege über andere Knoten nicht verkürzt werden kann, markieren den zugehörigen Knoten und fahren so fort bis entweder alle Knoten oder der gesuchte Endknoten t markiert sind. Etwas formaler kann man diesen Algorithmus wie folgt aufschreiben. (5.17) DIJKSTRA-Algorithmus. Eingabe: Digraph D = (V, A), Gewichte c(a) ≥ 0 für alle a ∈ A, ein Knoten s ∈ V (und möglicherweise ein Knoten t ∈ V \ {s}). Ausgabe: Kürzeste gerichtete Wege von s nach v für alle v ∈ V und ihre Länge (bzw. ein kürzester (s, t)-Weg). 92
- Seite 46 und 47: (a) (b) 3.2 Klassische Fragestellun
- Seite 48 und 49: 3.3 Graphentheoretische Optimierung
- Seite 50 und 51: 3.3 Graphentheoretische Optimierung
- Seite 52 und 53: 3.3 Graphentheoretische Optimierung
- Seite 54 und 55: 3.3 Graphentheoretische Optimierung
- Seite 56 und 57: • Schaltkreisentwurf • Standort
- Seite 58 und 59: 3.3 Graphentheoretische Optimierung
- Seite 60 und 61: 3.3 Graphentheoretische Optimierung
- Seite 62 und 63: Literaturverzeichnis T. L. Gertzen
- Seite 64 und 65: 4 Komplexitätstheorie und Speicher
- Seite 66 und 67: 4.1 Probleme, Komplexitätsmaße, L
- Seite 68 und 69: 4.2 Die Klassen P und N P, N P-Voll
- Seite 70 und 71: 4.2 Die Klassen P und N P, N P-Voll
- Seite 72 und 73: 4.2 Die Klassen P und N P, N P-Voll
- Seite 74 und 75: 4 4.3 Datenstrukturen zur Speicheru
- Seite 76 und 77: 4.3 Datenstrukturen zur Speicherung
- Seite 78 und 79: 4.3 Datenstrukturen zur Speicherung
- Seite 80: R. E. Tarjan. Data structures and n
- Seite 83 und 84: 5 Bäume und Wege Der Beweis ist et
- Seite 85 und 86: 5 Bäume und Wege (2) =⇒ (3) Ist
- Seite 87 und 88: 5 Bäume und Wege Haben wir einen A
- Seite 89 und 90: 5 Bäume und Wege Falls T \ {ei} zu
- Seite 91 und 92: 5 Bäume und Wege /****************
- Seite 93 und 94: 5 Bäume und Wege THEN w[dope[i]+j]
- Seite 95: 5 Bäume und Wege Wie Beispiel (5.1
- Seite 99 und 100: 5 Bäume und Wege DISTk(u) die Län
- Seite 101 und 102: 5 Bäume und Wege VOR(3) = 2. Wir s
- Seite 103 und 104: 5 Bäume und Wege 4. DO u = 1 TO v
- Seite 105 und 106: 5 Bäume und Wege Sei nun P ein kü
- Seite 107 und 108: 5 Bäume und Wege (b) D enthält ge
- Seite 109 und 110: 5 Bäume und Wege C2 C1 s 4 C3 C4 2
- Seite 111 und 112: 5 Bäume und Wege ders vorgehen: z.
- Seite 113 und 114: 5 Bäume und Wege ist ein System vo
- Seite 115 und 116: 5 Bäume und Wege heißt (allgemein
- Seite 117 und 118: 5 Bäume und Wege Um lästige Trivi
- Seite 119 und 120: Literaturverzeichnis A. Goldberg. P
- Seite 121 und 122: 6 Maximale Flüsse in Netzwerken Al
- Seite 123 und 124: 6 Maximale Flüsse in Netzwerken de
- Seite 125 und 126: 6 Maximale Flüsse in Netzwerken s
- Seite 127 und 128: 6 Maximale Flüsse in Netzwerken W
- Seite 129 und 130: 6 Maximale Flüsse in Netzwerken Da
- Seite 131 und 132: 6 Maximale Flüsse in Netzwerken s
- Seite 133 und 134: Literaturverzeichnis L. R. Ford, Jr
- Seite 135 und 136: 7 Flüsse mit minimalen Kosten Ein
- Seite 137 und 138: 7 Flüsse mit minimalen Kosten Dami
- Seite 139 und 140: 7 Flüsse mit minimalen Kosten Dami
- Seite 141 und 142: 7 Flüsse mit minimalen Kosten 2. K
- Seite 143 und 144: 7 Flüsse mit minimalen Kosten schr
- Seite 145 und 146: 7 Flüsse mit minimalen Kosten Erf
5.3 Kürzeste Wege<br />
neue Algorithmen oder Modifikationen bekannter Algorithmen entdeckt, die aus theoretischer<br />
oder praktischer Sicht schneller als die bekannten Verfahren sind oder sonstige<br />
Vorzüge haben.<br />
Es gibt keinen Algorithmus zur Bestimmung eines kürzesten (s, t)-Weges, der nicht<br />
(zumin<strong>des</strong>t implizit) auch alle übrigen kürzesten Wege von s nach v, s = v = t, berechnet.<br />
Die Algorithmen für Kürzeste-Wege-Probleme kann man in zwei Kategorien einteilen,<br />
und zwar solche, die negative Bogenlängen zulassen, und solche, die nur nichtnegative<br />
Bogenlängen behandeln können. Von jedem der beiden Typen stellen wir einen Vertreter<br />
vor. Ferner wollen wir noch einen Algorithmus behandeln, der kürzeste Wege zwischen<br />
allen Knoten berechnet.<br />
Vermutlich haben sich die Menschen schon in grauer Vorzeit mit der Bestimmung kürzester<br />
Wege beschäftigt, um z.B. Transporte zu vereinfachen, den Handel zu erleichtern<br />
etc. Mathematik – im heutigen Sinne – wurde dabei sicherlich nicht verwendet. Eines<br />
der ältesten (uns bekannten) Wegeprobleme der (belletristischen) Literatur kommt aus<br />
einer klassischen Quelle: Friedrich Schillers (1759–1805) Schauspiel “Wilhelm Tell”. Dieser<br />
konnte bereits 1291 nicht nur gut schießen, sondern auch optimieren. Und nur mit<br />
dieser Kombination konnte er die Schweiz befreien! Tell befindet sich nach dem Apfelschuss<br />
am Ufer <strong>des</strong> Vierwaldstätter Sees unweit <strong>des</strong> Ortes Altdorf. Er muss unbedingt<br />
vor dem Reichsvogt Hermann Geßler die Hohle Gasse in Küßnacht erreichen, siehe Abbildung<br />
5.2(b).<br />
Schiller berichtet:<br />
Tell. Nennt mir den nächsten Weg nach Arth und Küßnacht<br />
Fischer. Die offne Straße zieht sich über Steinen<br />
Den kürzern Weg und heimlichern<br />
Kann Euch mein Knabe über Lowerz führen.<br />
Tell(gibtihmdieHand). Gott lohn Euch Eure Guttat. Lebet wohl.<br />
Der Fischer löst für Tell in dieser Szene offensichtlich ein graphentheoretisches Optimierungsproblem.<br />
In einem Graphen (Wegenetz am Vierwaldstätter See) mit Kantenlängen<br />
(Reisezeit) soll der kürzeste Weg zwischen zwei vorgegebenen Punkten (Altdorf und Küßnacht)<br />
bestimmt werden. Tell behandelt sogar eine kompliziertere Variante mit einer zusätzlichen<br />
Nebenbedingung: Die Summe von „Verhaftungskoeffizienten“ muss unterhalb<br />
eines sicheren Grenzwertes bleiben. Man kann dies auch als multikriterielles Optimierungsproblem<br />
auffassen (Weglänge und Sicherheit gleichzeitig optimieren). Dies ist ein<br />
Aufgabentyp, den wir auch heute noch nicht gut beherrschen. (In der Vorlesung wird<br />
mehr dazu berichtet).<br />
5.3.1 Ein Startknoten, nichtnegative Gewichte<br />
Das Verfahren, das wir nun darstellen wollen, ist mehrfach entdeckt worden. Es wird<br />
allgemein nach Dijkstra (1959) benannt. Wir gehen davon aus, dass ein Digraph D =<br />
(V, A) mit “Gewichten” bzw. “Längen” oder “Entfernungen” c(a) ≥ 0 für alle a ∈ A<br />
91