Vorlesung Elmar Langetepe WS1617

Werbung
Offline Bewegungsplanung: Innerhalb von
Polygonen
Elmar Langetepe
University of Bonn
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
1
Shortest Path in einfachen Polygonen
•
•
•
•
•
Einfaches Polygon P , DS: Seq. Knoten/Kanten, CCW-order
Start A und Ziel B
Berechne kürzesten Weg von A nach B innerhalb P
Polygonale Kette mit Knoten aus P /Länge des Pfades
Algorithmus: Ω(n), |P | = n
B
A
p[0]
p[1]
Length: 42
p[2]
p[3]
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
2
Def. 1.10 Triangulation einfaches Polygon P
Diagonale
• Segment mit Knoten aus P
• Verläuft innerhalb P
• Schneidet den Rand von P nicht
Triangulation von P
• Graph: Kanten und Knoten von P
• Plus: maximale Menge sich nicht-schneidener Diagonalen
• Komplexität und Berechnung
• Datenstruktur DCEL
• DFS walk-through/navigation
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
3
Doubly connected edge list (DCEL)
• Planarer Graph
• für jede Kante
• Name/Link für Flächen,
Knoten
• nächste Kante in
CW/CCW Order
von Knoten v/w
• Navigation
Offline Bewegungsplanung
e(v)cw
e(v)ccw
v
F1
e(w)ccw
c Elmar Langetepe
31.10.16 Kürzeste Wege E
w
F2
e(w)cw
WS ’1617
4
Dualer Graph eines Planaren Graphen
Dualer Graph D(G) eines Planaren Graphen G
•
•
•
•
•
ein Knoten für jede Fäche
eine Kante zwischen angrenzenden Fächen einer Kante
nicht-schneidend
D(D(G)) = G
Realisation
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
5
Einfache, effiziente Lösung (Lee/Preparata)
• Triangulation von P : Graph T , DS: DCEL, Adjacency list
• Dualer Graph: D(T ) (Tree), Depth First Search (DFS) on D(T )
• Subpolygon P 0, Kette von Dreiecken/Diagonalen
A
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege B
WS ’1617
6
Shortest Path in P 0
• Kette von of Dreiecken/Diagonalen (Data structure)
• Induktiv: Shortest paths zu den Endpunkten der Diagonalen
• Ind. Anf, Ind. Schritt, Letzte Diagonale⇒ Ergebnis, Laufzeit?
l1
A
B
d16
d1
r1
l11
10
d11
r11
d10
r10
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
7
Zusammenfassung: Alg. 1.4
•
•
•
•
•
•
Triangulation von P : O(n) Zeit und Platz
Dualer Graph der Triangulation: O(n) Zeit und Platz
DFS auf Dualen Graphen: O(n) Zeit
Berechne P 0: O(n) Zeit und Platz
Berechne Shortest Path zu End-Diagonale, induktiv: O(n)??
Shortest Path von A nach B innerhalb P in O(n) Zeit und Platz!
optimal!!
• Theorem 1.11
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
8
Verbleibt: Indukiver Schritt!
• Trichter Situation! DS: Zwei Ketten/Shortest Path!
• Nächste Diagonale! Tangententest! Nächster
Trichter!
di+1
l[1]
• Insgesamt, nicht mehr O(n) Tests!!
l[2]
r[1]
vr
A
l[3]
l[4]
s
s
l[5]
di
r[4]
r[3]
Rand von P
r[2]
r[1]
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
9
Zusammenfassung: Lee/Preparata: Shortest Path
innerhalb P
•
•
•
•
•
•
•
•
Triangulation von P : O(n) Zeit und Platz
Dualer Graph der Triangulation: O(n) Zeit und Platz
DFS im Dualen Graphen: O(n) Zeit
Berechnung P 0: O(n) Zeit und Platz
Berechnung Shortest Path für End-Diagonale, induktiv: O(n)
Shortest Path von A nach B in P in O(n) Zeit und Platz
Optimal für einzelne Anfrage!!
Theorem 1.11
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
10
Mehrere Shortest Path Anfragen
• Viele Anfragen im Laufe der Zeit
• Häufig über gleiche Teil-Sequenz von Dreiecken
• Berechnungen ausnutzen
A
B
C
D
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
11
Mehrere Shortest Path Anfragen
•
•
•
•
•
Preprocessing: Für Kürzeste-Wege-Anfragen vorbereiten
Struktur des Polygons in DS ablegen
Komplexität in O(n), Aufbau in O(n)
Anfrage in O(log n) bzw. O(log n + k)
Animation
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
12
Preprocessing für P ! (Guibas/Hershberger)
Cutting theorem (Theorem 1.12) von Chazelle ’82: In jeder
Triangulation T existiert immer eine Diagonale für eine balancierte
Einteilung von T !
n
Mehr als − 1 Dreiecke auf jeder Seite
3
1.1
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
13
Baum Tb der bal. hierarch. Triangulation
A
B
4.2
4.1
2.1
T
P
3.2
3.1
4.3
4.2
Q
4.4
P
O
T
I
2.2
3.4
3.3
4.6
4.5
N
5.4
5.5
M
6.1
F
E
Offline Bewegungsplanung
3.4
5.7
2.2 D
3.2
L 6.1
E
O
5.4 4.5
4.4
F 5.5 G
3.3
N M
1.1
5.6 H
J 4.6
1.1
2.1
Q4.3
3.1
4.1
4.7
C
I
G
4.7
5.6
H
5.7
B
J
A
D
C
L
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
14
b von P
Bal.
hierarch.
Triangulation
T
T
1.1
2.1
Q4.3
2.1
P
L 6.1 2.2 D
3.2
E
O
5.4
4.5 F 5.5 G
4.4
3.3
M
N
H
5.6
1.1
J
4.6 I
2.2
3.2
4.3
Q
3.3
4.6
P
T
I
5.6
Kürzester Weg zwischen Dreiecken in T (O(n)) oder Tb (O(log n))
T: P
(3.2) (4.4) (1.1) (5.4) (6.1) (4.5) (5.5) (3.3) (4.6) I
Tb: P (4.3) (3.2) (2.1) (1.1)
(2.2)
(3.3) (4.6) I
I) Finde richtige Sub-Sequenz in Tb: P, (3.2), (1.1), (3, 3), (4, 6), I
II) Fülle die Löcher : (3.2) ⇒ (1.1) und (1.1) ⇒ (3, 3)
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
15
b aus Abalancierten Baum Tb
Schichtengraph G
B
4.2
4.1
2.1
G
P
3.1
3.2
4.3
4.2
Q
4.4
P
O
T
I
2.2
3.3
3.4
4.6
4.5
N
5.4
5.5
M
6.1
F
E
Offline Bewegungsplanung
3.4
5.7
2.2 D
3.2
L 6.1
E
O
5.4 4.5
4.4
F 5.5 G
3.3
M
1.1
H
5.6
N
J 4.6
1.1
2.1
Q4.3
3.1
4.1
4.7
C
I
G
4.7
5.6
H
5.7
B
J
A
D
C
L
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
16
b aus bal. Baum Tb
Schichtengraph G
T
1.1
2.1
4.3
2.1
P
3.2
2.2
3.2
2.2
3.3
4.3
3.3
1.1
4.6
Q
4.6
P
I
G
I
5.6
b löst Problem I): Teil-Sequenz der Diagonalen: O(log n)
G
b
Füllen der Löcher: Z.B.. zwischen (3.3) und (1.1) Kanten in G!
Preprocessing: Kanten führen zu Sanduhr von Diagonalen
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
17
Sanduhren zwischen Diagonalen in P
b
• Kante in G
• Shortest Path zwischen Endpunkte der Diagonalen: DS
l[1]
l[2]
1.1
3.3
1.1
r[2]
1.1
3.3
G
Offline Bewegungsplanung
c Elmar Langetepe
31.10.16 Kürzeste Wege l[3]
r[1]
r[3]
3.3
Sanduhr
WS ’1617
18
DS Sanduhr im Allgemeinen
• Offene Sanduhr zwischen Diagonalen, DS
• Geschlossene Sanduhr zwischen Diagonalen, DS
• Konkatenation von mehreren Sanduhren, finale Sanduhr
l[1]
l[5]
l[1]
l[2]
l[2]
l[4]
l[3]
3.3
1.1
r[3]
r[2]
l[3]
s[2]
r[4]
r[2]
r[5]
Offene Sanduhr
l[4]
s[1]
3.3
6.2
s[3]
r[1]
r[6]
r[1]
Geschlossene Sanduhr r[3]
r[4]
1.1
6.2
3.3
Kombiniere Sanduhren
Offline Bewegungsplanung
Neue Sanduhr!
c Elmar Langetepe
31.10.16 Kürzeste Wege WS ’1617
19
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
31.10.16 Kürzeste Wege WS ’1617
20
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
31.10.16 Kürzeste Wege G
I
5.6
WS ’1617
21
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
31.10.16 Kürzeste Wege WS ’1617
22
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
31.10.16 Kürzeste Wege WS ’1617
23
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
13 / 10
8 / 13
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
31.10.16 Kürzeste Wege 17 / 15
WS ’1617
24
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
31.10.16 Kürzeste Wege WS ’1617
25
Herunterladen