Presentation is loading. Please wait.

Presentation is loading. Please wait.

Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

Similar presentations


Presentation on theme: "Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät."— Presentation transcript:

1 Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg

2 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann2 Overview Motivation Voronoi definitions Characteristics Size and storage Construction –Divide and Conquer –Fortune’s Algorithm Applications

3 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann3 The Voronoi Diagram Viewpoint 1: Locate the nearest dentist. Viewpoint 2: Find the ‘service area’ of potential customers for each dentist.

4 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann4 The Voronoi Diagram

5 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann5 Voronoi Regions Eucledian distance : dist(p,q) := Let P :={ p 1, p 2,...,p n } be a set of n distinct points in a plane. We define the voronoi diagram of P as the subdivision of the plane into n cells, with the property that a point q lies in the cell correspon- ding to a site p i iff dist(q, p i ) < dist(q, p j ) for each p j  P with j  i. We denote the Voronoi diagram of P by Vor(P). The cell that corresponds to a site p i is denotd by V(p i ), called the voronoi cell of p i.

6 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann6 Example V(p i ) =  1  j  n, j  i h(p i, p j ) q4q4 q1q1 q3q3 q2q2 p

7 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann7 Computing the Voronoi Diagram Input: A set of points (sites) Output: A partitioning of the plane into regions of equal nearest neighbors

8 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann8 Voronoi Diagram Animations Java applet animation of the Voronoi Diagram by: Christian Icking, Rolf Klein, Peter Köllner, Lihong Ma (FernUniversität Hagen)

9 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann9 Characteristics of the Voronoi Diagram (1) Voronoi regions (cells) are bounded by line segments. Special case : Collinear points Theorem : Let P be a set of n points (sites) in the plane. If all the sites are collinear, then Vor(P) consist of n-1 parallel lines and n cells. Otherwise, Vor(P) is a connected graph and its edges are either line segments or half-lines. e pipi pjpj pkpk h(p i,p j ) h(p j,p k ) If p i, p j are not collinear with p k, then h(p i, p j ) and h(p j, p k ) can not be parallel!

10 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann10 Vor(P) is Connected If Vor(P) is not connected then there would be a Voronoi cell V(P i ) splitting the plane into two halfes. Because Voronoi cells are convex, V(P i ) would consist of a strip bounded by two parallel full lines, but we know that edges of Voronoi diagram cannot be full lines, hence a contradiction. Claim: Vor(P) is connected Proof by contradiction:

11 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann11 Other Characteristics; (2),(3) Assumption: No 4 points are on the circle. (2) Each vertex (corner) of VD(P) has degree 3 (3) The circle through the three points defining a Vertex of the Voronoi diagram does not contain any further point

12 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann12 Other Characteristics; (4),(5) (4) Each nearest neighbor of one point defines an edge of the Voronoi region of the point. (5) The Voronoi region of a point is unbounded iff the point lies exactly on the convex hull of the point set.

13 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann13 Size and Storage Size of the Voronoi Diagram: V(p) can have O(n) vertices!

