




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最大流和最小割的最短增益路径法最大流和最小割的最短增益路径法实验目的:1.理解迭代改进基本原理;2.掌握最短增益路径法;实验平台:Microsoft Visual C+ 6.0实验过程:1.编程实现最短增益路径算法:#include #include #include using namespace std;class Gpublic:G();G(int n,int start,int end);void Edge(int a,int b,int flow); /a,b之间的流量void Maxflow(); /计算最大流void Leastcut(); /计算最小割private:int N,Start,End, /N是顶点个数,Start是源点End是汇点*Map, /网络流量*Flow, /通过流量*Rest, /剩余流量*Pre, /标记流向,正为前向,负为后向*Sign, /顶点是否标记,0为未标记,1为已标记*P; /过程变量,记录流量bool SignN(); /标记顶点int Min(int a,int b); /计算最小值void Update(); /更新网络;G:G() Pre=NULL;G:G(int n,int start,int end)N=n;Start=start;End=end;Map=new int*N+1;Flow=new int*N+1;Rest=new int*N+1;Pre=new intN+1;Sign=new intN+1;P=new intN+1;for(int i=1;i=N;i+)Mapi=new intN+1;Flowi=new intN+1;Resti=new intN+1;Signi=0;Pi=0;for(i=1;i=N;i+)for(int j=1;j=N;j+)Mapij=0;Flowij=0;Restij=0;int G:Min(int a,int b)if(ab) return a;return b;void G:Edge(int a,int b,int flow)if(aN | bN) return;Mapab=flow;void G:Update()for(int i=1;i=N;i+)Signi=0;for(int j=1;j=N;j+)Restij=Mapij-Flowij;bool G:SignN()Update();queue que;que.push(Start);SignStart=1;PStart=1000000;PreStart=-1;while(!que.empty()int head=que.front();que.pop();for(int i=1;i0 & Signi=0)Pi=Min(Phead,Restheadi);Prei=head;Signi=1;if(i=End) return true;que.push(i);for(i=1;i0 & Signi=0)Pi=Min(Phead,Flowihead);Prei=-head;Signi=1;if(i=End) return true;que.push(i); return false;void G:Maxflow()int maxflow=0;while(SignN()maxflow=maxflow+PEnd;for(int i=End;i1;i=abs(Prei)if(Prei0)FlowPreii=FlowPreii+PEnd;if(Prei0)Flowiabs(Prei)=Flowiabs(Prei)-PEnd;cout最大流:maxflowendl;void G:Leastcut()cout最小割:;int leastcut=0;for(int i=1;i=N;i+)if(Signi=1)for(int j=1;j0 & Mapij=Flowij & Signj=0)cout(i,j) ;leastcut=leastcut+Mapij;coutendl最小割流量:leastcutendl;2.通过上述程序求解教材274页第二题:a.测试代码:void main()G Graph(6,1,6);Graph.Edge(1, 2, 5); Graph.Edge(1, 3, 6); Graph.Edge(2, 4, 4); Graph.Edge(2, 5, 2); Graph.Edge(3, 4, 7); Graph.Edge(4, 6, 8); Graph.Edge(5, 6, 4);Graph.Maxflow();Graph.Leastcut();测试结果:最大流:10最小割:(2,5) (4,6)最小割流量:10b.测试代码:void main()G Graph(6,1,6);Graph.Edge(1, 2, 2); Graph.Edge(1, 3, 7); Graph.Edge(2, 4, 3); Graph.Edge(2, 5, 4); Graph.Edge(3, 4, 4); Graph.Edge(3, 5, 2); Gr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度水泥罐车运输与物流信息安全合同
- 河北省昌黎县2025年上半年公开招聘城市协管员试题含答案分析
- 2025版离婚协议书:子女抚养权及财产分割协议范本
- 河北省安国市2025年上半年事业单位公开遴选试题含答案分析
- 海南省五指山市2025年上半年公开招聘城市协管员试题含答案分析
- 2025版汽车融资租赁与售后服务包合同
- 2025年度智能家居系统地毯采购与安装服务合同范本
- 2025比亚迪购车赠送保养及救援服务合同
- 2025年度外国人入境口岸通关代理合同
- 贵州省修文县2025年上半年公开招聘村务工作者试题含答案分析
- 2024年河北机场管理集团有限公司招聘考试真题
- 2025-2030矿山机械行业应收账款管理优化与现金流改善策略
- 2025-2026秋季学年第一学期教导处工作安排表
- 2025山东菏泽郓城县人民医院招聘合同制护理人员60人笔试备考试题及答案解析
- 低血糖知识培训课件
- 银行公司服务礼仪管理规章
- 2025年秋季开学全体教师大会校长讲话:践行“六个学会”做学生生命中的那束光
- 2025年上海公务员考试(城市建设管理)历年参考题库含答案详解(5卷)
- 舆情安全管理办法
- 2025个人洗护市场趋势洞察报告-魔镜洞察
- 厨房4D管理课件下载
评论
0/150
提交评论