搜索树之R树

article/2025/9/29 19:25:23

产生背景

地理空间数据涉及各种海量且复杂的数据,找到合适的索引对空间数据的处理至关重要。
传统的B树索引针对字符、数字等一维属性数据的主关键字而设计,不适用于具有多维性的地理空间数据。
在GIS和CAD系统对空间索引需求的推动下,为满足二维及多维空间数据快速检索与分析, Guttman于1984年提出了R树索引结构。

定义

R树是一种多级平衡树,它是B树在多维空间上的扩展。其运用了空间分割的理念,存放的并不是原始数据,而是数据的最小边界矩形(MBR ),是用来做空间数据存储的树状数据结构。

原理

为实现R树结构,用最小边界矩形恰好框住各数据围成的一个区域(在图中用实线矩形表示),得到若干个最小边界矩形,如R8,R9,R10,R11等。
其中R8,R9,R10三个矩形距离最近,用一个更大的矩形R3(在图中用虚线矩形表示)框住三个矩形。
通过不断的迭代,用更大的矩形框住所有矩形。
将所有大大小小的矩形存入R树中。
在这里插入图片描述

性质

每个结点所能拥有的子结点数目有上下限。除根结点之外的所有结点包含有m至M个记录索引(条目)。通常,m=M/2。
对于非叶结点上的记录,R树的非叶子结点存放的数据结构为:(I, child-pointer)。child-pointer是指向孩子结点的指针,I是覆盖所有孩子结点对应矩形的矩形。
对于叶结点上的记录,叶结点所保存的数据形式为:(I, tuple-identifier)。其中,tuple-identifier表示的是存放于数据库中的一条记录。I是一个n维空间的矩形,并可以恰好框住这个叶子结点中所有记录代表的n维空间中的点。

R树的衍生

R+树:主要区别在于R+树中兄弟结点对应的空间区域无重叠。
优点:减少了无效查询数,大大提高了空间索引的效率
缺点:由于操作要保证空间区域无重叠而降低了插入、删除空间对象操作的效率
R*树:1990年提出的最佳动态R树的变种。
优点:对结点的插入、分裂算法进行了改进,采用“强制重新插入”方法使树的结构得到优化
缺点:仍然不能有效降低空间的重叠程度,在数据量大、维数增加时尤为明显。

存在问题

R树主要考虑了外接矩形的面积,而影响检索性能的参数有很多。
目录矩形所覆盖的面积应该最小化。
不同路径间矩形的重叠应该最小化。
减少需要被遍历的路径数目
存储时的空间利用率应当优化。
欢迎大家加我微信交流讨论(请备注csdn上添加)
在这里插入图片描述


http://chatgpt.dhexx.cn/article/3bBGWGbj.shtml

相关文章

R-Tree

R-Tree ​ R-Tree是一颗用来存储高维数据的平衡树,它把B树的思想扩展到了多维空间,采用了B树分割空间思想,并在添加、删除操作时采用合并、分解节点的方法,保证树的平衡性。 数据结构 ​ 每个R树的叶子节点包含了多个指向不同数…

R-tree总结

R-tree R-tree是用来做空间数据存储的树状数据结构。R-tree是B-tree向多维空间发展的另一种形式,并且R树也是平衡树。 R树的核心思想是聚合距离相近的节点并在树结构的上一层将其表示为这些节点的最小外接矩形,这个最小外接矩形就成为上一层的一个节点…

从B树、B+树、B*树谈到R 树

从B 树、B 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。 说明:本文从B树开始谈起,然后论述B树、B*树,最后谈到R 树。其中B树、B树及B*树部分由weedge完成,R 树部分由Frankie完成,全文…

R树简介

B树与R树 计算机磁盘的文件管理常使用B树和B树。B树和B树能良好地处理一维空间存储的问题。实际上,B树是一棵平衡树,它是把一维直线分为若干段线段,当我们查找满足某个要求的点的时候,只要去查找它所属的线段即可。这种思想其实是…

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能…

什么是R树?

什么是R树? R树是用来做空间数据存储的树状数据结构。例如给地理位置,矩形和多边形这类多维数据建立索引。R树是由Antonin Guttman于1984年提出的。 人们随后发现它在理论和应用方面都非常实用。 在现实生活中,R树可以用来存储地图上的空间信…

图解R树的原理及相关操作

B 树的搜索本质上是一维区间的划分过程,每次搜索节点所找到的子节点其实就是一个子区间。R 树是把 B 树的思想扩展到了多维空间, 采用了 B 树分割空间的思想,是一棵用来存储高维数据的平衡树。 ​ 对于一棵 R 树,叶子节点所在层…

