网络流图缩减方法和装置.pdf

上传人:Y94****206 文档编号:4043020 上传时间:2018-08-12 格式:PDF 页数:27 大小:2.08MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310456975.0

申请日:

2013.09.29

公开号:

CN104516995A

公开日:

2015.04.15

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 17/50申请日:20130929|||公开

IPC分类号:

G06F17/50

主分类号:

G06F17/50

申请人:

华为技术有限公司; 中国科学院计算技术研究所

发明人:

王蕾; 崔慧敏; 冯晓兵

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司11205

代理人:

刘芳

PDF下载: PDF下载
内容摘要

本发明实施例提供一种网络流图缩减方法和装置,其中,该方法包括:通过从待处理网络流图中获取第一网络流子图,第一网络流子图包括M个结点和M个结点之间的边,M个结点中包括第一端点;将第一网络流子图合并成一个第一结点;将第一结点与待处理网络流图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流图,所述第一缩减网络流图的最小割的容量(最大流值)等于所述待处理网络流图的最小割的容量(最大流值),所述第一结点为所述第一缩减网络流图的第一端点;从而可以有效地缩减图规模。本发明实施例不需要待处理网络流图符合一定的规则,使得对图规模进行缩减的过程具有普遍的适用性。

权利要求书

权利要求书
1.  一种网络流图缩减方法,其特征在于,包括:
从待处理网络流图中获取第一网络流子图,所述第一网络流子图包括M 个结点和M个结点之间的边,所述M个结点中包括第一端点,所述M为大 于或等于2的整数,所述待处理网络流图包括N个结点和N个结点之间的边, 所述N个结点中包括源结点和汇结点,所述N为大于M的整数,所述第一 端点为源结点或者汇结点,所述源结点为用以表示所述待处理网络流图的网 络流的起始结点,所述汇结点为所述网络流的结束结点,其中,各个结点之 间的边表示各个结点之间的网络流关系;
将所述第一网络流子图合并成一个第一结点;
将所述第一结点与所述待处理网络流图中除第一网络流子图之外的第二 网络流子图组成第一缩减网络流图,所述第二网络流子图由所述待处理网络 流图中除去所述第一网络流子图之外的所有剩余结点以及所述所有剩余结点 之间的边组成;所述第一网络流子图的所有结点与所述第二网络流子图的所 有结点之间的边成为所述第一结点与所述第二网络流子图的所有结点之间的 边,所述第一缩减网络流图包括所述第一结点、所述第二网络流子图,以及 所述第一结点与所述第二网络流子图的所有结点之间的边,所述第一缩减网 络流图的最小割的容量等于所述待处理网络流图的最小割的容量,所述第一 结点为所述第一缩减网络流图的第一端点。

2.  根据权利要求1所述的方法,所述将所述第一部分待处理网络流图合 并成一个第一结点,包括:
将所述第一网络流子图的M个结点之间的边去掉;
将所述M个结点聚合为一个所述第一结点。

3.  根据权利要求1或2所述的方法,其特征在于,所述从待处理网络流 图中获取第一网络流子图,包括:
从所述第一端点开始,搜索获取包括预设个数结点的第三网络流子图, 所述第三网络流子图包括所述搜索获取的所述预设个数结点和所述搜索获取 的所述预设个数结点之间的边,所述预设个数大于或等于所述M;
将所述待处理网络流图中除所述第三网络流子图之外的第四网络流子图 合并为一个第二结点,所述第四网络流子图由所述待处理网络流图中除去所 述第三网络流子图之外的所有剩余结点以及所述除去所述第三网络流子图之 外的所有剩余结点之间的边组成;
将所述第二结点与所述第三网络流子图组成第五网络流子图,所述第四 网络流子图的所有结点与所述第三网络流子图的所有结点之间的边,成为所 述第二结点与所述第三网络流子图的所有结点之间的边,所述第五网络流子 图包括所述第二结点、所述第三网络流子图以及所述第二结点与所述第三网 络流子图的所有结点之间的边,所述第二结点为所述第五网络流子图的第二 端点;
其中,当所述第一端点为源结点时,所述第二端点为汇结点,当所述第 一端点为汇结点时,所述第二端点为源结点;
根据所述第五网络流子图的最小割划分,将所述第五网络流子图的第一 最小割子图作为所述第一网络流子图。

4.  根据权利要求3所述的方法,其特征在于,所述根据所述第五网络流 子图的最小割划分,将所述第五网络流子图的第一最小割子图作为所述第一 网络流子图之后,还包括:
将所述第二结点还原为所述第四网络流子图,所述第二结点与所述第三 网络流子图的所有结点之间的边成为所述第四网络流子图的所有结点与所述 第三网络流子图的所有结点之间的边。

5.  根据权利要求1-4任一项所述的方法,其特征在于,所述将所述第一 结点与所述待处理网络流图中除第一网络流子图之外的第二网络流子图组成 第一缩减网络流图之后,还包括:
将所述待处理网络流图的缩减次数进行记录,获得所述待处理网络流图 的缩减次数。

6.  根据权利要求5所述的方法,其特征在于,若所述待处理网络流图的 缩减次数小于第一预设次数,则将所述第一缩减网络流图更新为所述待处理 网络流图。

7.  根据权利要求6所述的方法,其特征在于,若所述待处理网络流图的 缩减次数不小于所述第一预设次数,则所述方法还包括:
从所述第一缩减网络流图中获取第六网络流子图,所述第六网络流子图 包括K个结点和K个结点之间的边,所述K为大于或等于2的整数,所述K 个结点中包括第二端点,其中,当所述第一端点为源结点时,所述第二端点 为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;
将所述第六网络流子图合并成一个第三结点;
将所述第三结点与所述第一缩减网络流图中除第六网络流子图之外的第 七网络流子图组成第二缩减网络流图,所述第七网络流子图由所述第一缩减 网络流图中除去所述第六网络流子图之外的所有剩余结点以及所述除去所述 第六网络流子图之外的所有剩余结点之间的边组成;所述第六网络流子图的 所有结点与所述第七网络流子图的所有结点之间的边,成为所述第三结点与 所述第七网络流子图的所有结点之间的边,所述第二缩减网络流图包括所述 第七网络流子图、所述第三结点、以及所述第三结点与所述第七网络流子图 的所有结点之间的边,所述第二缩减网络流图的最小割的容量等于所述第一 缩减网络流图的最小割的容量,所述第三结点为所述第二缩减网络流图的第 二端点。

8.  根据权利要求7所述的方法,其特征在于,所述将所述第三结点与所 述第一缩减网络流图中除第六网络流子图之外的第七网络流子图组成第二缩 减网络流图之后,还包括:
将所述第一缩减网络流图的缩减次数进行记录,获得所述第一缩减网络 流图的缩减次数。

9.  根据权利要求8所述的方法,其特征在于,若所述第一缩减网络流图 的缩减次数小于第二预设次数,则将所述第二缩减网络流图更新为所述第一 缩减网络流图。

10.  一种网络流图缩减装置,其特征在于,包括:
获取单元,用于从待处理网络流图中获取第一网络流子图,所述第一网 络流子图包括M个结点和M个结点之间的边,所述M个结点中包括第一端 点,所述M为大于或等于2的整数,所述待处理网络流图包括N个结点和N 个结点之间的边,所述N个结点中包括源结点和汇结点,所述N为大于M 的整数,所述第一端点为源结点或者汇结点,所述源结点为用以表示所述待 处理网络流图的网络流的起始结点,所述汇结点为所述网络流的结束结点, 其中,各个结点之间的边表示各个结点之间的网络流关系;
合并单元,用于将所述获取单元获取的第一网络流子图合并成一个第一 结点;
处理单元,用于将所述合并单元合并获得的所述第一结点与所述待处理 网络流图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流 图,所述第二网络流子图由所述待处理网络流图中除去所述第一网络流子图 之外的所有剩余结点以及所述所有剩余结点之间的边组成;所述第一网络流 子图的所有结点与所述第二网络流子图的所有结点之间的边成为所述第一结 点与所述第二网络流子图的所有结点之间的边,所述第一缩减网络流图包括 所述第一结点、所述第二网络流子图,以及所述第一结点与所述第二网络流 子图的所有结点之间的边,所述第一缩减网络流图的最小割的容量等于所述 待处理网络流图的最小割的容量,所述第一结点为所述第一缩减网络流图的 第一端点。

11.  根据权利要求10所述的装置,其特征在于,所述合并单元具体用于 将所述第一网络流子图的M个结点之间的边去掉,并将所述M个结点聚合 为一个所述第一结点。

