Vorlesung 03.05 ohne Animation zum Ausdrucken

Werbung
Eingeschränkte Graphexploration
Elmar Langetepe
University of Bonn
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
1
Wiederholung!
•
•
•
•
•
Modell der 2D-Zellen, Spanning-Tree online aufbauen
SpiralSTC/ScanSTC: Umwege entlang der Spanning-Tree Kanten
SpiralSTC mit Subzellen-Modell äquivalent
Algorithmische Beschreibungen, rekursiv definiert
Analyse der Strategien: Lokale Analyse
Vaterzelle
s
W
2D
R
aktuelle Zelle
Online Bewegungsplanung
D
c Elmar Langetepe
Kapitel 1 02.05.2010 Belegt aber begehbare 2D Zellen
SS ’10
2
Wiederholung! Lokale Analyse
•
•
•
•
Randzellen zählen
Lokale Analyse, mehrfache Zellenbesuche, Zelle ankreiden
Zellübergreifend (Verursacher!), zellintern
Systematisch: Randzellen mit übergreifend plus intern
3
5
2
4
1
Online Bewegungsplanung
Zelle Übergr. Intern Gesamt Randzellen
1
0
1
1
2
2
1
2
3
3
3
1
2
3
3
4
1
1
2
2
5
1
2
3
3
s
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
3
Graphenexploration!
•
•
•
•
Graph G: Alle Kanten und Knoten
DFS 2 kompetitiv, optimal
Suchen ⇒ Nicht in die Tiefe
Eingeschränkte Exploration, Leine/Akku (praxisrelevant)
T
Online Bewegungsplanung
S
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
4
Eingeschränkte Online Graphenexploration
• Graph G: Tiefe 1, längster kürzester Weg zum Start
• DFS keine gute Idee, Rückweg unbekannt, Seillänge K
• BFS keine gute Idee, Ω(K 2), K Anzahl Kanten
S
S
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
5
Modelle: Eingeschränkte Graphenexploration
1. Roboter an einer Leine der Länge l = (1 + α)r (ein Stromkabel).
2. Roboter muss nach 2(1 + α)r Schritten zum Startpunkt
zurückkehren (Akku nachzuladen).
3. Großer Graph nur bis zur Tiefe d erkunden. Später mit
fortschreitender Tiefe.
•
•
•
•
Alle Knoten mit r Schritten erreichbar, Tiefe r (Radius)
Alle Kanten haben Länge 1 (Erweitern: Ü-Aufgabe)
Kleine Vorausschau α ist nötig
Hier: Erste Variante, andere Ableiten (Lemma/Ü-Aufgabe)
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
6
Modelle: Eingeschränkte Graphenexploration
Lemma 1.23 Die Akku-Variante mit Tankgröße 2(1 + β)r kann auf
die Stromkabel-Variante mit Kabellänge l = (1 + α)r reduziert
1+β
werden, für alle β > α. Die Kosten wachsen mit Faktor β−α
.
Beweis: Tafel!!
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
7
Offline Algorithmus: Akku-Variante
•
•
•
•
•
•
•
Offline: Graph ist bekannt
Annahme: 2 Rundtripps möglich, 4r Akku
Unbekannt, ob das NP-hard ist! Approximation O(|E|)!
Algorithmus: Gedanklich DFS, 2|E| Schritte
Unterteilen in Teilpfade der Länge 2r
Startsegmente davon in Abstand r
Besuchen, Teilpfad abarbeiten, zurück! Beispiel!
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
8
Beispiel Offline!
l
2|E|
2r
m
× 2r + 2|E| ≤ 6|E| Beispiel: r = 5
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
9
Offline Algorithmus: Akku-Variante
Lemma 1.24: Einfacher Akku-Offline Algorithmus besucht nur 6|E|
Kanten.
• Jeden Teilpfad mit Laufzeit 2r erreichen
• Exploration
aller Teilpfade: 2|E|
m
l
Teilpfade
• 2|E|
2r
l m
• Erreichen in |E|
2r
r
l m
|E|
• |E|
2r
≤
r
r + 1 2r ≤ 2|E| + 2r
• 4|E| + 2r ≤ 6|E|
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
10
Online: Eingeschränkte Graphenexploration
• Hier: Erste Variante (Stromkabel), andere Ableiten
(Lemma/Ü-Aufgabe)
• Erste Idee: Sobald Leine ausgereizt: Backtracking
• bDFS, bounded DFS
• Gute Idee, reicht aber nicht ganz!
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
11
Bounded DFS 1.11
bDFS( v, l ):
if (l = 0) ∨ (keine unexplorierte Kante ex.) then
RETURN
end if
for all unexplorierte Kante (v, w) ∈ E do
Gehe von v zu w über (v, w).
Markiere (v, w) als exploriert
bDFS(v, l − 1).
Gehe von w zu v über (v, w).
end for
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
12
Bounded DFS
•
•
•
•
Beispiel, Einheitskanten, Länge 1
Problem: Nicht alle Knoten werden erreicht.
v bereits markiert, Ende
bDFS alleine reicht nicht, mehrmals
v
s
Online Bewegungsplanung
1
2
3
...
l
c Elmar Langetepe
Kapitel 1 02.05.2010 l−1
...
SS ’10
13
CFS Algorithmus: Knotenbeschriftung
unexploriert sind Knoten, die noch nie besucht wurden.
unvollständig sind Knoten, die besucht wurden, aber nur teilweise
exploriert wurden, der Knoten hat noch inzidente, unexplorierte
Kanten.
exploriert sind Knoten, bei denen alle inzidenten Kanten exploriert
wurden. Der Knoten ist vollständig bearbeitet.
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
14
CFS Algorithmus 1.12
•
•
•
•
•
bDFS an verschiedenen Stellen aufrufen
Menge disjkt. Teil-Bäume T = { T1, T2, . . . , Tk }
Wurzeln s1, s2, . . . , sk
Wähle Ti mit si am nächsten zu s, gehe zu si
Pruning v. Ti: Bilde Twj mit Wurzel wj falls:
1. dTi (si, wj ) ≥ minDist = αr
4
2. Depth(Twj ) ≥ minDepth =
αr
2
• Alle Twj zu T hinzufügen! Ti entfernen aus T
• Ti ohne Twj ab si mit DFS explorieren
• Dabei bDFS an Knoten mit unexplorierten Nachbarn
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
15
•
•
•
•
•
•
•
Graph G0 von neu entdeckten Knoten und Kanten
Spannbaum T 0 von G erstellen
Mit Wurzel s0 mit minimalem Abstand zu s
Alle diese Bäume zu T dazu
Sonderfall: Inzischen mitexplorierte Bäume in T entfernen
Bäume in T mit gemeinsamen Knoten verschmelzen
Verschmelzen: Spannbaum mit neuer Wurzel
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
16
CFS Algorithmus 1.12
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
17
V. Spanning Tree, neuer Tree!
VI. Fertig! Entfernen!
T0
T1
III. DFS in Rest T2! entfernen!
IV. bDFS starten
II. Pruning: (2,4), neuer Tree
Tw
w
s1
T2
s2
I. Auswahl next!
s3
s
T3
{T1, T2, T3}
Online Bewegungsplanung
{Tw , T 0, T3}
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
18
CFS Algorithmus: Bestandteile!
CFS( s, r, α )
T := { { s } }.
repeat
Ti:= der zu s nächste Teilbaum in G∗.
si:= der zu s nächste Knoten in Ti.
αr
(Ti, Ti) := prune( Ti, si, αr
4 , 2 ).
T := T \ {Ti} ∪ Ti.
explore( T , Ti, si, (1 + α)r ).
Entferne alle explorierten Bäume aus T .
Verschmelze alle Bäume in T mit gemeinsamen Knoten.
until T = ∅
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
19
CFS Algorithmus: Pruning!
prune( T, v, minDist, minDepth )
v := Wurzel von T .
for all w ∈ T mit dT (v, w) = minDist do
Tw := der Subtree von T mit Wurzel w.
if maximale Distanz zwischen v und Knoten in Tw > minDepth then
// Schneide Tw von T ab:
T := T \ Tw .
Ti := Ti ∪ {Tw }.
end if
end for
RETURN (T, Ti)
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
20
CFS Algorithmus: Explore!
explore( T , T, si, l )
Gehe von s nach si über den kürzesten bekannten Weg.
Gehe mit DFS durch T . Falls dabei ein unvollständiger Knoten v angetroffen
wird:
l0 := verbleibende Seillänge.
bDFS( v, l0 ).
E 0 := Menge der neu explorierten Kanten.
V 0 := Menge der Knoten in E 0.
Berechne Spannbaum T 0 auf G0 = (V 0, E 0).
T := T ∪ {T }.
Gehe von si nach s zurück.
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
21
CFS Algorithmus: Beispiel!!
• G∗ = (V ∗, E ∗) Graph der besuchten Kanten und Knoten
(sukzessive)
• Menge T
• Pruning
• Explore
Online Bewegungsplanung
c Elmar Langetepe
Kapitel 1 02.05.2010 SS ’10
22
Herunterladen