Vorlesung Elmar Langetepe WS1011

Werbung
Offline Bewegungsplanung: Preprocessing
Elmar Langetepe
University of Bonn
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
1
b Lemma 1.13
Eigenschaften von G:
i) Pfad zwischen zwei Dreiecken entlang sukzessiver Diagonalen
existiert!
ii) Wir finden den Weg in O(log n) Zeit!
b hat nicht mehr als O(n) Kanten!
iii) G
T
1.1
2.1
Q4.3
2.1
P
3.2
4.4
6.1
5.4
1.1
Offline Bewegungsplanung
3.2
2.2
4.5
2.2
4.3
5.5
3.3
5.6 4.6
Q
3.3
4.6
P
I
c Elmar Langetepe
27.10.09 Kürzeste Wege G
I
5.6
WS ’1011
2
b existiert
i) Weg in G
• Weg im Dualen Graphen T ∗, Weg in Tb
• Abgleichen mit Tiefenrelation
b
• Benachbart in der Konstruktion (Kante in G)!
X
4.1
4.2
2.1
4.3
3.1
T*
Offline Bewegungsplanung
1.1
3.4
P
3.2
4.4 5.4
4.7
2.2
3.2
5.7
6.12.2
4.5
1.1
2.1
4.3
Q
5.5
3.3
4.6
P
G
I
5.6
3.3
5.6 4.6
I
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
3
b
ii) Finden des Weges in G!
• Gemeinsamer Vorgänger X minimaler Höhe in O(log n) in Tb
• Benutze leicht geänderten Dualen Baum von T
• Frage: Liegt Diagonale d auf dem Pfad von P nach I?
R
4.1
4.2
3.1
T
?
2.1
4.3
3.4
P
3.2
4.4 5.4
1.1
2.2
?
?
5.7
6.12.2
?
1.1
2.1
4.7
4.5
mit Wurzel R
X
3.2
4.3
Q
5.5
3.3
?
4.6
P
G
I
?
5.6
3.3
5.6 4.6
I
d Vorgänger entweder von delta(P) ODER delta(I) in Bezug auf R
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
4
Vorgängeranfrage in Baum
• Preorder/Postorder, DFS und Labelling
• a Vorgänger von b ⇔ pre(a) < pre(b) and post(a) > post(b)
(Übung!)
10 / 7
P11 / 8
7/5
6/2 P
5/3
9/9
8 / 13
13 / 10
2/6
3/4
4/1
R
d
1 / 22
12 / 12
I
15 / 21
I
20 / 20
22 / 19
14 / 11
d
16 / 17
18 / 14
21 / 18
Offline Bewegungsplanung
19 / 16
c Elmar Langetepe
27.10.09 Kürzeste Wege 17 / 15
WS ’1011
5
b
Eigenschaften von G
i) Pfad zwischen zwei Dreiecken existiert!
i) Länge ist in O(log n)!
ii) Wir finden den Pfad in O(log n)!
b hat O(n) Kanten !
iii) G
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
6
b
iii) Komplexität von G
• Untere Kanten von v aus: max
2 × height(v)
• Balance:
Teilbaum bei v hat
height
( v)
3
≥
Blätter (Tafel)
2
• Anzahl Knoten der Höhe h:
n
2h
≤ h = n
3
3
2
• Sum.
über alle Höhen:
log 3 n
!
h
2
X
2
(2h) ×
× n ∈ O(n)
3
v
v
h=1
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
7
b
Konstruktion G
• Cutting-Theorem (Übung): konstruktiv!!
• Durchlauf von T ∗
• Während des Aufbaus: Insgesamt O(n) viele Diagonalen
überschreiten
• Aufbau in O(n)
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
8
b aufbauen!
Exemplarisch: Sanduhren und G
3.4
2.1
3.1
3.2
2.2
T
3.3
1.1
L1
1.1
G
3.1
L3.1
L2.2 2.2
2.1 L2.1
Lneu1
Lneu2
L3.2
L3.3
3.2
3.3
L3.4
3.4
Durchlauf gemäß Cutting Theorem Durchlauf
P
P
Menge von Listen Li mit i |Li| ∈ O(n) in Zeit i |Li|
P
Aufbau Sanduhren in Zeit i |Li| ∈ O(n)
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
9
Zusammenfassung des Problems/Analyse
1.
2.
3.
4.
5.
6.
7.
Berechne Triangulation T und Dual T ∗: O(n)
b O(n)
Berechne hierarch. bal. Baum Tb, Sch.-Graph G:
b O(n)
Komplexität G:
b O(n)
Berechne alle Sanduhren von G:
b Sequenz v. Diagonalen: O(log n)
Navigation zw. Dreiecken in G:
Konkat. Sanduhren für finale Sanduhr: O(log n)
Berechne Shortest Path aus final. Sanduhr: O(log n + k)
Query: Start A ∈ P , Ziel B ∈ I: Löse 5), 6) und 7)!!
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
10
Berechne Shortest Path aus finaler Sanduhr
• Finale Sanduhr, Ziel und Start
• Data structure: Tangentenpunkte in logarithm. Zeit
• Länge in O(1), Pfad in O(k)
A
a
b
c
d
B
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
11
Datenstruktur Hourglass
• Ketten der Sanduhren in bal. Baum speichern
• Tangente in logarithm. Zeit berechnen
• Länge in O(1), Pfad in O(k)
a
P7
P8
P4
P3
f
b
P2
c P5
d
Offline Bewegungsplanung
d
g
P1
e
P6
c Elmar Langetepe
27.10.09 Kürzeste Wege a
P8
b
P4
P2
c
P5
P1
e
P3
f
P6
g
P7
WS ’1011
12
Komplexität aller Sanduhren in O(n)
•
•
•
•
•
b
Sanduhr zwischen Diagonalen di und dj in G
Anzahl Diagonalen: Komplexität des Baumes von dj
Balance: height(dj)2
Für alle diese Kanten!
Nur zweimal ist dj unterer Knoten! Einfügen und direkter
Vorgänger
log 3 n
!
h
2
X
2
• Sum. über alle Höhen:
2×
× n ×h2 ∈ O(n)
3
h=1
• Lemma 1.14
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
13
b + Sanduhren
Konstruktion G
•
•
•
•
Cutting-Theorem (Übung): konstruktiv!!
Durchlauf von T ∗
Während des Aufbaus: O(n) viele Diagonalen überschreiten
Dabei Sanduhren aufbauen
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
14
Sanduhrenlemma: Lemma 1.15
Sanduhr S(di, dj ) zwischen di und dj mit m(di, dj ) Diagonalen.
Datenstruktur mit folgender Eigenschaft existiert:
i) Entfernung zwischen Punkten in Di und Dj in O(log(m(di, dj ))
ii) Kürzeste Wege zwischen Punkten in Di und Dj in
O(log(m(di, dj )) + k)
iii) Konkatenation zweier Sanduhren S(di, dj ) und S(dj , dl) zu einer
Sanduhr in Zeit O(log(m(di, dj )) + log(m(dj , dl)))
Beweis: Skizze für iii)!!!
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
15
Algorithmus 1.6
• Preprocessing:
–
–
–
b + Rooted Tree
G
Sanduhren für Kanten
Lokalisation Dreiecke
• Query, p, q:
–
–
–
–
Lokalisation Dp und Dq
b
Pfad zw. Dp und Dq in G
Sanduhr S(dp, dq ) aus Sanduhren entlang des Pfades
Länge oder kürzester Weg
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
16
Guibas/Hershberger: Laufzeiten
•
•
•
•
•
•
•
•
b Rooted Tree, Sanduhren, Trapezzerlegung
Datenstrukturen: G,
Preprocessing Zeit: O(n)
Komplexität: O(n)
Lokalisation Dreiecke: O(log n)
b in O(log n)
Pfad in G
Konkatenation Sanduhren in O(log2 n) (O(log n))
Query: O(log n + k) oder O(log n) für die Länge
Theorem 1.16
Offline Bewegungsplanung
c Elmar Langetepe
27.10.09 Kürzeste Wege WS ’1011
17
Herunterladen