14 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann14 Size of the Voronoi Diagram Theorem: The number of vertices in the Voronoi diagram of a set of n points in the plane is at most 2n-5 and the number of edges is at most 3n-6. Proof: 1. Connect all Half-lines with fictitious point  2. Apply Euler`s formula:v – e + f = 2 For VD(P) +  : v = number of vertices of VD(P) + 1 e = number of edges of VD(P) f = number of sites of VD(P) = n Each edge in VD(P) +  has exactly two vertices and each vertex of VD(P) +  has at least a degree of 3:  sum of the degrees of all vertices of Vor(P) +  = 2 · ( # edges of VD(P) )  3 · ( # vertices of VD(P) + 1 )

15 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann15 Proof (Continued) Number of vertices of VD(P) = v p Number of edges of VD(P) = e p We can apply:(v p + 1) – e p + n = 2 2 e p  3 (v p + 1) 2 e p  3 ( 2 + e p - n) = 6 + 3e p – 3n 3n – 6  e p

16 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann16 Example

17 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann17 Storage Issues 1 1 3 4 5 6 2 2 3 4 5 Three Records (DCEL): vertex { Coordinates Incident edge }; face { OuterComponent InnerComponents }; halfedge { Origin Twin IncidentFace Next Prev }; e.g. : Vertex 1 = {(1,2) | 12} Face 1 = {15 | [] } Edge 54 = { 4 | 45 | 1 | 43 | 15 }

18 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann18 Computing the Voronoi Diagram Input: A set of points (sites) Output: A partitioning of the plane into regions of equal nearest neighbors.

19 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann19 Divide and Conquer: Divide Step Input: A set of points (sites) Output: A partitioning of the plane into regions of equal nearest neighbors. Divide: Divide the point set into two halves

20 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann20 Divide and Conquer: Conquer Step Conquer: Recursively compute the Voronoi diagrams for the smaller point sets. Abort condition: Voronoi diagram of a single point is the entire plane.

21 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann21 Divide and Conquer: Merge Merge the diagrams by a (monotone) sequence of edges)

22 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann22 The Result The finished Voronoi Diagram Running time: With n given points is O(n log n)

23 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann23 Geometrical Divide and Conquer Problem: Determine all intersecting pairs of segments A B C D E A B C D E S1S1 S2S2 S E C D A B

24 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann24 DAC: Construction of the Voronoi Diagram Divide: Divide P by a vertical dividing line T into 2 equal size subsets say P 1 and P 2. If |P| = 1  completed. Conquer: Compute VD(P 1 ) and VD(P 2 ) recursively. Merge: Compute the edge sequence K separating P 1 and P 2 Cut VD(P 1 ) and VD(P 2 ) by means of K starting from VD(P 1 ) and VD(P 2 ) and K P1P1 P2P2 T Theorem: If K can be computed in time O(n), then the running time of the D&C-algorithm is T(n) = O(n log n) Proof : T(n) = 2 T(n/2) + O(n), T(1) = O(1)

25 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann25 Computation of K P1P1 P2P2 First edge in K Last edge in K 4 tangential points P 1 P 2 Observation: K is y - monotonous Determines intersection s 1 of m with Vor(p 1 ) below l Determines intersection s 2 of m with Vor(p 2 ) below l Incremental (sweep line) construction (p 1 in P 1 and p 2 in P 2 perpendicular with m, Sweep l) Extend K by line segment l s i Set l = s i Compute new K defining pair p 1, p 2 Theorem: Running time O(n) Proof: Vor(p i ) are convex, therefore each one‘s forward - edge are only visited once.

26

27

28

29

30 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann30 Example

31 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann31 Fortune’s Algorithm Beach - line Sweep - line Observations: Intersection of the parabolas define edges New "telephones" ( ) define new parabolas Parabola intersection disappear, if C(P, q) has 3 points

32 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann32 Utilizing the Voronoi Diagram Search for nearest neighbour Input: A fixed (static) set P of n points in the plane, a query point p Output: A nearest neighbour of p in P Solution Construct the Voronoi diagram for P in time O(n log n) Solve the point location problem.

33 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann33 Enclosing Triangle

34 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann34 Use (Dynamic Object Set) Search for next neighbour : Idea : Hierarchical subdivision of VD(P) Step 1 : Triangulation of final Voronoi regions Step 2 : Summary of triangles and structure of a search tree Rule of Kirkpatrick : Remove in each case points with degree < 12, its neighbor is already far. Theorem: Using the rule of Kirkpatrick a search tree of logarithmic depth develops. A a bc a b c A

35 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann35 Utilizing the Voronoi Diagram Search for nearest neighbour Input: A fixed (static) set P of n points in the plane, a query point p Output: A nearest neighbour of p in P Solution Construct the Voronoi diagram for P in time O(n log n) Solve the point location problem. Theorem: For a given set of n points we can construct a structure in time O(n log n) such that a nearest neighbour query can be answered in time O(log n).

36 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann36 Use (Static Point Set) Closest pair of points: Go through edge list for VD(P) and determine minimum All next neighbors : Go through edge list for VD(P) for all points and get next neighbors in each case Minimum Spanning tree (after Kruskal) Theorem: The MST can be computed in time O(n log n)

37 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann37 MST (after Kruskal): Informal Algorithm Minimum Spanning Tree (after Kruskal): Construct for a graph G = (V, E) a minimum spanning tree in time O(|E| log |E|). 1.Each point p from P defines 1-node tree; start with the forest of these 1-node trees. 2.If there are more than one tree T in the current forest, 2.1) find p, p´ with p in T and p´ not in T with d(p, p´) minimal. 2.2) connect T containing p and T´ containing p´ (union of T and T´)

38 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann38 Kruskal’s Algorithm Minimum Spanning Tree (after Kruskal): Manipulates a forest of trees. Find(v) returns the tree to which node v belongs. Union(v, w) merges two trees with names v and w to a new one with the name w. Make-set(v) returns the tree which has v as its only node.

39 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann39 Formal Algorithm Minimum Spanning Tree (after Kruskal): G = (V, E). Initialise E´ as empty set of edges. Sort the edges in E according to increasing lengths. For all v  V do Make-set(v); For all (v, w)  E in increasing length order do if Find(v)  Find(w) then {Select edge (v, w):} { Union (Find(v), Find(w)); E´ = E + {(v, w)} } Naïve Implementation: E is the set of all n(n-1)/2 edges (v, w) with points v and w in P.

40 Computational Geometry, WS 2006/07 Prof. Dr. Thomas Ottmann40 Summary Minimum Spanning Tree (after Kruskal) Crucial Observation: It is sufficient to consider the O(n) distances between (nearest) neighbours in order to find a pair of points with minimal distance! It suffices to apply Kruskal’s algorithm to the dual graph of the Voronoi diagram with only O(n) edges! Theorem: If the Voronoi diagram for a set of n points is known, the minimum spaning tree can be constructed in time O(n log n).


Download ppt "Voronoi Diagrams Computational Geometry, WS 2006/07 Lecture 10 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät."

Similar presentations


Ads by Google