《小费用最大流》PPT课件.ppt
《《小费用最大流》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《小费用最大流》PPT课件.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.5 最小费用最大流问题最小费用最大流问题6.5.1 最小费用最大流问题的数学模型最小费用最大流问题的数学模型设网络D=(V,A,W),每条弧 除了容量 以 外,还给出单位流量的费用(简记为)。这样,D就成为一个带费用的网络,记为D=(V,A,W,C),其中,C称为费用函数费用函数。设X为D上的一个可行流,称()为可行流可行流X的费用的费用。最小费用最大流问题,即要求一个最大流X,使总运输费用()达到最小值,则有最小费用最大流问题的数学模型()6.5.2 最小费用最大流问题的算法最小费用最大流问题的算法寻求最大流的方法寻求最大流的方法 最小最小费用费用 最小费用最大流最小费用最大流 从某个可
2、行流出发,从某个可行流出发,找到关于这个可行流找到关于这个可行流的一条增广链,沿着的一条增广链,沿着 该增广链调整该增广链调整X,对,对新的可行流试图寻求新的可行流试图寻求关于它的增广链,如关于它的增广链,如此反复直至最大流此反复直至最大流 设想:当沿着一条关于可行流X的增广链 以 调整X,得到新的可行流 且有 这里第三个等式只是因为对 之外的 来说 即费用均一样。记 称 是沿增广链 当可行流增加单位流值时费用的增量,简称为增广链 的单位费用增量单位费用增量。可以证明,若X是流量为f(X)的所有可行流中费用最小者,而 是关于X的所有增广链中费用最小的增广链,则沿 去调整X,得到的可行流 就是流
3、量为的所有可行流中的最小费用流,这样,当是最大流时,即为最小费用最大流。注意到 故X=0必是流量为 0的最小费用流。这样,总可以从X=0开始。一般地,若X是流量 f(X)的最小费用流,为了寻求关于X的最小费用增 广链,构造一个赋权有向图D(X),它的顶点是原网 络D的顶点,而把D中的每一条弧 变成两个相反方向的弧 和 定义D(X)中弧的 权 在D(X)中长度为 的弧可以略去。故在网络D中寻找关于 X的最小费用增广链就等价于在赋权有向图D(X)中,寻找从 到 的最短 路。算法步骤:算法步骤:Step1:确定初始可行流 令 Step2:记 为经过k次调整得到的最小费用流,构造 Step3:求 中
4、到 的最短路 若 不存在,则 是最小费用最大流,算法终止;否则,转Step4;Step4:在D中找对应的增广链 按式()调整流量,得可行流 令 转Step2。例例 求图的最小费用最大流,弧旁的数字为图图解解:取 见图(a),图(图(a)构造 因没有负权弧,故可用Dijkstra算法求得最短路为 见图(b)。图(图(b)增广链 调整后 如图(c)。图(图(c)构造 得到 如图(d)。图(图(d)调整得 如图(e)。图(图(e)构造 如图(f)。图(图(f)显然,与 关联的弧指向 不存在 到 的最短路。故图(e)所示的 为最小费用 最大流。费用 流值 三、最小费用最大流例例 用LINGO软件求解例
5、。解:解:程序如下:model:sets:nodes/1,2,3,4,5/:d;arcs(nodes,nodes)/1,2 1,3 2,3 2,4 3,4 3,5 4,5/:c,u,f;endsetsmin=sum(arcs:c*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)=d(i);sum(arcs(i,j)|i#eq#1:f(i,j)=d(1);for(arcs:Bnd(0,f,u);data:u=2 1 3 6 2 3 4;c=1 3 2 5 1 1 3;d=3
6、0 0 0-3;enddataend运行结果:Global optimal solution found at iteration:0 Objective value:12.00000Variable Value Reduced CostD(1)3.000000 0.000000D(2)0.000000 0.000000D(3)0.000000 0.000000D(4)0.000000 0.000000D(5)-3.000000 0.000000C(1,2)1.000000 0.000000C(1,3)3.000000 0.000000C(2,3)2.000000 0.000000C(2,4)
7、5.000000 0.000000C(3,4)1.000000 0.000000C(3,5)1.000000 0.000000C(4,5)3.000000 0.000000U(1,2)2.000000 0.000000U(1,3)1.000000 0.000000U(2,3)3.000000 0.000000U(2,4)6.000000 0.000000U(3,4)2.000000 0.000000U(3,5)3.000000 0.000000U(4,5)4.000000 0.000000F(1,2)2.000000 0.000000F(1,3)1.000000 0.000000F(2,3)2
8、.000000 0.000000F(2,4)0.000000 5.000000F(3,4)0.000000 3.000000F(3,5)3.000000 0.000000F(4,5)0.000000 0.000000结果说明,最小费用为结果说明,最小费用为12,此时,流值为,此时,流值为3。例例 用MATLAB软件求解例。MATLAB编程如下:解:解:f=zeros(7,1);f(1)=1;f(2)=1;g=-f;aeq=1,0,-1,-1,0,0,0 0,1,0,1,-1,0,-1 0,0,1,0,1,-1,0;beq=zeros(3,1);lb=zeros(7,1);ub=2 1 6 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小费用最大流 费用 最大 PPT 课件
限制150内