我正在寻找 C# 代码来构建一个 r-tree。我有增量构建 r-tree 的代码,即项目被一个接一个地添加到树中,但我想如果所有项目一次全部提供给树创建算法,则可以构建更好的 r-tree。如果有人知道如何以这种方式批量加载 r-tree,请告诉我。我尝试进行一些搜索,但找不到任何非常有用的东西。
问问题
1298 次
2 回答
1
Achakeev 等人的一篇论文,基于排序的 R-trees 并行加载可能会有所帮助。您还可以在他们的参考资料中找到其他方法。
于 2013-03-14T19:33:59.593 回答
1
低维点数据最常用的方法是排序切片递归(STR)。它正是这样做的:对数据进行排序,将其平铺到最佳数量的切片中,然后在必要时进行递归。
带有点数据的 STR 加载树的叶级不会有重叠,所以非常好。更高级别可能有重叠,因为 STR 不考虑对象的扩展。
经过验证的良好批量加载也是 Priority-R-Tree 的关键组成部分。
即使不是批量加载,插入策略也会产生很大的不同。使用 Guttmans 或 Ang-Tan 等线性拆分构建的 R-Tree 通常比使用 R*-Tree 拆分启发式构建的 R-Tree 更差。特别是 Ang-Tan 倾向于产生“切片”页面,它们的空间扩展非常不平衡。这是一种快速拆分策略,可能是最简单的,但结果并不好。
于 2012-07-08T08:39:25.030 回答