finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
5.3 Kürzeste Wege<br />
(i, j) und (j, i) mit demGewicht von ij zuordnen, so können wir natürlich durch Anwendung<br />
unserer Verfahren auf D auch kürzeste Wege bzw. Kreise in G bestimmen. Man<br />
beachte jedoch, dass ein negatives Kantengewicht c(ij) in G automatisch zu einem negativen<br />
gerichteten Kreis (i, j)(j, i) in D führt. Mit unseren Methoden können wir also nur<br />
kürzeste Wege und Kreise in Graphen mit nichtnegativen Kantengewichten bestimmen.<br />
Es sei an dieser Stelle jedoch darauf hingewiesen, dass auch in Graphen mit negativen<br />
Kantengewichten kürzeste Wege und Kreise bestimmt werden können, falls kein Kreis<br />
negativ ist. Dies geschieht mit Methoden der Matching-Theorie, auf die wir hier aus<br />
Zeitgründen nicht eingehen können.<br />
Laufzeiten Genaue Laufzeitanalysen von verschiedenen Varianten der hier vorgestellten<br />
Algorithmen zur Berechnung von kürzesten Wegen findet man z. B. in Ahuja et al. (1993)<br />
auf den Seiten 154–157 ebenso, wie einen kurzen geschichtlichen Überblick.<br />
Umfangreiche historische Bemerkungen zur Theorie und Algorithmik von kürzesten<br />
Wegen bietet das Buch von Schrijver (2003). In den Abschnitten 7.5 und 8.6 sind z. B.<br />
Tabellen zu finden, die die Verbesserungen der Worst-Case-Laufzeiten von Kürzeste-<br />
Wege-Algorithmen dokumentieren.<br />
Ein Algorithmus zur Bestimmung kürzester Wege muss jeden Bogen <strong>des</strong> gegebenen<br />
Digraphen D = (V, A) min<strong>des</strong>tens einmal „anfassen“. Eine untere Schranke für die Laufzeit<br />
eines jeden Algorithmus dieser Art ist somit O(m), m = |A|. Thorup (1997) hat<br />
gezeigt, dass man diese Laufzeit für ungerichtete Graphen mit nichtnegativen Kantengewichten<br />
tatsächlich erreichen kann. Er benutzt dazu sogenannte „Atomic Heaps“, deren<br />
Verwendung n = |V | ≥ 2 1220<br />
voraussetzt. Das bedeutet, dass diese Methode zwar theo-<br />
retisch „gut“, aber für die Praxis ungeeignet ist. (Thorup diskutiert in seinem Aufsatz<br />
auch implementierbare Varianten, allerdings haben diese eine schlechtere Laufzeit, z. B.<br />
O(log Cmax + m + n log log log n), wobei Cmax das größte Kantengewicht bezeichnet.)<br />
Bei Routenplanern, wie sie z. B. im Internet oder in den Bordcomputern von Autos<br />
angeboten werden, treten Digraphen mit mehreren Millionen Knoten auf (die in der Regel<br />
nur einen kleinen Grad haben). Die Anbieter solcher Programme haben für derartige<br />
Probleme, bei denen ja der Grundgraph, der auf der CD gespeichert ist, fest bleibt,<br />
Spezialverfahren entwickelt (z.B. durch intensives Preprocessing und die Abspeicherung<br />
wichtiger kürzester Verbindungen), die Kürzeste-Wege-Probleme dieser Art sehr schnell<br />
lösen. Um (selbst gesetzte) Zeitschranken für den Nutzer einzuhalten, benutzen diese<br />
Algorithmen z.T. Heuristiken, und derartige Algorithmen liefern nicht notwendig immer<br />
einen beweisbaren kürzesten Weg. Einen Überblick über diesen Aspekt findet man in<br />
Goldberg (2007).<br />
Fast alle Navigationssysteme bieten mehrere Optimierungsmöglichkeiten zur Bestimmung<br />
eines „besten“ Weges an. Man kann z. B. den schnellsten oder den kürzesten Weg bestimmen<br />
lassen. Manche Navigationssysteme offerieren eine „Kombinationsoptimierung“,<br />
man kann dann etwa eingeben, dass Schnelligkeit mit 70% und Streckenkürze mit 30%<br />
berücksichtigt werden. Dies ist eine spezielle <strong>Version</strong> der Mehrzieloptimierung. Die zwei<br />
Zielfunktionen werden hierbei mit Parametern multipliziert und dann aufaddiert, so dass<br />
nur eine einzige Zielfunktion entsteht. Das nennt man Skalierung. Man könnte auch an-<br />
105