首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用最大流算法求网络的边连通性

用最大流算法求网络的边连通性
EN

Stack Overflow用户
提问于 2013-05-05 19:41:13
回答 1查看 7.1K关注 0票数 6

我想使用最大流算法(Edmond Karp / Ford-Fulkerson算法)找出无向图的边连通性(即,要移除以断开图的最小边数),

我知道我可以通过找到图的每两个节点之间的最小最大流来完成这项任务,但这将导致O(|V| ^ 2)个流网络,

代码语言:javascript
复制
int Edge-Connectivity(Graph G){
    int min = infinite;
    for (Vertex u: G.V){
        for (Vertex v: G.V){
           if (u != v){ 
             //create directed graph Guv (a graph with directed edges and source u and sink v)
             //run Edmonds-Karp algorithm to find the maximum flow |f*|
             if (min > |f*|)
               min = |f*|;
           }    
         }
     }
     return min;
}

但我希望使用|V| flow网络(运行最大流算法仅运行O(|V|)次),而不是O(|V| ^ 2)次

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-05 20:46:12

在图中区分节点v。对于除v之外的每个w,计算从vw的最大流量。由于v必须在图的全局最小割线的一边,而另一边必须有其他东西,因此这些流中的一个将标识全局最小割线。

Hao和Orlin有一个技巧,如果你使用预流推算法,全局最小割集计算所需的时间与最小(s,t)-cut问题的时间差不多。它的好处在于它是实用的。Karger有一个随机算法,可以在O(n polylog(n))时间内完成,但我不知道有任何实现,更不用说快速实现了。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16384151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档