基于四叉树的空间索引

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于四叉树的空间索引

四叉树是建立在对E域循环分解原则上的一种层次数据结构,在计算机图形处理、图像处理及地理信息系统中有着广泛的应用,它也可以应用于对空间点的表示于索引。

分为点四叉树,区域四叉树,CIF四叉树等。

1、点四叉树主要针对空间点的存储表达和索引,对于k维数据空间,点四叉树的每个结点存储了一个空间点得信息及2^k个孩子节点的指针,且隐式地与一索引空间相对应。以该空间点为划分点,将其对应索引空间分为两两不相交的2^k个子空间,依次与它的2^k 个孩子结点相对应。对于某一个子空间的点,则分配给对应的子树。如图1是二维空间的一棵点四叉树的例子。

其点四叉树的构造过程如下。

(1)输入空间点A,由于四叉树为空,因此A作为四叉树的根节点,其隐式对应的索引空间是整个数据空间,以A为划分原点,将对应的索引空间划分成四个子空间,NE,NW,EW,SE依次为其孩子结点隐式对应的子空间。

(2)输入空间点B,B落入A的NW象限且A的NW孩子结点为空,因此B作为A的NW孩子结点;同样,C作为F,C,E分别作为A的NE,SW,SE孩子结点。

(3)输入空间D,D落入A的NW象限,继续往下查找,D落入B的NE象限且B的NE孩子结点为空,因此D作为B的NE孩子结点

优点:结构简单,对于精确匹配的点查找性能较高。

缺点:树的动态性差,删除结点处理复杂;树的结构由点的插入顺序决定,难以保证树深度的平衡;区域查找性能较差;对于非点状空间目标,必须采用目标近似与空间映射技术,效率低;不利于树的外部存储设备存储与页面调度。

2、区域四叉树

采用区域四叉树索引多维空间的点,常用方法有MX四叉树PR四叉树,避免了点四叉树动态性差,结构完全由点得插入顺序决定等缺点

2.1、MX四叉树

MX四叉树将每个空间点看成区域四叉树中得一个黑像素,或当做一方阵中的非零元素。它与区域四叉树的组织方式很相似,区别是叶结点为黑结点或空结点,且分别表示数据空间某一个位置空间点得存在与否。如图2是二维空间的一棵MX四叉树的例子。

优点:所有的点都位于叶节点,树的深度是平衡的;空间划分是等分,划分成的每个象限具有相同大小;可以采用线性四叉树的存储结构,避免指针域的存储,提高空间利用率。

缺点:插入(删除)一个点可能导致树的深度增加(减少)一层或多层,所有叶结点必须重新定位;树的深度往往很大,影响查找效率。

2.2、PR四叉树

PR四叉树叶节点或者为空,或者包含一个数据点。与MX四叉树构造过程类似,区别在于当分解到一个象限只包含一个点时,不需要继续分解使该点位于某一个子象限的最左下角。

特点:插入或删除一个点不会影响其他分支,操作简单;叶结点树及树的深度都小于MX四叉树,检索效率较高。

如图3是二维空间的一棵RP四叉树的例子。

3、CIF四叉树

CIF四叉树是针对表示大规模集成应用中的小矩形而提出的,用于索引空间矩形及其他形体。数据空间被递归地细分直到产生的子象限不再包含任何矩形。在分解过程中,与任一划分线相交的矩形与该划分线对应的象限相关联,矩形只属于完全包围它的最小象限。

如图4是二维空间的一棵CIF四叉树的例子。

相交查询,从根结点开始,首先检查与其关联的所有矩形是否为查找结点,接下来检查象限空间与查询区域相交的孩子结点……直到叶结点。

插入一个矩形,首先检查根结点,如果不在根结点的划分对应的桶链表中,就接着检查包含该矩形的子象限所对应的孩子象限;如果该矩形依旧没有插入到对应位置,再对该象限划分,直到为该矩形找到对应的子象限。

删除一个矩形,首先找到该矩形所在的结点,然后从其数据桶中删除该矩形,如果链表为空,且该结点没有孩子结点,则该结点可以同时删除。点删除可能导致父结点也被删除。优点:与MX四叉树、PR四叉树相比,CIF四叉树可以用于索引矩形及任何其他形体的空间目标而不需要经过目标近似与空间目标映射,对于区域查询,效率较高。

缺点:区域查询往往需要访问多个结点对应的存储桶,当索引量增大、大区域结点包含较多数据矩形,外部存储设备I/O开销很大。

相关文档
最新文档