[发明专利]一种子图匹配的查询方法在审
| 申请号: | 201410812269.X | 申请日: | 2014-12-23 |
| 公开(公告)号: | CN104392010A | 公开(公告)日: | 2015-03-04 |
| 发明(设计)人: | 金福生;杨艺峰;颜震;薛野;韩翔宇 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100081 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 种子 匹配 查询 方法 | ||
1.一种子图匹配的查询方法,其特征在于:包括以下步骤:
步骤一、修改查询图为查询树;
步骤二、数据图节点按照查询树从叶节点到根节点逐层依次匹配,得到匹配计数,并发送计数给相邻节点,直到匹配根节点;
步骤三、数据图节点按照查询树从根节点到叶节点逐层依次发送匹配要求,直到匹配要求发送至叶节点;
步骤四、数据图节点按照查询树从叶节点到根节点的顺序依次向查询要求的来源发送子树匹配结果。
2.根据权利要求1所述的一种子图匹配的查询方法,其特征在于:所述修改查询图为查询树进一步包括以下过程:
[1]枚举所有节点作为树的根节点;
[2]使用广度遍历方法获得当前根节点对应的查询树;
[3]对于生成的所有候选查询树,根据下式选取其中估值最小(首先选择通信量估值最小,其次选择计算量估值最小)的作为最终查询树;其中通信量估值计算公式如下:
计算量估值计算公式如下:
其中deg表示数据图节点的平均度数,cnt(u)表示查询树中节点u和第i个查询节点的距离,keyseti表示以第i个查询节点为根的查询子树的关键节点集,childi表示以第i个查询节点为根的查询子树的子节点集,n为查询图中的节点个数。
3.根据权利要求2所述的一种子图匹配的查询方法,其特征在于:所述使用广度遍历方法获得当前根节点对应的查询树进一步包括以下过程:
[1]使用边的访问集evis来表示某一条边(u,v)是否被加入树中,使用点的访问集nvis来表示节点是否被访问过,使用先进先出队列q作为广度遍历的队列;
[2]将查询树根节点加入队列q;
[3]取出队首节点u,依次枚举其邻接点v;
[4]如果边(u,v)已经在树中,则跳过边(u,v);
[5]如果边(u,v)不在树中,且节点v已经被访问过,则将节点v拆分出节点v`加入树中;
[6]如果边(u,v)不在树中,且节点v未被访问过,则将v直接加入树中,并标记v为已访问,且将v加入队列q;
[7]若队列为空,算法结束;否则,转到[3]。
4.根据权利要求1所述的一种子图匹配的查询方法,其特征在于:对所述数据图节点按照查询树自下而上的方向传递匹配结果计数进一步包含以下步骤:
[1]输入数据图到分布式集群中,每个机器存储一部分的子图;跨机器的邻接点间使用网络通信,其他的节点间使用内存通信;
[2]获得查询树高度-1层节点的label集合;
[3]选择符合label集合的数据节点作为计算节点集合;
[4]i=1,N=查询树高度,根节点高度为1;
[5]对所有分布式集群中的计算节点v并行执行如下过程;
[6]在i不为1的时候,计算节点v接受相邻数据节点发送过来的匹配查询树第N-i+1层查询节点所代表子树的匹配结果;
[7]计算节点v根据v的邻接表匹配查询树第N-i层查询节点的独立子节点;
[8]计算节点v根据接收到的匹配结果匹配查询树第N-i层查询节点的非独立子节点;
[9]将独立、非独立子节点的匹配结果进行数据库表自然连接操作得到第N-i层查询节点的匹配结果;
[10]判断当前的结果是否已经匹配查询树根节点,如果匹配,结束计算;
[11]不匹配,将中间结果经关键节点计数得到索引计数,发送给相邻数据节点,并设置其为下一轮迭代中的计算节点;
[12]数据节点计算线程同步,i++,转到[5]。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410812269.X/1.html,转载请声明来源钻瓜专利网。





