Wiederholung Deterministisches Recoverable k

Werbung
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
Herunterladen