Title: Geometric Data Structures
1Geometric Data Structures
2Lecture Plan
- Voronoi diagrams
- Trees and grid variants
3Part 1
- Voronoi diagram
- Delaunay triangulation
4Voronoi diagrams
- VD Thiessen polygons, Delaunay triangulations,
tessellations
5Tessellation
- Tessellation is often obtained using Delaunay
triangulation.
6Voronoi diagram
- Given a set of N sites (points) in the plane or a
3D space - Distance function d(x,P) between point x and site
P is defined according to some metric - Voronoi region Vor(P) is the set of all points
which are closer to P than to any other site - Voronoi diagram is the union of all Voronoi
regions
7Voronoi Diagram
8Voronoi diagram
9Voronoi diagram
10Voronoi diagram properties
- Assumption 1. No four points from the set S are
cocircular. - Property 1. Voronoi vertex is the intersection of
3 Voronoi edges and a common point of 3 Voronoi
regions - Property 2. Voronoi vertex is equidistant from 3
sites. It lies in the center of a circle
inscribed between 3 cites - Property 3. Empty circle property This inscribed
circle is empty, i.e. it does not contain any
other sites - Property 4. Nearest-neighbor property If Q is the
nearest neighbor of P then their Voronoi regions
share an edge (to find a nearest neighbor it is
sufficient to check only neighbors in the VD) - Property 5. Voronoi region Vor(P) is unbounded if
and only if P belongs to the boundary of convex
hull of S.
11VD properties
12VD properties
13VD properties
14VD properties
15VD properties
16Delaunay triangulation
- Definition 3. A Delaunay triangulation (DT) is
the straight-line dual of the Voronoi diagram
obtained by joining all pairs of sites whose
Voronoi regions share a common Voronoi edge
Delaunay 34. - Follows from the definition
- If two Voronoi regions Vor(P) and Vor(Q) share an
edge, then sites P and Q are connected by an edge
in the Delaunay triangulation - If a Voronoi vertex belongs to Vor(P), Vor(Q) and
Vor(R), then DT contains a triangle (P,Q,R)
17Delaunay triangulation
18DT properties
- Assumption 2. No three points from the set S lie
on the same straight line. - Theorem. The straight-line dual of the Voronoi
diagram is a triangulation of S Preparata and
Shamos 85. - Property 5. The circumcircle of any Delaunay
triangle does not contain any points of S in its
interior Lawson 77. - Property 6. If each triangle of a triangulation
of the convex hull of S satisfies the empty
circle property, then this triangulation is the
Delaunay triangulation of Lawson 77.
19VD and DT
20DT properties
- The edge of the quadrilateral satisfies the
local min-max criterion if the following equation
holds - A triangulation satisfies the global min-max
criterion if every internal edge of a convex
quadrilateral in the triangulation satisfies the
local min-max criterion. - Property 8. The Delaunay triangulation satisfies
the global min-max criterion Lawson 77. - Property 9. If a triangulation of the convex hull
of satisfies the global min-max criterion then
it is the Delaunay triangulation of Lawson 77.
21VD and DT
- Both DT and VD effectively represent the
proximity information for the set of sites. They
can be easily transformed into each other. - VD contains geometrical information, while DT
contains topological information.
22Generalized Voronoi diagram
- Given a set S of n sites (spheres) in
d-dimensional space - Distance function d(x,P) between a point x and a
site P is defined.
23Generalized Voronoi diagram
- A generalized Voronoi diagram (GVD) for a set of
objects in space is - the set of generalized Voronoi regions
- where d(x,P) is a distance function between a
point x and a site P in the - d-dimensional space.
24Generalized Delaunay tessellation
- A generalized Delaunay triangulation (GDT) is
the dual of the generalized Voronoi diagram
obtained by joining all pairs of sites whose
Voronoi regions share a common Voronoi edge.
25General metrics
- Generalized distance functions
- Power
- Additively weighted
- Euclidean
- Manhattan
- supremum
26Power and Euclidean Voronoi diagrams
Euclidean bisector
Power bisector
Power diagram and Delaunay triangulation
Euclidean diagram and Delaunay triangulation
27Manhattan and Supremum VD
Manhattan bisectors
Supremum bisectors
Manhattan diagram and Delaunay triangulation
Supremum diagram and Delaunay triangulation
28Properties of Generalized VD and DT
- The vertex of generalized Voronoi diagram is a
center of a sphere inscribed between d 1 Voronoi
sites (spheres). - The inscribed sphere is empty, i.e. it does not
contain any other sites. - One of the facets of the generalized Voronoi
region Vor(P) defines a nearest-neighbor of P. - A Voronoi region Vor(P) is unlimited if and only
if site P belongs to the convex hull of S. - The sphere inscribed between the sites comprising
a simplex of generalized Delaunay tessellation is
an empty sphere. - The power Delaunay tessellation of a set of
spheres S is a tetrahedrization.
29Algorithmic Strategies
- Incremental
- Divide-and-conquer
- Sweep-line/plane
- Dimension reduction
- Geometric decomposition
30Algorithmic Strategies
- Algorithm development techniques on example of
Voronoi Diagrams - Incremental construction
- Divide and conquer
- Sweep-plane
- Geometric transformations
- Dynamic data structures
31Incremental construction
INCIRCLE condition
power
Polynomial of 4th order in the plane
Euclidean
Polynomial of 8th order in the plane
System of linear equations and inequalities in
the plane
Supremum
32Incremental construction
- Incremental method outline
- Insert new site P
- Perform swap operations on quadrilaterals where
the empty-sphere condition is not satisfied - Method complexity is O(n2) in the plane.
33Sweep-plane algorithm
- Algorithm description
- Throw pebbles in the water
- Intersection of waves gives the Voronoi diagram
- Add time as 3rd dimension waves transform to
pyramids. - Sweep pyramids with the sweep-plane to get the
Voronoi diagram
34Sweep-plane algorithm
- Properties
- The complexity of the sweep-plane algorithm in
generalized Manhattan metric is O(n log n). - Sweep-plane method is not applicable to the power
diagram construction.
35Sweep-plane algorithm
- An example of a sweep-plane construction of a
Voronoi diagram in L1 metric
36Sweep-plane algorithm
Cones in L1
37Sweep-plane algorithm
Sweeping the cones
38Sweep-plane algorithm
sweep direction
Parabolas
39Sweep-plane algorithm
Site event
40Sweep-plane algorithm
Site event
41Sweep-plane algorithm
two half-bisectors are created one is growing
42Sweep-plane algorithm
The half-bisector changes its direction
43Sweep-plane algorithm
Site event 2 half-bisectors created
44Sweep-plane algorithm
The half-bisector Changes its direction
45Sweep-plane algorithm
Circle event Triangle added to DT 2
half-bisectors deleted 1 half-bisector created
46Sweep-plane algorithm
Half-bisector changes its direction
47Sweep-plane algorithm
No more events
48Sweep-plane algorithm
Resulting Voronoi diagram and Delaunay
triangulation
49Sweep-plane algorithm
Waves in Manhattan metric
Waves in power metric
50Swap method from VD to power diagram
- Relationship between Voronoi bisector and power
bisector - The power bisector is moved relative to the
Voronoi bisector by -
Bisector transformation
51Swap method from VD to power diagram
- Algorithm overview
- Inflate VD sites
- Transform edges of VD
- Perform INCIRCLE test on quadrilaterals and
perform swap operations if needed. - The worst-case complexity of algorithm is O(n2).
52Swap method
53Dynamic data structures swap application
- Approach
- construct and maintain a dynamic Delaunay
triangulation for the set of moving disks (in
some metric). - Collisions checks are performed only along the
Delaunay edges.
54Dynamic VD and DT
- Problem
- Given a set of N moving and/or changing (i.e.
growing) sites - Construct the VD (DT) for the set
- Maintain the VD (DT) dynamically
55Dynamic VD and DT
Dynamic Voronoi diagram
Dynamic Delaunay triangulation
56Dynamic VD and DT
- Dynamic DT is easier to maintain than dynamic VD
in a sense that the coordinates of VD vertices
must be calculated, while coordinates of DT
vertices (the sites) are already known for any
moment of time - As sites move, the topological structure of DT
(and VD) changes only at discrete moments of
time, which are called topological events. - Topological event involves swapping of the
diagonal in a quadrilateral in the DT - In the VD corresponding edge shrinks to zero and
another edge starts to grow
57Swap condition
58INCIRCLE test
To determine the swap time we have to solve
1. Power metric
2. Euclidean metric
3. Manhattan metric (L)
59Dynamic DT maintenance
- Preprocessing
- Construct the static Delaunay triangulation for
the original site distribution - For every quadrilateral in DT calculate the
potential topological event. Insert all such
events into the priority event queue sorted
according to the time order - Iteration
- Take the next event from the event queue
- Perform the swap operation and update the data
structure - Delete topological events planned for the four
disappearing quadrilaterals from the event queue. - Compute the new topological events for the four
new quadrilaterals and insert them into the queue.
60Algorithm complexity
- Time
- Constructing initial static DT - O(N log N)
- Each swap - O(1)
- Insertion into the priority queue - O(log N)
- Deletion from the queue can be performed in O(1)
- Number of topological events depends on the
trajectories of moving sites. It can vary from
from O(1) up to O(n3) - and even to infinity (in the case of periodic
trajectories) - When sites do not move, but just grow, we
conjecture that the number of topological events
will not be greater than O(N) in general case. - Space
- DT occupies O(N)
- Queue requires O(N) because only one event can be
scheduled for each edge in the DT
61Geometric Data Structures
- Part 2 Grid files and tree variants
-
62Part 2
63Geometric data structures
- Voronoi diagrams
- Regular grid (mesh)
- Grid file
- Quad tree
- k-d tree
- Interval tree
64Trees
- BST search trees, O(n)
- AVL, IPR balanced O(log n)
- B-trees for indexing and searching in data
bases - Grow from the leaf level
- More compact faster search
- B, B - used for indexing, store data in leaves,
nodes are more full
65Operations on spatial trees
- Spatial queries
- Point location
- Stabbing query (which intervals/polygons contain
the point) - Window query which objects (polygons, points)
are intersecting the given window (polygon)
66Spatial queries (2D)
- Point query find an object containing a point
(find Voronoi region containing a point) - Window query find an object overlapping a
rectangle - Spatial join join parts of objects satisfying
some relationship (intersection, adjacency,
containment)
67Interval trees
- Geometric, 1-dimensional tree
- Interval is defined by (x1,x2)
- Split at the middle (5), again at the middle
(3,7), again at the middle (2,8) - All intervals intersecting a middle point are
stored at the corresponding root.
(4,6) (4,8)
(6,9)
(2,4)
(7.5,8.5)
68Interval trees
- Finding intervals by finding x1, x2 against the
nodes - Find interval containing specific value from
the root - Sort intervals within each node of the tree
according to their coordinates - Cost of the stabbing query finding all
intervals containing the specified value is O(log
n k), where k is the number of reported
intervals.
69SAM (Spatial Access Method)
- Constructs the minimal bounding box (mbb)
- Check validity (predicate) on mbb
- Refinement step verifies if actual objects
satisfy the predicate.
70The grid
- Fixed grid
- Stored as a 2D array, each entry contains a link
to a list of points (object) stored in a grid.
a,b
71Page overflow
- Too many points in one grid cell
- Split the cell!
72Rectangle indexing with grids
- Rectangles may share different grid cells
- Duplicates are stored
- Grid cells are of fixed size
73Grid file vs. grid
- In a grid file, the index is dynamically
increased in size when overflow happens. - The space is split by a vertical or a horizontal
line, and then further subdivided when overflow
happens! - Index is dynamically growing
- Boundaries of cells of different sizes are
stores, thus point and stabbing queries are easy
74The quadtree
- Instead of using an array as an index, use tree!
- Quadtree decomposition cells are indexed by
using quaternary B-tree. - All cells are squares, not polygons.
- Search in a tree is faster!
75Grid file
76Linear quadtree
- B index actual references to rectangles are
stored in the leaves, saving more space access
time - Label nodes according to Z or pi order
77Linear quadtree
- Level of detail increases as the number of
quadtree decompositions increases! - Decompositions have indexes of a form
- 00,01,02,03,10,11,12,13, 2,300
- 301 ,302 ,303 ,31 ,32 ,33
- Stores as Bplus tree
78Finer Grid
- R-tree
- Each object is decomposed and stored as a set of
rectangles - Object decomposition larger areas of a grid are
treated as one element - Raster decomposition each smaller element is
stored separately
79R-trees
- R-tree
- Objects are grouped together according to
topological properties not a grid. - More flexibility.
- R tree- Optimizes
- Node overlapping
- Areas covered by the node
- R tree B tree, bounding rectangles do not
intersect
80K-d tree
- Used for point location, k number of the
attributes to perform the search - Geometric interpretation to perform search in
2D space 2-d tree - Search components (x,y) interchange
81K-d tree
d
d
e
c
f
b
f
c
a
e
b
a
82Conclusions
- Numerous applications exist based on Voronoi
diagram methodology and tree/grid based data
structures.