算法设计与分析-习题-动态规划法求解多段图的最短路径问题(动态规划法)

问题描述 用动态规划法求解如图所示多段图中从顶点0到9的最短路径。 问题求解 图中顶点编号已经按照多段图的分段顺序编号,用动态规划法求解该多段图的过程如下: 最后,得到最短的路径为0、2、6、7、9,费用是97。

【动态规划法】求解0/1背包问题

问题描述 有5个物品,其重量分别是{2, 2, 6, 5, 4},价值分别为{6, 3, 5, 4, 6},背包的容量为10,计算背包所能装入物品的最大价值。 求解思路 在0/1背包问题中,物品i或者被装入背包,或者不被装入背包&#xf…

算法设计之动态规划法

算法设计之动态规划法 一、目的二、内容1.斐波那契数列①自底向上分析解决 ②自顶向下分析解决 2.走棋盘问题分析解决 3.爬台阶问题分析解决 三、反思与总结 一、目的 1.理解动态规划法的特征(多阶段决策\最优子结构\无后效性\子问题重复) 2.理解动态规划法的求解(划分过程\逆…

【动态规划法】求解TSP问题

问题详情 求解下图所示的TSP问题,计算出所经过的城市编号以及最短路径值,城市代价矩阵如图所示: 求解思路 假设从顶点i出发,令d(i, V’ )表示从顶点i出发经过V’ 中各个顶点一次且仅一次,最后回到出发点(…

动态规划法求解0/1背包问题

一、求解0/1背包问题 1、问题描述 有n个重量分别为{w1,w2,…,wn}的物品,它们的价值分别为{v1,v2,…,vn},给定一个容量为C的背包。 设计从这些物品中选取一部分物品放入该背包的方案&…

动态规划法——多段图的最短路径

目录 动态规划法的基本思想 多段图的基本想法 代码块(Java) 运行结果 动态规划法的基本思想: 将大问题划分成若干个小问题进行解决,从而一步步获取最优解动归从上到下分析问题,从下到上解决问题动归与分治法相似,其…

强化学习——动态规划法

文章目录 前言一、动态规划法简单认识1.基本概念2.适用情况3.求解步骤4.典型案例二、值函数1.累计折扣奖励2.状态值函数3.动作值函数4.状态值函数与动作值函数的关系5.贝尔曼方程(动态规划法核心) 三、策略评估1.基于状态值函数评估策略2.基于动作值函数…

南邮|算法分析与设计实验二 动态规划法

目录 实验目的 实验内容 实验步骤 一、最长公共子序列 二、矩阵连乘 实验目的 加深对动态规划法的算法原理及实现过程的理解,学习用动态规划法解决实际应用中的最长公共子序列问题和矩阵连乘问题,体会动态规划法和备忘录方法的异同。 实验内容 …

动态规划--算法

1、动态规划:将求解问题分解成若干个子问题,求解子问题,这些子问题不是独立的 求解后的子问题都会记录到表中,每个子问题仅求解一次, 下次遇到这些子问题直接取解 自底向上的方式计算最优解 2、最优子结构&#xff…

TSP问题,动态规划法

TSP问题是指旅行家要旅行n个城市,要求各个城市经历且仅经历一次然后回到出发城市,并要求所走的路程最短。各个城市间的距离可以用代价矩阵来表示。 假设从顶点i出发,令d(i, V)表示从顶点i出发经过V中各个顶点一次且仅一次,最后…

动态规划法的基本知识

一、动态规划方法相关概念 1、20世纪50年代初美国数学家R.E.Bellman等人在研究多阶段决策过程(multistep decision process)的优化问题时,提出了著名的最优性原理(principle of optimality),同时,把多阶段过程转化为一系列单阶段问题,利用各阶…

动态规划法及其优化

在很多问题中,动态规划算法是我们的最优选择,比起递归算法,动态规划算法的时间复杂度和空间复杂度都更加优越,可以处理的数据规模更大。但是,动态优化算法的时间复杂度为O(N*V),也就…

算法设计与分析之动态规划法

文章目录 前言一、动态规划法概述二、动态规划法设计思想三、动态规划法的基本要素四、动态规划算法的设计步骤五、动态规划法与分治法六、动态规划法与贪心法七、动态规划法示例总结 前言 大家好,我是一只勤勤恳恳的程序猿。本篇文章小猿将跟您分享算法设计与分析中…