问题。给定 $ x $ 基数的有限度量空间 $ n $ < / span>,在子例时构造数据结构,使得查询生成的时间可以在Sublinear时间(独立于 $ k $ )来解析任意 $ k \ leq n $ $ x \ in x $

我尝试了什么。我知道kdtrees,球树和覆盖树木的存在。在一些假设(我愿意制作)下,我知道这些结构可以在ublinear时间(通常是 $ o(\ log(n))$ ),但我没有找到类似的结果的 $ k $ th最近的邻居 $ K $

似乎通常,一个人对 $ k $ 值感兴趣,与 $ n $ < / span>,并且,在这些情况下,前一段中提到的算法可以以 $ k $ 的顺序的乘法常数的成本调整。我的问题是我对 $ k $ 值感兴趣,这些值可能是 $ n $ 的顺序。

有帮助吗?

解决方案

一般是指标,你不能。例如,可以证明它需要至少二次时间来应答 $ \ theta(n)$ 查询,在最坏的情况下。

例如,假设我们有 $ n / 2 $ 查询点,这些点彼此非常远,而 $ n / 2 $ 目标点。我们会询问 $ n / 4 $ -th每个查询点的最近邻居。然后每个 $ d(q,t)$ 可以设置为 $ [1/2,1] $的任何距离对于每个 $ n ^ 2/4 $ 对的查询点 $ q $ 和一个目标点 $ t $ ,并且每个可以独立选择,并且您将具有有效的度量标准。因此,您可以想象由 $ n / 2 \ times n / 2 $ 矩阵的距离 $ d( q,t)$ 。在 $ o(n ^ 2)$ 时间时,您只能读取 $ o(n ^ 2)$ 该矩阵中的条目,这不足以回答所有查询。您可以通过普发内参数证明这一点:考虑任何 $ q $ ,其中算法读取 $ d(q,t) $ 少于 $ n / 4 $ $ t $ 的不同值;然后,无论算法输出如何作为 $ n / 4 $ -th最近邻到 $ q $ ,我们可以排列其他未读的距离,以便算法的输出不正确。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top