[发明专利]基于割点分割机制的大规模图并行计算最大流的加速算法在审
申请号: | 201910322077.3 | 申请日: | 2019-04-22 |
公开(公告)号: | CN110058945A | 公开(公告)日: | 2019-07-26 |
发明(设计)人: | 张永新;魏蔚;张如青;邢征 | 申请(专利权)人: | 河南工业大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 450001 河南省郑州市高新技*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 最大流 并行计算 覆盖图 关键步骤 计算效率 加速算法 结果整合 经典算法 唯一路径 有效加速 图计算 整合子 分割 构建 汇点 求解 源点 独立性 并行 保证 场景 通讯 | ||
1.基于割点分割机制的大规模图并行计算最大流的加速算法,其特征在于:
可在单机上处理大规模图,将对大规模图求解最大流的问题转化为了多个子图并行求解最大流的问题,提供了基于割点分割机制构建覆盖图,覆盖图唯一路径上的顶点所对应的子图在并行GraphChi框架下快速求解方法。
2.根据权利1要求的多个子图并行求解最大流的问题,其特征在于:
原大规模图构建覆盖图主要包括如下步骤:
1)在算法的开始,遍历当前顶点x的每一个邻居顶点z,若邻居顶点未被访问,则depth值加1,将当前顶点与邻居顶点入栈;
2)设置low值为INF,随着顶点的不断遍历,low值更新为通过非父亲顶点能够追溯到depth值最小的顶点;
3)若邻居顶点z已被访问且lowz≥depthx,则x为割点并将x映射到覆盖图中顶点X;
4)遍历到叶子结点后向上回溯,若栈顶元素不是当前正在访问的顶点或邻居顶点,则栈顶元素出栈并把栈顶元素顶点对中不是x的顶点加入到覆盖图X顶点映射的子图中,若栈顶元素为源点将当前覆盖图X顶点设置为覆盖图的源点,若栈顶元素为汇点则将当前覆盖图X顶点设置为覆盖图的汇点;
5)若栈顶元素中有割点,则将该割点映射到覆盖图中,根据原图中割点之间的关系在覆盖图中顶点之间建立相应的联系,若栈顶元素为源点将当前覆盖图U(Q)顶点设置为覆盖图的源点,若栈顶元素为汇点则将当前覆盖图U(Q)顶点设置为覆盖图的汇点。
3.根据权利2要求的原大规模图构建覆盖图问题可转化为求覆盖图唯一路径问题,其特征在于,主要包括以下步骤:
给定的源点、汇点在找出在覆盖图上的唯一路径,具体实现方法如下:
a)对于已经给出的源点,首先确定它所在的子图,并将该子图在覆盖图上对应的顶点标记为覆盖图的源点,同样的把汇点在覆盖图上对应的顶点标记为覆盖图的汇点;
b)确定覆盖图上源点和汇点之后,从源点开始遍历所有路径直到到达汇点,因为通过割点分割机制构造的覆盖图是一个无向无环图,所以,从源点到汇点的路径只有唯一的一条;
c)将覆盖图上这条从源点到汇点的路径上的所有顶点记录下来,根据这条唯一路径的方向,找出覆盖图上的这条路径的每个节点对应子图的源点、汇点。
4.根据权利3要求的覆盖图唯一路径问题可转化为多子图并行求最大流问题,其特征在于,主要包括以下步骤:
a.所述问题的目标公式表示为:
该公式所代表的含义是:每个子图的最大流等于源点到各出边点流量的最大值之和;
限制条件为:
其中,
δ-(vi)={wi∈Vi|(wi,vi)∈E},δ+(vi)={wi∈Vi|(vi,wi)∈E}
是唯一路径上顶点所对应的子图的集合
i是第Ni个子图
si是第Ni个子图的源点
ti是第Ni个子图的汇点
ce表示每条边上容量
fe表示每条边上流量
f(vi,wi)是从顶点vi到顶点wi的流量
f(wi,vi)是从顶wi点到顶点vi的流量
f(si,vi)是从顶点si到顶点vi的流量
δ+(si)表示i子图顶点si出边的孩子节点集合
δ-(si)表示i子图顶点si入边的孩子节点集合
Ei表示i子图中所有边的集合
表示i子图的顶点vi的取值是除源点si、汇点ti之外的所有点的集合Vi
δ-(vi)={wi∈Vi|(wi,vi)∈Ei}表示i子图顶点vi所有入边的集合,集合里的每一个顶点wi都属于顶点集Vi,且顶点wi与顶点vi之间的边属于边集合Ei
δ+(vi)={wi∈Vi|(vi,wi)∈Ei}表示i子图顶点vi所有出边点集合,集合里的每一个顶点wi都属于顶点集Vi,且顶点wi与顶点vi之间的边属于边集合Ei
b.上述公式求得的是覆盖图路径上第i子图的最大流,问题的解是并行求解覆盖图路径上各个子图的最大流,该路径上所有子图最大流的最小值对应原大规模图的最大流值,即:
其中,
{N1,N2,N3,.....Nk}表示覆盖图唯一路径上顶点的集合
i表示覆盖图路径上的一个点,该点是原大规模图的一个子图
si表示i子图里面的源点
ti表示i子图里面的汇点
c.公式②的含义是对唯一路径上所有的子图求最大流,并且取其中子图最大流的最小值,这个值就是整个覆盖图的最大流,也即是原大规模图的最大流。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南工业大学,未经河南工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910322077.3/1.html,转载请声明来源钻瓜专利网。