lingo程序哪里错?
本帖最后由 s147596 于 2009-8-27 22:21 编辑2000年b题
B题
钢管订购和运输
要铺设一条 的输送天然气的主管道, 如图一所示(见下页)。经筛选后可以生产这种主管道钢管的钢厂有 。图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
为方便计,1km主管道钢管称为1单位钢管。
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂 在指定期限内能生产该钢管的最大数量为 个单位,钢管出厂销价1单位钢管为 万元,如下表:
1
2
3
4
5
6
7
800
800
1000
2000
2000
2000
3000
160
155
155
160
155
150
160
1单位钢管的铁路运价如下表:
里程(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)的要求给出模型和结果
model:
sets:
one/1..7/:p,s;
two/1..14/:R,Y;
three(one,two):c,k;
p=160 155 155 160 155 150 160;
s=800 800 1000 2000 2000 2000 3000;
c=110.3 205.3 220.3 255.3 245.3 255.3 260.3;
90.2 190.2 200.2 235.2 225.2 235.2 240.2;
135 235 200 230 225 245 240;
38 161 121 156 146 156 160.1;
20.5 145.5 105.5 150.5 130.5 140.5 145.5;
3.1 138.1 96 131 121 131 136;
21.2 121.2 86.2 126.5 111.2 121.2 126.2;
64.2 164.2 48.2 134.2 79.2 84.2 79.2;
87 192 82 62 57 62 67;
96 151 86 51 33 51 38;
106 156 96 61 51 45 56;
121.2 171.2 111.2 76.2 71.2 26.2 38.2;
128 173 118 83 73 7 26;
152 192 132 97 87 28 2;
R=104 405 1155 1761 1955 2160 2361 3041 3521 3821 4041 4251 4671 5171;
Y=5067 4766 4016 3410 3216 3216 2810 2130 1650 1350 1130 920 500 0;
min=@sum(three(i,j):p(i)*k(i,j))+@sum(three(i,j):c(i,j)*k(i,j))+@sum(two(j):h*(n))+@sum(two(j):h*g(m));
@for(two(j)sum(ones(i):k(i,j))<a(i)+b(j));
@sum(two(j):k(i,j))>=500;
@for(one(i):k(i,j)<=s(i));
@sum(two(j):a(i))=5171;
@sum(two(j):b(j))=5171;
@for(two(J):a(j)<R(j));
@for(two(J):a(j)<Y(j));
end 问题太多啦,最好把问题也贴出来啊。
1.首先数据输入就有问题
sets:
one/1..7/:p,s;
two/1..14/:R,Y;
three(one,two):c,k;
endsets
data:
p=160 155 155 160 155 150 160;
s=800 800 1000 2000 2000 2000 3000;
c=110.3 205.3 220.3 255.3 245.3 255.3 260.3
90.2 190.2 200.2 235.2 225.2 235.2 240.2
135 235 200 230 225 245 240
38 161 121 156 146 156 160.1
20.5 145.5 105.5 150.5 130.5 140.5 145.5
3.1 138.1 96 131 121 131 136
21.2 121.2 86.2 126.5 111.2 121.2 126.2
64.2 164.2 48.2 134.2 79.2 84.2 79.2
87 192 82 62 57 62 67
96 151 86 51 33 51 38
106 156 96 61 51 45 56
121.2 171.2 111.2 76.2 71.2 26.2 38.2
128 173 118 83 73 7 26
152 192 132 97 87 28 2;
R=104 405 1155 1761 1955 2160 2361 3041 3521 3821 4041 4251 4671 5171;
Y=5067 4766 4016 3410 3216 3216 2810 2130 1650 1350 1130 920 500 0;
enddata
2.你的目标函数有问题
3.约束中a和b没定义啊,约束条件的写法也错得离谱
总之,太混乱啦!是不是在做2000B题啊?建议看看Lingo软件的使用说明吧。 已改~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 已改~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 没人懂吗?
页:
[1]