【问题标题】:Explanation of these seven points in finding the closest pair of points这七个点在寻找最近的一对点时的解释
【发布时间】:2021-10-11 22:13:27
【问题描述】:

我试图掌握各种文献中最近对点问题的解释。虽然它们的基本方法都是相同的,即分而治之(分而治之)和线性时间合并(合并/征服),但实际实现在文章和书籍之间略有不同。

线性时间合并是这里的关键,它试图限制要比较的点数。

Kleinberg book 中考虑点的方式与 Wikipedia articleCormen book 中考虑点的方式略有不同。

无论如何,对于后两者,我们可以很好地解释要考虑的点数 herehere,包括许多其他点。

对于手头的问题,请查看these slides(幻灯片32)的Kleinberg book11 point gap 的声明在同一张幻灯片中。更详细的解释可以在第 6 页第 6.2.5.6 节中找到here

但是,在above mentioned slides (幻灯片 32)的同一页面中,我们发现了类似的声明,“如果我们将 12 替换为 7,仍然如此。”

我未能找到对上述主张的解释。

请看下图,

如果我们考虑将红点与右半部分的点进行比较,那么点 右半部分应在阴影半圈内。我试图把极端的 穿蓝色衣服。它们仍然是 |5-(-2)|+1 = 8 和 |5-15|+1 = 11。

我可能在这里遗漏了什么?

【问题讨论】:

  • 好问题。您介意添加一个简短的介绍性段落来提供一些上下文吗?
  • 在顶部添加了几行,希望达到目的。
  • 您不能在每个方格中放置一个实际点并且不违反条件。尝试放置实际点。
  • @ElKamina 看起来我已经开始来想象你的意思了。存在圆时,相邻方格中的点将违反不比 delta 更近的条件。我在绘图软件中实际看到了这一点。有数学方法吗?
  • @MMA 请参阅下面的答案。

标签: algorithm computational-geometry


【解决方案1】:

实际上,您不需要计算下半部分点的距离,因为在您的范围内,如果您考虑根据 y 轴排序的点,那么您从底部开始,只考虑上面区域中的点它。

【讨论】:

  • 如果你对称地运行算法,这是正确的(即左部分和右部分扮演相同的角色)。然而,这不是通常讨论的变体。通常,您选择一侧(左侧或右侧),从下到上遍历 that 一侧的点,然后检查 other 一侧可能靠近当前点。这些点可能高于或低于当前点。
【解决方案2】:

您实际上可以在网格上放置 9 个点。如果以 (0,0) 为中心并假设 delta=1,则在 (-1,-1)、(-1,0)、...、(1,1) 处可以有 9 个点。

证明最多只有9个:

即使在最佳包装下,您也只能有 3 层圆,每层半径为 (1/2),所有圆心都在 2X2 正方形内。

因此,在此之后差异下降到 8。要达到七,您必须假设它不是特殊情况(我忘记了它的技术术语,但它是计算几何中的一个流行假设。它还指出 3 个点不能在同一条线上。它被称为“一般性假设”或类似的东西。

【讨论】:

  • 您介意详细说明最后一部分吗?搜索“一般性假设”没有返回任何内容。我真的很想明白这一点。
  • @MMA 目前我找不到任何参考资料。假设一般来说,一条直线上没有三个点,平面上没有 4 个点,n 超平面上也没有 n+1 个点等。
  • @ElKamina 不,你不需要这个问题的一般性假设。我认为你的解释是不正确的。我们只对左侧(负 x)半正方形中的一个点感兴趣。我们知道该半正方形中的所有其他点与该点的距离不小于 d。我们需要检查另一半。
【解决方案3】:

根据CLRS33.4:

在 l 行的左边有 2 个点(见最左边的 2 个点),在 l 行的右边有 2 个点(见最右边2 点),在 l 线上 4 点(PL 和 PR 都在同一点上)。

2 + 2 + 4 = 8

不包括自我,所以是8 - 1 = 7

例如我们正在计算 PL(l 上的上点)与其他点之间的距离,让我们逆时针计算:

  • 第一个点 (PL) 是最左边的一个,
  • 第二个(PL)在左下角,
  • 3rd (PL) 是 l 的底点,
  • 4th (PR) 也是 l 的底点,
  • 5th (PR) 是右下角,
  • 6th (PR) 是右上角,
  • 7th (PR) 是 l 的上点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    相关资源
    最近更新 更多