sw 最小算法

最近看sw最小割的论文,想把自己的理解写下来,算是对最近的一个总结吧。

1:基本概念:

割:在一个图G(V,E)中V是点集,E是边集。在E中去掉一个边集C使得G不连通,C就是图G的一个割;
最小割:在G(V,E)的所有割中,边权总和最小的就是最小割

全局最小割:删掉无向图中的边使得其不连通的最小代价 或在一个无向图中任取S和T,求最小割的最小值 

2:sw算法的用途:

Stoer-Wagner 算法用来求无向图 G=(V, E)的全局最小割

3:sw算法的思想:

sw的核心思想是迭代缩小规模:

设s和t是图G的2个顶点,图G的全局最小割要么是s-t的最小割,此时s和t在G的全局最小割的2个不同的子集中,或者是G中将s和t合并得的的新图G'的全局最小割,此时s和t在G的全局最小割的同一个子集中。所以只需要不断求出当前图中任意2个点的最小割,然后合并这2个点。不断缩小图的规模求得最小割

  伪代码;

    while |V|!=1:

while A!=V:

                A= {}

                A = {a}, #任选G中一点a到集合A中,

定义W(A, p)为A中的所有点到A外相邻一点p的权总和.
选出最大的W(A,P) ,并将p点加入到集合A中,
把最后进入A的两点记为s和t,其中s是倒数第二个被集合A中的点,t是倒数最以后一个进入集合点
把最后一个顶点t合并到倒数第二个顶点s中即:新建顶点U  边权w(u, A)=w(s, A)+w(t, A) 删除顶点s和t, 以及与它们                    相连的边

更新图G(V,E)  即更新 V

 4:代码会最近补上来。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值