最小费用流matlab,计算最小费用最大流MATLAB源代码.doc

这是一个使用MATLAB编写的最小费用最大流算法源代码,通过floyd_mr函数计算以花费为权值的最短路径,并求得最小花费。算法采用迭代方式更新流量和花费矩阵,直至无法找到最短路径为止。
摘要由CSDN通过智能技术生成

计算最小费用最大流MATLAB源代码,文件名为mp_mc.m

function[Mm,mc,Mmr]=mp_mc(a,c)

A=a; %各路径最大承载流量矩阵

C=c; %各路径花费矩阵

Mm=0; %初始可行流设为零

mc=0; %最小花费变量

mcr=0;

mrd=0;

n=0;

while mrd~=inf %一直叠代到以花费为权值找不到最短路径

for i=1:(size(mcr',1)-1)

if a(mcr(i),mcr(i+1))==inf

ta=A(mcr(i+1),mcr(i))-a(mcr(i+1),mcr(i));

else

ta=a(mcr(i),mcr(i+1));

end

n=min(ta,n); %将最短路径上的最小允许流量提取出来

end

for i=1:(size(mcr',1)-1)

if a(mcr(i),mcr(i+1))==inf

a(mcr(i+1),mcr(i))=a(mcr(i+1),mcr(i))+n;

else

a(mcr(i),mcr(i+1))=a(mcr(i),mcr(i+1))-n;

end

end

Mm=Mm+n; %将每次叠代后增加的流量累加,叠代完成时就得到最大流量

for i=1:size(a,1)

for j=1:size(a',1)

if i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值