最小费用问题——lingo求解的三种常见解法

8 篇文章 0 订阅
7 篇文章 0 订阅

最小费用问题

方法一 系数矩阵0-1规划法

代码

由于没有lingo类型的代码涂色格式,我先给个截图,也许会看的清晰一些
在这里插入图片描述

model:

sets:
node/1..6/;
road(node,node)/1,2,1,3,2,4,2,5,3,4,3,5,4,6,5,6/:w,f;
endsets

data:
w=2,1,5,3,4,3,0,0;
enddata

n=@size(node);

min=@sum(road(i,j):w(i,j)*f(i,j));

@for(node(i)|i#ne#1 #and# i#ne#n:
	@sum(road(i,j):f(i,j))=@sum(road(j,i):f(j,i))
);

@sum(road(i,j)|i#eq#1:f(i,j))=1;
@sum(road(j,i)|i#eq#n:f(j,i))=1;

运行结果

‘’
在这里插入图片描述

方法二 动态规划

代码

在这里插入图片描述

model:

sets:
node/1..6/:L;
road(node,node)/1,2,1,3,2,4,2,5,3,4,3,5,4,6,5,6/:c;
endsets

data:
c=2,1,5,3,4,3,0,0;
enddata

L(1)=0;

@for(node(i)|i#gt#1:
	L(i)=@min(road(j,i)|j#ne#i:L(j)+c(j,i))
);


end

运行结果

在这里插入图片描述

方法三 邻接矩阵法

代码

在这里插入图片描述

model:

sets:
node/1..6/:L;
road(node,node):a,w;
endsets

data:
a=
0,1,1,0,0,0,
0,0,0,1,1,0,
0,0,0,1,1,0,
0,0,0,0,0,1,
0,0,0,0,0,1,
0,0,0,0,0,0;
w=
9,2,1,9,9,9,
9,9,9,5,3,9,
9,9,9,4,3,9,
9,9,9,9,9,0,
9,9,9,9,9,0,
9,9,9,9,9,9;
enddata

L(1)=0;
@for(node(i)|i#ne#1:
	L(i)=@min(road(j,i)|j#ne#i #and# a(j,i)#ne#0:
		L(j)+w(j,i)));

end

运行结果

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值