最小割集stoer_wagner算法

介绍Stoer-Wagner算法原理及其求解最小割的过程,通过不断选取点并缩点,最终找到全局最小割。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stoer_wagner,在此用sw代替,算法利用两个引理判定最小割集的权值

任意在无向图G中选出s和t. 最小割的值要么等于以s和t为源汇点的最小割,要么等于将s和t缩点之后的全局最小割。
换句话就是,如果存在一个最小割,s和t分别在两个点集中,
那么s-t最小割就等于全局最小割(最小割),如果不是,那么s和t就在同一侧点集,
缩点之后肯定不影响最小割的求解。
*将s和t缩点的操作就是:
将新建一点 ,该点到任意点的边权等于s到该点的边权与t到该点的边权之和。
既然有了这个结论,那大体的算法框架就是:找任意s和t的最小割,然后缩点,总点数减一,重复n-1次之后,那么就剩下一个点,算法结束。
现在的难点就是如何在最短的时间内找到任意s和t之间的最小割大小。
引理2.初始集合A为空集,任意选择无向图中一点进入集合,开数组记录到达每一个点的边权和,边权和更新加上每次进入集合的点到达其他不在集合内的点的边权,然后每次从不在集合内的所有点中选择一点累计边权和最大的点进入集合,直至所有点进入A中,最后一个进入A的点为t,t之前一个进入集合的点为s,则t进入集合时的边权和就是s和t之间的最小割。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值