【问题标题】:Nearest Neighbor Algorithm in R-TreeR-Tree 中的最近邻算法
【发布时间】:2018-01-30 16:20:31
【问题描述】:

我正在阅读 Guttman Link to paper/book 的论文

我想知道最近邻查询如何与 R-Trees 一起工作,或者它是如何实际实现的。 我想到的是,您从根开始遍历树并检查其中一个条目是否包含查询点。

所以第一个问题是,如果一个矩形包含查询点,这并不意味着这个矩形内的所有矩形都会自动成为离查询点最近的矩形。即使查询点不在矩形内,也可能存在另一个距离较小的矩形?

其次,假设查询点实际上是一个最小边界框,例如mbr = [left,bottom, right, top],我想要与该区域重叠的所有矩形,或者更好的是其质心位于给定区域内的所有矩形。这也可以吗?

【问题讨论】:

    标签: data-structures spatial r-tree


    【解决方案1】:

    有很多关于在 R-trees 中寻找最近邻的论文。

    Roussopoulos、Nick、Stephen Kelley 和 Frédéric Vincent。 “最近邻查询。” ACM sigmod 记录。卷。 24. 第 2 期。ACM,1995。

    Papadopoulos、Apostolos 和 Yannis Manolopoulos。 “R 树中最近邻查询的性能。”数据库理论—ICDT'97 (1997): 394-408。

    Hjaltason、Gísli R. 和 Hanan Samet。 “空间数据库中的远程浏览。” ACM 数据库系统事务 (TODS) 24.2 (1999):265-318。

    Cheung、King Lum 和 Ada Wai-Chee Fu。 “增强 R 树上的最近邻搜索。” ACM SIGMOD 记录 27.3 (1998):16-21。

    Berchtold, S.、Böhm, C.、Keim, D. A. 和 Kriegel, H. P.(1997 年,5 月)。高维数据空间中最近邻搜索的成本模型。在第十六届 ACM SIGACT-SIGMOD-SIGART 数据库系统原理研讨会论文集上(第 78-86 页)。 ACM。

    【讨论】:

      【解决方案2】:

      编辑

      做了很多实验,算法由

      Hjaltason、Gísli R. 和 Hanan Samet。 “空间数据库中的远程浏览。” ACM 数据库系统事务 (TODS) 24.2 (1999):265-318。

      (正如@Anony-Mousse 在答案中所发布的)显然优于我在这里描述的算法。

      旧答案:

      据我所知,最好的 kNN 搜索算法是 by

      Cheung、King Lum 和 Ada Wai-Chee Fu。 “增强 R 树上的最近邻搜索。” ACM SIGMOD 记录 27.3 (1998): 16-21。 (复制自@Anony-Mousse 的回答)PDF download

      基本算法在this presenation中也有说明

      如果我没记错的话,它会做以下事情:

      • 遍历树中的所有节点,除非它们可以根据当前最大已知距离排除。
      • 在遍历候选子节点之前对其进行排序,以便首先遍历“最近”的子节点。

      因此,该算法非常快速地找到最近的邻居,并且几乎不会遍历不包含部分最终结果的节点(如果有的话)。

      有趣的是,Cheung 等人的算法改进了以前的算法,删除了一些检查,这些检查是为了在遍历它们之前排除更多的子节点。他们可以证明额外的检查不可能排除节点。

      【讨论】:

        猜你喜欢
        • 2020-09-10
        • 1970-01-01
        • 2017-03-31
        • 2014-02-23
        • 2012-06-27
        • 1970-01-01
        • 2012-07-19
        • 2010-12-05
        • 1970-01-01
        相关资源
        最近更新 更多