12.  根据权利要求10或11所述的装置,其特征在于,所述获取单元具 体用于从所述第一端点开始,搜索获取包括预设个数结点的第三网络流子图, 所述第三网络流子图包括所述搜索获取的所述预设个数结点和所述搜索获取 的所述预设个数结点之间的边,所述预设个数大于或等于所述M;将所述待 处理网络流图中除所述第三网络流子图之外的第四网络流子图合并为一个第 二结点,所述第四网络流子图由所述待处理网络流图中除去所述第三网络流 子图之外的所有剩余结点以及所述除去所述第三网络流子图之外的所有剩余 结点之间的边组成;并将所述第二结点与所述第三网络流子图组成第五网络 流子图,所述第四网络流子图的所有结点与所述第三网络流子图的所有结点 之间的边,成为所述第二结点与所述第三网络流子图的所有结点之间的边, 所述第五网络流子图包括所述第二结点、所述第三网络流子图以及所述第二 结点与所述第三网络流子图的所有结点之间的边,所述第二结点为所述第五 网络流子图的第二端点;其中,当所述第一端点为源结点时,所述第二端点 为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;根据所述 第五网络流子图的最小割划分,将所述第五网络流子图的第一最小割子图作 为所述第一网络流子图。

13.  根据权利要求12所述的装置,其特征在于,还包括:
还原单元,用于所述获取单元根据所述第五网络流子图的最小割划分, 将所述第五网络流子图的第一最小割子图作为所述第一网络流子图之后,将 所述第二结点还原为所述第四网络流子图,所述第二结点与所述第三网络流 子图的所有结点之间的边成为所述第四网络流子图的所有结点与所述第三网 络流子图的所有结点之间的边。

14.  根据权利要求10-13任一项所述的装置,其特征在于,还包括:
第一记录单元,用于所述处理单元将所述第一结点与所述待处理网络流 图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流图之后, 将所述待处理网络流图的缩减次数进行记录,获得所述待处理网络流图的缩 减次数。

15.  根据权利要求14所述的装置,其特征在于,还包括:
第一更新单元,用于若所述第一记录单元记录获得的所述待处理网络流 图的缩减次数小于第一预设次数,则将所述第一缩减网络流图更新为所述待 处理网络流图。

16.  根据权利要求15所述的装置,其特征在于,若所述第一记录单元记 录获得的所述待处理网络流图的缩减次数不小于第一预设次数,则所述获取 单元,还用于从所述第一缩减网络流图中获取第六网络流子图,所述第六网 络流子图包括K个结点和K个结点之间的边,所述K为大于或等于2的整数, 所述K个结点中包括第二端点,其中,当所述第一端点为源结点时,所述第 二端点为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;
所述合并单元,还用于将所述获取单元获取的所述第六网络流子图合并 成一个第三结点;
所述处理单元,还用于将所述合并单元合并获得的所述第三结点与所述 第一缩减网络流图中除第六网络流子图之外的第七网络流子图组成第二缩减 网络流图,所述第七网络流子图由所述第一缩减网络流图中除去所述第六网 络流子图之外的所有剩余结点以及所述除去所述第六网络流子图之外的所有 剩余结点之间的边组成;所述第六网络流子图的所有结点与所述第七网络流 子图的所有结点之间的边,成为所述第三结点与所述第七网络流子图的所有 结点之间的边,所述第二缩减网络流图包括所述第七网络流子图、所述第三 结点、以及所述第三结点与所述第七网络流子图的所有结点之间的边,所述 第二缩减网络流图的最小割的容量等于所述待处理网络流图的最小割的容 量,所述第三结点为所述第二缩减网络流图的第二端点。

17.  根据权利要求16所述的装置,其特征在于,还包括:
第二记录单元,用于所述处理单元将所述第三结点与所述第一缩减网络 流图中除第六网络流子图之外的第七网络流子图组成第二缩减网络流图之 后,将所述第一缩减网络流图的缩减次数进行记录,获得所述第一缩减网络 流图的缩减次数。

18.  根据权利要求17所述的装置,其特征在于,还包括:
第二更新单元,用于若所述第二记录单元记录获得的所述第一缩减网络 流图的缩减次数小于第二预设次数,则将所述第二缩减网络流图更新为所述 第一缩减网络流图。

说明书

