matlab消防站距离最近,消防站选址问题(数学建模)十二个地点中,选三个地点,每个点上还有权.要求,十二个点到这个三个点的加权距离最短.距离矩阵v...

共回答了16个问题采纳率:93.8%

你的思路是可行的.用lingo数学优化软件,建立的模型代码:

model:

sets:

PL/1..12/:w,T;!T为决策变量,T(i)=1表示i点选择;

DS(PL,PL):d;

endsets

data:

w=15 10 12 18 5 24 11 16 13 22 19 20;

d=0 15 37 45 24 60 18 33 48 40 58 67

15 0 22 40 38 52 33 48 42 55 61 61

37 22 0 18 16 30 43 28 20 58 39 39

45 40 18 0 34 12 61 46 24 62 43 34

24 38 16 34 0 36 27 12 24 49 43 43

60 52 30 12 36 0 57 42 12 50 31 22

18 33 43 61 27 57 0 15 45 22 40 61

33 48 28 46 12 42 15 0 30 37 25 46

48 42 20 24 24 12 45 30 0 38 19 19

40 55 58 62 49 50 22 37 38 0 19 40

58 61 39 43 43 31 40 25 19 19 0 21

67 61 39 34 43 22 61 46 19 40 21 0;

enddata

min=@sum(PL(i):w(i)*@sum(PL(j):w(j)*d(i,j)*T(i)));!我认为加权值应为w1*w2*d12;

@for(PL:@bin(T));

@sum(PL:T)=3;

end

运行结果是:

加权最短距离是162380;

选择的3个点是v3、v5、v9.

1年前

追问

4

4655826151

您认为加权值应为w1*w2*d12,能不能具体解释一下?

4655826151

按你的意思加权距离应当如何理解,如果选择v1点,那么v1到v2的加权距离,是w1*d12吗?我认为这样不妥。

4655826151

我的想法是:如果选择v1点,那么v1到v2的加权距离是w2*d12,不知道为什么还要乘以一个w1?

4655826151

那程序需要改动一句话:min=@sum(PL(i):@sum(PL(j):w(j)*d(i,j)*T(i))); 运行结果为: 加权最短距离是16138; 选择的3个点是v6、v9、v11。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值