[发明专利]基于CUDA并行和LCA的XML关键字查询方法在审
申请号: | 201910074454.6 | 申请日: | 2019-01-25 |
公开(公告)号: | CN109977288A | 公开(公告)日: | 2019-07-05 |
发明(设计)人: | 温剑锋;陈家迁;仇栋才 | 申请(专利权)人: | 广西建设职业技术学院 |
主分类号: | G06F16/953 | 分类号: | G06F16/953;G06F16/83;G06F9/50 |
代理公司: | 广西南宁公平知识产权代理有限公司 45104 | 代理人: | 黄春莲 |
地址: | 530007 广西壮族*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了基于CUDA并行和LCA的XML关键字查询方法,针对使用递归方法查询关键字,以串行方式运行为主,如果包含关键字的节点数目较多,查询效率往往不是很理想的问题,对传统LCA算法进行改进,提了两两分组的改进的LCA算法,同时使用基于CUDA的GPU并行运算对改进的LCA算法进行加速运算。本发明方法能有效解决关键字查询数量大时,运算效率低的问题,查询结果准确,能减少查询串行次数,增加并行次数,使用GPU并行加速运算,获得较大的加速比,比传统的LCA算法有更好的检索效率。 | ||
搜索关键词: | 算法 并行 查询 运算 改进 查询关键字 关键字查询 并行运算 查询结果 查询效率 串行方式 检索效率 有效解决 运算效率 传统的 递归 分组 | ||
【主权项】:
1.基于CUDA并行和LCA的XML关键字查询方法,其特征在于,存储XML文档的数据模型采用树模型,查询时,对n个关键字的节点分别进行Dewey编码获得各关键字所对应的Dewey码集合S1,S2,S3,…,Sn,采用改进的LCA算法求解LCA得到查询结果,同时使用基于CUDA的GPU并行运算对改进的LCA算法进行加速运算;所述改进的LCA算法如下:推理1:假设在同一棵XML文档树上,有两棵子树S1、S2,S1只包含一个节点v,S2只包含两个结点v1、v2,若v、v1、v2的Dewey编码符合关系v<v1<v2,则LCA(v,v1)与LCA(v,v2)是相同节点或者LCA(V,v1)是LCA(v,v2)的后代节点;推理2:假设在同一棵XML文档树上,有两棵子树S1、S2,S1只包含一个结点v,S2只包含两个结点v1、v2,若v、v1、v2的Dewey编码符合关系v>v1>v2,则LCA(v,v1)与LCA(v,v2)是相同节点或者LCA(v,v1)是LCA(v,v2)的后代节点;引理1:如果有两个节点v1、v2,这两个节点在XML文档处于不同的子树中,并且相距较远,它们的LCA为节点v’,如果有两个节点v3、v4,它们在XML文档处于相同的子树或者处于不同子树但相距很近,此时它们的LCA为节点v”,v’是v”的祖先节点或相同节点,若有两个集合S1={v},S2={v1,v2,v3,…,vn},先找出S2中比v小的最大节点lm(v,S2),比v大的最小节点rm(v,S2),lm(v,S2)和rm(v,S2)就是和v最近的两个节点,然后求lm(v,S2)和rm(v,S2)的LCA,即得S1、S2的LCA;推理3:有两个Dewey编码集合Q1={x1,x2,x3,…,xn},Q2={y1,y2,y3,…,yn},如果Q2集合的编码是按小到大进行分布,则Q1、Q2的LCA是集合Q={LCA({x1},Q2),LCA({x2},Q2),LCA({x3},Q2),…,LCA({xn},Q2)};推理4:假设要查询的n个关键字,这些关键字仅包含一个节点,若n>2,则将关键字进行分组,每两个为一组,首先求解出每组的LCA,然后将每组的LCA再进行分组,两个为一组,求出每组的LCA;依此类推,即可求出n个结点的LCA;推理5:若有n(n>=2)个关键字,它们各自所包含的节点数可能是一个或者多个,根据推理4,将n个关键字进行两两分组,先求每组的LCA,再将所求结果分组,依此类推,即可求得n个关键字的LCA。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西建设职业技术学院,未经广西建设职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910074454.6/,转载请声明来源钻瓜专利网。