【问题标题】:R+-Tree explanation required需要 R+-Tree 解释
【发布时间】:2014-03-24 18:12:38
【问题描述】:

1) 我看到一张图片(见下文),其中显示了一个 R+-Tree 示例,其中包含一些数据。节点“A”和“B”之间怎么可能有空格?据我了解,任何新节点都是通过拆分过程创建的,因此它们之间总是必须共享一些边界,这是应用“拆分平面”的结果。我能想到的只是图片是一系列复杂的添加-删除-重建操作的结果......

2) 假设我们有一个由节点“A”和“B”组成的 R+-Tree(见图 2),我们试图在这个 R+-Tree 中插入一个绿色矩形 G。 G 命中“A”和“B”节点(因此必须同时添加)。但是“A”和“B”节点必须如何扩展? (G 必须完全被一个节点覆盖)。

【问题讨论】:

  • 您似乎在这里将 k/d-trees 与 R-trees 混淆了。 R+ 树是两者的混合,但主要布局是从 R-trees 借用的,它不我们使用分裂平面方法
  • Niklas B. 所以 R+-trees 的拆分算法可以将一个节点拆分为 2 个不构成原始(未拆分)节点的节点?
  • 我认为一个节点总是由它包含的叶子周围的某种边界框表示。但我真的不知道 R-trees(维基百科的文章虽然内容丰富)
  • @Niklas B. 一个节点总是在它包含的叶子周围有一个边界框 - 是的,但问题比想象的要深得多)
  • 我只是在评论“据我所知,任何新节点都是通过拆分过程创建的,因此它们之间总是必须共享一些边界”这似乎是一种误解。但是,是的,我根本不知道 R-trees,所以我不能给你一个完整的答案

标签: algorithm search r-tree


【解决方案1】:

这个数字真的很糟糕。

R-tree 使用最小边界框来表示数据。因此,箱子必须严密、完整;否则搜索将效率低下甚至不正确。

【讨论】:

  • “这个” - 两者中的哪一个?这张图片是关于 R+-tree,而不是 R-tree :)
  • 两者。 R+-tree 是 R-tree 的一个简单变体,它允许对象位于多个叶子中。我不知道它是否曾经在实践中使用过,实际上 - 收益似乎很小,实现开销很大。
  • 我有一篇文章(请 google “r+-tree 是多维对象的动态索引”)说,与 R-tree 相比,r+-tree 在搜索时可以节省高达 50% 的磁盘访问数千个矩形文件。磁盘访问/内存访问 - 不管 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 2013-02-23
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多