(Programmierpraktikum - Das Canadian Traveller Problem)

Werbung
Übersicht
Programmierpraktikum
• Online Algorithmen
• Definition
• Güte
• Online Kürzeste Wege Probleme
• (Recoverable) Canadian Traveller Problem (CTP)
• Stochastisches Recoverable CTP
• Deterministisches Recoverable k-CTP
Das Canadian Traveller Problem
Rainer Schrader
Birgit Engels
Anna Schulze
Zentrum für Angewandte Informatik Köln
28. April 2006
1 / 32
2
Online Algorithmen
• Was sind Online Algorithmen ?
• Eigenschaften
• Unvollständige (Vorab-)Information
• Sequentielle Anfragen
• Abarbeitung der aktuellen Anfragen
ohne Information über zukünftige Anfragen
• Beispiele
• Paging (Caching)1
• Bin-Packing (Rucksack oder Knappsack-Problem)2
• Kürzeste Wege2
Online Algorithmen
1
2
3 / 32
Generisches Online-Problem
Online-Varianten von Offline-Problemen
4
Paging
Bin-Packing
• Vorabinformation :
• Cache-Größe
• Cache-Zustand
• Sequentielle Anfragen :
• benutzerabhängige Seitenaufrufe
• Abarbeitung : Verdrängungsstrategien
• First in Last Out
• Least Recently Used
• ...
• Vorabinformation :
• Größe der Bins (Eimer)
• Tragfähigkeit der Bins
• Sequentielle Anfragen :
• Ankunft neuer Pakete
• Abarbeitung : Verteilungsstrategien
• First Fit
• Best Fit
• ...
5 / 32
Spezielle Online Kürzeste Wege
Probleme
6
Online Algorithmen — Definitionen
• Vorabinformation : Graph (Karte)
• Sequentielle Anfragen : Start-/ Ziel-Änderung, Blockaden
• Gegeben:
• Inputmenge I (Menge aller möglichen Anfrage)
• Outputmenge O (Menge aller möglichen Antworten)
• Kostenfunktion c : I n xO n+1 → R
• Eine Anfragesequenz Σ = σ1 , ..., σn ∈ I n besteht aus n
(Staus, Umleitungen)
Elementen der Input- oder Anfragemenge. Dabei kann n
zeitlich interpretiert werden, d.h. zum Zeitpunkt t n gilt:
• Anfrage σi , i < n ist beantwortet.
• Anfrage σn soll beantwortet werden.
• Anfrage σj , j > n ist unbekannt !
• Das Kürzeste Wege Problem mit unvollständiger
• Allgemein können Anfragen auch als eintreffende
Information über Blockaden etc. wird als Canadian
Traveller Problem (CTP) bezeichnet. Wir betrachten später
2 Varianten des allgemeinen CTP:
Informationen betrachtet werden ( Anfrage = neue
Information 6= neue Aufgabenstellung ).
• stochastisches recoverable CTP
• determistisches recoverable k-CTP
7 / 32
8
Online Algorithmen — Definitionen
Online versus Offline Problem
• Ein Online Problem P (I, O, c) ist ein Optimierungsproblem,
• Zu jedem Online Problem P (I, O, c) gibt es ein
d.h. zu einer Anfragesequenz Σ ∈ I n wird eine bezüglich c
möglichst kostengünstige Antwortsequenz Ω (analog zur
Anfragesequenz) aus O n+1 gesucht, wobei die Antwort
on ∈ O nur die zum Zeitpunkt tn bekannten Informationen
berücksichtigen darf.
entsprechendes Offline Problem P 0 (I, O, c) (Orakel, das
die vollständige Anfragesequenz im voraus kennt)
• Ein Offline (Optimierungs-)Problem hat (fast) immer eine
optimale Lösung (auch falls diese nicht effizient zu
berechnen ist).
• Ein Online Algorithmus ist eine Funktion A : I ∗ → O, die
• Ein Online Algorithmus A zur Lösung von P (I, O, c) liefert
jeder Anfrage bzw. Anfragesequenz Σ ∈ I n auf der Basis
bekannter Informationen eine Antwort bzw.
Antwortsequenz Ω aus O n+1 zuordnet. Die Kostenfunktion
c ordnet dem Paar (Σ, Ω) Kosten zu, die die Güte der
Lösung für das Online Problem P (I, O, c) bestimmen.
meist nicht die optimale Lösung für P 0 (I, O, c).
• Wie ist die Güte von A (Güte der Lösung, die A für
P (I, O, c) liefert) zu bestimmen ?
• Achtung ! Effizienz (Laufzeit) 6= Güte (Kosten bzgl. c)
9 / 32
Online Algorithmen — Gütekriterium
10
Online Algorithmen —
Kompetitivität (1)
• Wie bestimmt man die Güte eines Online Algorithmus A
zur Lösung von P (I, O, c)?
• Worst Case :
• Güte von A hängt von der ungünstigsten Anfragesequenz
Σwc ab, die die höchsten Kosten maxΣ∈I n {c(Σ, A(Σ)}
verursacht.
• Selbst die optimale Antwortsequenz für Σwc kann teuer sein.
⇒ Unfair !
• Best Case :
• Güte von A hängt von der günstigsten Anfragesequenz Σbc
ab, die die geringsten Kosten verursacht. ⇒ Unrealistisch !
• Avarage Case :
• Güte von A hängt von den Kosten der durchschnittlichen
Anfragesequenz Σac ab.
• Bestimmung von Σac ? Zufall ? Statistik ?
• Neues Gütemaß für Online Algorithmen : Kompetitivität.
• ( [engl.] to compete = wettstreiten )
• Ziel: Vergleiche die Kosten der Lösung A(Σ) mit den
Kosten der optimalen Lösung OPT (Σ) :
c(Σ, A(Σ))
c(Σ, OPT (Σ))
• Meist nimm man an : OPT (P ) = OPT (P 0 ), die optimale
Lösung entspricht der offline Lösung
11 / 32
12
Online Algorithmen —
Kompetitivität (2)
Online Algorithmen —
Kompetitivitätsfaktor
• Problem: Die Lösungen welcher Anfragesequenzen
• Ein Online Algorithmus A ist k-kompetitiv, wenn gilt:
werden verglichen ?
• Möglich (wieder):
∀Σ ∈ I n c(Σ, A(Σ)) ≤ k ∗ c(Σ, OPT (Σ)) + a
• Worst Case Ratio
• Best Case Ratio
• Avarage Case Ratio
• Vereinfacht erhalten wir mit
• Meist (und hier!) : Worst Case Ratio
maxΣ∈I n {
k = maxΣ∈I n {
c(Σ, A(Σ))
}
c(Σ, OPT (Σ))
c(Σ, A(Σ))
}
c(Σ, OPT (Σ))
den Kompetitivitätsfaktor des Algorithmus A.
13 / 32
14
Online Algorithmen — Böse
Gegenspieler
Online Kürzeste Wege Probleme
am Beispiel des
Canadian Traveller Problem (CTP)
• Bestimmung des Kompetitivitätsfaktors von A
⇒ Verwandlung in Bösen Gegenspieler
• Nutze Online Eigenschaft von A
• Präsentiere immer ungünstigste neue Information/Anfrage
• Beispiel Paging
• A verdrängte als letztes Page p aus dem Cache
• Präsentiere p als nächste Anfrage
• usw.
15 / 32
16
Canadian Traveller Problem (CTP)
Canadian Traveller Problem (CTP)
• Algorithmus A 0 für Offline Problem (simpel)
• Streiche blockierte Kanten aus E ⇒ Graph G 0 (V , E 0 )
• Benutze Dijkstra um πs,t auf G’ zu finden
• Algorithmus A für Online Problem :
• Tatsächliche Blockaden sind sowieso unbekannt.
• Berechne kürzesten Weg πs,t mit Dijkstra wie vorher ?
• Böser Gegenspieler blockiert Kanten auf π s,t , so dass z.B.
• Gegeben:
• Graph G(V , E )
• Gewichts-/Kostenfunktion w : E → <
• Kantenblockaden
• Start-/Zielknoten s, t
...
• ...maximaler Umweg nötig
• ...kein Weg von s nach t mehr existiert
• Lösung kann beliebig schlecht werden :-(
• Gesucht: Kürzester (bezgl. w günstigster) Weg
πs,t von s nach t
17 / 32
18
Canadian Traveller Problem (CTP)
Recoverable CTP
• Problemstellung wie CTP
• Kanten verschwinden durch Blockaden nicht völlig
• Online Algorithmus A für CTP kann nicht günstig
• Nach Wartezeit ist die Blockade der Kante behoben
• Formal :
• Jede Kante e ∈ E besitzt eine recover time tr (e), so dass
gilt : tr (e) ≤ w (e 0 ), für alle Kantenpaare (e, e 0 ) → Bereist
man eine Kante, so sind alle zuvor festgestellten Blockaden
behoben, es sei denn, sie wurden erneut blockiert.
• Jeder Knoten v ∈ V besitzt eine recover time tr (v ), so dass
gilt : tr (v ) ≥ tr (e 0 ), für alle adjazenten Kanten → Wartet
man an einem Knoten tr (v ), so sind anschliessend alle
Kanten wieder frei, es sei denn, sie wurden erneut blockiert.
(kompetitiv) sein.
• Aber: Böser Gegenspieler hat unrealistische Freiheiten :
• Kanten (Strassen !) verschwinden einfach völlig
• Wahllose Blockaden
• Beliebig viele Blockaden
• Einschränkung der Freiheiten ⇒ 2 Problemvarianten :
• Grundlegend : Recoverable (Behebbares) CTP
• Stochastisches Recoverable CTP
• Deterministisches Recoverable k-CTP
• Hier werden die Kantengewichte als Reisezeit betrachtet
und nicht als Entfernung. Damit addiert sich eine Wartezeit
an einem Knoten einfach zu den Kosten des Weges.
19 / 32
20
Stochastisches behebbares CTP —
Motivation
Stochastisches behebbares CTP —
Problem
• Problemstellung wie behebbares CTP
• Kanten verschwinden nicht wahllos
• Jede Kante wird mit gewisser Wahrscheinlichkeit blockiert
• Formal: Jeder Kante e ∈ E wird durch die Funktion
• Zusätzliche Information : Stauprognosen für bestimmte
pb : E → <
Strassen
•
•
•
•
08:00 Uhr : A1 - Stauwahrscheinlichkeit 0,9
10:00 Uhr : A1 - Stauwahrscheinlichkeit 0,3
17:00 Uhr : A1 - Stauwahrscheinlichkeit 0,9
23:00 Uhr : A1 - Stauwahrscheinlichkeit 0,1
• Nicht nur Weglänge/-zeit kπs,t k =
eine Blockadewahrscheinlichkeit p b (e) zugewiesen.
• Lösungsidee: Dijkstra-ähnlicher Algorithmus mit neuer
Kostenfunktion und mehreren alternativen Kanten an
jedem Knoten x .
P
e ∈ pis,t w (e)
minimieren, sondern auch Blockadewahrscheinlichkeit
entlang des Weges berücksichtigen !
• Neue Kostenfunktion Erwartete Reisezeit E (x , t ) von
Knoten x nach Zielknoten t
21 / 32
22
srCTP-Algo Idee (1)
Prioritätslisten
• Sortiere die k adjazenten Knoten yi von x aufsteigend nach
• Online Betrachtung:
• Reisender erreicht Knoten x
• Welche Kante soll nun bereist werden ?
w (x , yi ) + E (yi , t )
• Bestimme erwartete Reisezeit:
Qi
• Sei pi = pb (x , yi ), qi = 1 − pi , P0 = 1, Pi = j =1 pj
• Verwalte sortierte Liste von günstigen alternativen Kanten
•
(Prioritätsliste)
• Versuche günstigste (erste) Kante zu bereisen
αi =
X
Pj −1 qj ((w (x , xj ) + E (xj ))
j =1
• Kante ist frei → Reisender erreicht nächsten Knoten
• Kante ist blockiert → Versuche nächste günstige Kante zu
• Finde Kantenindex h, so dass erwartete Reisezeit:
bereisen
Eh (x , t ) =
• Falls keine günstigen Kanten mehr vorhanden, warte t r (x )
und beginne wieder mit der günstigsten Kante.
αh + Ph w (x , xh )
1 − Ph
minimal ist , d.h. bestimme, wie viele Kanten aus der
sortierten Liste adjazenter Knoten als günstige Alternativen
in einer sogenannten Prioritätsliste PL(x ) verwaltet werden
sollen.
23 / 32
24
Erwartete Reisezeit ( Expected
Travel Time, ETT)
srCTP-Algo Idee(2)
• Analogie zu Dijkstra :
• Zu Beginn ist nur E (t , t ) = 0 bekannt.
• Alle anderen Knoten x haben initial E (x , t ) = ∞
• An Knoten x kann sich E (x , t ) ändern, sobald eine
adjazente Kante e betrachtet wird
• Änderung der (vorläufigen) Prioritätsliste PL(x ):
• Füge e in PL(x ) sortiert ein
• Berechne neue erwartete Reisezeit E 0 (x , t )
• Falls E 0 (x , t ) < E (x , t ) setze E (x , t ) = E 0 (x , t ) Hierbei
werden u.U. mehr oder weniger alternative Kanten in PL(x )
berücksichtigt !
• Berechnung der neuen erwarteten Reisezeit E 0 (x )
• Bestimme neuen Kantenindex h’, der die minimale
erwartete Reisezeit für die neue Prioritätsliste ergibt.
• Formel-Erläuterungen
• pi = pb (x , yi ) : Blockadewahrscheinlichkeit der zu Knoten
x adjazenten Kante (x , yi )
• qi = 1 − pi : Wahrscheinlichkeit, dass Kante (x , yi ) nicht
blockiert ist
• P0 = 1, Pi =
Qi
: Wahrscheinlichkeit, dass alle zu x
adjazenten Kanten in sortierter Reihenfolge (x , y 1 ) bis
(x , yi ) blockiert sind
P
• αi = j =1 Pj −1 qj ((w (x , xj ) + E (xj , t )) : αi entspricht einer
Bewertung der entstehenden Kosten bei Auswahl der
nächsten Kante unter Berücksichtigung der
Blockadewahrscheinlichkeit für diese Kante und aller
Kanten, die zuvor an x blockiert vorgefunden wurden.
j =1 pj
25 / 32
26
srCTP-Algorithmus nach Bar-Noy
und Schieber
srCTP-Algorithmus - Tipp
(1) setze
(2)
(3)
(4)
(5)
(6)
E (t , t ) := 0
PL(v ) := newPrior (s, v )
E (v , t ) := newETT (s, v ) für (s, v ) ∈ E
E (v , t ) := +∞ für (s, v ) ∈
/E
PL(v ) := ∅
M = {s}
bestimme u ∈
/ M mit E (u, t ) = min{E (v , t ) : v ∈
/ M}
setze M = M ∪ {u}
für alle v ∈ V mit (u, v ) ∈ E
falls E (v , t ) > newETT(u, v ) setze
E (v , t ) = newETT(u, v )
PL(v ) := newPrior (u, v )
falls M 6= V , gehe zu (2)
• Wann sollte ein Reisender lieber an Knoten v t r (v )
abwarten ?
• Die Option Abwarten muss in die Prioritätsliste PL(v )
eingehen.
• Einfache Lösung:
Vor Beginn des Algorithmus an jedem Knoten eine
„Schleife“ einbauen, d.h.
• eine Kante e = (v , v ), v ∈ V mit
• t (e) = tr (v ) zu G hinzufügen.
27 / 32
28
Herunterladen