题目
请问lingo程序可以运行,怎么才可以灵敏度分析呢?下面是题目和输入的内容(已激活灵敏度计算) 要铺设一条 _(1)arrow (A)_(2)arrow ... arrow (A)_(25): 的输送天然气的主管道,如图一所示(见下页)。经筛选后-|||-可以生产这种主管道钢管的钢厂有S1 S23··· -S7。 图中粗线表示铁路,单细线表示公路,双细-|||-线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,-|||-每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。-|||-为方便计,1km主管道钢管称为1单位钢管。-|||-一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂S,在指定期限内能生-|||-产该钢管的最大数量为s,个单位,钢管出厂销价1单位钢管为p1万元,如下表:+-|||-ip 1 2 3←3 4 5 6φ 7-|||-e-|||-S1+2 800 800 1000 2000 2000φ 20004 3000-|||-_(1)和 160 155 155 160 155 150 160-|||-1单位钢管的铁路运价如下表:-|||-里程(km) sim 3500 sim 4000 sim 4500 sim 5000-|||-运价(万-|||-元) 20 23 26 29 32-|||-图-|||-里程(km) sim 6000 sim 7000 sim 8000 sim 9000 sim 10000-|||-运价(万-|||-元) 37 44 50 55 60-|||-1000km以上每增加1至100km运价增加5万元。-|||-公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。-|||-钢管可由铁路、公路运往铺设地点(不只是运到点A1,A2,···,A15,而是管道全线)。-|||-(1)请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。4-|||-(2)请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,-|||-哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。 model sets sell/1 2 3 4 5 6 7/:p,s,x,m need/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15/:a,b,d link(sell,need):c,y endsets data p=160 155 155 160 155 150 152 s=800 800 1000 2000 2000 2000 3000 d=104,301,750,606,194,205,201,680,480,300,220,210,420,500,0 c=170.7 160.3 140.2 98.6 38 20.5 3.1 21.2 64.2 92 96 106 121.2 128 142 215.7 205.3 190.2 171.6 111 64.6 86 71.2 114.2 142 146 156 171.2 178 192 230.7 220.3 200.2 181.6 121 105.5 96 86.2 48.2 82 86 96 111.2 118 132 260.7 250.3 235.2 216.6 156 139.6 131 116.2 84.2 62 51 61 76.2 83 97 255.7 245.3 225.2 206.6 146 130.5 121 111.2 79.2 57 33 51 71.2 73 87 265.7 255.3 235.2 216.6 156 140.5 131 121.2 84.2 62 51 45 26.2 11 28 275.7 265.3 245.2 226.6 166 150.5 141 131.2 99.2 76 66 56 38.2 26 2 enddata min=@sum(sell(i):p(i)×x(i))+0.1*@sum(need(j):a(j)×(a(j)+1)/2+b(j)×(b(j)+1)/2)+@sum(link(i,j):c(i,j)×y(i,j)) @for(sell(i):x(i)>=500×m(i)) @for(sell(i):x(i)<=s(i)×m(i)) @for(sell(i):@sum(need(j):y(i,j))=x(i)) @for(need(j):@sum(sell(i):y(i,j))=a(j)+b(j)) @for(need(j)|j#ne#15:a(j)+b(j+1)=d(j)) a(1)=0;b=0 @for(sell(i):@bin(m(i))) end
请问lingo程序可以运行,怎么才可以灵敏度分析呢?下面是题目和输入的内容(已激活灵敏度计算)
model
sets
sell/1 2 3 4 5 6 7/:p,s,x,m
need/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15/:a,b,d
link(sell,need):c,y
endsets
data
p=160 155 155 160 155 150 152
s=800 800 1000 2000 2000 2000 3000
d=104,301,750,606,194,205,201,680,480,300,220,210,420,500,0
c=170.7 160.3 140.2 98.6 38 20.5 3.1 21.2 64.2 92 96 106 121.2 128 142
215.7 205.3 190.2 171.6 111 64.6 86 71.2 114.2 142 146 156 171.2 178 192
230.7 220.3 200.2 181.6 121 105.5 96 86.2 48.2 82 86 96 111.2 118 132
260.7 250.3 235.2 216.6 156 139.6 131 116.2 84.2 62 51 61 76.2 83 97
255.7 245.3 225.2 206.6 146 130.5 121 111.2 79.2 57 33 51 71.2 73 87
265.7 255.3 235.2 216.6 156 140.5 131 121.2 84.2 62 51 45 26.2 11 28
275.7 265.3 245.2 226.6 166 150.5 141 131.2 99.2 76 66 56 38.2 26 2
enddata
min=@sum(sell(i):p(i)×x(i))+0.1*@sum(need(j):a(j)×(a(j)+1)/2+b(j)×(b(j)+1)/2)+@sum(link(i,j):c(i,j)×y(i,j))
@for(sell(i):x(i)>=500×m(i))
@for(sell(i):x(i)<=s(i)×m(i))
@for(sell(i):@sum(need(j):y(i,j))=x(i))
@for(need(j):@sum(sell(i):y(i,j))=a(j)+b(j))
@for(need(j)|j#ne#15:a(j)+b(j+1)=d(j))
a(1)=0;b=0
@for(sell(i):@bin(m(i)))
end
model
sets
sell/1 2 3 4 5 6 7/:p,s,x,m
need/1 2 3 4 5 6 7 8 9 10 11 12 13 14 15/:a,b,d
link(sell,need):c,y
endsets
data
p=160 155 155 160 155 150 152
s=800 800 1000 2000 2000 2000 3000
d=104,301,750,606,194,205,201,680,480,300,220,210,420,500,0
c=170.7 160.3 140.2 98.6 38 20.5 3.1 21.2 64.2 92 96 106 121.2 128 142
215.7 205.3 190.2 171.6 111 64.6 86 71.2 114.2 142 146 156 171.2 178 192
230.7 220.3 200.2 181.6 121 105.5 96 86.2 48.2 82 86 96 111.2 118 132
260.7 250.3 235.2 216.6 156 139.6 131 116.2 84.2 62 51 61 76.2 83 97
255.7 245.3 225.2 206.6 146 130.5 121 111.2 79.2 57 33 51 71.2 73 87
265.7 255.3 235.2 216.6 156 140.5 131 121.2 84.2 62 51 45 26.2 11 28
275.7 265.3 245.2 226.6 166 150.5 141 131.2 99.2 76 66 56 38.2 26 2
enddata
min=@sum(sell(i):p(i)×x(i))+0.1*@sum(need(j):a(j)×(a(j)+1)/2+b(j)×(b(j)+1)/2)+@sum(link(i,j):c(i,j)×y(i,j))
@for(sell(i):x(i)>=500×m(i))
@for(sell(i):x(i)<=s(i)×m(i))
@for(sell(i):@sum(need(j):y(i,j))=x(i))
@for(need(j):@sum(sell(i):y(i,j))=a(j)+b(j))
@for(need(j)|j#ne#15:a(j)+b(j+1)=d(j))
a(1)=0;b=0
@for(sell(i):@bin(m(i)))
end
题目解答
答案
非线性整数规划没法做灵敏度分析