PDF1

Werbung
Motivation
Planar Point Location
René Weiskircher
Mobiltelefone haben Möglichkeit
momentane Position zu bestimmen
Telefonfirmen können ortsbezogene
Dienste anbieten
Beispiel: Bestimme nächstgelegenen
Geldautomaten
Motivation
Problem
• Anfangs bekannt: Menge P von
Punkten in 2D
• Anfrage: Finde für Punkt x in 2D
nächsten Punkt in P
• Anfragen müssen schnell beantwortet
werden
• Verwendete Datenstrukturen klein
Lösung
Voronoidiagramm
P ist bekannt und ändert sich selten
Verlagere Arbeit von einzelner Anfrage zu
Vorberechnung vor Bearbeitung der Anfragen
Erstelle erst Datenstruktur D für P, die
Anfragen für jedes x schnell beantworten
kann
Gegeben:
Voronoiregion von pi:
1. Voronoidiagramm
2. Suchen in planaren
Unterteilungen
D
1
Voronoidiagramm
Knoten des Voronoidiagramms:
Punkte die gleichen Abstand zu
mindestens 3 Punkten aus P
haben.
Kanten des Voronoidiagramms:
Mengen von Punkten die zu 2
Punkten aus P gleichen Abstand
haben
Lösung des
Lokalisierungsproblems
Voronoidiagramm für P vorberechnet
Bestimme für Anfragepunkt x die
Voronoiregion Vr, die x enthält
Gib den Punkt r aus P aus
Wie bestimmt man effizient die
Voronoiregion, die Punkt x enthält?
Voronoidiagramm
• Voronoidiagramm ist Vereinigung der
Kanten und Knoten aller
Voronoiregionen
• Hat für n Punkte maximal 2n-4 Knoten
und 3n-6 Kanten
• Kann in Zeit O(n log n) berechnet
werden (z.B. Divide & Conquer)
Suche in Planaren
Unterteilungen
• Gegeben:
– Geradlinige Einbettung E eines Graphen in
die Ebene
– Anfragepunkt x
• Gesucht:
– Region R von E die x enthält
Voronoidiagramm
Anwendung auf unser Problem
Voronoidiagramme sind keine
Einbettungen weil äußere Kanten
unendlich lang
Umwandlung in Graphen durch
Einführung von Begrenzung, die alle
möglichen Anfragepunkte enthält
Voronoidiagramm
Einbettung eines
Graphen mit
Geradensegmenten
als Kanten
2
Unterteilung einer Region in
Dreiecke
Triangulierung
Datenstruktur ist einfacher wenn alle
Regionen der Einbettung Dreiecke sind
Benutze Dreieck als Begrenzung für
Voronoidiagramm
Füge in jede Region die nicht dreieckig
ist neue Kanten ein, bis sie dreieckig ist
Erstellung der Datenstruktur
Lösche
unabhängige
Knoten mit
Maximalgrad 9
• Durchlaufe Knoten in beliebiger
Reihenfolge
• Gib Knoten Farbe mit niedrigster
Nummer, die noch nicht von Nachbarn
besetzt ist
• Wähle Farbe mit den meisten Knoten
Trianguliere
Nein
Finden Unabhängiger Menge
Ja
Graph klein genug?
Fertig
3
Finden Unabhängiger Menge
Lösche Knoten x,y und z
Graphen
Datenstruktur
Knoten löschen
Blätter aufsplitten
Triangulieren
Blätter zusammenfassen
Trianguliere neue Regionen
∞
A1 A2 A3 B1 B2 B3 C1 C2 C3
Habe schon Datenstruktur für Suchen in
Fasse Blätter die zur gleichen Region von
gehören zusammen
4
∞
A
B
C
Füge Programme ein, die Region von
bestimmen, in der Anfragepunkt liegt
Aufstellen der Datenstruktur
∞
x
y
z
abcd
i l k j
f ehg
Lemma zur Schrumpfen der
Einbettung
• Triangulierung bewirkt dass Graph in
jeder Runde um mindestens konstanten
Faktor schrumpft
• Maximaler Grad der zu löschenden
Knoten bewirkt konstante Laufzeit für
Aufteilungsprogramme
• Zu löschende Knoten sind unabhängig
also sind neue Regionen konvex
Satz zur Laufzeit
5
Herunterladen