qq826766909 发表于 2013-8-26 19:18

matlab 网络优化 求程序啊!!

工程图http://www.madio.net/forum.php?mod=image&aid=129648&size=300x300&key=8774de7d43229a3d&nocache=yes&type=fixnone
数据表格

    任务(工序)    工序代号  时间(天)  成本(万元)  时间的最大缩量  应急增加成本(万元/天)
  正常  应急  正常  应急
  制定宗旨  A  15  12  10  16  3  2
  确定经营方针  B  15  12  10  16  3  2
  完善设计方案  C  15  13  10  16  2  3
  机构设计  D  20  16  20  30  4  2.5
  制定人员招聘计划  E  15  14  10  15  1  5
  施工合同谈判  F  70  68  20  28  2  4
  工程预算  G  15  12  1000  1300  3  100
  制定设备采购计划  H  30  25  20  30  5  2
  确定施工管理方式  I  30  26  100  140  4  10
  确定筹资方案  J  30  26  20  30  4  2.5
  筹资  K  45  40  5000  6000  5  200
  确定采购方式  L  30  25  100  150  5  10
  调配招聘培训员工  M  180  160  100  140  20  2
  完善机构  N  360  340  50  90  20  2
  土建施工  O  360  340  800  1000  20  10
  设备采购  P  300  280  1000  1200  20  10
  安装装饰  Q  360  340  2000  2500  20  25
  调试  R  180  160  200  240  20  2
  试营业  S  90  80  100  120  10  2

程序问题:以正常时间为标准,若提前1天完工增加收益10万元,计算此前提下成本最低的完工期。
求matlab大神


magic2728 发表于 2013-8-27 01:22

你需要考虑的问题是找到一条工序的关键路径,然后在此基础上,计算最短完工时间。

lauflower 发表于 2013-8-27 08:29

帮顶!!!!!!

lvyanlong 发表于 2013-8-27 08:49

考虑用最短路的一些算法

qq826766909 发表于 2013-8-27 09:26

lvyanlong 发表于 2013-8-27 08:49 static/image/common/back.gif
考虑用最短路的一些算法

之前试过了,写出来和答案不一样啊。。。

qq826766909 发表于 2013-8-27 09:27

lauflower 发表于 2013-8-27 08:29 static/image/common/back.gif
帮顶!!!!!!

谢谢支持啊!!!!

qq826766909 发表于 2013-8-27 09:29

magic2728 发表于 2013-8-27 01:22 static/image/common/back.gif
你需要考虑的问题是找到一条工序的关键路径,然后在此基础上,计算最短完工时间。

关键路径我写了,但是不知道怎么求最短时间啊!!

function cpm(st,et,ti)
a = sparse(st,et,ti);
n = length(a);
est = zeros(1,n);
let = zeros(1,n)+inf;
for i = 1:n
    new1 = 0;
    for j = 1:i-1
        if (a(j,i)>0)
            new1 = ;
        end
    end
    est(i) = max(new1);
end
let(n)= est(length(est));
for i = n-1:-1:1
    new2 = inf;
    for j = n:-1:i+1
        if (a(i,j)>0)
            new2 = ;
        end
    end
    let(i) = min(new2);
end
route = 0;
for i = 1:n
    if (est(i)==let(i))
        route = ;
    end
end
for i = 1:n
    ft(i) = let(i)-est(i);
end
route = route(2:length(route));
worktime = est(n);

route  %关键路径
worktime  %工作时间

end

lvyanlong 发表于 2013-8-27 10:45

http://www.madio.net/thread-197534-1-4.html  这个是我自己写的 自己参考一下

qq826766909 发表于 2013-8-27 10:51

lvyanlong 发表于 2013-8-27 10:45 static/image/common/back.gif
http://www.madio.net/thread-197534-1-4.html  这个是我自己写的 自己参考一下

是求成本最低的完成时间,而非最短时间啊。。。

飞连天 发表于 2013-8-27 11:03

动态规划试试
页: [1] 2
查看完整版本: matlab 网络优化 求程序啊!!