《数学建模-钢管订购和运输(共26页).doc》由会员分享,可在线阅读,更多相关《数学建模-钢管订购和运输(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上钢管的订购和运输优化模型摘要本文建立的多元非线性优化模型。问题一在保证天然气管道铺设可以顺利实施的情况下,给出了钢管的订购与运输总费用最小的方案。在求钢管由钢厂运输到站点的费用和铺设钢管时产生的运输费,根据图一,我们通过深度优先遍历的方法对整个图一进行路径搜索,然后根据每条搜索到的路径上的铁路和公路上的不同权重,找到了各个钢厂到各个天然气管道上的站点的最佳路径。对于整个优化过程我们给出了相关的算法,并用matlab软件编程,经过一系列计算之后,得出了最优的订购与运输方案。对于问题 1,我们求得的最优解为(具体方案见表五):总费用80080010000119011810
2、对于问题2我们经过计算比较得出:钢管销价的变化对购运计划和总费用影响最大。的生产上限的变化购运计划和总费用影响最大。对于问题 3,当天然气管道呈现的是一个树状图的时候,我们得到的最优解为(具体方案见表六):总费用80080010000145018530关键字:非线性优化 深度优先遍历 最佳路径一、问题重述 要铺设一条的输送天然气的主管道, 如图一所示(见下页)。经筛选后可以生产这种主管道钢管的钢厂有。图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。为方便计,1km主管
3、道钢管称为1单位钢管。一个钢厂如果承担制造这种钢管,至少需要生产500个单位。钢厂在指定期限内能生产该钢管的最大数量为个单位,钢管出厂销价1单位钢管为万元,如下表:1234567800800100020002000200030001601551551601551501601单位钢管的铁路运价如下表:里程(km)300301350351400401450451500运价(万元)2023262932里程(km)5016006017007018008019009011000运价(万元)37445055601000km以上每增加1至100km运价增加5万元。公路运输费用为1单位钢管每公里0.1万元(不
4、足整公里部分按整公里计算)。钢管可由铁路、公路运往铺设地点(不只是运到点,而是管道全线)。(1)请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用)。(2)请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果。(3)如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情形给出一种解决办法,并对图二按(1)的要求给出模型和结果。A1325801010312012427010881070627030202030450104301750606194205
5、2016804803002202104205006003060195202720690520170690462160320160110290115011001200A2A3A4A5A6A11A711A11A8A11A911A11A10A11A12A13A14A15S1S2S3S4S5S6S7图一A13258010103120124270108810706270302020304501043017506061942052016804803002202104205006003060195202720690520170690462160320160110290115011001200A1913019
6、0260100A2A3A4A5A6A7A8A11A9A10A11A12A13A14A15S1S2S3S4S5S6S7A16A17A18A20(A21)图二二、模型假设1、假设沿管道或者原来有公路,或者建有施工公路;2、运费只按铁路、公路里程收取,即不考虑火车、汽车由于停靠站等其他一切外因带来的费用; 3、钢管在铺设过程中以1km为单位进行铺设;4、钢管可由铁路、公路运往铺设路线任一地点;5、所有钢管在指定期限内都能按时生产并运送指定地点;6、钢管铺设过程中由站点向左右两边进行铺设。三、符号说明 :第个厂; :第个站点; : 向运送的钢管量 单位(km); :在指定期限内的最大生产量 单位(km
7、); : 向右铺设的钢管量 单位(km); : 向左铺设的钢管量 单位(km); : 到间的距离 单位(km); :管道全线总长 单位(km); : 钢管出厂销价 单位(万元/单位); : 向运送一单位钢管所需的铁路费 单位(万元/单位); : 向运送一单位钢管所需的公路费 单位(万元/单位); :购买钢管所花的总费用; :由厂到站点所需运输总费; :由站点到铺设地点所需运输总费; :订购和运输钢管所需总费用 单位(万元)。四、问题分析问题一是在一定约束条件下的非线性优化问题,由题意知,拟建立以总费用为目标函数来寻求最优解。总费用由钢管的购买费、厂到站点的运输费以及站点到铺设地点的运输费三部分
8、组成。 一、钢管的购买费可由在每个厂的购买量与每个厂的出厂销价的线性运算得到 。在每个厂购买的钢管量必须大于500km ,否则则不在该厂购买。可以构造一个的矩阵,那么当为0时,表示不在第个钢厂购买,否则则在第个钢厂购买大于500km的钢量。二、要求得每个钢厂到站点的运输费需先知道每个厂到各个站点的钢管输送量,以及所选择的路线即铁路总长和公路总长,所以需要首先计算出各个钢厂到每个站点的最佳运输路径,使得平均单位公里的运输费用最小。但是由于铁路每公里的运输费用不是线性变化,而是变化不均匀的分段函数。在这里,我们利用深度优先遍历,找到某个厂到达各个站点的所有路径,然后根据每条路径的铁路和公路里程数计
9、算出平均每公里运输费用最小的一条。以此类推,计算出所有钢厂到所有站点的最佳路径。 三、在站点到铺设地点的运输费问题上,如果我们认为车边向前走边进行铺设,即边走边将钢管放下,那么就需要通过积分来计算。但是,尽管用积分算下来结果会很精确,但在实际中不可能这样实施。另外,这也与题目中不足整公里的按整公里计算相矛盾。所以,我们假设以1km为单位进行铺设,即铺设中车每向前开1km便将1km的钢管放下。由于铺设管道是线型的,除了两个端点外,每个站点需要往两边进行铺设管道。所以,假设第个站点往左、右边铺设管道为和公里,则由站点到铺设地点的运输费就可以通过等差数列求和得到。问题二即为对问题一中模型的灵敏度分析
10、,在讨论各厂的钢管销价和生产上限对购运计划和总费用的影响时,只让其中一个量变化,其他一切条件皆不变,即逐个变量单独分析。问题三即为问题一中模型的推广,在问题一的基础上将站点向左右两边铺设变为向三个方向铺设,按问题一处理即可。五、模型建立(问题一)总费用由钢管的购买费、厂到站点的运输费以及站点到铺设地点的运输费三部分组成,则在第个厂的购买费应为15个站点在第个厂的购买总量与该厂销价的乘积总和,即,则总购买费第个厂向第个站点的运输费为运送量与运送1单位所需铁路费和公路费的和的乘积,第个厂向各个站点运送钢管的总运费即为,则各厂到站点的运输费要算出钢管由站点运送到铺设地点的费用需知道钢管按何种方式进行
11、铺设的。在问题分析里一讨论边走边铺与实际不符,且有违题目条件,所以我们假设钢管在铺设过程中以1km为单位进行铺设,且由站点向两边进行铺设,则可由等差数列求和公式得到,即由于一个钢厂如果承担制造这种钢管,至少需要生产500个单位,且各厂在指定期限内有生产上线,则在第个厂的购买总量需满足 或钢管由站点向左右两边进行铺设,则第个站点向右铺设部分与第个站点向左铺设部分之和应为两站点之间的管道长度,且第一个站点向左铺设部分与最后一站点向右铺设部分都为0,即第站点向左铺设部分与向右铺设部分之和应为七个厂向第站点输送钢管总量,即综合考虑钢管的购买费、厂到站点的运输费以及站点到铺设地点的运输费,钢管的订购和运
12、输优化模型建立如下:目标函数 min +() 或s.t 六、模型求解 由于铁路、公路相互交错,无法直接选出钢厂到站点的费用最小路线,所以此处我们采用深度优先遍历方法。首先建立一个39维数组,将图一中39个交点两两之间有铁路、公路连接的用具体路线长写入数组,且铁路用负数表示,公路用正数表示,而没有路线连接的用无穷大代替,最后换算成到各站点的铁路、公路总费。全过程通过matlab编程完成(程序见附录),。表一 到的最小费用(单位:万元/单位)170.7215.7230.7260.7255.7265.7275.7160.3205.3220.3250.3245.3255.3265.3140.2190.
13、2200.2235.2225.2235.2245.298.6171.6181.6216.6206.6216.6226.63811112115614615616620.564.6105.5139.6130.5140.5150.53.1869613112113114121.271.286.2116.2111.2121.2131.264.2114.248.284.279.284.299.29214282625762769614686513351661061569661514556121.2171.2111.276.271.226.238.2128178118837311261421921329787
14、282因为matlab无法直接对约束条件或进行处理,所以我们先将此条件改为,则原模型变为min +()s.t 通过matlab编程(程序见附录)计算结果见表二表二 各厂的生产量及总费用(生产量可小于500)(单位:单位 、万元)总费用800800100001190.51135.5245由表二可知,、的生产量小于500单位。由于的生产量等于0,所以不用考虑,直接取为0;而在的生产量问题上,有两种处理方式:(1)的生产量为0;(2)的生产量大于500单位。两种处理方式计算结果见表三表三 各厂的生产量及总费用(单位:单位 、万元)总费用=0800800100001190.51180.50500800
15、800100001185.5885.5500通过以上两种方式的比较,购买和运输最小总费用min W=(万元)具体的订购和运输方案见表四。表四 问题一订购和运输方案(不足1km的按整数计)(单位:单位 、万元)订购量800800100001190118100000000017900000013714102300014974790166001861101160203002000000002650000000300000000066400000000176176000004150000000860000003330000006210000001650订购总量5171总费用六灵敏度分析(问题二)由于本
16、案例中对模型结果产生影响的因素有很多,所以我们在此取个关键的参数进行了灵敏度分析。模型对这些参数的敏感性反映了各种因素影响结果的显着性程度。通过对模型参数的敏感性分析,又可以反映和检验模型的实际合理性。由灵敏度的定义知,灵敏度是指系统中的参数或外扰的微小摄动对系统某特性的影响程度,其计算公式如下:灵敏度=(1) 对钢厂钢管销价的灵敏度分析钢厂钢管的销价是此问题的一个重要因素,钢铁价格的高低可以说直接影响着总费用和够运计划。现在对价格做灵敏度分析,其他一切条件不变,且在讨论的销价变化带来的影响时其余各厂的销价不变。我们分别使各钢厂的价格单独增加5万元/单位和减少5万元/单位,并分别带入上述模型计
17、算,得到此时的总费用,再利用灵敏度公式计算各种情况的影响程度。结果如下表:表四 各钢厂销价变化产生的影响(单位:)+5万元/单位总费用1.28261.28261.28361.27861.28351.28461.2786灵敏度0.100110.096980.1212200.118800.140780-5万元/单位总费用1.27461.27461.27361.27861.27171.27071.2786灵敏度0.0.096980.1212200.167290.185350由以上数据可知,钢管销价的变化对购运计划和总费用影响最大。(2)对钢厂钢管产量上限的灵敏度分析钢管的供给量也是一个重要的因素,供
18、给量上限的大小将间接影响着总费用和够运计划。在问题一中模型的基础上,由于只有、的钢管购运量达到了生产上限,其余各厂的购运量都离生产上限较远,因此能够对总费用和购运计划产生影响的只有、三个钢厂。我们分别单独给、三钢厂的上限增加50个单位和减少50个单位,同时保持其他两个钢厂生产上限和其他一切条件不变。将各种情况带入问题一的模型中计算,再分别求出各自的灵敏度。结果见下表:表五 钢厂生产上限的变化带来的影响(单位:)+50单位总费用1.27351.27691.2774灵敏度0.06410.02150.0191-50单位总费用1.28381.28041.2799灵敏度0.06480.02230.020
19、0 由上表知,的生产上限的变化购运计划和总费用影响最大。七模型的评价与推广(问题三)本模型经过合理的分析,精确的数据输入以及准确的MATLAB编程,把所有影响总费用的因素结合在一起,经过优化,找到的最好方案是非常具有可信性的。只是本模型还是建立在一些基本假设上的,而在实际生活中,由于转运费等其他因素而带来的影响是不可忽略的,因此,本模型还是有待改进的。 1.如果天然气管道铺设的路线不是一条线,而是各种类型的树形图或者其他更复杂的形状,或者有n个钢厂,n个火车站,n个站点,通过本模型的思想,都是可以解决问题的。如本题中的问题三,同样通过找到钢厂与各个站点之间的联系,先确定最优运输路线,结合各类约
20、束条件,利用MATLAB编程,就可以得到最小的总费用。与问题一不同的是此时有的站点可以向三个方向进行铺设所以在问题一模型的基础上稍作改变即可,在此假设各站点向三方向铺设,代表第j站点向第k方向铺设的钢管量(k=1,2,3)。则模型建立如下:目标函数min +() 或s.t 以上模型求解时在或的处理上同问题一一样,通过matlab编程(程序见附录)计算求得最小总费用W=万元,具体方案见表六。表六 问题三订购和运输方案(不足1km的按整数计)(单位:单位 、万元)05000000175000000123138024600150708701610019012770022800195000600265
21、0000000300000000066500000000188162000004160000000860000003330000006220000001650004000000000205000000065000000700000002500000001000订购量80080010000145018530订购总量5903总费用2.本建模的思想不仅可以用于钢管的运输来进行天然气管道的铺设,还可以用于其他领域诸如煤炭的运输来提供电力等。参考文献【1】 陈宝林,最优化理论与算法,清华大学出版社,1989 【2】 裘宗燕,数学软件系统的应用及程序设计,北京大学出版社,1994 【3】 许波,Matla
22、b 工程数学应用,清华大学出版社,2001附录1function f=result(t)%求解问题1ticx0=zeros(8,15);vlb=zeros(8,15);m=zeros(1,7);s=800 800 1000 2000 2000 2000 3000;s(t)=s(t)-50;N=1 1 1 0 1 1 0; %每公里钢管从Si到达Ai站点的最小费用 C=330.7 320.3000 300.2000 258.6000 198.0000 180.5000 163.1000 181.2000 224.2000 252.0000 256.0000 266.0000 281.2000 2
23、88.0000 302.0000; 370.7 360.3000 345.2000 326.6000 266.0000 249.6000 241.0000 226.2000 269.2000 297.0000 301.0000 311.0000 326.2000 333.0000 347.0000; 385.7 375.3000 355.2000 336.6000 276.0000 260.5000 251.0000 241.2000 203.2000 237.0000 241.0000 251.0000 266.2000 273.0000 287.0000; 420.7 410.3000 3
24、95.2000 376.6000 316.0000 299.6000 291.0000 276.2000 244.2000 222.0000 211.0000 221.0000 236.2000 243.0000 257.0000; 410.7 400.3000 380.2000 361.6000 301.0000 285.5000 276.0000 266.2000 234.2000 212.0000 188.0000 206.0000 226.2000 228.0000 242.0000; 415.7 405.3000 385.2000 366.6000 306.0000 290.5000
25、 281.0000 271.2000 234.2000 212.0000 201.0000 195.0000 176.2000 161.0000 178.0000; 435.7 425.3000 405.2000 386.6000 326.0000 310.5000 301.0000 291.2000 259.2000 236.0000 226.0000 216.0000 198.2000 186.0000 162.0000;options=optimset(LargeScale,off,Algorithm ,active-set,MaxFunEvals ,50000);%,Tolx,1.00
26、00e-032);x,f=fmincon(myfun,x0,vlb,mycon,options,C,N,s);for i=1:7 for j=1:15 m(i)=m(i)+N(i)*x(i,j); end; end;x,m,fb=(f-)/*(s(t)+50)/50tocfunction f=myfun(XX,C,N,s)%问题1的目标函数x=XX(1:7,1:15);rl=XX(8,1:15);L=104 301 750 606 194 205 201 680 480 300 220 210 420 500;f=0;for i=1:7 for j=1:15 f=f+N(i)*x(i,j)*C
27、(i,j);%运输费和成本费 end;end;for i=1:14 f=f+(rl(i)*(rl(i)+1)/2+(L(i)-rl(i)*(L(i)-rl(i)+1)/2)*0.1;%铺设时的运输费end;ffunction c,ceq=mycon(XX,C,N,s)%问题1的约束条件x=XX(1:7,1:15);rl=XX(8,1:15);L=104 301 750 606 194 205 201 680 480 300 220 210 420 500;m=zeros(1,7);a=zeros(1,15);cc=0;for i=1:7 for j=1:15 m(i)=m(i)+N(i)*x(
28、i,j); end; c(i)=m(i)-s(i); cc=cc+m(i);end;for i=1:14 c(i+7)=rl(i)-L(i);end;for i=2:14 for j=1:7 a(i)=a(i)+N(j)*x(j,i); end; ceq(i-1)=a(i)-rl(i)+rl(i-1)-L(i-1);end;t1=0;t2=0;for i=1:7 t1=t1+N(i)*x(i,1); t2=t2+N(i)*x(i,15);end;ceq(14)=t1-rl(1);ceq(15)=rl(15);ceq(16)=cc-5171;附录2function f=result2%求解问题3
29、x0=zeros(10,21);vlb=zeros(10,21);m=zeros(1,7);N=1 1 1 0 1 1 0;tic%每公里钢管从Si到达Ai站点的最小费用 C=330.7 320.3000 300.2000 258.6000 198.0000 180.5000 163.1000 181.2000 224.2000 252.0000 256.0000 266.0000 281.2000 288.0000 302.0000 220 255 260 265 275 290; 370.7 360.3000 345.2000 326.6000 266.0000 249.6000 241.
30、0000 226.2000 269.2000 297.0000 301.0000 311.0000 326.2000 333.0000 347.0000 265 300 305 310 320 335; 385.7 375.3000 355.2000 336.6000 276.0000 260.5000 251.0000 241.2000 203.2000 237.0000 241.0000 251.0000 266.2000 273.0000 287.0000 199 240 245 250 260 270; 420.7 410.3000 395.2000 376.6000 316.0000
31、 299.6000 291.0000 276.2000 244.2000 222.0000 211.0000 221.0000 236.2000 243.0000 257.0000 240 210 215 220 230 240; 410.7 400.3000 380.2000 361.6000 301.0000 285.5000 276.0000 266.2000 234.2000 212.0000 188.0000 206.0000 226.2000 228.0000 242.0000 230 187 205 205 220 230; 415.7 405.3000 385.2000 366
32、.6000 306.0000 290.5000 281.0000 271.2000 234.2000 212.0000 201.0000 195.0000 176.2000 161.0000 178.0000 230 200 187 194 170 150; 435.7 425.3000 405.2000 386.6000 326.0000 310.5000 301.0000 291.2000 259.2000 236.0000 226.0000 216.0000 198.2000 186.0000 162.0000 255 225 210 215 192 186;options=optims
33、et(LargeScale,off,Algorithm ,active-set,MaxFunEvals ,50000);%,Tolx,1.0000e-032);x,f=fmincon(myfun2,x0,vlb,mycon2,options,C,N);for i=1:7 for j=1:21 m(i)=m(i)+N(i)*x(i,j); end; end;x, m,fff=ceil(x)tocfunction f=myfun2(XX,C,N)%问题3的目标函数x=XX(1:7,1:21);rl=XX(8:10,1:21);f=0;for i=1:7 for j=1:21 f=f+N(i)*x(
34、i,j)*C(i,j);%钢管费和运输费 end;end;%铺设时的运输费for i=2:14 f=f+(rl(1,i)*(rl(1,i)+1)/2+rl(2,i)*(rl(2,i)+1)/2)*0.1;end;f=f+(rl(1,19)*(rl(1,19)+1)/2+rl(2,19)*(rl(2,19)+1)/2)*0.1;f=f+(rl(1,20)*(rl(1,20)+1)/2+rl(2,20)*(rl(2,20)+1)/2)*0.1;%19,20f=f+(rl(1,1)*(rl(1,1)+1)/2+rl(2,15)*(rl(2,15)+1)/2)*0.1;%1,15f=f+(rl(1,1
35、6)*(rl(1,16)+1)/2+rl(1,18)*(rl(1,18)+1)/2+rl(1,21)*(rl(1,21)+1)/2)*0.1;%16,18,21f=f+(rl(3,9)*(rl(3,9)+1)/2+rl(3,11)*(rl(3,11)+1)/2)*0.1;%9,11f=f+(rl(1,17)*(rl(1,17)+1)/2+rl(2,17)*(rl(2,17)+1)/2+rl(3,17)*(rl(3,17)+1)/2)*0.1;%17function c,ceq=mycon2(XX,C,N)%问题3的约束条件x=XX(1:7,1:21);rl=XX(8:10,1:21);s=80
36、0 800 1000 2000 2000 2000 3000;L=104 301 750 606 194 205 201 680 480 300 220 210 420 500 42 10 130 190 260 100;m=zeros(1,7);a=zeros(1,21);cc=0;for i=1:7 for j=1:21 m(i)=m(i)+N(i)*x(i,j); end; c(i)=m(i)-s(i); cc=cc+m(i);end;for i=1:21 for j=1:7 a(i)=a(i)+N(j)*x(j,i); end; ceq(i)=a(i)-rl(1,i)-rl(2,i)-
37、rl(3,i);end;for i=1:14 ceq(i+21)=rl(1,i)+rl(2,i+1)-L(i);end;ceq(36)=rl(3,9)+rl(1,16)-L(15);ceq(37)=rl(3,11)+rl(1,17)-L(16);ceq(38)=rl(2,17)+rl(1,18)-L(17);ceq(39)=rl(3,17)+rl(1,19)-L(18);ceq(40)=rl(2,19)+rl(1,20)-L(19);ceq(41)=rl(2,20)+rl(1,21)-L(20);ceq(42)=rl(1,15);ceq(43)=rl(2,1);for i=1:8 ceq(43
38、+i)=rl(3,i);end;ceq(52)=rl(3,10);for i=12:16 ceq(52+i-11)=rl(3,i);end;ceq(58)=rl(2,16);ceq(59)=rl(2,18);ceq(60)=rl(3,18);ceq(61)=rl(3,19);ceq(62)=rl(3,20);ceq(63)=rl(2,21);ceq(64)=rl(3,21);ceq(65)=cc-5903;%求解最省路径for i=1:39 for j=1:39 if i=j a(i,j)=0; else a(i,j)=inf; end; end;end;a(1,2)=104;a(2,3)=3
39、01;a(3,4)=750;a(4,5)=606;a(5,6)=194;a(6,7)=205;a(7,8)=201;a(8,9)=680;a(9,10)=480;a(10,11)=300;a(11,12)=220;a(12,13)=210;a(13,14)=420;a(14,15)=500;a(2,27)=3;a(3,28)=2;a(4,25)=600;a(5,29)=10;a(6,30)=5;a(7,31)=10;a(7,32)=31;a(8,24)=12;a(9,23)=42;a(10,22)=70;a(11,33)=10;a(12,35)=10;a(13,19)=62;a(14,36)=110;a(14,18)=30;a(15,16)=20;a(15,17)=20;a(16,17)=-30;a(17,18)=-290;a(18,19)=-160;a(18,36)=-70;a(19,20)=-320;a(19,35)=260;a(19,36)=100;a(33,35)=190;a(20,33)=130;a(20,21)=-160;a(20,35)=-70;a(21,22)=-170;a(21,33)=-88;a(21,37)=-690;a(22,23)=-520;a(23,24)=-720;a(23,38)=-690;a(