3

我在 7 维空间中有大约 10^4 个点。对于某个应用程序,我需要对此输入进行 ~10^6 范围查询,以查找位于给定范围内的所有点。在此应用程序中,所有查询都使用相同的范围大小。这个问题的合适数据结构是什么?

kd-tree 似乎很合适,但对于 7 维和小输出大小,它的查询时间复杂度几乎是线性的。另一种解决方案是范围树,但对于此应用程序中的少量输入而言,构建它似乎过于复杂。此外,我没有看到任何这些结构利用范围是恒定大小这一事实来发挥它们的优势。例如,如果这是一个 1D 问题,则所有查询都将要求位于大小为 10 的范围内的点,例如,沿数轴的不同位置。

4

1 回答 1

0

好吧,这是一个迟到的答案,我不知道它现在是否有用。您可以使用固定高度 FQT(FHFQT 或 FHQT)[ http://users.dcc.uchile.cl/~rbaeza/ftp/fqtrees.ps.gz]或固定查询数组 (FQA) [ http://www.dcc .uchile.cl/~gnavarro/ps/mtap01.pdf]。这些结构在这种相似性搜索中工作得很好。除此之外,您需要使用良好的枢轴选择方法,如增量式,以获得良好的结果。我假设您使用的是欧几里得距离,并且距离直方图是高斯分布。对不起我的英语不好...

于 2016-08-31T02:34:54.500 回答