Zwei Wächter Problem

Werbung
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
WS 2004/2005
Von Jan Meyer
Problemstellung
Zwei Wächter laufen von einem gemeinsamen Startpunkt aus auf getrennten Routen zu
einem gemeinsamen Endpunkt. Die Routen bilden dabei zusammen ein einfaches n-eckiges
Polygon mit ausgezeichneten Start- und Zielknoten.
Können die beiden Wächter ihre Route abschreiten ohne sich zu irgendeinem Augenblick
aus den Augen zu verlieren?
Ziel
Wächter
Start
Abbildung 1: Abstrahierte Problemstellung
Christian Icking und Rolf Klein [1] haben gezeigt, dass sich dieses Problem mit linearen
Speicherverbrauch in O(n log n) Zeit entscheiden lässt. Mit dem von ihnen gezeigten
Seite 1 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Methode kann eine Bewegungsabfolge für beide Wächter minimaler Länge in O(n log n + k)
Zeit berechnet werden, wobei k der Anzahl der Bewegungskommandos entspricht.
Verwandte Problemstellungen
In der Literatur sind eine Reihe ähnlicher Problemstellungen zu finden. Das wahrscheinlich
bekannteste darunter ist das „minimum watchmen“ Problem, bei dem eine möglichst kleine
Anzahl von Wächtern in einem Polygon platzieren werden soll, so dass jede Stelle im
Polygon von mindestens einem Wächter eingesehen wird.
Ein klassisches Anwendungsbeispiel für diese Problemklasse ist das Platzieren von
Videokameras zur Raumüberwachung.
Bei dem „shortest watchmen route“ Problem versucht man einen möglichst kurzen Pfad für
einen Wächter im Polygon zu finden, so dass alle Punkte im Polygon von mindestens einem
Punkte des Pfades gesehen werden.
Ein Nachtwächter, der auf seiner Runde in alle Räume und Ecken einmal hineinsehen muss,
ist für diese Klasse ein gutes Beispiel.
Beide Problemklassen sind im Gegensatz zu dem hier behandelten Problem NP-hart.
Formale Definitionen
Gegeben sei ein einfaches Polygon P aus n Knoten. Zwei Knoten s,z ∈ P. Zwei geordnete
Pfade L, R von s nach z bilden das Polygon. Sei T die Vereinigung der inneren Fläche von P
und P selbst.
z
L
R
T
s
Abbildung 2: Formale Definition
Seite 2 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Sichtbarkeit
Ein Punkt x ∈ P ist sichtbar von Punkt y ∈ P, genau dann wenn das verbindende
Liniensegment xy vollständig in T enthalten ist.
Das Liniesegment xy wird auch Sichtbarkeitssegment genannt. Zwei Sichtbarkeitssegmente
p1q1 und p2q2 kreuzen sich, genau dann, wenn die Reihenfolge von p1 und p2 in L genau
andersherum ist wie die Reihenfolge von q1 und q2 in R.
z
L
R
s
Abbildung 3: Sichtbarkeitssegment
Walk
•
•
•
•
Ein „walk“ auf P ist ein Paar (l, r) von stetigen Funktionen, so dass:
o l: [0,1] → L,
r: [0,1] → R
o l(0) = r(0) = s,
l(1) = r(1) = z,
o l(t) ist sichtbar von r(t) für alle t ∈ [0,1].
o Alle Liniensegmente l(t) r(t) nennt man „walk Liniensegment“ eines „walk“.
Der Punkt l(t) ist „walk partner“ von r(t) und umgekehrt.
Ein „walk“ auf P wird „straight“ genannt, wenn beide Funktionen l und r monoton
steigend in Bezug auf die Orientierung von L und R sind.
P wird („straight“) „walkable“, wenn ein („straight“) „walk“ möglich ist.
Ein („straight“) „walk“ auf P von „walk Liniensegment“ p0q0 zu p1q1, mit p0 < p1, q0 <
q1 und p0q0 sowie p1q1 vollständig in T enthalten, muss folgende Bedingungen
erfüllen:
o l(0) = p0, r(0) = q0, l(1) = p1 und r(1) = q1
o l und r sind monoton steigend.
General walk
In der hier behandelten Problemstellung suchen wir einen „walk“, der bezüglich der von
beiden Wächtern zurückgelegten Strecke minimal ist. So lassen sich die Bewegungsabfolgen
in zwei Klassen einteilen.
•
Gleichläufiger Vorwärtsbewegung: Beide Wächter bewegen sich vorwärts auf L
bzw. R. Stillstand wird dabei als Vorwärtsbewegung gewertet. (Abbildung 4)
•
Gegenläufige Bewegung: Die Wächter bewegen sich in entgegengesetzter
Richtung. (Abbildung 5)
Seite 3 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
z
L
z
R
L
R
s
s
Abbildung 4: Gleichläufige Vorwärtsbewegung
Abbildung 5: Gegenläufige Bewegung
Das sich beide Wächter rückwärts bewegen ist zwar für einen „walk“ zulässig, wird aber
ausgeschlossen, wenn für die Wegstrecke das Minimum erreicht werden soll.
Wenn ein „walk“ gefunden wird, bei dem sich beide Wächter ausschließlich vorwärts
bewegen, erreicht dieser das Ziel in jedem Fall auf kürzestem Wege.
Reflexive Knoten
Als reflexive Knoten werden Knoten in P bezeichnet, deren innere Winkel einen Wert
größer 180° annehmen. (Abbildung 6)
Knoten, deren innere Winkel kleiner oder gleich 180° betragen, werden konvexe Knoten
genannt. (Abbildung 7)
z
L
z
R
L
R
β
α
s
s
Abbildung 6: Reflexiver Knoten ( α>180° )
Abbildung 7: Konvexer Knoten ( β<=180° )
Wenn ein Polygon nur aus konvexen Knoten besteht, dann können sich die Wächter von
jedem Punkt des Polygons aus sehen und sich damit ungehindert vorwärts zum Ziel bewegen.
Reflexive Knoten führen zu Sichtbarkeitssegmenten, die nicht komplett in T gebettet sind.
Shooting queries
Durch „shooting queries“ können die Aufenthaltsorte der Wächter unter Berücksichtigung
der reflexive Knoten eingegrenzt werden.
Sei pj ein reflexiver Knoten aus P, pj-1 sein Vorgänger und pj+1 sein Nachfolger unter
Berücksichtig der Orientierung des Pfad auf dem er sich befindet. Die Funktion ray(x,u)
berechnet für einen beliebigen Punkt von P und einem Richtungsvektor u den ersten
Seite 4 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
„hitpoint“ mit P. Forw(pj) liefert das Ergebnis von ray(pj,pj-1pj) und Backw(pj) das von
ray(pj,pj+1pj).
z
L
pj-1
z
R
Forw(pj)
L
pj+1
pj
R
pj
Backw(pj)
s
s
Abbildung 8: Forward Shoot
Abbildung 9: Backward Shoot
Forw(pj) definiert die obere Grenze von Positionen auf R, die Wächter 2 einnehmen darf,
damit sich Wächter 1 auf der eingehenden Kante zu pj bewegen kann. Backw(pj) definiert,
analog dazu, die untere Grenze auf R, so dass die ausgehende Kante von pj beschritten werden
kann.
Chazelle and Guibas haben eine Implementierung für ray(x,u) vorgestellt der nach einem
einmaligen Schritt für P für jeden Punkt x aus T und dem Richtungsvektor u diesen ersten
„hitpoint“ mit P berechnet. Sie haben gezeigt, dass die Vorbereitung O(n log n) Zeit benötigt,
während die einzelne Abfrage danach noch O(log n) Zeit braucht.
Suchstruktur
Mit den oben genannten Funktionen ist es nun möglich eine effiziente Suchstruktur für die
weitere Verarbeitung zu erstellen. Dazu werden 2 balancierte Baume erzeugt, jeweils einen
für L und R. Die Knoten des entsprechenden Pfades werden dazu nacheinander in den Baum
eingefügt. Für jeden reflexiven Knoten p, der dabei auftaucht, werden Backw(p) und Forw(p)
berechnet und in den Baum eingetragen, auf dessen Pfad der „hitpoint“ liegt.
Die Anzahl der Knoten, welche in die Bäume eingefügt werden ist linear zur Anzahl der
Knoten von P, da maximal für jeden zweiten Knoten zwei weitere hinzukommen. Daraus
ergibt sich für das Erstellen der Suchstruktur aus dem Einfügen der Knoten und der
Berechnung der „shooting queries“ eine Gesamtlaufzeit von O(n log n).
Abbruchkriterien
Einige Eigenschaften des Polygons P haben zur Folge, dass kein walk gefunden werden
kann. Diese lassen sich mit Hilfe der genutzten Suchstruktur leicht überprüfen und werden im
folgenden beschrieben.
Die Notwendigkeit der folgenden Eigenschaften, um die Existenz eines „walks“ zu
entscheiden, wird in den folgenden Abschnitten durch die Beispiele verdeutlicht. Das diese
Seite 5 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Eigenschaften hinreichend sind, beweisen Icking und Rolf ausführlich und wird im folgenden
vorrausgesetzt.
Nicht einsehbare Bereiche
Jeder Punkt des Pfades L muss von mindestens einem Punkt des Pfades R zu sehen sein
und umgekehrt. Sollte diese Bedingung nicht erfüllt sein, gibt es einen Punkt p auf P an dem
ein Wächter von dem anderen Wächter niemals gesehen werden kann. Ein „walk“ ist somit
unmöglich. Formal lässt sich dies wie folgt darstellen:
Alle Stellen des Pfad L sind genau dann von R sichtbar, wenn
p < Backw(p) ∈ L oder p > Forw(p) ∈ L
gilt.
Während der Erzeugung der Suchstruktur wird diese Bedingung bei der Berechnung der
„shooting queries“ überprüft. Wird eine Verletzung festgestellt, terminiert der Algorithmus.
z
Backw(p1)
L
R
p1
T
p2
Forw(p2)
s
Abbildung 10: Sichtbarkeit
Deadlocks bei gleichläufiger Vorwärtsbewegung
Es gibt Situationen in denen es nicht möglich ist, weiter zu gehen ohne das sich die
Wächter aus den Augen verlieren. Die folgenden Abbildungen 11 und 12 illustrieren zwei
Bespiele für einen Deadlock in der gleichläufigen Vorwärtsbewegung:
Seite 6 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
z
L
Forw(q)
z
R
T
L
R
T
Forw(p)
p q
p q
Backw(q)
Wächter 1
Wächter 2
Backw(p)
Wächter 1
Wächter 2
s
s
Abbildung 11: Forward Deadlock
Abbildung 12: Backward Deadlock
In Abbildung 11 wartet Wächter 1 an Punkt p angekommen, darauf dass Wächter 2 den
Punkt Forw(p) erreicht. Wächter 2 steht an Punkt q und erwartet seinerseits das Erscheinen
von Wächter 1 an Punkt Forw(p). Beide Wächter verharren in dieser Warteposition. Dies
nennt man einen „deadlock“.
Die zweite Situation, in Abbildung 12 dargestellt, bleibt Wächter 1 an Punkt Backw(q)
und Wächter 2 an Backw(p) stehen. Wächter 1 wartet darauf, dass Wächter 2 Punkt q erreicht,
während Wächter 2 seinen Weg nicht fortsetzt, da er das Erreichen von Punkt p durch
Wächter 1 abwartet.
Die Existenz von Deadlocks in P lassen sich formal durch folgende Formel beschreiben:
Es existieren p aus L und q aus R, so dass
q < Backw(p) ∈ R und p < Backw(q) ∈ L
oder
q > Forw(p) ∈ R und p > Forw(q) ∈ L
gilt.
Deadlocks bei gegenläufiger Bewegung
Bei den oben genannten Beispielen wird von einer gleichläufigen Vorwärtsbewegung
ausgegangen. Befinden sich die Wächter in einer gegenläufigen Bewegung, stellt sich der
Sachverhalt wie folgt dar:
In Abbildung 13 wartet Wächter 1 an Punkt Forw(q) darauf, dass Wächter 2 die
ausgehende Kante von Punkt q in Richtung s durchschreitet, da er diese zu einem späteren
Zeitpunkt nicht mehr einsehen kann. Gleiches tut Wächter 2 an Punkt Backw(p) bezüglich
Punkt p und Wächter 1.
Seite 7 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Wächter 1 kann in Abbildung 14 Punkt Backw(q) nur erreichen, wenn er vorher Punkt p
durchläuft. Dies ist ihm nur möglich, wenn Wächter 2 mindestens Punkt Forw(p) einnimmt,
wozu es notwendig wäre, dass Wächter 1 Punkt Backw(q) erreicht.
z
z
L
L
R
p
T
T
Wächter 2
Backw(q)
Backw(p)
Forw(q)
R
Forw(p)
p
q
Wächter 2
q
Wächter 1
Wächter 1
s
s
Abbildung 14: Deadlock (II)
Abbildung 13: Deadlock (I)
Es existieren p ∈ L und q ∈ R, so dass
q < Backw(p) ∈ R und p < Backw(q) ∈ L
oder
q > Forw(p) ∈ R und p > Forw(q) ∈ L
gilt.
Wechsel zwischen vorwärts- und gegenläufiger Bewegung
Um mit beiden Wächtern den Endpunkt z zu erreichen, kann es notwendig sein, dass einer
der beiden Wächter Kehrt macht und zu einem früheren Punkt auf seinem Weg zurückkehrt,
damit er den anderen auf dessen Weg nicht aus den Augen verliert. Die Punkte an denen dies
notwendig wird, nennt man Wendepunkte und werden im folgenden erläutert.
Wendepunkte
Während sich die Wächter beide vorwärts bewegen, gibt es folgende zwei Konstellationen
bei denen es notwendig ist, dass ein Wächter wendet und zu einen bereits besuchten Punkt
zurückkehrt, um dem anderen Wächter das Fortsetzen seines Wege zu ermöglichen:
( ----- folgende Beispiele erläutern 15 16-----)
Seite 8 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
z
z
L
T
L
R
p2
Backw(p1)
p1
Forw(p2)
Wächter 1
Jan Meyer
WS 2004/2005
Backw(q1)
Forw(q2)
T R
q2
q1
Wächter 1
Wächter 2
Wächter 2
s
s
Abbildung 16: Rechter Keil
Abbildung 15: Linker Keil
Es existieren p1, p2 ∈ L oder q1, q2 ∈ R, so dass
p1 < p2 und Forw(p2) < Backw(p1)
oder
q1 < q2 und Forw(q2) < Backw(q1)
gilt.
( ----- Beispiele erläutern 17 18-----)
z
z
L
T
p2
p1
L
R
Wächter 2
T
Backw(q2)
Backw(p2)
Forw(q1)
Forw(p1)
q2
R
Wächter 2
q1
Wächter 1
Wächter 1
s
s
Abbildung 18: XXX
Abbildung 17: XXX
Es existieren p1, p2 ∈ L oder q1, q2 ∈ R, so dass
p1 < p2 und Forw(p1) < Backw(p2)
oder
q1 < q2 und Forw(q1) < Backw(q2)
gilt.
Seite 9 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Algorithmus zur Berechnung der Wendepunkte auf einem “general
walk”
Der Algorithmus turnpoint teilt das Polygon in „straight walk“- und „straight counter walk“Abschnitte auf.
Gegenläufige Wendepunkte und „deadlocks“
( Es müssen nur die gleichläüfigen Eigenschaften herangezogen werden, weil ....)
( Ergeben in Verschachtelung mit einen linken bzw. rechten Keil Keile bzw. deadlocks der
gleichläufigen Vorwärtsbewegung )
( Notwendigkeit an Beispielen verdeutlichen, Hinreichend siehe Icking und Rolf )
Algorithm turnpoint
1 utp:=s;
2 ltp:=g;
3 FOR all reflex vertices p ∈ L in increasing order DO
4
IF ltp > utp
5
THEN IF Backw(p) > utp
6
THEN utp := Backw(p)
7
ELSE IF Forw(p) < utp
8
THEN ltp := Forw(p)
ENDIF
ENDIF
9
ELSE IF Forw(p) < ltp
10
THEN ltp := Forw(p)
11
ELSE IF Backw(p) > ltp
12
THEN report-turning-points(utp,ltp);
13
utp := Backw(p);
14
ltp := g
ENDIF
ENDIF
ENDIF
ENDFOR;
15 IF ltp < utp
16 THEN report-turning-points(utp,ltp)
ENDIF
Seite 10 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
( Obiges textuell durchlaufen / für alle pi die zeilen die in FOR ausgeführt werden
aufzählen )
Bewegungsabschnitte eines “general walks”
Straight Walk
( Sichtbarkeitsintervalle )
( walk partner durch grenzen der intervalle erläutern )
( Laufzeit )
Straight Counter Walk
( analogie zu Straight walk verdeutlichen )
Algorithmus – two watchmen
Mit den Definitionen und Erkenntnissen aus den vorangehenden Kapiteln lässt sich der
komplette Algorithmus zusammensetzen.
Algorithm two watchmen
1. Vorbereitung der Shooting Queries
2. Erstellung der Suchstruktur
3. Prüfung auf nicht sichtbare Bereiche
4. Prüfung auf Deadlocks
5. Berechnung der Wendepunkte
6. Berechnung der Bewegungskommandos für jeden Abschnitt
Laufzeitanalyse
(einzele Teile mit Laufzeiten aufzählen)
(gesamt laufzeit)
Seite 11 von 12
Zwei Wächter Problem
Algorithmische Geometrie und Bewegungsplanung
Jan Meyer
WS 2004/2005
Abschätzung der Anzahl von Bewegungkcommandos im „worstcase“
(Abbildung nachbauen und deutschen Titel geben)
Wie in Abbildung X zu sehen ist, muss Wächter 2 auf R die n/2 Knoten für jeden Keil in L
zweimal durchlaufen. Es ergibt eine untere Schranke von n².
Da wir einen „walk“ minimaler Länge annehmen, wird jedes mögliche Sichtbarkeitssegment
nur einmal angenommen. Da L und R nach Hinzufügen der „hitpoints“ jeweils maximal O(n)
Knoten enthalten, ergibt sich eine obere Schranke von n².
Literaturverzeichnis
Seite 12 von 12
Herunterladen