算法问题。
输入:
X
dist(x,y)
的度量函数,需要O(1)时间来评估和服从三角不等式是否存在可以返回数据点向量Y
的算法,以便Y[i]
是次要时间内X
到X[i]
中的最近点?
显然这在O(n ^ 2)中是可能的,因为你可以直接检查每个点。我想知道是否有可能利用三角不等式来改善这一点。我也会对具有可证明边界的近似算法感兴趣(例如Y[i]
之类的距离不超过X[i]
的距离(1 + log(n))乘以最小值。
答案 0 :(得分:3)
没有这样的算法。考虑一个度量,其中除了一对点之外的所有点都在距离1处。如果没有查询其特定距离oracle条目,则无法找到该对。在最坏的情况下,这需要Omega(n ^ 2)查询。
Cover trees可用于解决确切的邻居问题。时间限制取决于度量的所谓倍增维度。