- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R 树 算法
R-树(相关技术一) 下一篇:查询处理 ? 关键词:、、、 作者: 空间索引是对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率。GIS涉及的各种海量复杂数据存储于外存,如果对磁盘上的数据的位置不加以记录和组织,每查询一个数据项都要扫描整个数据文件,则这种访问磁盘的代价将严重影响系统的效率。因此索引的建立与处理至关重要。此外GIS所表现的地理数据多维性使得传统的B树索引不再适合,因为B树所针对的字符、数字等传统数据类型是在一个良序集之中,即都是在一个维度上,集合中任给两个元素,都可以在这个维度上确定其关系只可能是大于、小于、等于三种,若对多个字段进行索引,必须指定各个字段的优先级形成一个组合字段,而地理数据的多维性,在任何方向上并不存在优先级问题,因此B树并不能对地理数据进行有效的索引,所以需要研究特殊的能适应多维特性的空间索引方式。
1984年Guttman发表了《R树:一种空间查询的动态索引结构》[1]一种高度平衡树,由中间节点和叶节点组成,实际数据对象的最小外接矩形存储在叶节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形。其后,人们在此基础上针对不同空间运算提出了不同改进,才形成了一个繁荣的索引树族,是目前流行的空间索引。
R树是一种采用对象界定技术的高度平衡树,是B?树在?k?维空间上的自然扩展,它将空间对象按范围划分,每个结点都对应一个区域和一个磁盘页,非叶结点的磁盘页中存储其所有子结点的区域范围,非叶结点的所有子结点的区域都落在它的区域范围之内;叶结点的磁盘页中存储其区域范围之内的所有空间对象的外接矩形。每个结点所能拥有的子结点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个结点对应一个磁盘页,当插入新的结点导致某结点要求的空间大于一个磁盘页时,该结点一分为二。R树是一种动态索引结构,即:它的查询可与插入或删除同时进行,而且不需要定期地对树结构进行重新组织。
R-Tree数据结构
(1)R-Tree是n叉树,n称为R-Tree的扇(fan)。
(2)每个结点对应一个矩形。
(3)叶子结点上包含了小于等于n的对象,其对应的矩为所有对象的外包矩形。
(4)非叶结点的矩形为所有子结点矩形的外包矩形。
R-tree具有以下性质:
(1)除根节点外,每个节点的项数介于最小项数m和最大项数M之间;
(2)根节点至少有两个孩子,除非它是叶子节点;
(3)所有叶子节点位于同一层;
(4)同一节点中项,其排列没有顺序要求
R-Tree的的评价标准为:
(1)位置上相邻的结点尽量在树中聚集为一个父结点。
(2)同一层中各兄弟结点相交部分比例尽量小。
R树是一种用于处理多维数据的数据结构,用来访问二维或者更高维区域对象组成的空间数据.R树是一棵平衡树。树上有两类结点:叶子结点和非叶子结点。每一个结点由若干个索引项构成。对于叶子结点,索引项形如(Index,Obj_ID)。其中,Index表示包围空间数据对象的最小外接矩形MBR,Obj_ID标识一个空间数据对象。对于一个非叶子结点,它的索引项形如(Index,Child_Pointer)。?Child_Pointer指向该结点的子结点。Index仍指一个矩形区域,该矩形区域包围了子结点上所有索引项MBR的最小矩形区域。一棵R树的如图1所示。
R-Tree算法描述
(I)插入算法
?????基本思想:找到合适的叶子节点,插入之,若需分裂,则由下至上调整MBR值。算法如下:
?????I1:?调用ChooseLeaf来选择一个合适的叶子节点L以容纳需插入项E
?????I2:?若L中还能容纳E,则加入之;否则调用SplitNode来获取两个节点L和LL,它们包含E和L中原有的所有项
?????I3:?调用AdjustTree,传递参数L,LL(若产生了分裂)
?????I4:?若节点分裂向上传播导致根节点的分裂,则生成新的根节点。
算法ChooseLeaf:?选择一个合适的叶子节点以放置新项E。合适的评价标准是插入E后的节点MBR面积增加度最少。
?????C1:?设N指向根结点root
?????C2:?若N是叶子节点,返回N??
?????C3:?若N不是叶子节点,让F表示N中的一项,该项F容纳E后,则N在面积上只需作面积最小扩展
?????C4:?设N指向叶子节点,则返回C2.
算法AdjustTree:?从叶子节点向根节点进行调整
?????A1:?设N=L,若L进行了分裂,则设NN=LL
?????A2:?若N为根节点,则返回
?????A3:?设P为N的双亲节点,EN为节点P中指向N的项,调整项EN的MBR
?????A4:?若NN存在,创建一个新项ENN
文档评论(0)