所以想象我有一个向量每个维度. 让我们打电话给他们,, 和. 现在的想法是找到的邻居(打电话给他们),在一个半径的球内. 所以,.
笔记:是欧几里得范数。
天真地可以计算所有之间的距离是针对特定的, 然后对它们进行排序,只保留小于的元素. 这对于大型计算来说是昂贵的和.
所以问题是我如何有效地计算邻居?
所以想象我有一个向量每个维度. 让我们打电话给他们,, 和. 现在的想法是找到的邻居(打电话给他们),在一个半径的球内. 所以,.
笔记:是欧几里得范数。
天真地可以计算所有之间的距离是针对特定的, 然后对它们进行排序,只保留小于的元素. 这对于大型计算来说是昂贵的和.
所以问题是我如何有效地计算邻居?
我怀疑您可以利用以下事实来逃避信息的一部分
您可以通过以下方式使用它:说,你想要. 如果和相距四个单位(不是邻居),并且和距离一个单位,那么和至少三个单位相距 - 也不是邻居。我不需要计算之间的距离和来确定。
这意味着可以通过仅知道距离矩阵条目的子集来使用这种“反向三角不等式”来确定邻域
问题是:您需要知道什么子集才能做出所有决定?如果确定最小子集的算法是 NP,我不会感到很惊讶,但人们可能会想出一种更便宜的算法,从确定哪些条目不需要计算,然后计算其他一些当前未知的条目,并迭代直到每个条目你要么计算了它的值,要么确定你不需要它。