algorithms on grids
DESCRIPTION
Algorithms on grids. Natasha Gelfand. Geometry Seminar Fall 2006. Grids in computer science. Graphics and vision Collision detection, point location. Simulation. Grids in computer science. Grids for geometric proximity. Isolate and localize interesting events Proximity is local - PowerPoint PPT PresentationTRANSCRIPT
10/2/2006 1
Algorithms on grids
Natasha GelfandGeometry Seminar
Fall 2006
10/2/2006 Geometry Seminar: Algorithms on Grids 2
Grids in computer science
10/2/2006 Geometry Seminar: Algorithms on Grids 3
Grids in computer science• Graphics and vision
• Collision detection, point location
• Simulation
10/2/2006 Geometry Seminar: Algorithms on Grids 4
Grids for geometric proximity• Isolate and localize interesting
events– Proximity is local
• “Uniform” grids– Closest pair, k-Minimum enclosing disk
• Adaptive grids– quadtrees
10/2/2006 Geometry Seminar: Algorithms on Grids 5
Closest pair
• Given: n points in the plane
• Return pair of pointsrealizing
10/2/2006 Geometry Seminar: Algorithms on Grids 6
• Computing the grid takes linear time
Grids for points
10/2/2006 Geometry Seminar: Algorithms on Grids 7
Sub-problem• Given a set P and a distance r, verify in
linear time if CP(P)<r or CP(P) > r
– Insert points sequentially
– If CP(P) < r, p, q are in the same orneighboring cells
– Can we search a cellin constant time?
r
10/2/2006 Geometry Seminar: Algorithms on Grids 8
Algorithm• If some cell contains more than 9 points,
then CP(P)<r
• Algorithm:– Insert points into the grid– If cell(p) contains more than
9 points, return CP(P) < r
10/2/2006 Geometry Seminar: Algorithms on Grids 9
Algorithm• If some cell contains more than 9 points,
then CP(P)<r
• Algorithm:– Insert points into the grid– If cell(p) contains more than
9 points, return CP(P) < r
– Otherwise, compute
• Constant time per point,running time O(n)
r
10/2/2006 Geometry Seminar: Algorithms on Grids 10
Closest pair• Permute points P=<p1, p1, … , pn>
• Let ri = CP({p1, …, pi})– Can check if ri<ri-1 in linear time
• Good case: ri = ri-1
– Grid is already built, check in O(1) time
• Bad case: ri < ri-1
– Rebuild grid, O(i) time
• Trivial bound: O(nk), when closest pair changes k times
10/2/2006 Geometry Seminar: Algorithms on Grids 11
Analysis• Let Xi = 1 if ri · ri-1, and 0 otherwise
• Running time:
10/2/2006 Geometry Seminar: Algorithms on Grids 12
Analysis• Bound Pr[Xi = 1] = Pr[ri < ri-1]
– Likelihood that pi realizes CP(Pi)
• Expected running time
10/2/2006 Geometry Seminar: Algorithms on Grids 13
k-Enclosing minimum disk• Disk of minimum radius that contains k
points
• Brute force O(nk)
• 2-Opt algorithm: r(P,k) · 2ropt(P,k)
k=3
k=4
10/2/2006 Geometry Seminar: Algorithms on Grids 14
Non-uniform grid• Partition P into horizontal strips with at most k/4
points in each strip– Recursive median partitioning – O(n/k) strips
G
Running time:
T(n) = n + 2T(n/2)Stop at n < k/4
O(nlog(n/k))
10/2/2006 Geometry Seminar: Algorithms on Grids 15
Finite centers• Claim: Dopt(P,k) contains at least one intersection
point of G• Pf: By contradiction:
At most k/2 points
Dopt(P,k)
k/4 points
k/4 pointsk points
10/2/2006 Geometry Seminar: Algorithms on Grids 16
Algorithm• For each grid intersection point g2G
– Compute smallest circle centered at p with k points– k-th order statistic of {||p, g||}
– Expected time O(n)
– Return the best of (n/k)2 candidates
• Running time: O(n(n/k)2)
10/2/2006 Geometry Seminar: Algorithms on Grids 17
Correctness
• 2-Opt: r(P,k) · 2ropt(P,k)