Re: smallest disk covering a set of points
From: Paul Hsieh (qed_at_pobox.com)
Date: 05/14/04
- Next message: Irrational Number: "Re: how much disk space do you use? (long)"
- Previous message: John T Lowry: "Re: smallest disk covering a set of points"
- In reply to: Suzi Bevel: "smallest disk covering a set of points"
- Next in thread: Suzi Bevel: "Re: smallest disk covering a set of points"
- Reply: Suzi Bevel: "Re: smallest disk covering a set of points"
- Reply: Carlos Moreno: "Re: smallest disk covering a set of points"
- Reply: Paul Hsieh: "Re: smallest disk covering a set of points"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 14 May 2004 10:40:47 -0700
Suzi Bevel <sb@example.com> wrote:
> Is there a fast algorithm for finding the smallest disk that covers a set
> of points in the plane?
>
> My idea has proved very inefficient: I found the centre of mass, shrunk a
> circle till I hit the outermost point, then simultaneously shrank the
> radius and moved the centre closer to that outermost point, keeping it on
> the circumference, until I hit a second point somewhere with the shrinking
> circumference, and that's where I stopped. Apart from giving horrid
> expressions for the centre and radius, I don't even know whether this
> process works.
I dunno -- I kind of doubt it. (Don't they teach you harvard weenies
about convex hulls?)
This is what I would do:
Step 1: Find the minimal set of points which generates the convex hull
of the set of points. I.e., any point on the *inside* of the convex
hull, just remove it. I think there are well known linear time
algorithms for this. (Also remove points on the interiors of the
convex hull edge -- so no three points remaining are colinear.)
Step 2: Choose the first of the remaining points, and construct the
circle. We call these three points the active points.
Step 3: Remove any points inside this circle. If there are no points
outside the circle we are done, otherwise proceed to step 4.
Step 4: Choose any random point outside the circle, and call it p.
Substitute p for each one of the three points in turn then perform
step 3 which each of the three possible circles. If the algorithm
does not terminate, we know that one of the original three points will
be eliminated. When that happens, we can replace it with p and return
to the beginning of this step (step 4.)
Which looks like a linear time minimum circle finding algorithm to me.
-- Paul Hsieh http://www.pobox.com/~qed/ http://bstring.sf.net/
- Next message: Irrational Number: "Re: how much disk space do you use? (long)"
- Previous message: John T Lowry: "Re: smallest disk covering a set of points"
- In reply to: Suzi Bevel: "smallest disk covering a set of points"
- Next in thread: Suzi Bevel: "Re: smallest disk covering a set of points"
- Reply: Suzi Bevel: "Re: smallest disk covering a set of points"
- Reply: Carlos Moreno: "Re: smallest disk covering a set of points"
- Reply: Paul Hsieh: "Re: smallest disk covering a set of points"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|