Illustration Gesamtlaufzeit

Werbung
Weitere Anwendungen von
Voronoi-Diagrammen
Wichtige Eigenschaft von
Voronoi-Diagrammen
Lemma:
• Nächste Nachbarn für alle Paare von
Knoten
• Kürzester euklidischer aufspannender
Baum
• Euklidische Version des Problems des
Handlungsreisenden
1.)
2.)
Berechnung aller nächsten Paare
in Menge S
Illustration
Gegeben: Menge S in R2
x
p
y
L
Gesucht:
Für jeden Punkt x ∈ S finde anderen
Punkt y ∈ S mit der Eigenschaft dass es
kein z ∈ S\{x,y} gibt mit
dist(x,z) < dist(x,y)
z
Berechnung aller nächsten Paare
in Menge S
• Es gibt für jeden Punkt x nächsten
Nachbarn z so dass VR(x) und VR(z)
benachbart (siehe Lemma)
• Bestimme für jeden Punkt in S nächsten
Nachbarn durch Testen aller Punkte z,
die sich Voronoikante mit x teilen
• Laufzeit für x: O(m(x)) wenn VR(x) m
Kanten hat
Gesamtlaufzeit
• Betrachten jede Kante im
Voronoidiagramm zwei mal
• Es gibt nur O(|S|) Kanten im
Voronoidiagramm
• Gesamtlaufzeit für Bestimmen aller
nächsten Nachbarn: O(|S|)
1
Minimaler Euklidischer
Spannbaum
Gegeben: Menge S in R2 und somit vollständiger
Graph G=(S,S×S) mit Distanzen
Gesucht: Finde aufspannenden Baum T von G
mit Summe der Kantenlängen der
enthaltenen Kanten minimal
Algortithmus für Minimalen
Euklidischen Spannbaum
1. Naiver Algorithmus
•
•
Setze Kruskal auf G=(S,S×S) an
Laufzeit: O(|S|2) warum?
2. Berechne Voronoidiagramm von S
•
•
•
Stelle Graph der Nachbarn auf
Benutze Kruskal zur Berechnung des
minimalen Spannbaums
Laufzeit: O(|S| log |S|)
Lemma zum Spannbaum
Definiere:
Dann gibt es minimalen Spannbaum für
S, der nur Kanten aus E enthält.
Approximierung Problem des
Handlungsreisenden
• Berechne minimalen Spannbaum wie
eben
• Laufe außen um Baum herum
• Ersetze doppelte Knoten durch
Abkürzungen
• Gütegarantie: 2lopt
• Laufzeit: O(n log n)
Beweis
2
Herunterladen