220 likes | 314 Views
Grundpraktikum WS 04/05. Weight-Constrained Shortes Path : Teil 1 : Preprocessing. Betreuer : Dr. Gleb Belov. Praktikanten : Hao Li & Tingting Wang. Überblick. Problemstellung Preprocessing Algorithmus Ergebnis. Motivation. Stadt 2. 3 h. 30€. Fahrtzeit <=4. 2 h. 25€.
E N D
Grundpraktikum WS 04/05 Weight-Constrained Shortes Path : Teil 1 : Preprocessing Betreuer : Dr. Gleb Belov Praktikanten : Hao Li & Tingting Wang
Überblick • Problemstellung • Preprocessing Algorithmus • Ergebnis
Motivation Stadt 2 3 h 30€ Fahrtzeit <=4 2h 25€ Stadt 3 4 h 70€ Stadt 1 Problem der kürzesten Wege Problem der kürzesten Wege unter Ressourcenrestiktion ( RCSPP) Anzahl der Ressourcenarten = 1 Weight Constained Shortest Path Problem
Teil I: Problemstellung Allgemeine Beschreibung des WCSPP • Gegeben: • Graph G = G (V, A) gerichtet , schleifefrei • cij : Kosten auf dem Bogen (i,j) • wij : Ressourcenverbrauch auf dem Bogen (i,j) • W : maximale verfügbare Ressourcenmengen • Gesucht: • einen zulässigen Weg P = (i0, i1, ... , ip) • d.h. den kürzesten Weg bezüglich der Kosten, auf • dem maximal W Einheiten der Ressourcen • konsumiert werden
Teil I: Problemstellung WCSPP ( in Standform) : bei
Teil II: Preprocessing Algorithmus Ablauf des Algorithmus • Schritt 0: • Bestimmung von oberer Kostenschranke U; • und setze die untere Schranke L=0 ein. • Schritt 1: • Finde kürzesten Weg bezüglich Kosten. • (Algorithmus von Dijkstra) • Schritt 2: • Finde kürzesten Weg bezüglich Ressourcenverbrauch. • Schritt 3: • Graphenreduzierung
Beispiel : Graph mit 6 Knoten und W = 8 V2 (2 , 5) V4 (4 , 2) (1, 3) (2 , 4) V1 V6 (3, 3) (4 , 3) (3 , 4) V3 (2 , 2) V5 Kosten Ressourcen
Schritt 0 : • Bestimmung der oberen und untere Schranke • für die Kosten • U0 = max Ca * ( V -1) +1 • = 4 * (5 -1) +1 = 17 • Wir setzen • U = U0 = 17 • L = 0 4 4
Schritt 1 : • Finde kürzeste Wege von V1 nach allen • Knoten ohne Berücksichtigung der • Ressourcenrestriktion mittels Algorithmus • von Dijkstra • Bezeichnung : Summe der Kosten auf dem Weg z.B.
Schritt 1 (Forts.) : • Der Algorithmus von Dijkstra liefert uns :
Schritt 1 (Forts.) : • Überprüfe, ob optimal ist. Optimale Lösung gefunden !! ja *hier : Nein * weiter suchen
Schritt 1 (Forts.): • Finde kürzeste Wege von allen Knoten • nach Endknoten t (=V6)ohne Beachtung der • Ressourcenrestriktion ( Dijkstra)
Schritt 2 : • Finde kürzeste Wege von V1 nach allen • Knoten nun bezüglich Ressourcenverbrauch • (ebenfalls Dijkstra ) • Bezeichnung : Gesamte Menge der Ressourcenverbrauche auf dem Weg • Hier gilt Kostenoberschrank zu verbessern
Schritt 2 (Forts.) : • Untersuche die Optimalität des (zulässigen) • Weges • Finde kürzeste Wege von allen Knoten • nach V6 bezüglich Ressourcenverbrauch • (ebenfalls Dijkstra )
Schritt 3 : Reduzieren des Graphen • Nachprüfen, ob • wenn ja , den Knoten Vi und alle mit dem • inzidenten Bögen zu entfernen !!
Schritt 3 (Forts.) : V2 (2 , 5) V4 (4 , 2) (1, 3) (2 , 4) V1 V6 (3, 3) (4 , 3) (3 , 4) V3 (2 , 2) V5 Optimale Lösung gefunden !!!
Teil III:Preprocessing Ergebnis Ergebnis für „Road_graph_small.txt“ :
Teil III:Preprocessing Ergebnis Ergebnis für die ersten 10 Knoten
Teil III:Preprocessing Ergebnis Ergebnis für das gesamte Testdatei
Ende !!! Danke für Ihre Aufmerksamkeit ! *^_^*