数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 8334|回复: 12

灾 情 巡 视 问题的最短路径编程

[复制链接]
发表于 2003-8-19 02:43:04 | 显示全部楼层 |阅读模式
灾 情 巡 视
1998年夏天, 我国部分地区遭受水灾, 为考察灾情, 组织自救, 各地领导带领有关部门负责人到各管辖地巡视, 下图(图1)是某县的乡(镇)、村公路示意图, 公路边的数字为该路段的距离单位为km.
   巡视路线为从县政府所在地出发, 走遍各乡(镇)、村, 又回到县政府所在地的路线.
   1)若分三组(路)巡视, 试设计总路程最短且各组尽可能均衡的巡视路线;
   2)假定巡视人员在各乡(镇)停留时间了 ;在各村停留 汽车行驶速度v=35km/h, 要在24h完成巡视, 至少应分几组;给出这种分组下的最佳巡视路线.
   3)在上述关于了 和 扩的假定下, 如果巡视人员足够多, 完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下最佳的巡视路线.
   4)若巡视组数已定(如三组), 要求尽快完成巡视, 讨论了 和 改变对最佳巡视路线的影响:
望各位交流交流编这个程序的心得!!
发表于 2003-8-25 23:53:36 | 显示全部楼层
我是用VC++,写的!
 楼主| 发表于 2003-8-19 02:45:36 | 显示全部楼层

weight(53,1)=6;
weight(53,50)=10.1;
weight(1,38)=11.2;
weight(3,39)=8.2;
weight(5,39)=11.3;
weight(6,48)=9.5;
weight(8,40)=8;
weight(11,40)=14.2;
weight(12,42)=7.8;
weight(13,44)=16.4;
weight(15,44)=8.8;
weight(17,46)=9.8;
weight(19,20)=9.3;
weight(20,25)=6.5;
weight(21,46)=4.1;
weight(23,49)=7.9;
weight(25,49)=8.8;
weight(27,28)=7.9;
weight(29,51)=7.2;
weight(31,32)=8.1;
weight(33,35)=20.3;
weight(34,37)=17.6;
weight(44,45)=15.8;
weight(53,2)=9.2;
weight(53,52)=12.9;
weight(2,3)=4.8;
weight(4,8)=20.4;
weight(5,48)=11.4;
weight(7,39)=15.1;
weight(9,40)=7.8;
weight(11,42)=6.8;
weight(12,43)=10.2;
weight(13,45)=9.8;
weight(16,17)=6.8;
weight(18,44)=8.2;
weight(19,45)=8.1;
weight(20,47)=5.5;
weight(22,23)=10;
weight(24,27)=18.8;
weight(26,27)=7.8;
weight(28,50)=12.1;
weight(29,52)=7.9;
weight(31,33)=7.3;
weight(33,36)=7.4;
weight(36,37)=12.2;
weight(48,49)=14.2;
weight(53,38)=11.5;
weight(1,36)=10.3;
weight(2,5)=8.3;
weight(4,39)=12.7;
weight(6,7)=7.3;
weight(7,40)=7.2;
weight(9,41)=5.6;
weight(11,45)=13.2;
weight(13,14)=8.6;
weight(14,15)=15;
weight(16,44)=11.8;
weight(18,45)=8.2;
weight(19,47)=7.2;
weight(21,23)=9.1;
weight(22,46)=10.1;
weight(24,49)=13.2;
weight(26,49)=10.5;
weight(28,51)=8.3;
weight(30,32)=10.3;
weight(31,52)=9.2;
weight(34,35)=8.2;
weight(36,52)=8.8;
weight(53,48)=19.8;
weight(1,37)=5.9;
weight(3,38)=7.9;
weight(5,6)=9.7;
weight(6,47)=11.8;
weight(7,47)=14.5;
weight(10,41)=10.8;
weight(12,41)=12.2;
weight(13,42)=8.6;
weight(14,43)=9.9;
weight(17,22)=6.7;
weight(18,46)=9.2;
weight(20,21)=7.9;
weight(21,25)=7.8;
weight(23,24)=8.9;
weight(25,48)=12;
weight(26,50)=10.5;
weight(29,50)=15.2;
weight(30,51)=7.7;
weight(32,35)=14.9;
weight(34,36)=11.5;
weight(37,38)=11;
for i=1:53
   for j=1:53
      if weight(i,j)==0
         weight(i,j)=inf;
      end
      if i==j
         weight(i,j)=0;
      end
   end
end
n=input('n=?');
m=1;
D=weight;
for   i=1:n
    for  j=1:n
        if D(i,j)==inf
           path(i,j)=j;
        end
    end
end

sum=0;


  for i=1:n
     for j=1:n
        for  k=1:n;
           if D(i,k)~=inf&D(i,k)~=0&D(k,j)~=0&D(k,j)~=inf
              if D(i,k)+D(k,j)<D(i,j)
                 D(i,j)=D(i,k)+D(k,j);
                 path(i,j)=path(i,k);
            
               sum=sum+D(i,j);
              end
           end
        end  
     end
   end
  
D
sum这个程序我自己编的 ,是错误的望指教!!


 楼主| 发表于 2003-8-19 03:00:31 | 显示全部楼层
[em24][em23][em23][em23][em23]
发表于 2003-8-19 19:33:17 | 显示全部楼层
是matlab吗?为什么运行出错的?第93行出错
发表于 2003-8-20 06:52:19 | 显示全部楼层
对这个问题我仔细看过,也编了一点程序。
由于看源码不好看,还请chen017说一说这个程序实现的功能和用到的算法。
发表于 2003-8-20 08:33:28 | 显示全部楼层
程序运行出错,望楼改一下
发表于 2003-8-21 04:01:59 | 显示全部楼层
你是不是用的floyd算法求的每两点的最短路径?
发表于 2003-8-24 18:01:04 | 显示全部楼层
能不能用mathematic编一下<>
发表于 2003-8-24 18:01:56 | 显示全部楼层
能不能用mathematic编一下<>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-3-29 09:17 , Processed in 0.059076 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表