利用lingo程序求最小费用最大流.docx_第1页
利用lingo程序求最小费用最大流.docx_第2页
利用lingo程序求最小费用最大流.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用lingo程序求最小费用最大流通常求最小费用最大流问题是分两个阶段:1, 先求最大流。2, 再在最大流的基础上求最小费用流。以下图为例。其中如(5,8)=(容量,费用)。求从S到T的最小费用最大流。1, 先求最大流,lingo程序为:MODEL:sets:nodes/s,1,2,3,t/;arcs(nodes,nodes)/ s,1 s,2 1,t,1,3 2,1 2,3 3,t/:c,f;endsetsdata: c= 5 8 4 3 2 10 8;enddatamax = flow;for(nodes(i)|i #ne# 1 #and# i #ne# size(nodes): sum(arcs(i,j):f(i,j)-sum(arcs(j,i):f(j,i)=0);sum(arcs(i,j)|i #eq# 1: f(i,j) = flow;for(arcs:bnd(0,f,c);END结果是,最大流为12,2, 再在最大流的基础上求最小费用流。程序为:MODEL:sets:nodes/s,1,2,3,t/: ;arcs(nodes,nodes)/s,1 s,2 1,t,1,3 2,1 2,3 3,t/:b,c,f;endsetsdata:flow=12;b=8 7 9 2 5 9 4 ;c=5 8 4 3 2 10 8;enddatamin=sum(arcs:b*f);for(nodes(i)|i #ne# 1 #and# i #ne#size(nodes): sum(arcs(i,j):f(i,j)-sum(arcs(j,i):f(j,i)=0);sum(arcs(i,j)|i #eq# 1: f(i,j) = flow;for(arcs:bnd(0,f,c);END结果是: Global optimal solution found. Objective value: 218.0000 Infeasibilities: 0.000000 Total solver iterations: 0 Variable Value Reduced Cost F( S, 1) 5.000000 -6.000000 F( S, 2) 7.000000 0.000000 F( 1, T) 4.000000 0.000000 F( 1, 3) 3.000000 0.000000 F( 2, 1) 2.000000 -2.000000 F( 2, 3) 5.000000 0.000000 F( 3, T) 8.000000 -3.000000现利用lingo的子模型功能,将2个程序合二为一,可直接算出最小费用流。model: !最小费用最大流问题的子模型形式;sets:nodes/s,1,2,3,t/: ; !定义端点代号;arcs(nodes,nodes)/s,1 s,2 1,t,1,3 2,1 2,3 3,t/:b,c,f; !定义弧代号;Endsetsdata:b=8 7 9 2 5 9 4 ; !定义各弧的费用值;c=5 8 4 3 2 10 8; !定义各弧的容量;enddataSUBMODEL maxflow: !最大流的目标函数子模型;max = flow; !求最大流; endsubmodelsubmodel minfy: !最小费用流的目标函数子模型;min=sum(arcs:b*f); !求最小费用流; endsubmodelsubmodel con: !约束条件;for(nodes(i)|i #ne# 1 #and# i #ne# size(nodes): sum(arcs(i,j):f(i,j)-sum(arcs(j,i):f(j,i)=0); !中间点是进出相等;sum(arcs(i,j)|i #eq# 1: f(i,j) = flow; !发点是流量; for(arcs:bnd(0,f,c); !流量应小于容量;endsubmodelCALC: !程序段,顺序执行;SOLVE( maxflow,con); !先求最大流,注意加约束条件;flow=flow; !保留flow值,便于第2个程序使用;solve(minfy,con); !再求最大流下的最小费用流;endcalcEND结果同上,最小费用为218 Global optimal solution found. Objective value: 218.0000 Infeasibilities: 0.000000 Total solver iterations: 0 Variable Value Reduced Cost F( S, 1) 5.000000 -6.000000 F( S, 2) 7.000000 0.000000 F( 1, T) 4.000000 0.000000 F(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论