最接近的一对

时间:2012-09-15 12:03:52

标签: algorithm geometry computational-geometry graph-algorithm

http://en.wikipedia.org/wiki/Closest_pair_of_points_problem 我们可以看到它提到的最多6个点最接近另一半的点,可以表示如下图: enter image description here

我的问题是针对点P1和点P2,到红点的距离将超过sqrt(2)* d,为什么它是解决方案的一部分?为什么不是最多4个点最接近P而不是最多6个点?感谢。

3 个答案:

答案 0 :(得分:8)

P1 P2 不是解决方案的一部分,但必须在解决方案的路上检查它们,因为算法会检查框中的所有点, P1 P2 在框中。

请注意, Q 不存在这样的要点,因为假设图中右半部分之间的最小距离为 d

编辑添加:您似乎认为维基百科的文章提出了这样的声明:

  • 该行右侧最多可能有6个点位于 P 的距离 d 之内。

这种说法是错误的。但该文章没有提出这样的主张。相反,它提出了两个单独的声明,两者都是正确的:

  1. 行右侧所有位于 P 距离 d 之内的点都在框内。
  2. 盒子里最多可以有6个点。

答案 1 :(得分:2)

我们只计算可以位于右侧d x 2d矩形中的最大点数。由于任何两个点都被约束为具有最小距离d,因此我们可以在满足此约束的同时在矩形中放置最多6个点,如图所示。

请注意,右侧与P距离d的点应位于以P为中心并且半径为d的圆的圆弧段内。此细分中最多可以有4个点。但是,找到段内的点数比找到矩形内的点数要复杂得多。因此,我们使用矩形代替,并且需要额外花费额外搜索最多2个额外点。

答案 2 :(得分:2)

界限仅对复杂性估计很重要。代码方面,您可以在距离dRmin内上下扫描。这里的界限表明你在每次这样的扫描中最多会看到6个点,这就是O(1)。