Edmonds-Karp算法
来源:互联网 发布:淘宝怎么评价宝贝 编辑:程序博客网 时间:2024/05/09 12:35
最大流算法
参考:http://www.cnblogs.com/jackge/archive/2013/05/05/3061893.html
package test;import java.util.Arrays;import java.util.LinkedList;public class Edmonds_Karp_Test {public static void main(String[] args) {//输入一个图int [][] cap ={ {0,5,0,0,0}, {0,0,6,0,1}, {0,0,0,5,2}, {0,0,0,0,1}, {0,0,0,0,0}, };//有向图的初始容量int max=EdmondsKarp(0, 4, cap);System.out.println(max);}public static int EdmondsKarp(int start,int end,int[][] cap){int [][] flow =new int [cap.length][cap[0].length];//记录流量int [] pre = new int[cap.length];//记录前一个节点int [] rest = new int[cap.length];//记录剩余的流量,残量int maxflow = 0;for(int i=0;i<flow.length;i++){Arrays.fill(flow[i], 0);}Arrays.fill(pre, 0);LinkedList list = new LinkedList<Integer>();while(true){//System.out.println("yici");for(int j =0 ;j<rest.length;j++){//设置残量都为0rest[j] =0;}rest[start] = 10000000;//设置起始位置的残量为一个很大的值list.add(start);while(!list.isEmpty()){//BFS 寻找增广路//System.out.println("yici");int u = (int)list.pollFirst();for(int v =0;v<=end;v++){if(rest[v]==0 && cap[u][v]-flow[u][v] > 0){pre[v] =u;//设置前面的节点rest[v] = Math.min(rest[u], cap[u][v]-flow[u][v]);//获取start到v节点的最小残量list.add(v);}}}//System.out.println(rest[end]+"rest[end]");maxflow += rest[end];if(rest[end] == 0){return maxflow;}for(int u=end;u!=start;u=pre[u]){//从汇点往回走flow[pre[u]][u] += rest[end];//更新正向流flow[u][pre[u]] -= rest[end];//更新反向流System.out.print(u+" ");}System.out.print(start+" ");System.out.println("寻找至本次的流为: "+maxflow);}//return maxflow;}//}
1 0
- Edmonds-Karp算法
- Edmonds Karp 算法
- Edmonds-Karp算法
- Edmonds-karp算法详解
- Edmonds-Karp算法
- Edmonds-Karp算法实现代码
- 最大流-Edmonds-Karp算法
- Ford-Fulkerson Edmonds-Karp算法
- 网络流算法--Edmonds-Karp算法
- Edmonds-Karp算法实现代码【原创】
- 最大流 - Edmonds-Karp 增广路算法
- 网络流最大流 Edmonds-Karp算法
- 网络流 最大流 Edmonds-Karp算法
- 最大流算法模板 Edmonds—Karp
- 最大流问题 Edmonds-Karp算法
- Edmonds-Karp算法,网络流最大流
- 最大流Edmonds-Karp算法模版
- [最大流]增广路算法Edmonds-Karp
- ReactNative(二)——HelloWorld
- ext js学习之窗体
- 使用微信号开通检测软件的成功案例(一)
- 可以使用额外的内存。
- android开发之使用SQLite数据库存储
- Edmonds-Karp算法
- 二级下拉菜单导航
- jQuery 阻止事件冒泡和默认行为
- 使用jQuery Validation Engine 表单验证(菜鸟经历分享)
- 人脸检测 神经网络+Gabor滤波
- log4net的使用
- 获取CComboBox光标所在位置
- UNIX网络编程笔记(一)
- Jave基础知识