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