23.06.2013 Aufrufe

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

finale Version des Vorlesungsskripts - ZIB

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!