[发明专利]一种并行环境下的有向图可达性链表生成及查询方法有效
申请号: | 201310317126.7 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103399902A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 谷峪;王彪;于戈;鲍玉斌 | 申请(专利权)人: | 东北大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 沈阳东大专利代理有限公司 21109 | 代理人: | 梁焱 |
地址: | 110819 辽宁*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种并行环境下的有向图可达性链表生成及查询方法,属于大图数据处理领域。将一个有向图分发到各个处理机中,每个处理机存储图中的节点及节点所对应的子节点;将分割到各个处理机内的图数据压缩;计算主干图上主干节点可达性编码;构建链式索引;在链式索引上建立跳表;各处理机间进行数据通信:各处理机向其他处理机发送跳表信息;各处理机更新自身的跳表信息;建立全图可达性索引。本发明通并行环境下的图可达性压缩技术,极大降低图数据大小、降低系统计算负载,使得系统处理更大规模的图数据。本发明提高从磁盘上读取数据的速度,间接加快查询速度,保证查询结果准确性,极大降低并行计算系统在查询时的网路通信代价和查询时间。 | ||
搜索关键词: | 一种 并行 环境 可达性 生成 查询 方法 | ||
【主权项】:
一种并行环境下的有向图可达性链表生成方法,其特征在于:包括以下步骤:步骤1:首先将一个有向图数据G分发到各个处理机中,每个处理机中存储有图中的节点及节点所对应的子节点;步骤2:对分割到各个处理机内的图数据进行压缩,过程为:步骤2‑1:将所有与其他处理机有联系的节点设为主干节点,所有主干节点经过k跳后所能到达的节点形成一个集合R;步骤2‑2:确定集合R的边界节点经k跳后所能到达的节点形成另一个集合,依次计算该另一个集合中每个元素的评价函数,公式为:r(Cx)=1/|Cx/R|式中,r(Cx)表示评价函数,Cx为主干节点周围k跳内的节点的集合,x不待处理节点,R为当前的主干节点集合的涵盖范围集合;该另一个集合中评价函数最大值所对应的节点确定为主干节点,此主干节点经过k跳后所能到达的节点均添加至集合R中,重复步骤2‑2,直至集合R与有向图数据G中的节点集合相同;步骤2‑3:各个处理器将经步骤2‑2压缩处理后的非主干节点信息存储至磁盘上;对于所有的非主干节点,在各个处理机当中进行深度为k的广度优先搜索,将k跳内的所有主干节点索引,作为该非主干节点的附加信息,写入磁盘中,其中,所有主干节点索引形成主干节点集合;步骤2‑4:更新主干节点的邻接表信息,并将结果写回磁盘;对于所有的主干节点,在各个处理机当中进行深度为k的广度优先搜索,将k跳内的所有主干节点信息添加到邻接表中,生成主干图;步骤3:计算主干图上主干节点的可达性编码;步骤3‑1:计算主干图生成树:首先进行深度优先遍历获得生成树森林,添加虚拟根节点,将整个生成森林转化为一个生成树,并保存被删除的边,并将这些删除的边连接起来;步骤3‑2:对主干图的生成树再进行深度优先遍历,然后根据深度优先遍历访问次序进行编码;步骤4:利用步骤3‑1所保存的删除的边,构建链式索引;步骤4‑1:根据主干节点之间的位置建立关系链:首先任意选择一个节点,建立该节点与其一个可到达的节点间的初始关系链;步骤4‑2:依次处理与初始关系链上节点相邻的节点,分别建立这些相邻节点的关系链;判断相邻节点形成的关系链中是否有与初始关系链中节点相同的节点,若存在,则将获得关 系链最长的链作为输出结果,并将相邻节点剩余的部分构建成新关系链;重复执行步骤4‑2,直至步骤3‑1所有删除的节点都在关系链集合中,完成链式索引的建立;步骤4‑3:标记链索引;主链上保存主链的标号、链所能到达处理机标号、主链所能到达的其他主链标号、主链所能到达从链标号,从链上保存从链标号、从链所能到达的从链标号,从链所能到达的主链标号;步骤5:在链式索引上建立跳表;步骤6:各处理机间进行数据通信:各处理机向其他处理机发送跳表信息,并根据接受到的其他处理机的挑表信息来更新自身的跳表信息,实现全图可达性索引的建立。2、根据权利要求1所述的并行环境下的有向图可达性链表生成方法,其特征在于:步骤3‑2所述的编码形式为:(节点第一次访问的次序,节点最后一次访问的次序)。3、一种并行环境下的有向图可达性链表查询方法,根据权利要求1所述的方法建立并行环境下的有向图可达性链表,其特征在于:查询链表的过程为:包括以下步骤:步骤1:通过云平台主控节点向各个处理机发送查询数据请求;步骤2:各处理机根据查询数据在各自磁盘进行查找,若查询数据的源节点和目的节点在同一台处理机中,则执行步骤3,否则执行步骤4;步骤3:源节点与目的节点位于相同处理器时,计算查询数据的源节点与目的节点的可达性,过程为:步骤3‑1:首先源节点根据原始图数据进行k跳的广度优先搜索,若搜索结果中包含目的节点,则向主控节点发送查询成功消息,则执行步骤1;步骤3‑2:若搜索结果中不包括目的节点,则分别读取源节点和目的节点的非主干节点的附加信息,分别获得源节点和目的节点的主干节点索引集合;步骤3‑3:读取主干节点的可达性编码,根据源节点的主干节点集合和目的节点的主干节点集合,计算每个源节点的主干节点与所有目的节点的主干节点的可达性:若源节点的主干节点同时满足如下两个条件:(1)源节点的主干节点第一次访问的次序小于或等于目的节点的主干节点第一次访问的次序;(2)源节点的主干节点最后一次访问的次序大于或等于目的节点的主干节点最后一次访问的次序;则说明该源节点的主干节点与该目的节点的主干节点之间是可达的;则将该可达信息发送给平台主控节点,输出查询结果;若检测后,发现源节点的主干节点集合与目的节点的主干节点集合均不可达,则执行步骤3‑4;步骤3‑4:源节点的主干节点集合在链式索引上计算所有源节点的主干节点可到达的节点组成的一个集合;目的节点的主干节点集合在链式索引上计算所有可达到目的节点的主干节点组成的另一个集合;步骤3‑5:计算上述两个集合的并集,若该集合不为空,则说明源节点与目的节点之间是可达的,输出查询成功的结果;否则,输出查询失败的结果,执行步骤1;步骤4:源节点与目的节点位于不同处理器时,可达性的确定过程为:步骤4‑1:源节点所在的处理机读取源节点的非主干节点的附加信息,获得源节点的主干节点索引集合;目的节点所在的处理机读取目的节点的非主干节点的附加信息,获得目的节点的主干节点索引集合;步骤4‑2:源节点所在的处理机处理过程为:源节点的主干节点集合在链式索引上计算所有源节点的主干节点可到达的节点组成的一个集合;目的节点所在的处理机处理过程为:目的节点的主干节点集合在链式索引上计算所有可达到目的节点的主干节点组成的另一个集合;然后,源节点将计算出的集合发送给目的节点所在处理机;步骤4‑3:目的节点所在的处理机计算步骤4‑2产生的两个集合的并集,若该集合不为空,则说明源节点与目的节点之间是可达的,输出查询成功的结果;否则,输出查询失败的结果,执行步骤1。4、根据权利要求3所述的并行环境下的有向图可达性链表查询方法,其特征在于:步骤3‑4所述的源节点的主干节点集合在链式索引上计算所有源节点的主干节点可到达的节点组成的一个集合;目的节点的主干节点集合在链式索引上计算所有可达到目的节点的主干节点组成的另一个集合,具体过程为:步骤3‑4‑1:源节点的主干节点根据获得的编码,依次与各关系链头部索引信息进行比较,若源节点的主干节点同时满足如下两个条件:(1)源节点的主干节点第一次访问的次序小于或等于关系链上各个节点第一次访问的次序的最小值;(2)源节点的主干节点最后一次访问的次序大于或等于关系链上各个节点最后一次访问的次序的最大值;则执行步骤3‑4‑2;否则搜索下一条关系链;或者,目的节点的主干节点根据获得的编码,依次与各关系链尾部索引信息进行比较,若目的节点的主干节点同时满足如下两个条件:(1)目的节点的主干节点第一次访问的次序大于或等于关系链上所有节点第一次访问的次序的最小值;(2)源节点的主干节点最后一次访问的次序小于或等于关系链上所有节点最后一次访问的次序的最大值;则执行显骤3‑4‑2,否则搜索下一条关系链;步骤3‑4‑2:若为源节点的主干节点,则获取跳表头部集合,并将该集合添加到由所有源节点的主干节点可到达的节点组成的一个集合中;若为目的节点的主干节点,则获取跳表尾部集合,并将该集合添加到由所有可达到目的节点的主干节点组成的另一个集合中;步骤3‑4‑3:搜索跳表,直至获得查询结果,并更新步骤3‑4‑2中产生的两个集合,再执行步骤3‑4‑1,执行所有关系链都处理完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201310317126.7/,转载请声明来源钻瓜专利网。
- 上一篇:拉链用的啮合元件成形装置及拉链用的啮合元件
- 下一篇:一种摆杆式折弯整形模具