Lecture 32: Center Selection
Center Selection (CS): Given n towns, place k malls, minimizing the worst driving distance. The CS decision problem can be written: “Given n points, a radius r, and an integer k, can we place k disks of radius r so that all points are covered?”
dist(*,*) must satisfy:
- dist(s, s) = 0 (reflexive)
- dist(s, t) = dist(t, s) (symmetry)
- dist(s, u) <= dist(s, t) + dist(t, u) (triangle inequality)
CSdecision <=p CSoptimization: Optimization is NP-hard!
Suppose that we know r and want to find a solution, i.e. choosing the centers. If we already know one of the centers, uf we were to use radius 2r then any point within distance r can be used as the center, and all points will still be covered. So, pick any point s in the disk; the circle with center s and radius 2r covers all the same points.
If there is a technique that produce an answer where radius <= (2 – epsilon)r*, then p = NP. In the plane, using Euclidean distance, if radius <= (1.89 …)r*, then P = NP.
Greedy Algorithm: Let S be the set of sites and C be the set of centers. We are given r.
C = {}
while S != {}
choose s in S
C = C + {s}
delete all s’ in S within 2r of s
end
if |C| <= k return C
else report “No solution for radius r possible”
Claim: “If there is a solution using k radius-r disks, then the algorithm returns a solution using <= k disks of radius 2r.
Each s chosen by the algorithm is in some disk (c*, r) for some c*. Then the circle (s, 2r) covers all the same points covered by (c*, r) plus some more. Thus, later choices of s are not covered by the circle (c*, r). Each s chosen is covered by a different c* circle. There are at most |c*| = k choices for s. The algorithm produces <= k disks of radius 2r covering all points.
Method: Use a binary search to find the right radius. First, box the set of points and find the maximum seperation between any 2 points. This is R and r <= R. We can actually do better! During the algorithm we need a point at distance >= 2r from chosen site s. Always choose the fathest point. For later steps, choose si farthest from existing centers.
New algorithm:
Select any site s in S, let C = {s}
while |c| < k
select s in S that maximizes that distance from s to any point in C
C = C + {s}
end
return C
Claim: “If there’s a solution (C*r, r) where |C*r|=k, then the algorithm returns a solution (C, 2r) where |c| = k.
Consider the previous algorithm. We know there is an optimal value for r. Let’s use that r. Each s that is chosen in the new algorithm would be a valid s in the previous algorithm. This holds until we eliminate all points in S, therefore we produce a cover (C, 2r).
Credit to Kevin Canini for the notes!
| This entry was posted on Friday, April 15th, 2005 at 12:07 pm and is tagged with triangle inequality, greedy algorithm, lt 2, lt 1, selection center, decision problem, disk c, binary search, circle c, seperation, driving distance, reflexive, epsilon, radius, symmetry, malls, np, optimization, choices, nbsp. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback. |
Leave a Reply