Deterministisches Recoverable k-CTP (drCTP) • Deterministisches Recoverable k-Canadian Traveller Problem Gegeben: Graph G = (V , E ), Startknoten s, Zielknoten t , Kostenfunktion c, Recoverfunktion tr , Anzahl der Blockaden k Maximal k Kanten e ∈ E können für t r (e) blockiert sein. Gesucht: Reisestrategie, die an Knoten v aufgrund der aktuell bekannten und früheren Blockaden möglichst günstigen nächsten Knoten ausgibt ! • Lösungsidee: Wiederholung • k (+1) Reisestrategien Si für 0 ≤ 1 ≤ k bereits blockierte Kanten berechnen. • Kantenblockaden b zählen • Die noch möglichen Blockaden i = k − b geben Strategie Si an 1/1 drCTP-Algorithmus nach Bar-Noy und Schieber (komplett) Alternative Kanten — Berechnung • Die Kanten (v , vi ) aus AEj (v ) sind sortiert nach: (0) für j = 0, . . . , k (1) setze dist (j , v ) := ∞ dist (j , t ) := 0 M = {t } (2) bestimme u ∈ / M mit dist (j , u) = min{dist (j , u) : u ∈ / M} (3) setze M = M ∪ {u} (4) für alle v ∈ V mit (u, v ) ∈ E c(v , vi ) + dist (j , vi ) • Dabei ist dist (j , vi ) die worst case Distanz zwischen vi und t in Strategie Sj • dist (j , v ) wird in jeder Strategie S j bestimmt als: −1 {c(v , xi )+dist (j −i , xi )}∪{c(v , vi )+dist (j , v min(v ,vi )∈E {maxij=1 • D.h. die nächste alternative Kante der j −ten Strategie wird so ausgewählt, dass die Distanz dist (j , v ), also die Distanz zwischen v und t im Falle dass an Knoten v j Blockaden auftreten möglichst klein ist, obwohl die Blockaden maximal ungünstig sind (worst case). • Die Kante, die zur minimalen worst case Distanz dist (j , v ) führt, wird zur Primärkante für v in Strategie S j −1 (5) falls dist 0 (j , v ) = max {{maxij=1 {c(v , xi ) + dist (j − i , xi )} ∪ {c(v , u) + dist (j , u)}} < dist (j , v ) setze dist (j , v ) = dist 0 (j , v ) Pj (v ) := (u, v ) (6) falls M 6= V , gehe zu (2) 3/1 k Reisestrategien Dijkstra-Analogie • S0 (k Kanten bereits blockiert → 0 weitere Blockaden möglich) entspricht Dijkstra’s Algorithmus. • Die k Reisestategien für das drCTP bestehen aus: • k Listen AEj (v ) der alternativen Kanten an v • k Primärkanten Pj = (v , vi )j an v • Beide können in einem Dijkstra ähnlichen Algorithmus für • Eine Reisestrategie besteht aus n = kV k Listen von alternativen Kanten AE (v ) für jeden Knoten v ∈ V . • Für eine Reisestrategie Si , die i weitere mögliche Blockaden berücksichtigt gilt für alle v ∈ V kAEi (v )k = i + 1. jede Strategie Sj bestimmt werden: • Initial: ∀v 6= t ∈ V : dist (j , v ) = ∞, dist (j , t ) = 0 • In jedem Schritt Knoten u mit minimaler dist (j , u) wählen • Besitzt Knoten v nur j < i + 1 adjazente Kanten, so wird AEi (v ) mit der Kante (v , v ) „aufgefüllt “. und alle adjazenten Knoten auf Verbesserung der vorläufigen Distanz und Bestimmung einer neuen Primärkante überprüfen. • Da (v , v ) nicht blockiert sein kann, steht dem Reisenden immer die Option „Abwarten an v “zur Verfügung. • AEi (v ) sind vergleichbar PL(v ) sind aber anders zu berechnen, insbesondere werden alle Strategien iterativ durch je einen Dijkstra-ähnlichen Algorithmus berechnet. 5/1 k Reisestrategien — Sicht des Reisenden Korrektheit,Güte Reisender erreicht Knoten v . • Korrektheit: • Die korrekte Zuweisung der dist (j , v )-Werte durch die Vorgehensweise des Algorithmus ist analog zu Dijkstra’s Algorithmus. • Durch die Maximumsbildung in jeder neuen Zuweisung sind die dist (j , v )-Werte garaniert die „günstigsten im ungünstigsten Fall“, d.h. die minimale worst case travel time • Güte: • Der drCTP-Algorithmus ist „optimal“ bezüglich der Distanz im ungünstigsten Fall worst case travel time. • Fall 1: Es wurden bereits b Kanten blockiert, bevor v erreicht wurde → Strategie Si , i = k − b wird benutzt. • Fall 2: Es wurden noch keine Kanten blockiert → Strategie Sk wird benutzt. • Benutzung einer beliebigen Strategie S j an Knoten v : • Falls keine adjazenten Kanten blockiert sind, benutze besondere Kante aus AEj (v ) (Primärkante) • Sonst, falls h adjazente Kanten blockiert sind, benutze h−te alternative Kante aus AEj (v ) 7/1 Laufzeit(1) Laufzeit(2) • (2) bestimme u ∈ / M mit dist (j , u) = min{dist (j , u) : u ∈ / M} → 0(logn) mit Fibonacci-Heaps! Wird kV k = n-mal durchlaufen → 0(nlogn) • Bisherige Gesamtlaufzeit: O(km + nlogn) • (3) setze M = M ∪ {u} (4) für alle v ∈ V mit (u, v ) ∈ E (5) falls dist 0 (j , v ) = −1 {c(v , xi ) + dist (j − i , xi )} max {{maxij=1 ∪{c(v , u) + dist (j , u)}} < dist (j , v ) setze dist (j , v ) = dist 0 (j , v ) Pj (v ) := (u, v ) −1 ! → 0(logk ) wegen maxij=1 Wird kE k = m-mal durchlaufen → 0(km) • (0) für j=0, …, k Wird zur Berechnung jeder Strategie benötigt ! → 0(k 2 m + knlogn) 9/1 1 k-CTP • Bisher betrachtet: 2 Versionen des Recoverable CTP • +Blockadewahrscheinlickeiten • +maximale Anzahl von Blockaden k-CTP • Jetzt: Nicht wiederherstellbares CTP Gegeben: Graph G = (V , E ), Startknoten s, Zielknoten t , Kostenfunktion c, maximale Anzahl der Blockaden k Gesucht: Reisestrategie, die an Knoten v aufgrund der aktuell bekannten und früheren Blockaden möglichst günstigen nächsten Knoten ausgibt ! • Lösung: k-CTP ist PSPACE-vollständig :-( Ziemlich schwierig )-: • Daher: Zunächst k=1 11 / 1 1 Effizienter k-CTP-Algorithmus für k=1 Effizienter k-CTP-Algorithmus für k=1 • Es gibt nur 2 Strategien S0 (Dijkstra) und S1 . • S1 Besteht aus Je einer Primärkante und einer alternativen Kante pro Knoten v . • Die Primärkanten jedes Knotens sind gerade die Kanten, die die Länge kürzesten Pfad von s nach t im ungünstigsten Fall minimieren. Lemma Die alternative Kante an v ist diejenige auf dem kürzesten Pfad von v nach t (ohne v ’s Primärkante) • Alle möglichen Fälle sind gegeben, durch die m Möglichkeiten eine Beweis • Der gesuchte Weg minimiert daher die jeweils maximale Länge aller Kante aus G zu entfernen. (s, t )-Wege über die möglichen Graphen, denen gegenüber G eine Kante fehlt. • Wird an v eine alternative Kante gewählt, so muss dessen Primärkante blockiert sein. • Ist v ’s Primärkante blockiert, so ist bereits k=1 Kante blockiert und es kann keine weiteren Blockaden geben. 2 13 / 1 Effizienter k-CTP-Algorithmus für k=1 1 Effizienter k-CTP-Algorithmus für k=1 Definition 1 Für F ⊂ E , sei G 0 (F ) = G(V , E \ F ) • S0 und S1 können gemeinsam in einem Dijkstra-Algorithmus berechnet werden. Definition 2 KW (F , v ) sei der kürzeste Weg von v nach t in G 0 (F ) • Dabei werden in jedem Knoten v verschiedene Distanzen KW (F , t ) gespeichert. Definition 3 • Jedes KW (F , t ) ist die (vorläufige) kürzeste Distanz von v zu t in • Sei der Weg bestehend aus Primärkanten gegeben als: G 0 (F ), wobei F genau eine Kante aus E enthält, die zu v adjazent ist. π = (s = v0 , v1 ), (v1 , v2 ), . . . , (vl −1 , vl ) • Die Länge von π muss Pl i =0 • Bei jeder Aktualisierung an Knoten v bezüglich einer Kante (w , v ) werden alle Werte KW (F , t ) berücksichtigt, ausser demjenigen für den F = (w , v ). c(vi , vi +1 ) und • Die Anzahl der zusätzlichen Aktualisierungen liegt für alle Knoten in max0<j ≤l {sumij=1 c(xi −1 , xi ) + KW ({(xj , xj +1 }), t )} O(m), da insgesamt höchstens 2m Distanzen gespeichert werden. minimieren. • Die Implemetierung gelingt mit (zusätzlichen) Fibonacci-Heaps in • D.h. Der gesuchte Weg π ist derjenige Weg von s nach t , dessen O(m + nlogn). maximale Länge in allen möglichen Graphen G 0 (F ) die kürzeste ist. Dabei darf F nur eine Kante enthalten. 15 / 1 1 k-CTP-Algorithmus für beliebiges k • Im Prinzip: k mal Algorithmus wie für k = 1 • Problem (für jede Strategie Si , 1 ≤ i ≤ k ): Komplexität • Jede Menge F ⊂ E mit kF k ≤ k von Kanten kann blockiert sein. • Es gibt m k viele solche Mengen F • Damit ist Laufzeit exponentiell wg Aktualisierungen • Damit ist Speicherplatz polynomiell wg Distanzen, da für jede Strategie Si jeweils nur die vorläufig minimalen Distanzen und die endgültigen Distanzen der Strategie Si −1 gespeichert werden müssen. 17 / 1 1 NP -Vollständigkeit • NP ist die Menge aller Sprachen, die von einer nichtdeterministischen Turingmaschine akzeptiert werden, deren Laufzeit durch ein Polynom in der Länge des Inputs beschränkt ist. NP -Vollständigkeit • Seien L und L 0 zwei Sprachen • L heißt polynomiell reduzierbar auf L 0 , falls gilt: • L ist reduzierbar auf L 0 mittels einer Funktion f • d.h. x ∈ L ⇔ f (x ) ∈ L0 • f ist in polynomieller Zeit berechenbar • Notation: L p L 19 / 1 2 NP -Vollständigkeit PSPACE -Vollständigkeit • wie ““ ist auch “p „ transitiv • L und L0 heißen polynomiell äquivalent falls L p L0 und L0 p L • Notation: L ≡p L0 • L heißt NP -schwer, falls für alle L 0 ∈ NP gilt: L 0 p L. • L heißt NP -vollständig, falls L NP -schwer ist und L ∈ NP . 21 / 1 2 PSPACE -Vollständigkeit PSPACE -Vollständigkeit • PSPACE ist die Menge aller Sprachen, die von einer • Seien L und L 0 zwei Sprachen deterministischen Turingmaschine akzeptiert werden, deren Speicherplatzbedarf (Anzahl der benötigten Bandquadrate) durch ein Polynom in der Länge des Inputs beschränkt ist. • L heißt polynomiell reduzierbar auf L 0 , falls gilt: • L ist reduzierbar auf L 0 mittels einer Funktion f • d.h. x ∈ L ⇔ f (x ) ∈ L0 • f ist mit polynomiellem Platzbedarf berechenbar • NPSPACE analog für nichtdeterministischen Turingmaschinen, aber... • Im Gegensatz zu Laufzeitbetrachtungen gilt bezüglich des Platzbedarfs • Notation: L p L • L heißt PSPACE -schwer, falls für alle L 0 ∈ PSPACE gilt: L 0 p L. • L heißt PSPACE -vollständig, falls L PSPACE -schwer ist und (Satz von Savitch): NPSPACE = PSPACE • Es gilt: P ⊆ NP ⊆ PSPACE • PSPACE -vollständige Probleme sind (vermutlich) schwieriger zu lösen L ∈ PSPACE . als NP -vollständige Probleme! 23 / 1 2 k-CTP ist PSPACE-vollständig Satz Das k -CTP ist PSPACE -vollständig. k-CTP Beweis • Zugehörigkeit zu PSPACE • Polynomielle Reduktion von einem PSPACE -vollständigen Problem auf das k -CTP 25 / 1 k-CTP ist PSPACE-vollständig 2 k-CTP ist PSPACE-vollständig Lemma Das k -CTP Edges Problem ist in PSPACE . Polynomielle Reduktion von Beweis • Doppel-Wert-Graph (DWG) • Wir betrachten einen Graphen G(V , E ) und 2 (s,t)-Wege π1 und π2 • π1 sei der kürzeste Weg in G, in dem die k “ungünstigsten“ Kanten • Gegeben: Graph G = (V , E ), Startknoten s, Zieknoten t 2 Gewichte für alle Kanten e = (u, v ) w1 und w2 . Welches Gewicht e besitzt kann erst in u bzw. v entschieden werden. • Gesucht: Ein Weg πs,t , dessen Länge höchsten um einen beliebigen aber festen Faktor r länger ist, als der kürzeste Weg. entfernt wurden (Eigenes Problem k-Vital-Edges). • π2 ist der Weg, der von einem optimalen Algorithmus bei Anwendung der ausgegebenen Reisestrategie auf G wie oben berechnet wurde. • Für diese Wege kann mittels polynomiellem Speicherplatz überprüft werden, ob kπ1 k = kπ2 k . 2 27 / 1 2 k-CTP ist PSPACE-vollständig k-CTP ist PSPACE-vollständig Anmerkungen • DWG Beweis (Denkansatz) • DWG-Problem ist ursprünglich auf gerichteten Graphen 0 definiert ! 0 • Verdopple jede Kante aus E zu e, e : E • Weise jeweils e Gewicht w1 und e 0 Gewicht w2 zu. 0 • G 0 muss noch so erweitert werden, dass ein “Rückschritt“ über eine gewichtete Kante nicht möglich ist. 0 • Nehme G = (V , E ), s, t als Input für das CTP. • CTP vs. k − CTP • Blockade von e bedeutet e hatte in G Gewicht w2 • Blockade von e 0 bedeutet e hatte in G Gewicht w1 • • • • • Damit: Es gibt einen Weg πs,t , dessen Länge höchsten um einen beliebigen aber festen Faktor r länger ist, als der kürzeste (s, t )-Weg durch G für das DWG-Problem, genau dann, wenn dieser auf G 0 von einer optimalen Reisestrategie für das CTP gefunden wird. CTP erlaubt beliebig viele Blockaden In G 0 können bei CTP alle Kanten blockiert sein Damit können alle Kanten w1 oder w2 annehmen. Sind die Blockaden auf k beschränkt gilt dies nicht mehr! • Die korrekte Konstruktion von G 0 aus G wird damit kompliziert. • Statt dessen wird direkt ein Standard-PSPACE -Problem auf k − CTP reduziert: Quantified Boolean Formula (QBF ): Ist eine boolsche Formel, die Quantoren (∀, ∃) enthält durch eine Variablenbelegung erfüllbar ? 29 / 1 3