说明书网络流图缩减方法和装置
技术领域
本发明实施例涉及算法的图论和组合优化领域,尤其涉及一种网络流图 缩减方法和装置。
背景技术
最大流最小割问题是图论和组合优化中经典问题,例如社交网络的局部 社区发现、Sybil攻击防御系统、网上内容投票系统、Google的广告系统、垃 圾网站的发现、计算机视觉领域、VLSI布局设计、飞机航班安排、DNA多 序列对比等这些应用都可以建模成最大流最小割算法来解决。最大流是在一 个有向图中各结点之间的每个边的最大流量,其中,源结点流出的最大流量 是该有向图的最大流,汇结点流入的最大流量是该有向图的最大流,其余结 点的流入量等于流出量,各结点之间的每条边的流量不能超过容量限制。在 该有向图中,去掉一些边,使得有向图变为两个不连通的子图,并且源点和 汇点分别在不同的子图中,每个子图可以称为一个割,去掉的这些边的流量 之和就是割的容量,最小割就是所有割中容量最小的割,最大流值等于最小 割的容量。当有向图规模很大时,采用最大流最小割算法来求最大流最小割 的运行时间很长。
现有技术中,可以通过减少有向图中的结点和边的数量,来缩减有向图 的规模,也就是基于结点模式匹配的方法来缩减有向图的规模,即观察有向 图的结构,若一些结点的模式符合预设的模式时,则可以将该些结点合并为 一个结点,从而达到缩减有向图规模的目的。
但是,基于结点模式匹配的方法只适用于计算机视觉和理论物理领域, 只能处理具有特殊结构的规则图,无法处理非规则的有向图,适用性较差。
发明内容
本发明实施例提供一种网络流图缩减方法和装置,用于有效地缩减图规 模,不需要待处理网络流图符合一定的规则,使得对图规模进行缩减的过程 具有普遍的适用性。
第一方面,本发明实施例提供一种网络流图缩减方法,包括:从待处理 网络流图中获取第一网络流子图,所述第一网络流子图包括M个结点和M个 结点之间的边,所述M个结点中包括第一端点,所述M为大于或等于2的 整数,所述待处理网络流图包括N个结点和N个结点之间的边,所述N个结 点中包括源结点和汇结点,所述N为大于M的整数,所述第一端点为源结点 或者汇结点,所述源结点为用以表示所述待处理网络流图的网络流的起始结 点,所述汇结点为所述网络流的结束结点,其中,各个结点之间的边表示各 个结点之间的网络流关系;
将所述第一网络流子图合并成一个第一结点;
将所述第一结点与所述待处理网络流图中除第一网络流子图之外的第二 网络流子图组成第一缩减网络流图,所述第二网络流子图由所述待处理网络 流图中除去所述第一网络流子图之外的所有剩余结点以及所述所有剩余结点 之间的边组成;所述第一网络流子图的所有结点与所述第二网络流子图的所 有结点之间的边成为所述第一结点与所述第二网络流子图的所有结点之间的 边,所述第一缩减网络流图包括所述第一结点、所述第二网络流子图,以及 所述第一结点与所述第二网络流子图的所有结点之间的边,所述第一缩减网 络流图的最小割的容量等于所述待处理网络流图的最小割的容量,所述第一 结点为所述第一缩减网络流图的第一端点。
在第一方面的第一种可能的实现方式中,所述将所述第一部分待处理网 络流图合并成一个第一结点,包括:
将所述第一网络流子图的M个结点之间的边去掉;
将所述M个结点聚合为一个所述第一结点。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二 种可能的实现方式中,所述从待处理网络流图中获取第一网络流子图,包括:
从所述第一端点开始,搜索获取包括预设个数结点的第三网络流子图, 所述第三网络流子图包括所述搜索获取的所述预设个数结点和所述搜索获取 的所述预设个数结点之间的边,所述预设个数大于或等于所述M;
将所述待处理网络流图中除所述第三网络流子图之外的第四网络流子图 合并为一个第二结点,所述第四网络流子图由所述待处理网络流图中除去所 述第三网络流子图之外的所有剩余结点以及所述除去所述第三网络流子图之 外的所有剩余结点之间的边组成;
将所述第二结点与所述第三网络流子图组成第五网络流子图,所述第四 网络流子图的所有结点与所述第三网络流子图的所有结点之间的边,成为所 述第二结点与所述第三网络流子图的所有结点之间的边,所述第五网络流子 图包括所述第二结点、所述第三网络流子图以及所述第二结点与所述第三网 络流子图的所有结点之间的边,所述第二结点为所述第五网络流子图的第二 端点;
其中,当所述第一端点为源结点时,所述第二端点为汇结点,当所述第 一端点为汇结点时,所述第二端点为源结点;
根据所述第五网络流子图的最小割划分,将所述第五网络流子图的第一 最小割子图作为所述第一网络流子图。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实 现方式中,所述根据所述第五网络流子图的最小割划分,将所述第五网络流 子图的第一最小割子图作为所述第一网络流子图之后,还包括:
将所述第二结点还原为所述第四网络流子图,所述第二结点与所述第三 网络流子图的所有结点之间的边成为所述第四网络流子图的所有结点与所述 第三网络流子图的所有结点之间的边。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种 可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种 可能的实现方式中,所述将所述第一结点与所述待处理网络流图中除第一网 络流子图之外的第二网络流子图组成第一缩减网络流图之后,还包括:
将所述待处理网络流图的缩减次数进行记录,获得所述待处理网络流图 的缩减次数。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实 现方式中,若所述待处理网络流图的缩减次数小于第一预设次数,则将所述 第一缩减网络流图更新为所述待处理网络流图。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实 现方式中,若所述待处理网络流图的缩减次数不小于所述第一预设次数,则 所述方法还包括:
从所述第一缩减网络流图中获取第六网络流子图,所述第六网络流子图 包括K个结点和K个结点之间的边,所述K为大于或等于2的整数,所述K 个结点中包括第二端点,其中,当所述第一端点为源结点时,所述第二端点 为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;
将所述第六网络流子图合并成一个第三结点;
将所述第三结点与所述第一缩减网络流图中除第六网络流子图之外的第 七网络流子图组成第二缩减网络流图,所述第七网络流子图由所述第一缩减 网络流图中除去所述第六网络流子图之外的所有剩余结点以及所述除去所述 第六网络流子图之外的所有剩余结点之间的边组成;所述第六网络流子图的 所有结点与所述第七网络流子图的所有结点之间的边,成为所述第三结点与 所述第七网络流子图的所有结点之间的边,所述第二缩减网络流图包括所述 第七网络流子图、所述第三结点、以及所述第三结点与所述第七网络流子图 的所有结点之间的边,所述第二缩减网络流图的最小割的容量等于所述第一 缩减网络流图的最小割的容量,所述第三结点为所述第二缩减网络流图的第 二端点。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实 现方式中,所述将所述第三结点与所述第一缩减网络流图中除第六网络流子 图之外的第七网络流子图组成第二缩减网络流图之后,还包括:
将所述第一缩减网络流图的缩减次数进行记录,获得所述第一缩减网络 流图的缩减次数。
结合第一方面的第七种可能的实现方式,在第一方面的第八种可能的实 现方式中,若所述第一缩减网络流图的缩减次数小于第二预设次数,则将所 述第二缩减网络流图更新为所述第一缩减网络流图。
第二方面,本发明实施例提供一种网络流图缩减装置,包括:
获取单元,用于从待处理网络流图中获取第一网络流子图,所述第一网 络流子图包括M个结点和M个结点之间的边,所述M个结点中包括第一端 点,所述M为大于或等于2的整数,所述待处理网络流图包括N个结点和N 个结点之间的边,所述N个结点中包括源结点和汇结点,所述N为大于M 的整数,所述第一端点为源结点或者汇结点,所述源结点为用以表示所述待 处理网络流图的网络流的起始结点,所述汇结点为所述网络流的结束结点, 其中,各个结点之间的边表示各个结点之间的网络流关系;
合并单元,用于将所述获取单元获取的第一网络流子图合并成一个第一 结点;
处理单元,用于将所述合并单元合并获得的所述第一结点与所述待处理 网络流图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流 图,所述第二网络流子图由所述待处理网络流图中除去所述第一网络流子图 之外的所有剩余结点以及所述所有剩余结点之间的边组成;所述第一网络流 子图的所有结点与所述第二网络流子图的所有结点之间的边成为所述第一结 点与所述第二网络流子图的所有结点之间的边,所述第一缩减网络流图包括 所述第一结点、所述第二网络流子图,以及所述第一结点与所述第二网络流 子图的所有结点之间的边,所述第一缩减网络流图的最小割的容量等于所述 待处理网络流图的最小割的容量,所述第一结点为所述第一缩减网络流图的 第一端点。
在第二方面的第一种可能的实现方式中,所述合并单元具体用于将所述 第一网络流子图的M个结点之间的边去掉,并将所述M个结点聚合为一个 所述第一结点。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二 种可能的实现方式中,所述获取单元具体用于从所述第一端点开始,搜索获 取包括预设个数结点的第三网络流子图,所述第三网络流子图包括所述搜索 获取的所述预设个数结点和所述搜索获取的所述预设个数结点之间的边,所 述预设个数大于或等于所述M;将所述待处理网络流图中除所述第三网络流 子图之外的第四网络流子图合并为一个第二结点,所述第四网络流子图由所 述待处理网络流图中除去所述第三网络流子图之外的所有剩余结点以及所述 除去所述第三网络流子图之外的所有剩余结点之间的边组成;并将所述第二 结点与所述第三网络流子图组成第五网络流子图,所述第四网络流子图的所 有结点与所述第三网络流子图的所有结点之间的边,成为所述第二结点与所 述第三网络流子图的所有结点之间的边,所述第五网络流子图包括所述第二 结点、所述第三网络流子图以及所述第二结点与所述第三网络流子图的所有 结点之间的边,所述第二结点为所述第五网络流子图的第二端点;其中,当 所述第一端点为源结点时,所述第二端点为汇结点,当所述第一端点为汇结 点时,所述第二端点为源结点;根据所述第五网络流子图的最小割划分,将 所述第五网络流子图的第一最小割子图作为所述第一网络流子图。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实 现方式中,还包括:
还原单元,用于所述获取单元根据所述第五网络流子图的最小割划分, 将所述第五网络流子图的第一最小割子图作为所述第一网络流子图之后,将 所述第二结点还原为所述第四网络流子图,所述第二结点与所述第三网络流 子图的所有结点之间的边成为所述第四网络流子图的所有结点与所述第三网 络流子图的所有结点之间的边。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种 可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种 可能的实现方式中,还包括:
第一记录单元,用于所述处理单元将所述第一结点与所述待处理网络流 图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流图之后, 将所述待处理网络流图的缩减次数进行记录,获得所述待处理网络流图的缩 减次数。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实 现方式中,还包括:
第一更新单元,用于若所述第一记录单元记录获得的所述待处理网络流 图的缩减次数小于第一预设次数,则将所述第一缩减网络流图更新为所述待 处理网络流图。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实 现方式中,若所述第一记录单元记录获得的所述待处理网络流图的缩减次数 不小于第一预设次数,则所述获取单元,还用于从所述第一缩减网络流图中 获取第六网络流子图,所述第六网络流子图包括K个结点和K个结点之间的 边,所述K为大于或等于2的整数,所述K个结点中包括第二端点,其中, 当所述第一端点为源结点时,所述第二端点为汇结点,当所述第一端点为汇 结点时,所述第二端点为源结点;
所述合并单元,还用于将所述获取单元获取的所述第六网络流子图合并 成一个第三结点;
所述处理单元,还用于将所述合并单元合并获得的所述第三结点与所述 第一缩减网络流图中除第六网络流子图之外的第七网络流子图组成第二缩减 网络流图,所述第七网络流子图由所述第一缩减网络流图中除去所述第六网 络流子图之外的所有剩余结点以及所述除去所述第六网络流子图之外的所有 剩余结点之间的边组成;所述第六网络流子图的所有结点与所述第七网络流 子图的所有结点之间的边,成为所述第三结点与所述第七网络流子图的所有 结点之间的边,所述第二缩减网络流图包括所述第七网络流子图、所述第三 结点、以及所述第三结点与所述第七网络流子图的所有结点之间的边,所述 第二缩减网络流图的最小割的容量等于所述待处理网络流图的最小割的容 量,所述第三结点为所述第二缩减网络流图的第二端点。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实 现方式中,还包括:
第二记录单元,用于所述处理单元将所述第三结点与所述第一缩减网络 流图中除第六网络流子图之外的第七网络流子图组成第二缩减网络流图之 后,将所述第一缩减网络流图的缩减次数进行记录,获得所述第一缩减网络 流图的缩减次数。
结合第二方面的第七种可能的实现方式,在第二方面的第八种可能的实 现方式中,还包括:
第二更新单元,用于若所述第二记录单元记录获得的所述第一缩减网络 流图的缩减次数小于第二预设次数,则将所述第二缩减网络流图更新为所述 第一缩减网络流图。
本发明实施例提供的网络流图缩减方法和装置,通过从待处理网络流图 中获取第一网络流子图,再将第一网络流子图合并成一个第一结点,然后将 第一结点与待处理网络流图中除第一网络流子图之外的第二网络流子图组成 第一缩减网络流图,第一缩减网络流图的最小割的容量等于待处理网络流图 的最小割的容量,第一结点为第一缩减网络流图的第一端点。通过将包括第 一端点的M个结点的第一网络流子图合并为第一结点,该第一结点成为缩减 后的第一缩减网络流图的第一端点,这样可以有效地缩减图规模,不需要待 处理网络流图符合一定的规则,使得对图规模进行缩减的过程具有普遍的适 用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下 面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在 不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明网络流图缩减方法实施例一的流程图;
图2为本发明网络流图缩减方法实施例二的流程图;
图3为本发明实施例提供的待处理网络流图的一种示意图;
图4为本发明实施例提供的第一子图的一种示意图;
图5为本发明实施例提供的包括第一结点的第一子图的示意图;
图6为本发明实施例提供的第一缩减网络流图的一种示意图;
图7为本发明网络流图缩减方法实施例三的流程图;
图8为本发明网络流图缩减方法实施例四的流程图;
图9为本发明网络流图缩减方法实施例五的流程图;
图10为本发明网络流图缩减装置实施例一的结构示意图;
图11为本发明网络流图缩减装置实施例二的结构示意图;
图12为本发明网络流图缩减装置实施例三的结构示意图;
图13为本发明网络流图缩减装置实施例四的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。
图1为本发明网络流图缩减方法实施例一的流程图,如图1所示,本实 施例的方法可以包括:
S101、从待处理网络流图中获取第一网络流子图。
包括第一端点的M个结点,M为大于等于2的整数,第一端点为待处理 网络流图的源结点或者汇结点。
本实施例中,待处理网络流图为有向图,也是网络流的流向图,待处理 网络流图中包括N个结点和N个结点之间的边,N个结点为网络流流经的各 个结点,各个结点之间的边表示各个结点之间的网络流关系,N个结点中包 括源结点和汇结点,源结点为用以表示待处理网络流图的网络流的起始结点, 汇结点为待处理网络流图的网络流的结束结点,并且每个边上具有容量,网 络流图可以用于模拟道路系统的交通量、管道中的液体、电路中的电流等等, 例如:网络流图中的边可以为水管,网络流为水管中的水,边的容量为水管 的容量,水流的源点作为源结点,水流的汇点作为汇结点,任何水管汇合的 点为网络流图中除源结点和汇结点之外的结点。也即,网络流图中的网络流 均是从源结点流出,最终网络流中的网络流均将流入汇结点,并且,存在流 向关系的两结点之间的边均有容量,因此,在边上流动的网络流的流量不能 超过该边的容量,从源点流出的网络流的最大流量为该待处理网络流图的最 大流,那么该待处理网络流图的最小割的容量与该待处理网络流图的最大流 相同。
本实施例可以获取包括第一网络流子图,该第一网络流子图包括M个结 点,M为大于等于2的整数,该M个结点中包括第一端点,第一端点可以为 待处理网络流图的源结点或者汇结点,其中,N为大于或等于M的整数。例 如:获取的第一网络流子图可以包括待处理网络流图的源结点,获取的第一 网络流子图也可以包括待处理网络流图的汇结点。
S102、将第一网络流子图合并成一个第一结点。
本实施例中,在获取到第一网络流子图之后,将第一网络流子图合并成 一个第一结点,例如:将第一网络流子图缩成一个结点。
可选地,将第一网络流子图合并成一个第一结点,可以包括:将第一网 络流子图的M个结点之间的边去掉;将M个结点聚合为一个第一结点,具 体地,将第一网络流子图的M个结点之间的边去掉,可以认为M个结点之 间的网络流关系不存在了,然后将M个结点汇聚为一个结点,该结点称为第 一结点。
S103、将第一结点与待处理网络流图中除第一网络流子图之外的第二网 络流子图组成第一缩减网络流图,第一缩减网络流图的最小割的容量等于待 处理网络流图的最小割的容量,第一结点为第一缩减网络流图的第一端点。
本实施例中,待处理网络流图中除第一网络流子图之外的网络流图可以 称为第二网络流子图,该第二网络流子图由待处理网络流图中除去第一网络 流子图之外的所有剩余结点以及所述所有剩余结点之间的边组成;可以根据 第一网络流子图的所有结点与第二网络流子图的所有结点之间的边成为第一 结点与第二网络流子图的所有结点之间的边,将待处理网络流图中除第一网 络流子图之外的第二网络流子图和上述合并得到的第一结点组成一个网络流 图,组成后的网络流图称为第一缩减网络流图,得到的第一缩减网络流图包 括第一结点、第二网络流子图,以及第一结点与第二网络流子图的所有结点 之间的边;若S101中所获取的第一网络流子图中包括的第一端点为源点,那 么第一结点就成为第一缩减网络流图的源点;若S101中所获取的第一网络流 子图中包括的第一端点为汇点,那么第一结点就成为第一缩减网络流图的汇 点。
值得注意的是,本实施例中通过上述步骤所获得的第一缩减网络流图的 最小割的容量等于待处理网络流图的最小割的容量,而且通过上述步骤所获 得的第一缩减网络流图的最大流等于待处理网络流图的最大流。这样第一缩 减网络流图的最大流最小割与待处理网络流图的最大流最小割是等价的。
本发明实施例一提供网络流图缩减方法,通过从待处理网络流图中获取 第一网络流子图,再将第一网络流子图合并成一个第一结点,然后将第一结 点与待处理网络流图中除第一网络流子图之外的第二网络流子图组成第一缩 减网络流图,第一缩减网络流图的最小割的容量等于待处理网络流图的最小 割的容量,第一结点为第一缩减网络流图的第一端点。通过将包括M个结点 的第一网络流子图合并为第一结点,该第一结点成为缩减后的第一缩减网络 流图的第一端点,这样可以有效地缩减图规模,不需要待处理网络流图符合 一定的规则,使得对图规模进行缩减的过程具有普遍的适用性。
图2为本发明网络流图缩减方法实施例二的流程图,如图2所示,本实 施例的方法可以包括:
S201、从第一端点开始,搜索获取包括预设个数结点的第三网络流子图。
本实施例中,从待处理网络流图的第一端点开始,沿着结点与结点之间 的边,来进行搜索获取包括预设个数结点的第三网络流子图,该预设个数结 点包括第一端点,搜索获取的第三网络流子图包括搜索获取的预设个数结点 和搜索获取的预设个数结点之间的边,需要说明的是,预设个数可以根据实 际应用场景而定,本发明实施例在此不做限制。例如:可以从汇结点开始, 用反向宽度优先搜索(Breadth First Search,简称:BFS)方法对待处理网络 流图进行搜索,获得包括汇结点在内的预设个数的结点第三网络流子图。例 如:可以从源结点开始,用BFS方法对待处理网络流图进行搜索,获得包括 源结点在内的预设个数据的结点的第三网络流子图。需要说明的是,BFS方 法与反向BFS方法与现有技术一致,本发明实施例在此不再赘述。
图3为本发明实施例提供的待处理网络流图的一种示意图,如图3所示, 该待处理网络流图有编号为0、1、2、3、4、5、6、7、8、9、10的结点,其 中,编号为0的结点为源结点,编号为10的结点为汇结点,带箭头的线为结 点与结点之间的具有网络流流向的边,边上的数字代表该条边的网络流的容 量,即允许流过的最大流量,若预设个数为7个,那么从汇结点(即编号为 10的结点)开始,采用反向BFS方法进行搜索,可以搜索到编号为7的结点、 编号为8的结点、编号为9的结点、编号为7的结点与编号为10的结点之间 的边、编号为8的结点与编号为10的结点之间的边、以及编号为9的结点与 编号为10的结点之间的边,然后从编号为7的结点开始采用反向BFS方法 进行搜索,可以搜索到编号为4的结点,以及编号为7的结点与编号为5的 结点之间的边;从编号为8的结点开始采用反向BFS方法进行搜索,可以搜 索到编号为5的结点,以及编号为8的结点与编号为5的结点之间的边;从 编号为9的结点开始采用反向BFS方法进行搜索,可以搜索到编号为5的结 点、编号为6的结点、编号为5的结点与编号为9的结点之间的边、以及编 号为9的结点与编号为6的结点之间的边,从而可以获取一个网络流子图, 该该网络流子图包括编号为10的结点在内的7个结点以及该7个结点之间的 边,这7个结点分别为编号为4、5、6、7、8、9和10的结点。
S202、将待处理网络流图中除第三网络流子图之外的第四网络流子图行 合并为一个第二结点。
本实施例中,将待处理网络流图中除第三网络流子图之外的网络流图作 为第四网络流子图,第四网络流子图由待处理网络流图中除去第三网络流子 图之外的所有剩余结点以及所述除去第三网络流子图之外的所有剩余结点之 间的边组成。
可选地,将第四网络流子图合并成一个第二结点,可以包括:将第四网 络流子图中的所有结点之间的边去掉;将第四网络流子图的所有结点聚合为 一个第一结点,具体地,将第四网络流子图中的所有结点之间的边去掉,可 以认为第四网络流子图中的所有结点之间的网络流关系不存在了,然后将第 四网络流子图中的所有结点汇聚为一个结点,该结点称为第二结点。
S203、将第二结点与第三网络流子图组成第五网络流子图。
本实施例中,可以根据第四网络流子图的所有结点与所述第三网络流子 图的所有结点之间的边,成为所述第二结点与所述第三网络流子图的所有结 点之间的边,将第二结点与上述的第三网络流子图组成一个网络流图,组成 后的网络流图称为第五网络流子图,得到的第五网络流子图包括第二结点、 第三网络流子图,以及第二结点与第三网络流子图的所有结点之间的边,同 时第二结点为第五网络流子图的第二端点。
其中,当第一端点为源结点时,也即从源结点开始,搜索获取包括源结 点的第三网络流子图时,那么第二结点可以为第五网络流子图的一个汇结点; 当第一端点为汇结点时,也即从汇结点开始,搜索获取包括汇结点的第三网 络流子图时,那么第二结点可以成为第五网络流子图的一个源结点。
图4为本发明实施例提供的第一子图的一种示意图,如图3和图4所示, 在获取包括编号为10的汇结点在内的7个结点的网络流子图之后,获取待处 理网络流图中除了编号为4、5、6、7、8、9、10的结点之外的结点,也即编 号为0、1、2、3的结点,以及编号为0、1、2、3的结点之间的边,去掉编 号为0、1、2、3的结点之间的边,将编号为0、1、2、3的结点聚合为一个 结点,合并所得到的结点可以称为编号为s*的结点。然后根据搜索获取的网 络流子图和第二结点组成第一子图,第一子图包括搜获取的编号为4、5、6、 7、8、9、10的结点和编号为s*的结点,以及编号为4、5、6、7、8、9、10、 s*的结点之间的边。编号为10的结点为第一子图的第一端点,编号为s*的结 点为第一子图的第二端点,由于编号10的结点为待处理网络汇结点,那么编 号为10的结点为第一子图的汇结点,编号为s*的结点为第一子图的源结点。
S204、根据第五网络流子图的最小割划分,将第五网络流子图的第一最 小割子图作为第一网络流子图。
本实施例中,可以对第五网络流子图的最大流进行计算,获得第五网络 流子图的最大流,第五网络流子图的最大流等于第五网络流子图的最小割的 容量,从而可以获得第五网络流子图的最小割集合,该最小割集合的容量等 于第一子图的最大流,根据第一网络流子图的最小割集合对第五网络流子图 进行最小割划分,获得第五网络流子图的最小割,也就是第五网络流子图中 去掉最小割集合后得到的两个互不相连的网络流子图,若一个网络流子图包 括第五网络流子图的源结点,那么另一个网络流子图包括第五网络流子图的 汇结点,同时,两个互不相连的网络流子图可以称为第一最小割子图和第二 最小割子图,因此,第五网络流子图的最小割包括第五网络流子图的第一最 小割子图的第二最小割子图,然后将第五网络流子图的第一最小割子图作为 第一网络流子图,该第一最小割子图包括M个结点,M个结点包括第一端点。 由于第一网络流子图为第五网络流子图中的一部分,所以预设个数可以大于 或等于M。
需要说明的是,如何对第五网络流子图进行最大流计算,获得第五网络 流子图的最小割集合与现有技术一致,本发明实施例在此不再赘述。
例如:如图4所示,在图4所示的第一子图中,第一子图的最大流为15, 那么第一子图的最小割的容量为15,编号为4的结点与编号为7的结点之间 的边的容量、编号为5的结点与编号为8的结点之间的边的容量、编号为9 的结点与编号为10的结点之间的边的容量,之和为15,那么编号为4的结 点与编号为7的结点之间的边、编号为5的结点与编号为8的结点之间的边、 编号为9的结点与编号为10的结点之间的边可以统称为第一子图的最小割, 那么最小割集合包括编号为7的结点、编号为8的结点和编号为10的结点, 或者,最小割集合包括编号为s*的结点、编号为4的结点、编号为5的结点、 编号为6的结点和编号为9的结点。因此,根据最小割集合,可以将第一子 图划分为第一最小割子图和第二最小割子图,第一最小割子图是由编号为7 的结点、编号为8的结点、编号为10的结点,以及编号为7、8、10的结点 之间的边组成,那么第二最小割子图是由编号为s*的结点、编号为4的结点、 编号为5的结点、编号为6的结点、编号为9的结点,以及编号为s*、4、5、 6、9的结点之间的边组成。
S205、将第一网络流子图合并成一个第一结点。
本实施例中,S205的具体实施过程与本发明方法实施例一中的S202的 具体实现过程类似,详细可以参见上述实施例中的相关记载,本发明实施例 在此不再赘述。
例如,图5为本发明实施例提供的包括第一结点的第一子图的示意图, 如图5所示,在获得第一最小割子图之后,第一最小割子图是由包括编号为 10的汇结点的3个结点以及这3个结点之间的边组成,将第一最小割子图中 的编号为7的结点、编号为8的结点、编号为10的结点之间的边去掉,将编 号为7的结点、编号为8的结点、编号为10的结点聚合成一个第一结点,该 第一结点为编号为t*的结点。
S206、将第二结点还原为第四网络流子图。
本实施例中,可以将第二结点进行还原,也即将第二结点还原为待处理 网络流图中除第三网络流子图之外的第四网络流子图,也就是将第二结点还 原为第四网络流子图中的所有结点,同时还原第四网络流子图中的所有结点 之间的边。并且第二结点与第三网络流子图的所有结点之间的边成为第四网 络流子图的所有结点与第三网络流子图的所有结点之间的边。
S207、将第一结点与待处理网络流图中除第一网络流子图之外的第二网 络流子图组成第一缩减网络流图。
本实施例中,S207的具体实现过程与本发明方法实施例一中的S103的 具体实现过程类似,详细可以参见上述实施例中的相关记载,本发明实施例 在此不再赘述。
图6为本发明实施例提供的第一缩减网络流图的一种示意图,如图6所 示,在获得第一结点之后,即编号为t*的结点之后,将s*的结点进行还原, 也就是将s*的结点还原为编号为0、1、2、3的结点,以及编号为0、1、2、 3的结点之间的边。然后将编号为0、1、2、3、4、5、6、9、t*的结点,以 及编号为0、1、2、3、4、5、6、9、t*的结点之间的边组成第一缩减网络流 图。通过本发明实施例提供的网络流图缩减方法,可以将如图3所示的待处 理网络流图缩减为如图6所示的第一缩减网络流图,第一缩减网络流图与待 处理网络流图相比,缩减了两个结点,从而图规模得到了缩减。同时,图3 所示的待处理网络流图的最大流为11,也就是待处理网络流图的最小割的容 量为11,最小割的容量是编号为0与编号为1的结点之间的边的容量、编号 为2与编号为5的结点之间的边的容量、编号为5与编号为9的结点之间的 边的容量、编号为9与编号为10的结点之间的边的容量之和。图6所示的第 一缩减网络流图的最大流也为11,也就是第一缩减网络流图的最小割的容量 为11,最小割的容量也是编号为0与编号为1的结点之间的边的容量、编号 为2与编号为5的结点之间的边的容量、编号为5与编号为9的结点之间的 边的容量、编号为9与编号为10的结点之间的边的容量之和。因此图3所示 的待处理网络流图的最大流最小割等于图6所示的第一缩减网络流图的最大 流最小割的最大流最小割,图6所示的第一缩减网络流图等价于图3所示的 待处理网络流图。
本发明实施例二提供的网络流图缩减方法,通过从第一端点开始,搜索 获取包括预设个数结点的第三网络流子图,将待处理网络流图中除第三网络 流子图之外的第四网络流子图合并为一个第二结点,将第二结点与第三网络 流子图组成第五网络流子图,根据第五网络流子图的最小割划分,将第五网 络流子图的第一最小割子图作为第一网络流子图,将第一网络流子图合并成 一个第一结点,将第二结点还原为第四网络流子图,将第一结点与待处理网 络流图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流图。 通过将包括M个结点的第一网络流子图合并为第一结点,该第一结点成为缩 减后的第一缩减网络流图的第一端点,这样可以有效地缩减图规模,不需要 待处理网络流图符合一定的规则,使得对图规模进行缩减的过程具有普遍的 适用性。
图7为本发明网络流图缩减方法实施例三的流程图,如图7所示,本实 施例的方法在图1或图2所示的网络流图缩减方法实施例的基础上,还可以 包括:
S301、将待处理网络流图的缩减次数进行记录,获得待处理网络流图的 缩减次数。
本实施例中,每次对待处理网络流图进行缩减处理之后,均对待处理网 络流图的缩减次数进行记录,从而可以获得待处理网络流图的总的缩减次数。 例如:在对待处理网络流图进行缩减处理之前,将待处理网络流图的缩减次 数记为0,在对待处理网络流图进行缩减处理的时候,将待处理网络流图的 缩减次数加1,从而可以获得这次缩减处理之后的待处理网络流图的缩减次 数。
S302、判断待处理网络流图的缩减次数是否小于第一预设次数,若是, 则执行S303,若否,则执行S304。
本实施例中,在获得待处理网络流图的缩减次数之后,判断待处理网络 流图的缩减次数是否小于第一预设次数,若小于,则说明还可以对待处理网 络流图进行缩减处理,也即执行S303,若不小于,则说明可以不再对待处理 网络流图进行缩减处理,也即执行S304。第一预设次数可以为用户设置的迭 代次数,也可以为系统缺省的迭代次数,第一预设次数可以根据实际的应用 场景而定,本发明实施例在此不做限制。
S303、将第一缩减网络流图更新为待处理网络流图。
本实施例中,若待处理网络流图的缩减次数小于第一预设次数,则说明 还可以对待处理网络流图进行缩减处理,然后将第一缩减网络流图更新为待 处理网络流图,也即再执行S101-S103或者再执行S201-S207。
S304、结束流程。
本实施例中,若待处理网络流图的缩减次数不小于第一预设次数,则说 明可以不再对待处理网络流图进行缩减处理,然后结束流程。
在第一种可行的实现方式中,第一端点为源结点时,也就是每次均从待 处理网络流图的源结点开始对待处理网络流图进行缩减,即从待处理网络流 图的源结点开始对待处理网络流图进行第一预设次数的缩减。
在第二种可行的实现方式中,第一端点为汇结点时,也就是每次均从待 处理网络流图的汇结点开始对待处理网络流图进行缩减,即从待处理网络流 图的汇结点开始对待处理网络流图进行第一预设次数的缩减。
需要说明的是,在第一预设次数设置合适的时候,可以将待处理网络流 图缩减成两个结点,一个结点为源结点,另一个结点是由最小割子图合并而 成的结点,即新的汇结点,那么源结点与新的汇结点之间的边就是最小割集 合。或者,一个结点为汇结点,另一个结点是由最小割子图合并而成的结点, 即新的源结点,那么新的源结点与汇结点之间的边就是最小割集合。
本发明实施例三提供的网络流图缩减方法,进一步地,通过将待处理网 络流图的缩减次数进行记录,获得待处理网络流图的缩减次数,若待处理网 络流图的缩减次数小于第一预设次数,则将第一缩减网络流图更新为待处理 网络流图,再进行缩减处理。这样可以有效并且大量地缩减图规模,不需要 待处理网络流图符合一定的规则,使得对图规模进行缩减的过程具有普遍的 适用性。
图8为本发明网络流图缩减方法实施例四的流程图,如图8所示,本实 施例的方法在图1-图3所示的任一网络流图缩减方法实施例的基础上,还可 以包括:
S401、从第一缩减网络流图中获取第六网络流子图。
其中,第六网络流子图包括K个结点和K个结点之间的边,K为大于或 等于2的整数,当第一端点为源结点时,第二端点为汇结点,当第一端点为 汇结点时,第二端点为源结点。
S402、将第六网络流子图合并成一个第三结点。
S403、将第三结点与第一缩减网络流图中除第六网络流子图之外的第七 网络流子图组成第二缩减网络流图。
其中,第七网络流子图由第一缩减网络流图中除去第六网络流子图之外 的所有剩余结点以及所述除去第六网络流子图之外的所有剩余结点之间的边 组成;第六网络流子图的所有结点与第七网络流子图的所有结点之间的边, 成为第三结点与第七网络流子图的所有结点之间的边,第二缩减网络流图包 括第七网络流子图、第三结点、以及第三结点与第七网络流子图的所有结点 之间的边,第二缩减网络流图的最小割的容量等于待处理网络流图的最小割 的容量,第三结点为第二缩减网络流图的第二端点。
本发明实施例中的S401-S403的具体实现过程与本发明方法实施例一中 的S101-S103的具体实现过程类似,或者,本发明实施例中的S401-S403的 具体实现过程与本发明方法实施例二中的S201-S207的具体实现过程类似, 详细可以参见上述实施例中的相关记载,本发明实施例在此不再赘述。
在一种可行的实现方式中,可以从待处理网络流图的源结点开始,对待 处理网络流图进行一次缩减处理,获得第一缩减网络流图;然后从第一缩减 网络流图的汇结点开始,对第一缩减网络流图进行一次缩减处理,获得第二 缩减网络流图;然后将第二缩减网络流图更新为待处理网络流图,从更新后 的待处理网络流图的源结点开始,对更新的待处理的网络流图进行一次缩减 处理,获得一个第一缩减网络流图;然后从该第一缩减网络流图的汇结点开 始,对第一缩减网络流图进行一次缩减处理,获得第二缩减网络流图;以此 类推,一次从源结点开始进行缩减处理,一次从汇结点开始进行缩减处理。 或者,可以从待处理网络流图的汇结点开始,对待处理网络流图进行一次缩 减处理,获得第一缩减网络流图;然后从第一缩减网络流图的源结点开始, 对第一缩减网络流图进行一次缩减处理,获得第二缩减网络流图;然后将第 二缩减网络流图更新为待处理网络流图,从更新后的待处理网络流图的汇结 点开始,对更新的待处理的网络流图进行一次缩减处理,获得一个第一缩减 网络流图;然后从该第一缩减网络流图的源结点开始,对第一缩减网络流图 进行一次缩减处理,获得第二缩减网络流图;以此类推,一次从汇结点开始 进行缩减处理,一次从源结点开始进行缩减处理。在缩减处理次数合适的情 况下,可以将待处理网络流图缩减成两个结点,一个结点为由最小割子图合 并而成的结点,即新的源结点,另一个结点也是由最小割子图合并而成的结 点,即新的汇结点,那么新的源结点与新的汇结点之间的边就是最小割。
在另一种可行的实现方式中,可以从待处理网络流图的源结点开始,对 待处理网络流图进行缩减处理,当待处理网络流图的缩减次数不小于第一预 设次数,则说明可以不再从源结点开始对待处理网流图进行缩减处理,然后 从缩减处理得到的第一缩减网络流图的汇结点开始,对第一缩减网络流图进 行缩减处理。或者,可以从待处理网络流图的汇结点开始,对待处理网络流 图进行缩减处理,当待处理网络流图的缩减次数不小于第一预设次数,则说 明可以不再从汇结点开始对待处理网流图进行缩减处理,然后从缩减处理得 到的第一缩减网络流图的源结点开始,对第一缩减网络流图进行缩减处理。
本发明实施例四提供的网络流图缩减方法,进一步地,通过从第一缩减 网络流图中获取第六网络流子图;将第六网络流子图合并成一个第三结点; 将第三结点与第一缩减网络流图中除第六网络流子图之外的第七网络流子图 组成第二缩减网络流图,第二缩减网络流图的最小割的容量等于待处理网络 流图的最小割的容量,第三结点为第二缩减网络流图的第二端点。通过将包 括K个结点的第六网络流子图合并为第三结点,该第三结点成为缩减后的第 二缩减网络流图的第二端点,这样可以有效地缩减图规模,不需要待处理网 络流图符合一定的规则,使得对图规模进行缩减的过程具有普遍的适用性。
图9为本发明网络流图缩减方法实施例五的流程图,如图9所示,本实 施例的方法在图8所示的网络流图缩减方法实施例的基础上,还可以包括:
S501、将第一缩减网络流图的缩减次数进行记录,获得第一缩减网络流 图的缩减次数。
本实施例中,每次对第一缩减网络流图进行缩减处理之后,均对第一缩 减网络流图的缩减次数进行记录,从而可以获得第一缩减网络流图的总的缩 减次数。例如:在对第一缩减网络流图进行缩减处理之前,将第一缩减网络 流图的缩减次数记为0,在对第一缩减网络流图进行缩减处理的时候,将第 一缩减网络流图的缩减次数加1,从而可以获得这次缩减处理之后的第一缩 减网络流图的缩减次数。
S502、判断第一缩减网络流图的缩减次数是否小于第二预设次数,若是, 则执行S503,若否,则执行S504。
本实施例中,在获得第一缩减网络流图的缩减次数之后,判断第一缩减 网络流图的缩减次数是否小于第二预设次数,若小于,则说明还可以对第一 缩减网络流图进行缩减处理,也即执行S503,若不小于,则说明可以不再对 第一缩减网络流图进行缩减处理,也即执行S504。第二预设次数可以为用户 设置的迭代次数,也可以为系统缺省的迭代次数,第二预设次数可以根据实 际的应用场景而定,本发明实施例在此不做限制。
S503、将第二缩减网络流图更新为第一缩减网络流图。
本实施例中,若第一缩减网络流图的缩减次数小于第二预设次数,则说 明还可以对第一缩减网络流图进行缩减处理,然后将第二缩减网络流图更新 为第一缩减网络流图,也即再执行S401-S403。
S504、结束流程。
本实施例中,若第一缩减网络流图的缩减次数不小于第二预设次数,则 说明可以不再对第一缩减网络流图进行缩减处理,然后结束流程。
在第一种可行的实现方式中,可以从待处理网络流图的源结点开始,对 待处理网络流图进行缩减处理,当待处理网络流图的缩减次数不小于第一预 设次数时,说明可以不再从源结点开始对待处理网流图进行缩减处理,然后 从缩减处理得到的第一缩减网络流图的汇结点开始,对第一缩减网络流图进 行缩减处理,当第一缩减网络流图的缩减次数不小于第二预设次数,则说明 可以不再从汇结点开始对待处理网流图进行缩减处理,即完成缩减处理,结 束流程。或者,可以从待处理网络流图的汇结点开始,对待处理网络流图进 行缩减处理,当待处理网络流图的缩减次数不小于第一预设次数时,说明可 以不再从汇结点开始对待处理网流图进行缩减处理,然后从缩减处理得到的 第一缩减网络流图的源结点开始,对第一缩减网络流图进行缩减处理,当第 一缩减网络流图的缩减次数不小于第二预设次数,则说明可以不再从源结点 开始对待处理网流图进行缩减处理,即完成缩减处理,结束流程。在缩减处 理次数合适的情况下,可以将待处理网络流图缩减成两个结点,两个结点分 别为由不同的最小割子图合并而成的结点,即新的源结点和新的汇结点,那 么新的源结点与新的汇结点之间的边就是最小割集合。
在第二种可行的实现方式中,可以从待处理网络流图的源结点开始,对 待处理网络流图进行缩减处理,然后从缩减处理得到的第一缩减网络流图的 汇结点开始,对第一缩减网络流图进行缩减处理,当第一缩减网络流图的缩 减次数不小于第二预设次数,则说明可以不再从汇结点开始对待处理网流图 进行缩减处理,即完成缩减处理,结束流程。或者,可以从待处理网络流图 的汇结点开始,对待处理网络流图进行缩减处理,然后从缩减处理得到的第 一缩减网络流图的源结点开始,对第一缩减网络流图进行缩减处理,当第一 缩减网络流图的缩减次数不小于第二预设次数,则说明可以不再从源结点开 始对待处理网流图进行缩减处理,即完成缩减处理,结束流程。
本发明实施例五提供的网络流图缩减方法,进一步地,通过将第一缩减 网络流图的缩减次数进行记录,获得第一缩减网络流图的缩减次数;当第一 缩减网络流图的缩减次数小于第二预设次数时,将第二缩减网络流图更新为 第一缩减网络流图,再进行缩减处理。这样可以有效并且大量地缩减图规模, 不需要待处理网络流图符合一定的规则,使得对图规模进行缩减的过程具有 普遍的适用性。
图10为本发明网络流图缩减装置实施例一的结构示意图,如图10所示, 本实施例的装置可以包括:获取单元11、合并单元12和处理单元13,其中, 获取单元11用于从待处理网络流图中获取第一网络流子图,所述第一网络流 子图包括M个结点和M个结点之间的边,所述M个结点中包括第一端点, 所述M为大于或等于2的整数,所述待处理网络流图包括N个结点和N个 结点之间的边,所述N个结点中包括源结点和汇结点,所述N为大于M的 整数,所述第一端点为源结点或者汇结点,所述源结点为用以表示所述待处 理网络流图的网络流的起始结点,所述汇结点为所述网络流的结束结点,其 中,各个结点之间的边表示各个结点之间的网络流关系;合并单元12用于将 获取单元11获取的第一网络流子图合并成一个第一结点;处理单元13用于 将合并单元12合并获得的所述第一结点与所述待处理网络流图中除第一网 络流子图之外的第二网络流子图组成第一缩减网络流图,所述第二网络流子 图由所述待处理网络流图中除去所述第一网络流子图之外的所有剩余结点以 及所述所有剩余结点之间的边组成;所述第一网络流子图的所有结点与所述 第二网络流子图的所有结点之间的边成为所述第一结点与所述第二网络流子 图的所有结点之间的边,所述第一缩减网络流图包括所述第一结点、所述第 二网络流子图,以及所述第一结点与所述第二网络流子图的所有结点之间的 边,所述第一缩减网络流图的最小割的容量等于所述待处理网络流图的最小 割的容量,所述第一结点为所述第一缩减网络流图的第一端点。
本实施例的装置,可以用于执行本发明上述方法实施例的技术方案,其 实现原理和技术效果类似,详细可以参见本发明上述实施例中的相关记载, 此处不再赘述。
图11为本发明网络流图缩减装置实施例二的结构示意图,如图11所示, 本实施例的装置在图10所示装置结构的基础上,可选地,合并单元12具体 用于将所述第一网络流子图的M个结点之间的边去掉,并将所述M个结点 聚合为一个所述第一结点。
可选地,获取单元11具体用于从所述第一端点开始,搜索获取包括预设 个数结点的第三网络流子图,所述第三网络流子图包括所述搜索获取的所述 预设个数结点和所述搜索获取的所述预设个数结点之间的边,所述预设个数 大于或等于所述M;将所述待处理网络流图中除所述第三网络流子图之外的 第四网络流子图合并为一个第二结点,所述第四网络流子图由所述待处理网 络流图中除去所述第三网络流子图之外的所有剩余结点以及所述除去所述第 三网络流子图之外的所有剩余结点之间的边组成;并将所述第二结点与所述 第三网络流子图组成第五网络流子图,所述第四网络流子图的所有结点与所 述第三网络流子图的所有结点之间的边,成为所述第二结点与所述第三网络 流子图的所有结点之间的边,所述第五网络流子图包括所述第二结点、所述 第三网络流子图以及所述第二结点与所述第三网络流子图的所有结点之间的 边,所述第二结点为所述第五网络流子图的第二端点;其中,当所述第一端 点为源结点时,所述第二端点为汇结点,当所述第一端点为汇结点时,所述 第二端点为源结点;根据所述第五网络流子图的最小割划分,将所述第五网 络流子图的第一最小割子图作为所述第一网络流子图。
可选地,本实施例的装置还可以包括:还原单元14,该还原单元14用 于获取11根据所述第五网络流子图的最小割划分,将所述第五网络流子图的 第一最小割子图作为所述第一网络流子图之后,将所述第二结点还原为所述 第四网络流子图,所述第二结点与所述第三网络流子图的所有结点之间的边 成为所述第四网络流子图的所有结点与所述第三网络流子图的所有结点之间 的边。
可选地,本实施例的装置还可以包括:第一记录单元15,该第一记录单 元15用于处理单元13将所述第一结点与所述待处理网络流图中除第一网络 流子图之外的第二网络流子图组成第一缩减网络流图之后,将所述待处理网 络流图的缩减次数进行记录,获得所述待处理网络流图的缩减次数。
可选地,本实施例的装置还可以包括:第一更新单元16,该第一更新单 元16用于若第一记录单元15记录获得的所述待处理网络流图的缩减次数小 于第一预设次数,则将所述第一缩减网络流图更新为所述待处理网络流图。
本实施例的装置,可以用于执行本发明上述方法实施例的技术方案,其 实现原理和技术效果类似,详细可以参见本发明上述实施例中的相关记载, 此处不再赘述。
图12为本发明网络流图缩减装置实施例三的结构示意图,如图12所示, 本实施例的装置在图11所示装置结构的基础上,进一步地,若第一记录单元 15记录获得的所述待处理网络流图的缩减次数不小于第一预设次数,则获取 单元11还用于从所述第一缩减网络流图中获取第六网络流子图,所述第六网 络流子图包括K个结点和K个结点之间的边,所述K为大于或等于2的整数, 所述K个结点中包括第二端点,其中,当所述第一端点为源结点时,所述第 二端点为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;合 并单元12,还用于将获取单元11获取到的所述第六网络流子图合并成一个 第三结点;处理单元13,还用于将合并单元12合并获得的所述第三结点与 所述第一缩减网络流图中除第六网络流子图之外的第七网络流子图组成第二 缩减网络流图,所述第七网络流子图由所述第一缩减网络流图中除去所述第 六网络流子图之外的所有剩余结点以及所述除去所述第六网络流子图之外的 所有剩余结点之间的边组成;所述第六网络流子图的所有结点与所述第七网 络流子图的所有结点之间的边,成为所述第三结点与所述第七网络流子图的 所有结点之间的边,所述第二缩减网络流图包括所述第七网络流子图、所述 第三结点、以及所述第三结点与所述第七网络流子图的所有结点之间的边, 所述第二缩减网络流图的最小割的容量等于所述待处理网络流图的最小割的 容量,所述第三结点为所述第二缩减网络流图的第二端点。
可选地,本实施例的装置还可以包括:第二记录单元17,该第二记录单 元17,用于处理单元13将所述第三结点与所述第一缩减网络流图中除第六 网络流子图之外的第七网络流子图组成第二缩减网络流图之后,将所述第一 缩减网络流图的缩减次数进行记录,获得所述第一缩减网络流图的缩减次数。
可选地,本实施例的装置还可以包括:第二更新单元18,该第二更新单 元18用于若所述第二记录单元17记录获得的所述第一缩减网络流图的缩减 次数小于第二预设次数,则将所述第二缩减网络流图更新为所述第一缩减网 络流图。
本实施例的装置,可以用于执行本发明上述方法实施例的技术方案,其 实现原理和技术效果类似,详细可以参见本发明上述实施例中的相关记载, 此处不再赘述。
图13为本发明网络流图缩减装置实施例四的结构示意图,如图13所示, 本实施例的装置包括存储器21和与存储器21连接的处理器22,其中,存储 器21中存储一组程序代码,存储器21可以包括非易失性存储器(Non-volatile  Memory)。处理器22可以是一个中央处理器(Central Processing Unit,简称: CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称: ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。处理器 22用于调用存储器21中存储的程序代码,用于执行如下操作:
从待处理网络流图中获取第一网络流子图,所述第一网络流子图包括M 个结点和M个结点之间的边,所述M个结点中包括第一端点,所述M为大 于或等于2的整数,所述待处理网络流图包括N个结点和N个结点之间的边, 所述N个结点中包括源结点和汇结点,所述N为大于M的整数,所述第一 端点为源结点或者汇结点,所述源结点为用以表示所述待处理网络流图的网 络流的起始结点,所述汇结点为所述网络流的结束结点,其中,各个结点之 间的边表示各个结点之间的网络流关系;
将所述第一网络流子图合并成一个第一结点;
将所述第一结点与所述待处理网络流图中除第一网络流子图之外的第二 网络流子图组成第一缩减网络流图,所述第二网络流子图由所述待处理网络 流图中除去所述第一网络流子图之外的所有剩余结点以及所述所有剩余结点 之间的边组成;所述第一网络流子图的所有结点与所述第二网络流子图的所 有结点之间的边成为所述第一结点与所述第二网络流子图的所有结点之间的 边,所述第一缩减网络流图包括所述第一结点、所述第二网络流子图,以及 所述第一结点与所述第二网络流子图的所有结点之间的边,所述第一缩减网 络流图的最小割的容量等于所述待处理网络流图的最小割的容量,所述第一 结点为所述第一缩减网络流图的第一端点。
可选地,所述将所述第一部分待处理网络流图合并成一个第一结点,包 括:将所述第一网络流子图的M个结点之间的边去掉;将所述M个结点聚 合为一个所述第一结点。
可选地,所述从待处理网络流图中获取第一网络流子图,包括:
从所述第一端点开始,搜索获取包括预设个数结点的第三网络流子图, 所述第三网络流子图包括所述搜索获取的所述预设个数结点和所述搜索获取 的所述预设个数结点之间的边,所述预设个数大于或等于所述M;
将所述待处理网络流图中除所述第三网络流子图之外的第四网络流子图 合并为一个第二结点,所述第四网络流子图由所述待处理网络流图中除去所 述第三网络流子图之外的所有剩余结点以及所述除去所述第三网络流子图之 外的所有剩余结点之间的边组成;
将所述第二结点与所述第三网络流子图组成第五网络流子图,所述第四 网络流子图的所有结点与所述第三网络流子图的所有结点之间的边,成为所 述第二结点与所述第三网络流子图的所有结点之间的边,所述第五网络流子 图包括所述第二结点、所述第三网络流子图以及所述第二结点与所述第三网 络流子图的所有结点之间的边,所述第二结点为所述第五网络流子图的第二 端点;
其中,当所述第一端点为源结点时,所述第二端点为汇结点,当所述第 一端点为汇结点时,所述第二端点为源结点;
根据所述第五网络流子图的最小割划分,将所述第五网络流子图的第一 最小割子图作为所述第一网络流子图。
可选地,所述根据所述第五网络流子图的最小割划分,将所述第五网络 流子图的第一最小割子图作为所述第一网络流子图之后,还包括:
将所述第二结点还原为所述第四网络流子图,所述第二结点与所述第三 网络流子图的所有结点之间的边成为所述第四网络流子图的所有结点与所述 第三网络流子图的所有结点之间的边。
可选地,所述将所述第一结点与所述待处理网络流图中除第一网络流子 图之外的第二网络流子图组成第一缩减网络流图之后,还包括:将所述待处 理网络流图的缩减次数进行记录,获得所述待处理网络流图的缩减次数。
可选地,若所述待处理网络流图的缩减次数小于第一预设次数,则将所 述第一缩减网络流图更新为所述待处理网络流图。
可选地,若所述待处理网络流图的缩减次数不小于所述第一预设次数, 则所述方法还包括:
从所述第一缩减网络流图中获取第六网络流子图,所述第六网络流子图 包括K个结点和K个结点之间的边,所述K为大于或等于2的整数,所述K 个结点中包括第二端点,其中,当所述第一端点为源结点时,所述第二端点 为汇结点,当所述第一端点为汇结点时,所述第二端点为源结点;
将所述第六网络流子图合并成一个第三结点;
将所述第三结点与所述第一缩减网络流图中除第六网络流子图之外的第 七网络流子图组成第二缩减网络流图,所述第七网络流子图由所述第一缩减 网络流图中除去所述第六网络流子图之外的所有剩余结点以及所述除去所述 第六网络流子图之外的所有剩余结点之间的边组成;所述第六网络流子图的 所有结点与所述第七网络流子图的所有结点之间的边,成为所述第三结点与 所述第七网络流子图的所有结点之间的边,所述第二缩减网络流图包括所述 第七网络流子图、所述第三结点、以及所述第三结点与所述第七网络流子图 的所有结点之间的边,所述第二缩减网络流图的最小割的容量等于所述第一 缩减网络流图的最小割的容量,所述第三结点为所述第二缩减网络流图的第 二端点。
可选地,所述将所述第三结点与所述第一缩减网络流图中除第六网络流 子图之外的第七网络流子图组成第二缩减网络流图之后,还包括:将所述第 一缩减网络流图的缩减次数进行记录,获得所述第一缩减网络流图的缩减次 数。
可选地,若所述第一缩减网络流图的缩减次数小于第二预设次数,则将 所述第二缩减网络流图更新为所述第一缩减网络流图。
需要说明的是,处理器22通过调用存储器21中存储的程序代码具体实 现的技术方案可以参见本发明网络流图缩减方法的上述实施例,其实现原理 和技术效果类似,详细可以参见上述实施例中的相关记载,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

网络流图缩减方法和装置.pdf_第1页
第1页 / 共27页
网络流图缩减方法和装置.pdf_第2页
第2页 / 共27页
网络流图缩减方法和装置.pdf_第3页
第3页 / 共27页
点击查看更多>>
资源描述

《网络流图缩减方法和装置.pdf》由会员分享,可在线阅读,更多相关《网络流图缩减方法和装置.pdf(27页珍藏版)》请在专利查询网上搜索。

本发明实施例提供一种网络流图缩减方法和装置,其中,该方法包括:通过从待处理网络流图中获取第一网络流子图,第一网络流子图包括M个结点和M个结点之间的边,M个结点中包括第一端点;将第一网络流子图合并成一个第一结点;将第一结点与待处理网络流图中除第一网络流子图之外的第二网络流子图组成第一缩减网络流图,所述第一缩减网络流图的最小割的容量(最大流值)等于所述待处理网络流图的最小割的容量(最大流值),所述第一。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1