这是最近的邻居问题。
给定实数(非常大的!),加上目标实数,找到SUM最接近和。我们允许对(最大为)进行合理的预处理/索引编制,但是在查询时间(给定)下,结果应该非常快地返回(例如时间。
(简单的示例:如果我们只希望最接近的SINGLE,则可以离线对排序,,然后在查询时进行二进制搜索, )。
无效的解决方案:
1)排序 脱机,然后在查询时,从两端开始并向内移动两个指针(http://bit.ly/1eKHHDy)。不好,因为 查询时间。
2)排序 脱机,然后在查询时,将每个 并对“伙伴”执行二进制搜索,以帮助其求和到接近。不好,因为查询时间为。
3)离线对所有对)进行排序,然后进行二进制搜索。不好,因为预处理。
谢谢!
ps。实践需要进一步的概括:(1)和为50维向量,(2)“ close”为向量余弦距离,以及(3)最佳最接近对和(即,不只是最好的