<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Placement of circle over points</title>
	<atom:link href="http://www.redcode.nl/blog/2010/01/placement-of-circle-over-points/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.redcode.nl/blog/2010/01/placement-of-circle-over-points/</link>
	<description>Random</description>
	<lastBuildDate>Sat, 04 Sep 2010 01:24:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: will</title>
		<link>http://www.redcode.nl/blog/2010/01/placement-of-circle-over-points/comment-page-1/#comment-102</link>
		<dc:creator>will</dc:creator>
		<pubDate>Wed, 03 Feb 2010 13:23:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.redcode.nl/?p=323#comment-102</guid>
		<description>You know I emailed you the code :)

O(n) if you sweep.  In the code I sent, I reordered the sweep to give better best-case performance.</description>
		<content:encoded><![CDATA[<p>You know I emailed you the code :)</p>
<p>O(n) if you sweep.  In the code I sent, I reordered the sweep to give better best-case performance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Krystof</title>
		<link>http://www.redcode.nl/blog/2010/01/placement-of-circle-over-points/comment-page-1/#comment-98</link>
		<dc:creator>Krystof</dc:creator>
		<pubDate>Tue, 02 Feb 2010 17:14:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.redcode.nl/?p=323#comment-98</guid>
		<description>I believe it can work like this:

Let&#039;s denote the radius of the wanted circle R, the points we want to encapsulate will be &quot;given points&quot;, number of given points is N. Also let us assume that all the given points are distinct.

Find a set of points that have distance R from at least two given points. Then one of the optimal circles will have center in one of these points. There is O(N^2) of such points and evaluating each such point takes O(N). This gives us O(N^3) algorithm.
(When we find no such point, we can obviously encapsulate at most one point, and some center is trivial to find.)

Why it works?

If we have a circle encapsulating M points (M&gt;1), there will be a circle encapsulating at least M points with center that lies R far from two points.

[Proof:
First for R-distance from one point:

If we have a circle encapsulating M points whose center doesn&#039;t lie R far from any point, we can keep moving it in any direction as long as no point falls out of it. And a point falls out of it only when it was R far from it and now we are moving it further.

For the second point it is similar -- we are R far from one point (P), and we can move the center point on the circle with center in P and diameter R until some other point slips from our encapsulating circle (to have such point, we need the M&gt;1 condition). This again happens only when a point that was R-far from the center point gets a bit further.]

BTW the clique finding is NP-complete so in some cases it can be worse than the heatmap algorithm (unless it for some reason isn&#039;t NPC for this kind of graphs, or 122 points is just too little for it to happen)</description>
		<content:encoded><![CDATA[<p>I believe it can work like this:</p>
<p>Let&#8217;s denote the radius of the wanted circle R, the points we want to encapsulate will be &#8220;given points&#8221;, number of given points is N. Also let us assume that all the given points are distinct.</p>
<p>Find a set of points that have distance R from at least two given points. Then one of the optimal circles will have center in one of these points. There is O(N^2) of such points and evaluating each such point takes O(N). This gives us O(N^3) algorithm.<br />
(When we find no such point, we can obviously encapsulate at most one point, and some center is trivial to find.)</p>
<p>Why it works?</p>
<p>If we have a circle encapsulating M points (M>1), there will be a circle encapsulating at least M points with center that lies R far from two points.</p>
<p>[Proof:<br />
First for R-distance from one point:</p>
<p>If we have a circle encapsulating M points whose center doesn't lie R far from any point, we can keep moving it in any direction as long as no point falls out of it. And a point falls out of it only when it was R far from it and now we are moving it further.</p>
<p>For the second point it is similar -- we are R far from one point (P), and we can move the center point on the circle with center in P and diameter R until some other point slips from our encapsulating circle (to have such point, we need the M>1 condition). This again happens only when a point that was R-far from the center point gets a bit further.]</p>
<p>BTW the clique finding is NP-complete so in some cases it can be worse than the heatmap algorithm (unless it for some reason isn&#8217;t NPC for this kind of graphs, or 122 points is just too little for it to happen)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
