基于多Agent的GIS查询技术研究

时间:2022-02-16 09:51:22

基于多Agent的GIS查询技术研究

摘要:GIS系统中的查询效率问题一直是系统中亟需解决的问题,本文从数据缓存、空间索引方面进行分析与讨论,结合Agent技术提出一种新的查询模型。结果表明,该模型可以很好的解决GIS的查询性能问题。

关键词:多Agent;空间索引;数据缓存;查询

中图分类号:TP311

The Multi-Agent GIS Query Technology Research

ZHAO Yan-hui

(College of Civil Aviation,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

Abstract: The efficiency of query problem in GIS is the key problem which is in urgent need to be soloved. This article discusses the data cache and spatial indexes, and puts forward a new query model based on multi-Agent. The results show that, the model can solve the query problems of GIS very well.

Key words: multi-agent; spatial indexes ; data cache; query

1 引言

近年来,地理信息系统在信息化产业中异军突起,而在民航交通上的应用也将民航信息化带到了新的发展阶段。但是由于GIS的数据具有量大且复杂的特征,GIS查询效率问题一直是GIS系统中亟需解决的问题。本文以航空运输经济信息管理系统(ATEIMS)为基础,从数据缓存、空间索引及Agent技术等方面对GIS快速查询技术进行讨论和研究。

2 空间索引

为了在庞大的数据库中快速检索到目标数据,一般都会使用到索引技术,比如B树等。空间数据库也是如此,如果每次查询都需要扫描整个数据库,这种查询会严重的影响系统效率。但是由于空间数据的复杂性和海量性,这些传统的索引技术无法解决GIS中空间数据的问题,于是空间索引概念被引入,可加快空间对象的检索、提高空间数据处理效率。空间索引是指按空间对象要素之间或者目标的位置和形状的空间关系来对数据结构进行组织,目前比较常见的空间索引有四叉树、R树等。

四叉树索引是根据空间划分组织的,将所有空间对象覆盖的范围进行四叉树递归分割,使得每个子空间中包含单个实体。 四叉树可分为点四叉树(Point Quadtrees)和区域四叉树(Region Quadtrees)。

2.1.点四叉树

点四叉树是基于二叉搜索树发展的,在n维数据空间中,先定下某划分点,然后以该点为基准点,将空间划分为2n个子空间,互不相交。而这些子空间分别代表着的各个子结点,它们之间是一一对应的。现在根据二维情况来简单讨论创建一个点四叉树:首先,设定一个正方形区域,其中包含着所有目标点。任意选择一个点作为根结点,根据根节点所在的线坐标将区域划分为四个象限,再在各自象限中选择某点作为子结点,然后继续递归。SW代表西南象限,NE代表东北象限,SE代表东南象限,NW代表西北象限。

点四叉树适合于对分布均匀的动态目标点的查询,但是当点目标分布不均匀,会产生比较多的空结点,从而使得查询效率不高。

2.2 区域四叉树

区域四叉树是一种基于层次递归分解的四叉树,将平面区域对应的图像数组规则地划分为四个大小相同的象限。在每个象限,若黑块和白块是重叠的,则再把重叠部分再划分为更小的四个子象限,依次递归。若全黑(代表有数据,用1表示)或者全白(代表无数据,用0表示),那么停止划分。若某个结点对应的图像都在区域之内,则结点颜色为黑色。若都在区域之外,则结点颜色为白色。其余的结点颜色为斜杠。

区域四叉树适用于查询某指定的区域,在获得检索速度的同时会增加存储空间。

3 双缓存的访问机制

3.1 数据缓存

在ATEIMS中,包含着各种信息,其中城市信息包括城市的地理信息和经济信息,航空公司包含着机队信息、人员信息和航段信息,机场的跑道信息等等,数据库中的数据量高达130MB,当进行更新不频繁且数据大量数据操作时,会消耗大量的服务器资源,内存中和磁盘中的访问速度不协调,出现了空间与性能的矛盾,I/0的性能成为了数据库系统的关键。如果将数据能更多的缓存于内存中,将可以更大程度地提高系统的性能。缓存的工作方式是指CPU如果要读取数据,先要在缓存中进行搜索,如果找到目标数据就送给CPU处理;如果找不到目标数据,就先从内存中获取该数据的同时送给CPU进行处理,并将该目标数据所对应数据块一同调入缓存中,待下次再对该目标数据读取时,可以直接从缓存中读取该数据。比如数据库中的城市交通信息、地理信息这些数据量大、变化频率低、使用频率高的数据,通过缓存技术可以提高系统访问速度和性能。

3.2双缓存控制访问策略

在本地建立缓存的实质其实就是将远程的数据在本地建立一份副本。缓存由两个部分组成:缓存项和索引。索引的作用是用来管理缓存项。现将索引分为两层:第一层是主索引,第二层是子索引。

主索引包括n个子索引,由以下三个内容组成:子索引名称、结点状态、指向子索引的指针。子索引中包含着m个记录,由四个部分组成:图层名称、数据量、访问次数和指向缓存项的指针。当服务器开始工作时,会先建一个空的主索引,当进行第一次查询时,服务器要建立子索引,将图层读取到本地,在本地中生成对应的副本,该副本就是缓存项;最后将子索引中的指针指向该缓存项。

如果现有系统中已经建立好一定的缓存项,现在要查找一个图层集,假设该图层集是P,其中存在已有缓存部分的子集为P1,把该部分对应的缓存副本调出绘制。然后将未有缓存的图层子集(P-P1)划分为n个子集,通过主索引找到相对应的子索引x,在子索引x中已存在缓存项的图层集设为P3,则将P3对应的缓存副本调出进行绘制,同时生成组件缓存项,对主索引项进行更新。

3 Agent技术

Agent所具有自治性、社会性、反应性、主动性、持续性等的特性,但是单个的Agent的作用是有限的,将多个Agent组织在一起形成多Agent系统,可以解决更复杂的问题。多Agent系统是由各个独立、具有各自作用的Agent相互协调合作来共同实现系统的功能,将多Agent系统运用到查询系统中,会具有较高的主动性和智能型,增强了查询的目的性,提高了效率。

3.1 协作方式

GIS系统往往非常庞大,查询模块也比较复杂,所以将多Agent系统应用于查询模型,将一项查询的任务分割成多个原子任务,每个任务根据一定的规则分配给各自的Agent,各个Agent之间是通过消息机制实现的,所以Agent之间的协作是非常重要的。各个Agent需要协作起来,共同完成查询任务。

3.2 多Agent技术的数据模型

本文提出了一个新的模型,基于多Agent数据查询模型(MABDQM),从而来解决数据异构性,提高查询效率。我们按照用户的各种需求构建了具有不同功能的Agent,分负责位置查询、数据读取、数据控制、数据映射等操作。它们之间可以相互通信、共同协作,自主地对数据进行查询、定位、获取,这些Agent可以并发执行,从而提高了数据读取的效率。

这个模型设计出各种分工不同的Agent,包括数据读取、位置查找等。当客户端提出查询请求,服务器将其请求交给相对应的Agent,各个Agent相互协作进行通信。一开始需要对客户端的查询请求结合当前Agent的负载状态进行分析,智能地选择如何响应和处理该查询请求。负责数据读取的Agent将数据查询请求传递给负责数据读取控制的Agent,负责位置查找的Agent将数据查询请求传递给负责控制位置查找的Agent,然后该Agent根据数据信息连接各个空间数据库,在其中查询目标图层和其位置信息。这些Agent分工合作,并发执行,提高了对系统数据和图层的查询速度

4 结论

GIS数据查询技术是许多国内外学者都在积极探讨的技术领域。本文从空间数据组织方面、数据缓存方面,结合多Agent技术提出应用于GIS系统中的Agent模型,希望给GIS查询提供更简单高效的解决方式。如何将这些技术更好的应用于GIS系统中,是进一步研究的方向。

参考文献:

[1]边馥苓.GIS地理信息系统原理和方法.北京:测绘出版社:1996. 100-128.

[2]张晓宁,赵林亮,王光兴.Multi-Agent技术在分布式GIS中的应用研究.控制工程,2004,11卷(5):461-463

[3]石纯一,张伟,徐晋晖.多Agent系统引论.电子工业出版社:2003,10.

作者简介:赵延慧(1986-),女,江苏省泰州市人,南京航空航天大学,硕士研究生,研究方向为信息管理与网络通信。

1. 联系人:赵延慧;

2. 江苏省南京市南京航空航天大学江宁校区150号信箱564分箱,210016

3.省略

4. 电话:15150666020

上一篇:基于BP神经网络的障碍物模式识别 下一篇:一种改进的粒子滤波算法