- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CGA算法在梅沙系统中应用研究
CGA算法在梅沙系统中应用研究
摘要:由于数据量巨大,梅沙系统的数据存储在分布式数据库中,受限于系统落后的查询策略,在查询过程中经常碰到延时等待甚至死机的状况,本文主要采用CGA算法(compact genetic algorithm,紧凑遗传算法)针对梅沙系统中的分布式数据库查询优化进行研究,通过引入CGA算法进一步提高梅沙系统查询效率。
关键词:梅沙系统;分布式数据库;紧凑遗传算法
中图分类号:TP18 文献标识码:A 文章编号:1007-9599 (2012) 15-0000-02
梅沙系统是全国边防检查工作第四代综合管理系统,梅沙系统通过与国家基础数据库共享数据,可以实现信息查询、档案查询、证件发放、执法办案等程序,真正实现了居民出入境边防检查工作的智能化、电子化管理。
1 梅沙系统数据查询的不足
在梅沙系统对居民身份进行查询的过程中的出入境人员资料、证件签发资料、居民身份证资料、在控人员资料等在国家各级数据库、公安部数据库、各省市出入境部门都有备份。即数据在分布式数据库节点中有多个备份,在系统查询时需要从适合的数据节点选择数据表进行连接查询。目前梅沙系统所使用的策略是根据区域最近原则选择“最近”数据库节点中的数据表进行连接,这种数据表连接方式由于数据库繁忙、网络阻塞、网络故障等原因,区域最近很可能并不是查询代价最小,因此难以实现查询效率的最优。为了解决这个问题,就需要对系统中的数据库节点进行动态分析,通过分析查询语句的连接树,查找数据库查询代价最小的最优解,实现数据库查询效率最优。
目前,国内外许多专家学者都针对分布式数据库查询优化问题进行了研究。并且通过研究表明,在类似梅沙系统这种需要对大量数据库节点进行数据查询的系统中,采用遗传算法进行数据库查询优化是一个不错的选择[3],但是大量数据库节点的连续编码会造成存储空间的耗费。为此,本文主要采用CGA(compact genetic algorithm,紧凑遗传算法)来对梅沙系统中数据查询的实现和优化进行研究。
2 基于CGA算法的梅沙系统查询优化策略
CGA与传统遗传算法最大不同之处在于:CGA算法可以降低连续编码时的空间耗费。而CGA算法的实现流程与传统遗传算法实现流程类似:
2.1 确定编码方案
编码方法的好坏是决定CGA算法是否成功的关键因素。在梅沙系统分布式数据库中,使用连接树的形式来表示多连接表达式。但是,由于连接树不仅表示了表之间的连接关系,同时还表示了树的形状,因此为了保留连接树的特征,不能够使用简单的二进制编码方式,而应该采用形式编码对连接树进行编码,其中用0表示连接树中的非叶子节点,而用序号表示叶子节点编号。例如在查询语句Q=(A∞B)and(B∞C)and(C∞D)and(D∞E)and(D∞F)中,连接树的形式编码如图2-1所示:
通过将连接树编码之后,则可以用(0,0,0,0,1,2,3,0,4,5,6)字符串与连接树一一对应,有利于在CGA算法中队连接树进行各种变形操作。
2.2 设定遗传算子
在梅沙系统数据查询过程中,采用属性编码来表示数据查询时的数据表连接,而传统遗传算法中的交叉算子和变异算子并不能够满足树形结构,因此这两个遗传算子需要重新进行定义。
2.2.1 选择算子
在梅沙系统中,采用了最优保存策略来进行分布式数据库的查询优化。即淘汰当前种群中代价最大的个体,并且保证代价最小个体不参加变异和交叉运算,从而保证CGA算法的收敛性。
2.2.2 交叉算子
由于算法中的个体代表了一个表示数据表连接表达式的树形结构,因此简单的较差可能会导致得到的个体不能组成一个二叉树。因此,需要将算法中的两个个体中的等大小字数进行交换。但是在交叉之后,有可能会导致基因的重复,因此在交叉之后还需要进行再次加工来完成个体之间基因的交叉。
2.2.3 变异算子
与交叉算子相同,个体变异之后必须也是一个表示一个数据表连接的二叉树,因此,为了保证树形不变,只进进行连接树的叶节点交换,而树中的根节点不进行交换。
2.3 确定代价函数
梅沙系统的分布式数据库时建立在计算机网络上的,而不同的网络模型对查询的优化有很大的影响。国家基础数据库采用结构广播式网络模型,各个数据库节点可以同时访问任意数量的数据库节点,而且访问的通信费用与访问的数据库节点数量无关。因此,一个数据库节点发送X个字节给另外一个数据库节点的通信费用可以表示为:C[X]=C0+C1*X,其中C0和C1是只与网络有关的常数。
2.4 确定适度函数
由于分布式数据库之间的节点采用高速光纤通信,因此查询的时间主要是数据库对查询的响应时间,而数据在网络中传输时间代价可以??略不计。同时,在每一个数据库节点中都包含有
文档评论(0)