- 在线时间
- 0 小时
- 最后登录
- 2009-9-11
- 注册时间
- 2009-3-23
- 听众数
- 5
- 收听数
- 0
- 能力
- 0 分
- 体力
- 96 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 42
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 27
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   38.95% 该用户从未签到
 |
本帖最后由 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;
[email=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]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[/email]));
@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 |
zan
|