1 Lecture 8: Voronoi Diagram Computational Geometry Prof. Dr. Th. Ottmann Voronoi Diagrams...
-
date post
19-Dec-2015 -
Category
Documents
-
view
220 -
download
0
Transcript of 1 Lecture 8: Voronoi Diagram Computational Geometry Prof. Dr. Th. Ottmann Voronoi Diagrams...
1Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Voronoi Diagrams
• Definition
• Characteristics
• Size and Storage
• Construction
• Use
2Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
The Voronoi Diagram
3Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Voronoi Regions
Eucledian distance :
dist(p,q) := ²² yyxx qpqp
Let P :={ p1, p2, ...,pn } be a set of n distinct points in a plane.We define the voronoi diagram of P as the subdivision of the planeinto n cells, with the property that a point q lies in the cell correspon-ding to a site pi iff dist(q, pi ) < dist(q, pj ) for each pj P with j i.
We denote the Voronoi diagram of P by Vor(P).The cell that corresponds to a site pi is denotd by V(pi ), called thevoronoi cell of pi.
4Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Example
V(pi) = 1 j n, j i h(pi, pj)
q4
q1
q3
q2
p
5Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Computing the Voronoi DiagramInput: A set of points (sites) Output: A partitioning of the plane into regions of equal nearest neighbors
6Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Animations of the Voronoi diagram
Java Applet zur Animation von Voronoi Diagrammen,Entwickelt von R. Klein u.a., FU Hagen
pi
V(pi)
7Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Characteristics of Voronoi Diagrams(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
pi pj
pk
h(pi,pj)
h(pj,pk)
If pi, pj are not collinear with pk, thenh(pi, pj ) and h(pj, pk ) can not be parallel!
8Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Vor(P) is Connected
If Vor(P) is not connected then there would be a Voronoicell V(Pi ) splitting the plane into two halfes. Because Voronoi cells are convex, V(Pi ) 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:
9Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Other Characteristics (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
10Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
(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.
11Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Size and Storage
Size of the Voronoi Diagram:
V(p) can have O(n) vertices!
12Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Size of the Voronoi DiagramTheorem: 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) + 1e = 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 )
13Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Number of vertices of VD(P) = vp
Number of edges of VD(P) = ep
We can apply: (vp + 1) – ep + n = 2
2 ep 3 (vp + 1)
2 ep 3 ( 2 + ep - n)
= 6 + 3ep – 3n
3n – 6 ep
Proof(Continued)
14Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Example
15Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Storage of Voronoi-Diagrams
1
1
3
4
5
6
2
2 3
4
5
• •
•
•
Three Records:
vertex {CoordinatesIncident edge
}; face {
OuterComponentInnerComponents
}; halfedge {
OriginTwinIncidentFaceNextPrev
};
e.g. :
Vertices 1 = {(1,2) | 12}Sites 1 = {15 | [] }Edges 54 = { 4 | 45 | 1 | 43 | 15 }
16Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Computing the Voronoi DiagramInput: A set of points (sites) Output: A partitioning of the plane into regions of equal
nearest neighbors.
17Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Divide and Conquer(Divide)
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
18Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Divide and Conquer (Conquer)
Conquer: Recursively compute the Voronoi diagrams for the smaller point sets Abort condition: Voronoi diagram of a single point is the entire plane.
19Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Divide and Conquer (Merge)
Merge the diagrams by a (monoton) sequence of edges)
20Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
The ResultThe finished Voronoi Diagram
Running time: With n given points is O(n log n)
21Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Geometrical Divide and Conquer
Problem: Determine all intersecting pairs of segments
A
BC
DE
A
BC
DE
S1 S2
S
EC
D
A
B
22Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
DAC - Construction of the Voronoi diagramDivide:Divide P by a vertical dividing line T into 2 equal size subsets say P1 and P2. If |P| = 1 completed.Conquer:Compute VD(P1 ) and VD(P2 ) recursively.
Merge: Compute the edge sequence K separating P1 and P2 Cut VD(P1) and VD(P2 ) by means of K starting from VD(P1 ) and VD(P2 ) and K P1
P2
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)
23Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Computation of K
P1 P2
First edge in K
Last edge in K
4 tangential points P1 P2 Observation: K is y - monotonous
Determines intersection s1 of m with Vor(p1) below l Determines intersection s2 of m with Vor(p2) below l
Incremental (sweep line) construction(p1 in P1 and p2 in P2 perpendicular with m, Sweep l)
Extend K by line segment l si
Set l = si
Compute new K defining pair p1, p2
Theorem: Running time O(n) Proof: Vor(pi) are convex, therefore each one‘s forward - edge are only visited once.
24Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Example
25Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Fortune´s Algorithm
Beach - line
Sweep - line
Observations: Intersection of the parabolas define edgesNew "telephones" ( ) define new parabolas Parabola intersection disappear, if C(P, q) has 3 points
26Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Applications 1(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) 1. Each point p from P defines 1-element set of 2. More than a set of T exists 2.1) find p,p´ with p in T and p´ not in T with d(p, p´)
minimum. 2.2) connect T and p´ contained in T´ (union)
Theorem: The MST can be computed in time O(n log n)
27Lecture 8:Voronoi Diagram
Computational GeometryProf. Dr. Th. Ottmann
Applications (dynamic object set)Search for next neighbor :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
b c a b c
A