【问题标题】:Is it possible to find the closest point to all points in subquadratic time?是否有可能在次二次时间内找到最接近所有点的点?
【发布时间】:2017-01-28 07:17:29
【问题描述】:

一个算法问题。

输入:

  • 数据点列表X
  • 数据点 dist(x,y) 的度量函数需要 O(1) 时间来评估并遵守三角不等式

是否有一种算法可以返回数据点向量Y,使得Y[i]X 中与X[i] 在次二次时间内最近的点?

显然这在 O(n^2) 中是可能的,因为您可以直接检查每个点。我想知道是否有可能利用三角不等式来改善这一点。我也会对具有可证明边界的近似算法感兴趣(例如,Y[i] 之类的最小距离不超过 (1 + log(n)) 乘以与X[i] 的距离)。

【问题讨论】:

  • 澄清一下:Y[i] 应该是最接近X[i] 的点,而不是X[i] 本身。否则Y = X 将是完美的解决方案:p

标签: algorithm distance


【解决方案1】:

没有这样的算法。考虑一个度量,其中除了一对点之外的所有点都在距离 1 处。如果不咨询其特定的距离 oracle 条目,就无法找到该对,这在最坏的情况下需要 Omega(n^2) 查询。

Cover trees 可用于解决精确邻居问题。时间限制取决于指标的所谓加倍维度

【讨论】:

  • 有趣。您对 R^d 中的欧几里得度量的情况有任何直觉吗?我认为你只能在 n > d。
  • @Jordan 没有相关经验,抱歉
猜你喜欢
  • 1970-01-01
  • 2015-11-07
  • 2016-04-20
  • 2023-01-02
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
相关资源
最近更新 更多