Araneider 发表于 2012-8-24 16:54

求大神解答,关于floyd算法

这是2000年b题的一个floyd算法matlab程序。。。。。但是有些看不懂啊~~~那个大神指教一下~~~~

Floyd算法函数在matlab下的M函数文件如下:
function =floyd(a)
n=size(a,1);
D=a;path=zeros(n,n);
for i=1:n
    for j=1:n
        if D(i,j)~=inf
            path(i,j)=j;
        end
    end
end
for k=1:n
    for i=1:n
        for j=1:n
            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);
            end
        end
    end
end
上面是一个函数,这一部分可以看懂,但是下面这个求最小费的问题就看不懂了。。。。
ab=;
bb=[ 14 15 15 16 19 18 23 24 10 10 11 15 13 14 16 17 19 19 20 21 22 23 24];
w=;
ab1=;
bb1=;
w1=;
a=sparse(ab,bb,w);
a(24,24)=0;
a=a+a’;
a=full(a);
for i=1:24
    for j=1:24
        if(a(i,j)==0&i~=j)
            a(i,j)=inf;
        end
    end
end
=floyd(a);
a1=sparse(ab1,bb1,w1);
a1(35,35)=0;
a1=a1+(a1)';
a1=full(a1);
for i=1:35
    for j=1:35
        if(a1(i,j)==0&i~=j)
            a1(i,j)=inf;
        end
    end
end
=floyd(a1);
上面这一段应该是赋值求最短路了吧,,,但是这赋值是赋得什么值额????有大神的话可以在后面注释一下。。。万分感谢。。。

Araneider 发表于 2012-8-24 17:00

  管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
       为方便计,1km主管道钢管称为1单位钢管。
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
I           1           2           3          4          5          6           7
        800        800        1000        2000        2000        2000        3000
        160        155        155        160        155        150        160
  一单位钢管的铁路运价如下表:
里程(km)        ≤300        301~350        351~400        401~450        451~500
运价(万元)        20        23        26        29        32
里程(km)        501~600        601~700        701~800        801~900        901~1000
运价(万元)        37        44        50        55        60
  1000km以上每增加1至100km运价增加5万元。
     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.

C:\Documents and Settings\Administrator\桌面

Araneider 发表于 2012-8-24 17:03

C:\Documents and Settings\Administrator\桌面

Araneider 发表于 2012-8-24 17:05

  钢管订购和运输(2000年网易杯全国大学生数学建模竞赛B题)
     要铺设一条的输送天然气的主管道,如图所示。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双线表示要铺设的管道(假设沿管道或者原有公路,或者建有施工公路),圆圈(点) 表示火车站,
  每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
       为方便计,1km主管道钢管称为1单位钢管。
    一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:
I           1           2           3          4          5          6           7
Si        800        800        1000        2000        2000        2000        3000
Pi        160        155        155        160        155        150        160
  一单位钢管的铁路运价如下表:
里程(km)        ≤300        301~350        351~400        401~450        451~500
运价(万元)        20        23        26        29        32
里程(km)        501~600        601~700        701~800        801~900        901~1000
运价(万元)        37        44        50        55        60
  1000km以上每增加1至100km运价增加5万元。
     公路运输费用为1单位钢管每公里0·1万元(不足整公里部分按整公里计算)。
  钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。
1.请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。
2.请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。
3.如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情况给出一种解决办法,并对图二按(1)的要求给出模型和结果.

Araneider 发表于 2012-8-24 17:12

上面那就是题目,,下面是给出的图
http://b307.photo.store.qq.com/psb?/b540be47-1fd5-4898-92c4-00524228eb04/6LepSv0P7pbJOZ7V3*oHTIln1jkz*m2kCv4*wcDyQnQ!/b/YXi2BbcIgAAAYueX*7YMggAA&bo=ZQIgA2I!

Araneider 发表于 2012-8-24 17:15

快来大神啊,快来大神啊

467857726de 发表于 2012-8-25 18:18

不错哦  谢谢楼主
页: [1]
查看完整版本: 求大神解答,关于floyd算法