最大流问题实验报告.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最大流问题实验报告   实验7最大流问题的编程实现   专业班级学号姓名报告日期.   实验类型:●验证性实验○综合性实验○设计性实验   实验目的:熟练最大流问题的求解算法。   实验内容:最大流问题的求解算法。   实验原理:先给定初始可行流,然后找出可扩充路,调整可扩充路上的流量,使可行流增大,不断重复上述过程,直到不存在可扩充路为止。   实验步骤   1要求上机实验前先编写出程序代码   2编辑录入程序   3调试程序并记录调试过程中出现的问题及修改程序的过程   4经反复调试后,运行程序并验证程序运行是否正确。   5记录运行时的输入和输出。   预习编写程序代码:   实验报告:根据实验情况和结果撰写并递交实验报告。   实验总结:   参考程序   求最大流   V28   4V46   V16   V63V335V5   n=6;   C=[;;;;;];   [f,wf,No]=maxflow(n,C)   f=                     wf=   13   No=      由运行结果知,最大流量为13.   程序代码   function[f,wf,No]=maxflow(n,C)   %利用Ford--Fulkerson标号法求最大流算法的MATLAB程序代码   %f%显示最大流   %wf%显示最大流量   %No%显示标号,由此可得最小割   %n节点个数   %C%弧容量   for(i=1:n)   for(j=1:n)   f(i,j)=0;   end;   end%取初始可行流f为零流   for(i=1:n)   No(i)=0;   d(i)=0;   end%No,d记录标号   while(1)   No(1)=n+1;   d(1)=Inf;%给发点vs标号   while(1)   pd=1;%标号过程   for(i=1:n)   if(No(i))%选择一个已标号的点vi   for(j=1:n)   if(No(j)==0f(i,j)d(i))   d(j)=d(i);   end   elseif(No(j)==0f(j,i)0)%对于未给标号的点vj,当vjvi为非零流弧时No(j)=-i;   d(j)=f(j,i);   pd=0;   if(d(j)d(i))   d(j)=d(i);   end;   end;   end;   end;   end   if(No(n)|pd)   break;   end;   end%若收点vt得到标号或者无法标号,终止标号过程   if(pd)   break;   end%vt未得到标号,f已是最大流,算法终止dvt=d(n);   t=n;%进入调整过程,dvt表示调整量while(1)   if(No(t)0)   f(No(t),t)=f(No(t),t)+dvt;%前向弧调整elseif(No(t)添加或扩大反方向的容量,大小就是刚才减去的容量。一直到没有路为止。此时辅助图上的正向流就是最大流。   增广路方法可以解决最大流问题,然而它有一个不可避免的缺陷,就是在极端情况下每次只能将流扩大1   ,这样会造成性能上的很大问题。   实验步骤   1要求上机实验前先编写出程序代码   2编辑录入程序   3调试程序并记录调试过程中出现的问题及修改程序的过程   4经反复调试后,运行程序并验证程序运行是否正确。   5记录运行时的输入和输出。   预习编写程序代码:   实验报告:根据实验情况和结果撰写并递交实验报告。   实验总结:   参考程序   例:解决如下问题:   ①使用lingo求解,调用如下模型,程序代码如下:   model:   sets:   point/v1,v2,v3,v4,v5,v6/;   route(point,point)/v1v2,v1v3,v2v3,v2v4,v2v5,v3v4,v3v5,v4v6,v5v4,v5v6/:transport,capacity;   endsets   data:   capacity=17;   enddata   max=z;   z=@sum(point(j)|@in(route,@index(point,v1),j):transport(1,j));   @for(point(i)|i#ne#@index(point,v1)#and#i#ne#@index(point,v6):@sum(point(j)|@in(route,i,j):transport(i,j))=@sum(point(j)|@in(route,j,i):transport(j,i)));   @for(route:transport最大流问题实验

文档评论(0)

gz2018gz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档