Voronoi Diagram Sasanka Roy Indian Institute of Science Education - - PowerPoint PPT Presentation
Voronoi Diagram Sasanka Roy Indian Institute of Science Education - - PowerPoint PPT Presentation
Voronoi Diagram Sasanka Roy Indian Institute of Science Education and Research Organization of the Talk Organization of the Talk 1. Preliminaries 2. Generic Definition 3. Some Technical Details 4. Conclusion Organization of the Talk 1.
Organization of the Talk
Organization of the Talk
- 1. Preliminaries
- 2. Generic Definition
- 3. Some Technical Details
- 4. Conclusion
Organization of the Talk
- 1. Preliminaries
- 2. Generic Definition
- 3. Some Technical Details
- 4. Conclusion
What are we going to talk about?
What are we going to talk about?
We have some data
What are we going to talk about?
We have some data Geometric Data
What are we going to talk about?
We have some data Geometric Data Geometric Data ????
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ????
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points,
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments,
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what?????
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions Closest points to the line segments
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions Closest points to the line segments
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions Closest points to the line segments Point inside the simple polygon
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions Closest points to the line segments Point inside the simple polygon
What are we going to talk about?
We have some data Geometric Data Geometric Data ???? What do I mean ???? I mean: we have points, line segments, polygons etc.
Then what????? We want to get answers to the specific questions Closest points to the line segments Point inside the simple polygon
what are all these?
Can you be a bit Practical??
Planar Point Location
Planar Point Location
Which state has the site/point with Latitude= 26° 11' 0'' N Longitude= 91° 44' 0''E
Planar Point Location
Guwahati in Assam
Which state has the site/point with Latitude= 26° 11' 0'' N Longitude= 91° 44' 0''E
Planar Point Location
Can we view States as simple polygon?
Guwahati in Assam
Which state has the site/point with Latitude= 26° 11' 0'' N Longitude= 91° 44' 0''E
Planar Point Location
Can we view States as simple polygon? simple polygon: Closed region whose boundary is formed by non-intersecting line segments
Guwahati in Assam
Which state has the site/point with Latitude= 26° 11' 0'' N Longitude= 91° 44' 0''E
Planar Point Location
Can we view States as simple polygon? Yes simple polygon: Closed region whose boundary is formed by non-intersecting line segments
Guwahati in Assam
Which state has the site/point with Latitude= 26° 11' 0'' N Longitude= 91° 44' 0''E
28
Given a planar subdivision S of O(n) vertices/faces/edges
Formally Planar Point Location
29
Given a planar subdivision S of O(n) vertices/faces/edges
S
Formally Planar Point Location
30
Given a planar subdivision S of O(n) vertices/faces/edges
S
vertex
Formally Planar Point Location
31
Given a planar subdivision S of O(n) vertices/faces/edges
S
face vertex
Formally Planar Point Location
32
Given a planar subdivision S of O(n) vertices/faces/edges
S
face edge vertex
Formally Planar Point Location
33
Given a planar subdivision S Preprocess S such that:
S
Formally Planar Point Location
34
Given a planar subdivision S Preprocess S such that: For any query point q,
q S
Formally Planar Point Location
35
Given a planar subdivision S Preprocess S such that: For any query point q
R q
The region/face R containing q can be reported efficiently.
S
Formally Planar Point Location
36
Given a planar subdivision S Preprocess S such that: For any query point q
R q
The region/face R containing q can be reported efficiently.
S
Formally Planar Point Location
37
R q S
Formally Planar Point Location
38
Preprocessing Time:
R q S
Formally Planar Point Location
39
Preprocessing Time:
R q S
Preprocessing space requirement:
Questions?
40
Preprocessing Time:
R q S
Preprocessing space requirement: Query Time:
Questions?
41
Preprocessing Time:
R q S
Preprocessing space requirement: Query Time:
O(n)
Questions?
42
Preprocessing Time:
R q S
Preprocessing space requirement: Query Time:
O(n) O(n)
Questions?
43
Preprocessing Time:
R q S
Preprocessing space requirement: Query Time:
O(n) O(n) O(log n)
Questions?
Back to Voronoi Diagram
Subhas C. Nandy Advanced Computing and Microelectronics Unit Indian Statistical Institute Kolkata 700108
Organization of the Talk
- 1. Preliminaries
- 2. Generic Definition
- 3. Some Technical Details
- 4. Conclusion
Thank you Google
Viewpoint 1: Locate the nearest dentistry. Viewpoint 2: Find the ‘service area’ of potential customers for each dentist.
Thank you Google
Viewpoint 1: Locate the nearest dentistry. Viewpoint 2: Find the ‘service area’ of potential customers for each dentist.
Thank you Google
I am here.
Formal Definition
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane.
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane.
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently q
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently q How to solve this efficiently?
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that q How to solve this efficiently?
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane.
- each cell contains exactly one site,
- if a point q lies in a cell containing pi then
d(q, pi ) < d(q, pj ) for all pi ∈ P, j ≠ i. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that q How to solve this efficiently?
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that q How to solve this efficiently?
- each cell contains exactly one site,
- if a point q lies in a cell containing pi then
d(q, pi ) < d(q, pj ) for all pi ∈ P, j ≠ i.
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that Voronoi diagram of P: V(P): q How to solve this efficiently?
- each cell contains exactly one site,
- if a point q lies in a cell containing pi then
d(q, pi ) < d(q, pj ) for all pi ∈ P, j ≠ i.
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that Voronoi diagram of P: V(P): q This is Planar Subdivision so what can we do? How to solve this efficiently?
- each cell contains exactly one site,
- if a point q lies in a cell containing pi then
d(q, pi ) < d(q, pj ) for all pi ∈ P, j ≠ i.
Formal Definition
P → A set of n distinct points (Geometric Objects) in the plane. Preprocess P such that closest point x ∈ P of any query point q can be found efficiently Subdivision of the plane into n cells such that Voronoi diagram of P: V(P): q This is Planar Subdivision so what can we do? Planar point location How to solve this efficiently?
- each cell contains exactly one site,
- if a point q lies in a cell containing pi then
d(q, pi ) < d(q, pj ) for all pi ∈ P, j ≠ i.
Computing the Voronoi Diagram
Input: A set of points on a line (special case)
p1 p2
Computing the Voronoi Diagram
Input: A set of points on a line (special case)
p1 p2
Output: A partitioning of the plane into regions of nearest neighbors
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2
half plane containing
p2 = V(p2)
half plane containing
p1 = V(p1)
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2
half plane containing
p2 = V(p2)
half plane containing
p1 = V(p1)
Closest point of x ∈ V(p2) =
x
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2
half plane containing
p2 = V(p2)
half plane containing
p1 = V(p1)
Closest point of x ∈ V(p2) = p2
x
p3
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2
p3
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn
p3
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn
What are these lines?
p3
Computing the Voronoi Diagram
Input: A set of points on a line (special case) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn
What are these lines? Perpendicular bisector of line segment [ pi pi+1 ]
Computing the Voronoi Diagram
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e )
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn
Find Perpendicular bisector li of line segment [ pi pi+1 ]
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Find Perpendicular bisector li of line segment [ pi pi+1 ]
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Let ai be the intersection point of li and [ pi pi+1 ] Find Perpendicular bisector li of line segment [ pi pi+1 ]
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Let ai be the intersection point of li and [ pi pi+1 ]
a1 a2 an-1
Find Perpendicular bisector li of line segment [ pi pi+1 ]
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Let ai be the intersection point of li and [ pi pi+1 ] Sort ai in increasing x-coordinate
a1 a2 an-1
Find Perpendicular bisector li of line segment [ pi pi+1 ]
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Let ai be the intersection point of li and [ pi pi+1 ] Sort ai in increasing x-coordinate
a1 a2 an-1
Find Perpendicular bisector li of line segment [ pi pi+1 ] This gives us Voronoi Diagram V(P)
p3
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
a l i n e ( s p e c i a l c a s e ) Output: A partitioning of the plane into regions of nearest neighbors
p1 p2 pn-1 pn l1 l2 ln-1
Let ai be the intersection point of li and [ pi pi+1 ] Sort ai in increasing x-coordinate
a1 a2 an-1
Find Perpendicular bisector li of line segment [ pi pi+1 ] This gives us Voronoi Diagram V(P)
V(p1) V(p2) V(p3) V(pn-1) V(pn)
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1 a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
Given a query point p[x,y]
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
Given a query point p[x,y] p[x,y]
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
Given a query point p[x,y] What we have to do? p[x,y]
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
Given a query point p[x,y] What we have to do? p[x,y] Locate x correctly between ai and ai+1
p3
Query Answering
p1 p2 pn-1 pn l1 l2 ln-1
We have ai‘s sorted in increasing x-coordinate
a1 a2 an-1 V(p1) V(p2) V(p3) V(pn-1) V(pn)
Given a query point p[x,y] What we have to do? p[x,y] Locate x correctly between ai and ai+1 We can forget about y coordinate
Time Complexity analysis
Time Complexity analysis
Preprocessing Time =O(n log n)
Time Complexity analysis
Preprocessing Time =O(n log n) Query Time =O(log n)
Computing the Voronoi Diagram
p3
Computing the Voronoi Diagram
p1 p2 p4
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors
p3 p1 p2 p4
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one?
p3 p1 p2 p4
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one? use perpendicular bisector argument
p3 p1 p2 p4
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one? use perpendicular bisector argument
p3 p1 p2 p4
Find region for p1
p3
Computing the Voronoi Diagram
p1 p2 p4
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one? use perpendicular bisector argument
V(p1)
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
]
p3
Computing the Voronoi Diagram
p1 p2 p4
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one? use perpendicular bisector argument
V(p1)
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
]
any point x here p1 is closer than p2
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one?
p2 p1
use perpendicular bisector argument
p3 p4 V(p1)
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 4
]
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one?
p2 p1
use perpendicular bisector argument
p3 p4 V(p1)
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 4
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 3
]
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one?
p2 p1
use perpendicular bisector argument
p3 p4 V(p1)
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 4
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 3
] F i n d V (p
1
)
Computing the Voronoi Diagram
I n p u t : A s e t
- f
p
- i
n t s
P
= (p
1
, p
2
, . . . , p
n
)
- n
2 D Output: A partitioning of the plane into regions of nearest neighbors Find cell for each point one by one?
p2
use perpendicular bisector argument
p3 p4
Find region for p1 P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 2
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 4
] P e r p e n d i c u l a r b i s e c t
- r
- f
[p
1p 3
] F i n d V (p
1
)
p1 V(p1)
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
H
- w
d
- w
e f i n d V (p
1
) ?
Computing the Voronoi Diagram
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k
p3
Computing the Voronoi Diagram
p1 p2 p4 V(p1)
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k W h a t i s t h i s r e g i
- n
?
p3
Computing the Voronoi Diagram
p1 p2 p4 V(p1)
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k H a l f
- p
l a n e , s a y H
1
, c
- n
t a i n i n g p
1
W h a t i s t h i s r e g i
- n
?
p3
Computing the Voronoi Diagram
p1 p2 p4 V(p1)
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k H a l f
- p
l a n e , s a y H
1
, c
- n
t a i n i n g p
1
W h a t i s t h i s r e g i
- n
? for any point x here, p1 is closer than p2
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k W h a t i s t h i s r e g i
- n
?
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? H a l f
- p
l a n e , s a y H
2
, c
- n
t a i n i n g p
1
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? H a l f
- p
l a n e , s a y H
2
, c
- n
t a i n i n g p
1
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k for any point x here, p1 is closer than p4
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? H a l f
- p
l a n e , s a y H
2
, c
- n
t a i n i n g p
1
H
- w
d
- w
e f i n d V (p
1
) ? G
- b
a c k for any point x here, p1 is closer than p4
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
?
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? H a l f
- p
l a n e , s a y H
3
, c
- n
t a i n i n g p
1
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? H a l f
- p
l a n e , s a y H
3
, c
- n
t a i n i n g p
1
for any point x here, p1 is closer than p3
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
?
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
? for any point x here, p1 is closer than p2 and p4
Computing the Voronoi Diagram
p2 p1 p3 p4 V(p1)
W h a t i s t h i s r e g i
- n
?
H1 ∩ H2
for any point x here, p1 is closer than p2 and p4
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
W h a t i s V (p
1
) ?
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
W h a t i s V (p
1
) ?
H1 ∩ H2 ∩ H3
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
W h a t i s V (p
1
) ?
H1 ∩ H2 ∩ H3
I n g e n e r a l , w h a t w
- u
l d b e V (p
1
) ?
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
W h a t i s V (p
1
) ?
H1 ∩ H2 ∩ H3
I n g e n e r a l , w h a t w
- u
l d b e V (p
1
) ? I n t e r s e c t i
- n
- f
( n
- 1
) h y p e r p l a n e s
Computing the Voronoi Diagram
p2 p3 p4 p1 V(p1)
W h a t i s V (p
1
) ?
H1 ∩ H2 ∩ H3
I n g e n e r a l , w h a t w
- u
l d b e V (p
1
) ? I n t e r s e c t i
- n
- f
( n
- 1
) h y p e r p l a n e s
H1 ∩ H2 ... ∩ ∩ Hn-1
Time complexity of this Brute Force Algorithm
Time complexity of this Brute Force Algorithm
I n t e r s e c t i
- n
- f
( n
- 1
) h y p e r p l a n e s c a n b e f
- u
n d i n O ( n l
- g
n ) t i m e
Time complexity of this Brute Force Algorithm
I n t e r s e c t i
- n
- f
( n
- 1
) h y p e r p l a n e s c a n b e f
- u
n d i n O ( n l
- g
n ) t i m e T
- t
a l t i m e c
- m
p l e x i t y :
Time complexity of this Brute Force Algorithm
I n t e r s e c t i
- n
- f
( n
- 1
) h y p e r p l a n e s c a n b e f
- u
n d i n O ( n l
- g
n ) t i m e T
- t
a l t i m e c
- m
p l e x i t y : O(n2 log n)
Time Complexity of Best Algorithms for Voronoi Diagram
Time Complexity of Best Algorithms for Voronoi Diagram
Voronoi Diagram can be constructed in O(n log n) time
Time Complexity of Best Algorithms for Voronoi Diagram
Voronoi Diagram can be constructed in O(n log n) time There are well-known algorithms like:
- 1. Fortune’s Line Sweep
- 2. Divide and Conquer
- 3. Lifting points in 3D
Size of the Voronoi Diagram
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible):
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible): n, where n is number of sites
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible): Trivial Upper bound (Biggest Size possible): n, where n is number of sites
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible): Trivial Upper bound (Biggest Size possible): n, where n is number of sites O(n log n )
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible): Trivial Upper bound (Biggest Size possible): n, where n is number of sites Ultimate Upper Bound (Biggest Size possible): O(n log n )
Size of the Voronoi Diagram
Size means: number of vertices, edges and faces Lower bound (Smallest Size possible): Trivial Upper bound (Biggest Size possible): n, where n is number of sites Ultimate Upper Bound (Biggest Size possible): O(n log n ) O(n)
Why to bother about Size?
Why to bother about Size?
Voronoi Diagram is
Why to bother about Size?
Voronoi Diagram is Planar Subdivision
Why to bother about Size?
Voronoi Diagram is Want to do Planar point Location to get closest point Efficiently Planar Subdivision
Why to bother about Size?
Voronoi Diagram is Want to do Planar point Location to get closest point Efficiently Preprocessing Time: Preprocessing space requirement: Query Time:
O(n) O(n) O(log n)
Planar Subdivision For Planar point Location:
Why to bother about Size?
Voronoi Diagram is Want to do Planar point Location to get closest point Efficiently Preprocessing Time: Preprocessing space requirement: Query Time:
O(n) O(n) O(log n)
Planar Subdivision For Planar point Location:
But there is a big if, What is that if?
Why to bother about Size?
Voronoi Diagram is Want to do Planar point Location to get closest point Efficiently Preprocessing Time: Preprocessing space requirement: Query Time:
O(n) O(n) O(log n)
Planar Subdivision For Planar point Location: The size of planar subdivision=
But there is a big if, What is that if?
Why to bother about Size?
Voronoi Diagram is The size of planar subdivision= Want to do Planar point Location to get closest point Efficiently Preprocessing Time: Preprocessing space requirement: Query Time:
O(n) O(n) O(log n) But there is a big if, What is that if? O(n)
Planar Subdivision For Planar point Location:
Summary
P → A set of n distinct points (Geometric Objects) in the plane.
Summary
P → A set of n distinct points (Geometric Objects) in the plane. We can Preprocess P such that closest point x ∈ P of any query point q can be found in O(log n) time Using Planar point location
q x
Summary
P → A set of n distinct points (Geometric Objects) in the plane. We can Preprocess P such that closest point x ∈ P of any query point q can be found in O(log n) time Using Planar point location
q x
Preprocess structure is called Voronoi Diagram V(P)
Summary
P → A set of n distinct points (Geometric Objects) in the plane. We can Preprocess P such that closest point x ∈ P of any query point q can be found in O(log n) time Using Planar point location
q x
Preprocess structure is called Voronoi Diagram V(P) V(P) can be constructed in O( n log n) time and can be stored in O(n) space
Other Kind of Voronoi Diagrams
Furthest Point Voronoi Diagram
Furthest Point Voronoi Diagram
FV(P): the partition of the plane formed by the farthest point Voronoi regions, their edges, and vertices
Furthest Point Voronoi Diagram
FV(P): the partition of the plane formed by the farthest point Voronoi regions, their edges, and vertices V-1(pi): the set of point of the plane farther from pi than from any other site
Voronoi diagram for line segments
Voronoi diagram for line segments
Moving a disk from s to t in the presence of barriers
Organization of the Talk
- 1. Preliminaries
- 2. Generic Definition
- 3. Some Technical Details
- 4. Conclusion
Organization of the Talk
- 1. Preliminaries
- 2. Generic Definition
- 3. Some Technical Details
- 4. Conclusion
Conclusion
Conclusion
Voronoi Diagram is a very Fundamental Interesting Geometric Structure
Conclusion
Voronoi Diagram is a very Fundamental Interesting Geometric Structure This has wide range of application to solve different problem in Geometry, Facility Location, Engineering Sciences, Biological Sciences, Nano Sciences to name a few
Conclusion
Voronoi Diagram is a very Fundamental Interesting Geometric Structure This has wide range of application to solve different problem in Geometry, Facility Location, Engineering Sciences, Biological Sciences, Nano Sciences to name a few The Applications of this structure are so wide that
Conclusion
Voronoi Diagram is a very Fundamental Interesting Geometric Structure This has wide range of application to solve different problem in Geometry, Facility Location, Engineering Sciences, Biological Sciences, Nano Sciences to name a few The Applications of this structure are so wide that There is dedicated Symposiums on Voronoi Diagram:
INTERNATIONAL SYMPOSIUM on VORONOI DIAGRAMS in science and engineering