钢管订购和运输问题一代码和结果
19569-数学建模-钢管订购和运输 (1)
钢管订购和运输张伟 丁林阁 邓小涛 指导教师:数模组 海军航空工程学院摘要 本模型研究了管道铺设过程中钢管的订购和运输问题,它通过图论和非线性规划的知识建立。
模型使总费用达到最小,很好地解决了向哪个钢厂定货,定货多少,如何运输的问题,并且可以推广到更一般的网络。
同时针对模型中涉及的变量多、求解复杂这一问题,我们对模型进行了适当的简化,大大减少了变量的个数,从而减少了计算量。
一、问题重述要铺设一条1521A A A →→→ 的天然气主管道,可以生产这种主管道钢管的钢厂有721,,S S S 七家。
钢厂的位置,管道的铺设路线,以及从钢厂到铺设地的运输网络(运输网络包括沿管道的公路)均已知。
每个钢厂的钢管价格及其生产能力不全一样,且一个钢厂若要生产这种钢管,至少需要生产500个单位(1千米钢管记为1个单位)。
铁路的运价和公路的运价不一样。
要求在这种情况下,(1)制定一个钢管的订购和运输计划,使总费用最小,并给出总费用。
(2)分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,给出相应的数字结果。
(3)如果铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,就这种更一般的情形给出一种解决办法,并对图二按(1)的要求给出模型和结果。
二、问题的假设在问题所给条件成立的前提下,我们进一步作如下假设: 1. 假设公路运输费用不是整公里的按整公里计算是合理的。
2. 假设沿管道的公路(施工公路)运输费用也为每公里0.1万元(不足整公里部分按整公里计算)。
3. 假设不考虑铁路、公路及施工公路的运输能力限制。
4. 假设运输费用为单程运输的费用,即从出发点到目的地的单程费用,不考虑空车返回的费用。
5. 假设运输费用已包含装卸费用。
关于假设的一点说明:根据上述假设我们认为在铺设管道的过程中每隔一公里,卸下一单位钢管供工人铺设是合理的。
三、符号约定i S :生产主管道钢管的钢厂 ;j A :管道节点 ;1,+j j l :从j A 到1+j A 铺设钢管的路段长度(单位:公里,14,...,1=j ); i s : 钢厂i S 在指定期限内生产钢管的最大数量(单位:单位钢管); i P : 钢厂i S 单位钢管的出厂价格(单位:万元); ij x :从 钢厂i S 运到j A 的钢管数量(单位:单位钢管); ij c :表示1单位钢管从 钢厂i S 到j A 的最小费用(单位:万元); j X :运到j A 的钢管总数(单位:单位钢管); j L : 从j A 往左铺设的钢管总数(单位:单位钢管),j L 为j X 的一部分; j R : 从j A 往右铺设的钢管总数(单位:单位钢管),这里j j j L X R -=; 其中 15,...,1;7,...,1==j i 四、问题分析本问题分两部分:一部分是图论中的最短路径的问题:确定1单位钢管从 钢厂i S 到j A 的最小费用;另一部分是非线性规划问题:求总的最小费用。
钢管订购与运输问题一的数学模型与求解
钢管订购与运输问题一的数学模型与求解
钢管订购与运输问题是一种组合优化问题,它涉及到钢管的订购和运输,旨在找到最佳的订购和运输方案,以最小的成本获得最大的收益。
这个问题通常可以用数学模型来表示。
设 n 个工地需要订购 m 根钢管,钢管订购和运输费用分别为
c1(订购费用)、c2(运输费用),订购钢管的最早时间 t0 为早订购时间,最迟时间为 t1 为晚订购时间,运输时间不计费用。
则钢管订购与运输问题的数学模型可以表示为:
minimize Σi=1~n c1(t1-t0) + Σj=i+1~n c2(t2-t1)
subject to:
t1≤t0
t2≥t1
t1+t2≤t0+30
x1=1, x2=1, ..., xnm=1
其中,x1、x2、...、xnm 是订购钢管的数量,1 表示订购,0 表示不订购。
通过这个数学模型,我们可以制定出钢管订购与运输问题的求解方法,以找到最佳的订购和运输方案。
在实际问题中,我们通常需要对求解结果进行评估和优化,以便找到更加优秀的方案。
因此,钢管订购与运输问题的数学模型和求解方法只是问题的第一步,实际应用中还需要进行进一步的分析和优化。
钢管订购笔记
第三次培训钢管订购与运输问题要求:铺设天然气管道制造钢管一个钢厂至少生产500单位钢管(1单位钢管 == 1km 钢管)钢厂记为Si ,钢厂i S 在指定期限内能生产该钢管的最大数量为 i s 个单位,钢管出厂销价1单位钢管为i p 万元钢管运输(公路、铁路)铁路运输1000km 以上每增加1至100km 运价增加5万元。
公路运输公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。
钢管可由铁路、公路运往铺设地点(不只是运到点1521,,,A A A ,而是管道全线连续问题离散化)。
图示图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
待求解问题问题可能需要的知识:1.需要将管道送到各自位置处-----连续的问题离散化2.优化问题-----查看《数学模型》3.Flody算法(最短路问题)----在matlab或lingo中实现或调用相关算法4.Lingo ---- 解决优化问题5.动态规划(多阶段决策过程的最优化问题)(背包问题、最短路径问题)求解思路:1.路程转化为运输单价2.求钢厂到火车站点的最小花费路(dijkstra)3.约束条件:钢厂生产力有限钢厂分配给各火车站的量的比例、量可知总运费+订购费最少Lingo使用说明注释----- 感叹号!(结尾加分号)每条语句结尾要加分号Lingo sets(集)的概念Lingo把相联系的对象聚合为集sets集分为原始集和派生集语法首先,要先定义集集的名字/成员名字/:属性名字;成员间、属性间用逗号或空格链接sets:开始endsets结束例:sets:students/John Jill, Rose Mike/: sex, age; Endsets隐式罗列成员setname/member1..memberN/: attribute_list; 集成员设置数据data:!代码enddata定义派生集setname(parent_set_list)[/member_list/][:attribute_list]; Lingo参考代码Lingo中使用函数Lingo中函数一律用@开头@abs(x);@sin(x); @cos(x); @tan(x);@exp(x); @log(x);@sign(x); x < 0 返回-1 否则返回1@floor(x); 返回整数部分@smax(x1,x2,..,xn); 返回x1,x2,..,xn中的最大值@smin(x1,x2,..,xn); 返回x1,x2,..,xn中的最小值@bin(x); 限制x为0或1@bnd(L,x,U); L<=x<=U@free(x); 取消对变量x的默认下界为0的限制@gin(x); 限制x为整数@if(判断条件,结果为真时执行语句,结果为假时执行语句);注:默认情况下,lingo的变量都是非负的,用@free(x)函数取消限制Lingo逻辑运算符#not# !#eq# ==#ne# !=#gt# > greater than#ge# >= greater&equal#lt# < less than#le# <= less&equal#and# &&#or# ||优先级模型求解状态@status(); 返回LINGO求解模型结束后的状态:0 Global Optimum(全局最优)1 Infeasible(不可行)2 Unbounded(无界)3 Undetermined(不确定)4 Feasible(可行)5 Infeasible or Unbounded(通常需要关闭“预处理”选项后重新求解模型,以确定模型究竟是不可行还是无界)6 Local Optimum(局部最优)7 Locally Infeasible(局部不可行,尽管可行解可能存在,但是LINGO并没有找到一个)8 Cutoff(目标函数的截断值被达到)9 Numeric Error(求解器因在某约束中遇到无定义的算术运算而停止)通常,如果返回值不是0、4或6时,那么解将不可信,几乎不能用。
钢管的订购和运输问题
钢管的订购和运输问题长安大学杨剑浩陈晓渭程牧刚本文针对钢管订购和运输的一般特点和要求,建立了两个遵循题目要求的非线性规划模型。
在给定钢管需求量,运输方式及价格,厂家生产量上下线,运输路线图等条件下,非线性规划模型和图论的最短路算法,从而得到线最优的钢管订购运输方案,是成本达到最小。
对于问题一,我们选取了钢管订购和运输的总费用最小作为模型的目标函数,用floyd算法分别求出铁路最短路矩阵和公路最短路矩阵,利用费用转化公式,得到两个矩阵的最小费用,将两者综合求得总体最小运输费用矩阵C(i,j)。
然后用lingo求解得到最优的钢管订购运输方案。
对于问题二,我们根据要求改变钢厂钢管的销价和钢厂钢管的产量上限,然后用lingo求解,观察得到的图表,对改变以上两个条件后总运费及方案受到的影响进行分析。
考虑到问题三与问题一很相似,不同之处在于问题三中的钢管铺设路线变成了树形,因此我们仍然采用问题一的建模思路,对于特殊之处进行修改。
采用图论中的floyd算法,求得总体最小运输费用矩阵C(i,j)。
然后用lingo求解得到最优的钢管订购运输方案。
对问题一模型的求解得到最优钢管订购运输方案为:总费用=1278632万元每家厂家的生产量:厂家s5和厂家s6的单位钢管销售价发生变化时,对方案中总运费的影响最大。
厂家si的钢管总产量上限变化对总费用影响最大。
对问题三的模型求解得到最优钢管订购运输方案为:总费用=1403233万元。
每家厂家的生产量:关键词:floyd算法非线性规划模型总体最小运输费用矩阵一、问题重述要铺设一条输送天然气的主管道。
经筛选后可以生产这种主管道钢管的钢厂有七家。
图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
为方便计,1km主管道钢管称为1单位钢管。
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。
钢管运输解析
钢管运输摘要本题主要以钢管的最省购运和铺设计划为研究对象,在研究过程中引入了0-1变量,并建立了非线性规划模型,利用lingo 编程求解。
针对问题一,通过分析可得,总费用等于购买、运输和铺设钢材所需费用的总和,为了得到最省的订购和运输计划,首先需计算从各钢厂购买一单位钢材并运输到各施工地点所需的最少费用,并结合等差数列关系给出各路段铺设费用的表达式。
在制定计划中,从各钢厂购买的钢材量应满足该钢厂的生产要求,其次应使各铺设地点能得到足够的铺设钢材,并通过引入0-1变量判断钢厂是否参加生产,在满足上述条件的情况下,以总费用最少为目标,建立非线性规划模型,并利用lingo 软件编程求解,解得总费用最少为127.8632亿元,安排计划详见模型求解。
针对问题二,分别将各钢厂的售价提高或降低5%,将各钢厂的生产上限提高或降低10%,并将改变后的售价依次带入问题一所建模型中,利用lingo 软件求得结果,并通过作差的方法结合拟和图形对各结果进行比较,可得到当各钢厂售价提高或降低时,3S 和6S 钢材场对购运计划影响最大,当各钢厂生产上限提高或降低时,1S 钢材场对购运计划的影响最大,生产计划详见模型求解。
关键词: 0-1变量 非线性规划模型一、问题重述问题背景铺设一条从1521A A A →→→ 输送天然气的主管道,经过筛选之后,可以生产这种主管道钢管的钢厂有721,,S S S 七家。
设定1km 主管道钢管为1单位钢管。
如果一家钢厂要承担制造这种钢管,则至少需要生产500个单位。
各个钢厂在制定期限内能生产该钢管的最大数目为i s 个单位,钢管出厂销价为i p 万元。
如下所示:公路运输费用为1单位钢管每公里0.1万元(不足整公里的部分按整公里计算)。
由铁路、公路将钢管运往铺设地(不只是运到点1521,,,A A A ,而是管道全线)。
问题提出图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
钢管的订购和运输模型程序
模型一的matlab程序!A为邻接矩阵;T,T2分别为铁路的矩阵和铁路的费用矩阵;R,R2分别为公路的矩阵和公路的费用矩阵;w,Q为总费用矩阵;cost为S到A的各项费用矩阵A=ones(39,39);for i=1:39;for j=1:39;if i==j A(i,j)=0;else A(i,j)=inf;endendendA(8,10)=450;A(9,10)=80;A(10,11)=1150;A(11,16)=1100;A(12,13)=306;A(13,14)=195;A(1,14)=20;A(1,16)=202;A(2,16)=1200;A(16,17)=720;A(3,17)=690;A(17,18)=520;A(18,19)=170;A(4,19)=690;A(19,20)=160;A(5,15)=462;A(15,19)=88;A(20,21)=70;A(20,22)=320;A(22,23)=160;A(6,23)=70;A(23,24)=290;A(7,24)=30;for j=1:39;for i=1:j-1;A(j,i)=A(i,j);endendT=A;m=1;while m<=39for i=1:39for j=1:39if T(i,j)>T(i,m)+T(m,j);T(i,j)=T(i,m)+T(m,j);endendendm=m+1;endT2=ones(39,39);for i=1:39;for j=1:39;if T(i,j)==0 T2(i,j)=T(i,j);elseif T(i,j)>0&T(i,j)<=300 T2(i,j)=20;elseif T(i,j)>300&T(i,j)<=350 T2(i,j)=23;elseif T(i,j)>350&T(i,j)<=400 T2(i,j)=26;elseif T(i,j)>400&T(i,j)<=450 T2(i,j)=29;elseif T(i,j)>450&T(i,j)<=500 T2(i,j)=32;elseif T(i,j)>500&T(i,j)<=600 T2(i,j)=37;elseif T(i,j)>600&T(i,j)<=700 T2(i,j)=44;elseif T(i,j)>700&T(i,j)<=800 T2(i,j)=50;elseif T(i,j)>800&T(i,j)<=900 T2(i,j)=55;elseif T(i,j)>900&T(i,j)<=1000 T2(i,j)=60;else T2(i,j)=60+ceil((T(i,j)-1000)/100)*5;endendendB=ones(39,39);for i=1:39;for j=1:39;if i==j B(i,j)=0;else B(i,j)=inf;endendendB(8,26)=3;B(9,27)=2;B(11,28)=600;B(12,29)=10;B(13,30)=5;B(14,31)=10;B(1,31)=31;B(16,32)=12;B(17,33)=42;B(18,34)=70;B(15,35)=10;B(21,36)=10;B(22,37)=62;B(6,38)=110;B(23,38)=30;B(24,39)=20;B(7,39)=20;B(25,26)=104;B(26,27)=301;B(27,28)=750;B(28,29)=606;B(29,30)=194; B(30,31)=205;B(31,32)=201;B(32,33)=680;B(33,34)=480;B(34,35)=300;B(35,36)=220;B(36,37)=210;B(37,38)=420;B(38,39)=500; for j=1:39;for i=1:j-1;B(j,i)=B(i,j);endendR=B;g=1;while g<=39;for i=1:39;for j=1:39;if R(i,j)>R(i,g)+R(g,j);R(i,j)=R(i,g)+R(g,j);endendendg=g+1;endR2=0.1.*R;w=ones(39,39);for i=1:39;for j=1:39;if T2(i,j)>R2(i,j) w(i,j)=R2(i,j);else w(i,j)=T2(i,j);endendendf=1;while f<=39for i=1:39for j=1:39if w(i,j)>w(i,f)+w(f,j)w(i,j)=w(i,f)+w(f,j);endendendf=f+1;endQ=ones(39,39);for i=1:7for j=25:39cost(i,j)=w(i,j)endend模型一的matlab结果cost =Columns 25 through 39170.7000 160.3000 140.2000 98.6000 38.0000 20.5000 3.1000 21.2000 64.2000 92.0000 96.0000 106.0000 121.2000 128.0000 142.0000215.7000 205.3000 190.2000 171.6000 111.0000 95.5000 86.0000 71.2000 114.2000 142.0000 146.0000 156.0000 171.2000 178.0000 192.0000230.7000 220.3000 200.2000 181.6000 121.0000 105.5000 96.0000 86.2000 48.2000 82.0000 86.0000 96.0000 111.2000 118.0000 132.0000260.7000 250.3000 235.2000 216.6000 156.0000 140.5000 131.0000 116.2000 84.2000 62.0000 51.0000 61.0000 76.2000 83.0000 97.0000255.7000 245.3000 225.2000 206.6000 146.0000 130.5000 121.0000 111.2000 79.2000 57.0000 33.0000 51.0000 71.2000 73.0000 87.0000265.7000 255.3000 235.2000 216.6000 156.0000 140.5000 131.0000 121.2000 84.2000 62.0000 51.0000 45.0000 26.2000 11.0000 28.0000275.7000 265.3000 245.2000 226.6000 166.0000 150.5000 141.0000 131.2000 99.2000 76.0000 66.0000 56.0000 38.2000 26.0000 2.0000模型一的lingo程序model:!钢管购买与运输铺优化设问;sets:!cj表示厂家;md表示目的地;cj/1..7/:p,s,t;md/1..15/:y,z,D;link(cj,md):cost,x;endsets!这里是数据;data:s=800 800 1000 2000 2000 2000 3000;D=104,301,750,606,194,205,201,680,480,300,220,210,420,500,0;p=160,155,155,160,155,150,160;cost=170.7 160.3 140.2 98.6 38.0 20.5 3.1 21.2 64.2 92.0 96.0 106.0 121.2 128.0 142.0215.7 205.3 190.2 171.6 111.0 95.5 86.0 71.2 114.2 142.0 146.0 156.0 171.2 178.0 192.0230.7 220.3 200.2 181.6 121.0 105.5 96.0 86.2 48.2 82.0 86.0 96.0 111.2 118.0 132.0260.7 250.3 235.2 216.6 156.0 140.5 131.0 116.2 84.2 62.0 51.0 61.0 76.2 83.0 97.0255.7 245.3 225.2 206.6 146.0 130.5 121.0 111.2 79.2 57.0 33.0 51.0 71.2 73.0 87.0265.7 255.3 235.2 216.6 156.0 140.5 131.0 121.2 84.2 62.0 51.0 45.0 26.2 11.0 28.0275.7 265.3 245.2 226.6 166.0 150.5 141.0 131.2 99.2 77.0 66.0 56.0 38.2 26.0 2.0;enddata!目标函数;min=w;w=@sum(link(i,j):(p(i)+cost(i,j))*x(i,j))+0.1/2*@sum(md(j):y(j)^2+y(j)+z(j)^2+z(j));!约束条件;@for(cj(i):@sum(md(j):x(i,j))>=500*t(i);s(i)*t(i)>=@sum(md(j):x(i,j));@bin(t(i)));@for(md(j):@sum(cj(i):x(i,j))=y(j)+z(j));@for(md(j)|j#ne#15:D(j)=y(j)+z(j+1));z(15)=0;y(1)=0;@gin(@sum(link(i,j):x(i,j)));end铺设方案Variable Value Reduced CostY( 1) 0.000000 0.000000Y( 2) 75.00000 0.000000Y( 3) 282.0000 0.000000Y( 4) 0.000000 0.000000Y( 5) 9.500000 0.000000Y( 6) 15.50000 0.000000Y( 7) 76.00000 0.000000Y( 8) 175.0000 0.000000Y( 9) 159.0000 0.000000Y( 10) 30.00000 0.000000Y( 11) 145.0000 0.000000Y( 12) 11.00000 0.000000Y( 13) 134.0000 0.000000Y( 14) 500.0000 0.000000Y( 15) 0.000000 141.0500Z( 1) 0.000000 405.7500Z( 2) 104.0000 0.000000Z( 3) 226.0000 0.000000Z( 4) 468.0000 0.000000Z( 5) 606.0000 0.000000Z( 6) 184.5000 0.000000Z( 7) 189.5000 0.000000Z( 8) 125.0000 0.000000Z( 9) 505.0000 0.000000Z( 10) 321.0000 0.000000Z( 11) 270.0000 0.000000Z( 12) 75.00000 0.000000Z( 13) 199.0000 0.000000Z( 14) 286.0000 0.000000Z( 15) 0.000000 0.000000 厂家分配方案X( 1, 1) 0.000000 28.00000X( 1, 2) 0.000000 28.00000X( 1, 3) 0.000000 23.00000X( 1, 4) 250.4441 0.000000X( 1, 5) 84.05588 0.000000X( 1, 7) 265.5000 0.000000 X( 1, 8) 0.000000 23.00000 X( 1, 9) 0.000000 99.00000 X( 1, 10) 0.000000 143.0000 X( 1, 11) 0.000000 171.0000 X( 1, 12) 0.000000 174.0000 X( 1, 13) 0.000000 208.0000 X( 1, 14) 0.000000 230.0000 X( 1, 15) 0.000000 264.0000 X( 2, 1) 0.000000 0.000000 X( 2, 2) 179.0000 0.000000 X( 2, 3) 321.0000 0.000000 X( 2, 4) 0.000000 0.000000 X( 2, 5) 0.000000 0.000000 X( 2, 6) 0.000000 2.000000 X( 2, 7) 0.000000 9.900000 X( 2, 8) 300.0000 0.000000 X( 2, 9) 0.000000 76.00000 X( 2, 10) 0.000000 120.0000 X( 2, 11) 0.000000 148.0000 X( 2, 12) 0.000000 151.0000X( 2, 14) 0.000000 207.0000 X( 2, 15) 0.000000 241.0000 X( 3, 1) 0.000000 5.000000 X( 3, 2) 0.000000 5.000000 X( 3, 3) 147.2817 0.000000 X( 3, 4) 119.7061 0.000000 X( 3, 5) 69.01229 0.000000 X( 3, 6) 0.000000 2.000000 X( 3, 7) 0.000000 9.900000 X( 3, 8) 0.000000 5.000000 X( 3, 9) 664.0000 0.000000 X( 3, 10) 0.000000 50.00000 X( 3, 11) 0.000000 78.00000 X( 3, 12) 0.000000 81.00000 X( 3, 13) 0.000000 115.0000 X( 3, 14) 0.000000 137.0000 X( 3, 15) 0.000000 171.0000 X( 4, 1) 0.000000 5.000000 X( 4, 2) 0.000000 5.000000 X( 4, 3) 0.000000 5.000000 X( 4, 4) 0.000000 5.000000X( 4, 6) 0.000000 7.000000 X( 4, 7) 0.000000 14.90000 X( 4, 8) 0.000000 5.000000 X( 4, 9) 0.000000 6.000000 X( 4, 10) 0.000000 0.000000 X( 4, 11) 0.000000 13.00000 X( 4, 12) 0.000000 16.00000 X( 4, 13) 0.000000 50.00000 X( 4, 14) 0.000000 72.00000 X( 4, 15) 0.000000 106.0000 X( 5, 1) 0.000000 5.000000 X( 5, 2) 0.000000 5.000000 X( 5, 3) 39.71834 0.000000 X( 5, 4) 97.84982 0.000000 X( 5, 5) 462.4318 0.000000 X( 5, 6) 0.000000 2.000000 X( 5, 7) 0.000000 9.900000 X( 5, 8) 0.000000 5.000000 X( 5, 9) 0.000000 6.000000 X( 5, 10) 262.7391 0.000000 X( 5, 11) 415.0000 0.000000X( 5, 13) 0.000000 50.00000 X( 5, 14) 0.000000 67.00000 X( 5, 15) 0.000000 101.0000 X( 6, 1) 0.000000 10.00000 X( 6, 2) 0.000000 10.00000 X( 6, 3) 0.000000 5.000000 X( 6, 4) 0.000000 5.000000 X( 6, 5) 0.000000 5.000000 X( 6, 6) 0.000000 7.000000 X( 6, 7) 0.000000 14.90000 X( 6, 8) 0.000000 10.00000 X( 6, 9) 0.000000 6.000000 X( 6, 10) 88.26093 0.000000 X( 6, 11) 0.000000 13.00000 X( 6, 12) 86.00000 0.000000 X( 6, 13) 333.0000 0.000000 X( 6, 14) 786.0000 0.000000 X( 6, 15) 0.000000 37.00000 X( 7, 1) 0.000000 9.000000 X( 7, 2) 0.000000 9.000000 X( 7, 3) 0.000000 4.000000X( 7, 5) 0.000000 4.000000X( 7, 6) 0.000000 6.000000X( 7, 7) 0.000000 13.90000X( 7, 8) 0.000000 9.000000X( 7, 9) 0.000000 10.00000X( 7, 10) 0.000000 4.000000X( 7, 11) 0.000000 17.00000X( 7, 12) 0.000000 0.000000X( 7, 13) 0.000000 1.000000X( 7, 14) 0.000000 4.000000X( 7, 15) 0.000000 0.000000 最少总费用Local optimal solution found.Objective value: 1281354.Extended solver steps: 0Total solver iterations: 36模型三的matlab程序A=ones(39,39);for i=1:39;for j=1:39;if i==j A(i,j)=0;else A(i,j)=inf;endendendA(8,10)=450;A(9,10)=80;A(10,11)=1150;A(11,16)=1100;A(12,13)=306; A(13,14)=195;A(1,14)=20;A(1,16)=202;A(2,16)=1200;A(16,17)=720;A(3,17)=690;A(17,18)=520;A(18,19)=170;A(4,19)=690;A(19,20)=160; A(5,15)=462;A(15,19)=88;A(20,21)=70;A(20,22)=320;A(22,23)=160;A(6,23)=70;A(23,24)=290;A(7,24)=30;for j=1:39;for i=1:j-1;A(j,i)=A(i,j);endendT=A;m=1;while m<=39for i=1:39for j=1:39if T(i,j)>T(i,m)+T(m,j);T(i,j)=T(i,m)+T(m,j);endendendm=m+1;endT2=ones(39,39);for i=1:39;for j=1:39;if T(i,j)==0 T2(i,j)=T(i,j);elseif T(i,j)>0&T(i,j)<=300 T2(i,j)=20;elseif T(i,j)>300&T(i,j)<=350 T2(i,j)=23;elseif T(i,j)>350&T(i,j)<=400 T2(i,j)=26;elseif T(i,j)>400&T(i,j)<=450 T2(i,j)=29;elseif T(i,j)>450&T(i,j)<=500 T2(i,j)=32;elseif T(i,j)>500&T(i,j)<=600 T2(i,j)=37;elseif T(i,j)>600&T(i,j)<=700 T2(i,j)=44;elseif T(i,j)>700&T(i,j)<=800 T2(i,j)=50;elseif T(i,j)>800&T(i,j)<=900 T2(i,j)=55;elseif T(i,j)>900&T(i,j)<=1000 T2(i,j)=60;else T2(i,j)=60+ceil((T(i,j)-1000)/100)*5;endendB=ones(39,39);for i=1:39;for j=1:39;if i==j B(i,j)=0;else B(i,j)=inf;endendendB(8,26)=3;B(9,27)=2;B(11,28)=600;B(12,29)=10;B(13,30)=5;B(14,31)=10;B(1,31)=31;B(16,32)=12;B(18,34)=70;B(21,36)=10;B(22,37)=62;B(6,38)=110;B(23,38)=30;B(24,39)=20;B(7,39)=20;B(25,26)=104;B(26,27)=301;B(27,28)=750;B(28,29)=606;B(29,30)=194; B(30,31)=205;B(31,32)=201;B(32,33)=680;B(33,34)=480;B(34,35)=300; B(35,36)=220;B(36,37)=210;B(37,38)=420;B(38,39)=500;for j=1:39;for i=1:j-1;B(j,i)=B(i,j);endendg=1;while g<=39;for i=1:39;for j=1:39;if R(i,j)>R(i,g)+R(g,j);R(i,j)=R(i,g)+R(g,j);endendendg=g+1;endR2=0.1.*R;w=ones(39,39);for i=1:39;for j=1:39;if T2(i,j)>R2(i,j) w(i,j)=R2(i,j);else w(i,j)=T2(i,j);endendendf=1;while f<=39for i=1:39for j=1:39if w(i,j)>w(i,f)+w(f,j)w(i,j)=w(i,f)+w(f,j);endendendf=f+1;endQ=ones(39,39);for i=1:7for j=19:39cost(i,j)=w(i,j)endend模型三的matlab结果Columns 19 through 3995.0000 100.0000 105.0000 115.0000 125.0000 140.0000 170.7000160.3000 140.2000 98.6000 38.0000 20.5000 3.1000 21.2000 89.2000 92.0000 122.0000 106.0000 121.2000 128.0000 142.0000145.0000 150.0000 155.0000 165.0000 175.0000 190.0000 215.7000 205.3000 190.2000 171.6000 111.0000 95.5000 86.0000 71.2000 139.2000 142.0000 172.0000 156.0000 171.2000 178.0000 192.000080.0000 90.0000 95.0000 105.0000 115.0000 130.0000 230.7000 220.3000 200.2000 181.6000 121.0000 105.5000 96.0000 86.2000 130.0000 82.0000 112.0000 96.0000 111.2000 118.0000 132.000044.0000 55.0000 60.0000 70.0000 80.0000 95.0000 260.7000 250.3000 235.2000 216.6000 156.0000 140.5000 131.0000 116.2000 110.0000 62.0000 83.0000 61.0000 76.2000 83.0000 97.000037.0000 50.0000 50.0000 65.0000 70.0000 85.0000 255.7000 245.3000 225.2000 206.6000 146.0000 130.5000 121.0000 111.2000 105.0000 57.0000 73.0000 51.0000 71.2000 73.0000 87.000050.0000 37.0000 44.0000 20.0000 14.0000 26.0000 265.7000 255.3000 235.2000 216.6000 156.0000 140.5000 131.0000 121.2000 110.0000 62.0000 67.0000 45.0000 26.2000 11.0000 28.000060.0000 50.0000 55.0000 32.0000 23.0000 4.0000 275.7000265.3000 245.2000 226.6000 166.0000 150.5000 141.0000 131.2000 124.0000 76.0000 78.0000 56.0000 38.2000 26.0000 2.0000模型三的lingo程序model:!钢管购买与运输铺优化设问;sets:cj/1..7/:p,s,t;md/1..21/:y,z,v,D;link(cj,md):cost,x;endsets!这里是数据;data:s=800 800 1000 2000 2000 2000 3000;D=104 301 750 606 194 205 201 680 480 300 220 210 420 500 0 0 0 0 0 0 0;p=168 155 155 160 155 150 160;cost= 95 100 105 115 125 140 170.7 160.3 140.2 98.6 38 20.5 3.1 21.2 89.2 92 122 106 121.2 128 142145 150 155 165 175 190 215.7 205.3 190.2 171.6111 95.5 86 71.2 139.2 142 172 156 171.2 178 19280 90 95 105 115 130 230.7 220.3 200.2 181.6 121 105.5 96 86.2 130 82 112 96 111.2 118 13244 55 60 70 80 95 260.7 250.3 235.2 216.6 156 140.5 131 116.2 110 62 83 61 76.2 83 9737 50 50 65 70 85 255.7 245.3 225.2 206.6 146 130.5 121 111.2 105 57 73 51 71.2 73 8750 37 44 20 14 26 265.7 255.3 235.2 216.6 156 140.5 131 121.2 110 62 67 45 26.2 11 2860 50 55 32 23 4 275.7 265.3 245.2 226.6 166 150.5 141 131.2 124 76 78 56 38.2 26 2;!目标函数;min=@sum(link(i,j):(p(i)+cost(i,j))*x(i,j))+0.05*(@sum(md(j)|j#ge#2#and#j#le#21:y(j)^2+y(j))+ @sum(md(j)|j#le#14:z(j)^2+z(j))+@sum(md(j)|j#eq#9#or#j#eq#11#or#j#eq#17:v(j)^2+v(j))+@ sum(md(j)|j#eq#17#or#j#eq#19#or#j#eq#20:z(j)^2+z(j)));@for(cj(i):@sum(md(j):x(i,j))>=500*t(i));@for(cj(i):@sum(md(j):x(i,j))<=s(i)*t(i));@for(cj(i):@bin(t(i)));@for(md(j)|j#ne#9#and#j#ne#11#and#j#ne#17:v(j)=0); @for(md(j):@sum(cj(i):x(i,j))=y(j)+z(j)+v(j));@for(md(j)|j#lt#15:D(j)=y(j)+z(j+1));v(9)+y(16)=42;v(11)+v(17)=10;y(17)+z(18)=130;z(17)+y(19)=190;z(19)+y(20)=260;z(20)+y(21)=100;@gin(@sum(link(i,j):x(i,j)));endWelcome To Download !!!欢迎您的下载,资料仅供参考!。
【大学竞赛】数学建模 钢管订购和运输优化模型PPT-PPT精选文档
6.订购的钢管数量刚好等于需要铺设的钢管数量
二.基本假设
7.销售价和运输价不受市场价格变化的影响
三. 符号说明
第 第 个钢厂, 个钢厂的最大产量, 个点,
输送天然气的主管道上的第 第 钢厂 在点
综合案例分析
建模案例:钢管订购和运输优化模型
2000年“网易杯”全国大学生数学建模竞赛B
一.问题的提出
1.沿铺设的主管道已有公路或者有施工公路. 2.1km 主管道钢管称为一单位钢管,在主管道上,每千 米卸1单位的钢管. 3.公路运输费用为1单位钢管每千米0.1万元 (不足整千米部分按整千米计算) 4.在计算总费用时,只考虑运输费用和购买钢管的费用, 而不考虑其他的费用(诸如中转费用)
• LINDO/LINGO 得到的结果比 matlab得到的好
1)运输问题的0-1规划模型 将全长5171km的管道按公里分段,共5171个需求点, 钢厂为7个供应点,构成如下的运输问题
min s .t .
i 1 5171
7
5171 j1
c ij x ij
7
j1
x ij { 0 , [ 500 , s i ]}, i 1 , 7 x ij 1 , j 1 , 5171
i 1
x ij { 0 ,1 }, i 1 , 7 , j 1 , 5171
求解时要 针对规模 问题寻求 改进算法
Cij 规模太大麻烦
cij为从供应点i到需求点j的最小购运费
xij=1表示从点i到点j购运1单位钢管
问题二、就(1)的模型分析:哪个钢厂钢管的销价的变化 对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限 的变化对购运计划和总费用的影响最大,并给出相应的数字 结果.
钢管的订购和运输问题数学建模论文1
摘要本文针对钢管订购和运输的这一题目的要求,建立了非线性规划模型。
在给定钢管运输方式、价格、厂家生产量上下限、运输路线等条件下,本文利用非线性规划模型和图论最短路算法等基础知识,得到了最优的钢管订购运输方案,使总费用最小,并进行了灵敏度分析。
对于问题(1),本文选取钢管订购和运输的最小总费用作为该模型的目标函数,用floyd 算法分别求出铁路最短路矩阵和公路最短路矩阵,进而转化为费用,得到两个矩阵的最小费用,将两者合并求得总体最小运输费用矩阵。
然后用lingo 求解得到最优的钢管订购运输方案,为表1: 表1:对于问题(2),本文根据题目要求改变钢厂钢管的售价和钢厂钢管的产量上限,然后用lingo 求解,观察得到表格,对改变以上两个条件后总运费及方案受到的影响进行了分析,可知钢厂1S 钢厂2S 钢厂3S 单位钢管销售价发生变化时,对方案中总运费的影响最大。
钢厂1S 的产量上限的变化对购运费用和总费用影响最大。
对于问题(3),由于问(3)与问题(1)很相似,不同之处在于问题(3)中的钢管铺设路线变成了树形,本文仍然采用问题(1)的建模思路,仅对特殊之处进行修改。
采用图论中的floyd 算法,求得总体最小运输费用矩阵。
然后用lingo 求解得到最优的钢管订购运输方案,为表2: 表2:每家厂家的生产量:关键词: floyd 算法 非线性规划模型 最小总费用正文1.问题重述要铺设一条1521A A A →→→ 的输送天然气的主管道(如图一所示),可以生产这种主管道钢管的钢厂有721,,S S S 。
图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道 (铺设点有公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
为方便计,1km 主管道钢管称为1单位钢管。
一个钢厂如果承担制造这种钢管,至少需要生产500个单位。
钢厂i S 在指定期限内能生产该钢管的最大数量为i s 个单位,钢管出厂销价1单位钢管为i p 万元,如下表:i1 2 3 4 5 6 7 i s800 800 1000 2000 2000 2000 3000 i p160155155160 155150160 1单位钢管的铁路运价如下表:里程(km) ≤300 301~350351~400 401~450 451~500运价(万元) 2023262932里程(km)501~600601~700701~800 801~900 901~1000运价(万元)37 44 50 55 601000km 以上每增加1至100km 运价增加5万元。
运筹学运输问题代码
运筹学运输问题代码以下是使用Python实现运筹学运输问题的代码示例:```pythonimport numpy as np定义供应量、需求量和单位运输成本supply = [7, 4, 9]demand = [3, 6, 5, 6]c = [[3, 11, 3, 10], [1, 9, 2, 8], [7, 4, 10, 5]]计算总供应量、总需求量和总运输成本total_supply = sum(supply)total_demand = sum(demand)total_cost = sum((c, axis=1))初始化变量和矩阵x = ((len(supply), len(demand)))f = (len(supply))for i in range(len(supply)):for j in range(len(demand)):if supply[i] > 0 and demand[j] > 0:f[i] += c[i][j] x[i][j]supply[i] -= x[i][j]demand[j] -= x[i][j]输出结果print("运输方案:")for i in range(len(supply)):for j in range(len(demand)):if x[i][j] > 0:print("从供应点%d运往需求点%d %d个单位,运输成本为%d元" % (i+1, j+1, x[i][j], c[i][j]x[i][j]))print("总运输成本为%d元" % f)```该代码使用Python中的NumPy库来处理矩阵运算,实现了运输问题的求解。
具体来说,它首先定义了供应量、需求量和单位运输成本,然后计算总供应量、总需求量和总运输成本。
接下来,它初始化变量和矩阵,并使用双重循环来计算运输方案和总运输成本。
数学建模---钢管订购和运输优化
数学建模---钢管订购和运输优化要铺设一条1521A A A →→→ 的输送天然气的主管道, 如图1所示(见反面).经筛选后可以生产这种主管道钢管的钢厂有127,,,S S S .图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位:km).为方便计,1km 主管道钢管称为1单位钢管.一个钢厂如果承担制造这种钢管,至少需要生产500个单位.钢厂i S 在指定期限内能生产该钢管的最大数量为i s 个单位,钢管出厂销价1单位钢管为i p 万元,如下表:i1 2 3 4 5 6 7 i s800 800 1000 2000 2000 2000 3000 i p1601551551601551501601单位钢管的铁路运价如下表:里程(km) ≤300 301~350 351~400 401~450 451~500 运价(万元) 2023262932里程(km) 501~600 601~700 701~800 801~900 901~1000运价(万元) 37445055601000km 以上每增加1至100km 运价增加5万元.公路运输费用为1单位钢管每千米0.1万元(不足整千米部分按整千米计算). 钢管可由铁路、公路运往铺设地点(不只是运到点1521,,,A A A ,而是管道全线).问题:(1)请制定一个主管道钢管的订购和运输计划,使总费用最小(给出总费用).思考题:(2)请就(1)的模型分析:哪个钢厂钢管的销价的变化对购运计划和总费用影响最大,哪个钢厂钢管的产量的上限的变化对购运计划和总费用的影响最大,并给出相应的数字结果.(3)如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,请就这种更一般的情形给出一种解决办法,并对图2按(1)的要求给出模型和结果.71一、 基本假设1. 沿铺设的主管道以有公路或者有施工公路. 2. 在主管道上,每千米卸1单位的钢管.3. 公路运输费用为1单位钢管每千米0.1万元(不足整千米部分按整千米计算) 4. 在计算总费用时,只考虑运输费和购买钢管的费用,而不考虑其他费用. 5. 在计算钢厂的产量对购运计划影响时,只考虑钢厂的产量足够满足需要的情况,即钢厂的产量不受限制.6. 假设钢管在铁路运输路程超过1000km 时,铁路每增加1至100km ,1单位钢管17的运价增加5万元.二、符号说明:i S :第i 个钢厂; 7,,2,1 =i i s :第i 个钢厂的最大产量; 7,,2,1 =i j A :输送管道(主管道)上的第j 个点; 15,,2,1 =ji p :第i 个钢厂1单位钢管的销价; 7,,2,1 =iij x :钢厂i S 向点j A 运输的钢管量; 7,,2,1 =i 15,,2,1 =jj t :在点j A 与点1+j A 之间的公路上,运输点j A 向点1+j A 方向铺设的钢管量;14,,3,2,1 =j (01=t )ij a :1单位钢管从钢厂i S 运到结点j A 的最少总费用,即公路运费﹑铁路运费和钢管销价之和; 7,,2,1 =i 15,,2,1 =jj b :与点j A 相连的公路和铁路的相交点; 15,,3,2 =j1.+j j A :相邻点j A 与1+j A 之间的距离; 14,,2,1 =j三、模型的建立与求解问题一:讨论如何调整主管道钢管的订购和运输方案使总费用最小由题意可知,钢管从钢厂i S 到运输结点j A 的费用ij a 包括钢管的销价﹑钢管的铁路运输费用和钢管的公路运输费用.在费用ij a 最小时,对钢管的订购和运输进行分配,可得出本问题的最佳方案.1. 求钢管从钢厂i S 运到运输点j A 的最小费用1)将图1转换为一系列以单位钢管的运输费用为权的赋权图.由于钢管从钢厂i S 运到运输点j A 要通过铁路和公路运输,而铁路运输费用是分段函数,与全程运输总距离有关.又由于钢厂i S 直接与铁路相连,所以可先求出钢厂i S 到铁路与公路相交点j b 的最短路径.如图3图3 铁路网络图依据钢管的铁路运价表,算出钢厂i S 到铁路与公路相交点j b 的最小铁路运输费用,并把费用作为边权赋给从钢厂i S 到j b 的边.再将与j b 相连的公路、运输点i A 及其与之相连的要铺设管道的线路(也是公路)添加到图上,根据单位钢管在公路上的运价规定,得出每一段公路的运费,并把此费用作为边权赋给相应的边.以1S 为例得图4.图4 钢管从钢厂1S 运到各运输点j A 的铁路运输与公路运输费用权值图2)计算单位钢管从1S 到j A 的最少运输费用根据图4,借助图论软件包中求最短路的方法求出单位钢管从1S 到j A 的最少运输费用依次为:170.7,160.3,140.2,98.6,38,20.5,3.1,21.2,64.2,92,96,106,121.2,128,142(单位:万元).加上单位钢管的销售价i p ,得出从钢厂1S 购买单位钢管运输到点j A 的最小费用j a 1依次为:330.3,320.3,300.2,258.6,198,180.5,163.1,181.2,224.2,252,256,266,281.2,288,302(单位:万元).同理,可用同样的方法求出钢厂2S ﹑3S ﹑4S ﹑5S ﹑6S ﹑7S 到点j A 的最小费用,从而得出钢厂到点的最小总费用(单位:万元)为:表1 i S 到点j A 最小费用A 2A 3A 4 A 5A 6A 7 A 8A 9A 10 A 11 A 12 A 13A 14 A 15S 1 320.3 300.2 258.6 198 180.5 163 181.2 224.2 252 256 266 281.2 288 3022S 360.3 345.2 326.6 266 250.5 241 226.2 269.2 297 301 311 326.2 333 347 3S 375.3 355.2 336.6 276 260.5 251 241.2 203.2 237 241 251 266.2 273 2874S 410.3 395.2 376.6 316 300.5 291 276.2 244.2 222 211 221 236.2 243 257 5S 400.3 380.2 361.6 301 285.5 276 266.2 234.2 212 188 206 226.2 228 242 6S 405.3 385.2 366.6 306 290.5 281 271.2 234.2 212 201 195 176.2 161 1782. 建立模型运输总费用可分为两部分:运输总费用=钢厂到各点的运输费用+铺设费用.运输费用:若运输点j A 向钢厂i S 订购ij x 单位钢管,则钢管从钢厂i S 运到运输点j A 所需的费用为ij ij x a .由于钢管运到1A 必须经过2A ,所以可不考虑1A ,那么所有钢管从各钢厂运到各运输点上的总费用为:∑∑==15271j i ijijax .铺设费用:当钢管从钢厂i S 运到点j A 后,钢管就要向运输点j A 的两边1+j j A A 段和j j A A 1-段运输(铺设)管道.设j A 向1+j j A A 段铺设的管道长度为j y ,则j A 向1+j j A A 段的运输费用为()201)21(1.0+=+++⨯j j j t t y (万元);由于相邻运输点j A 与1+j A 之间的距离为1.+j j A ,那么1+j A 向1+j j A A 段铺设的管道长为j j j t A -+1.,所对应的铺设费用为()()2011.1.jj j j j j t A t A-+-++(万元).所以,主管道上的铺设费用为:()()()∑=++⎪⎪⎭⎫⎝⎛-+-++1411.1.201201j j j j j j j j j t A t A t t 总费用为:()()()∑∑∑===++⎪⎪⎭⎫⎝⎛-+-+++=711521411.1.201201i j j j j j j j j j j ij ij t A t A t t a x f 又因为一个钢厂如果承担制造钢管任务,至少需要生产500个单位,钢厂i S 在指定期限内最大生产量为i s 个单位,故i j ijs x≤≤∑=152500 或0152=∑=j ij x 因此本问题可建立如下的非线性规划模型:14157.1.112171151522.1(1)()(1)min (2020j 2,3,,15500 0s.t. 0 1,,7,2,,150j j j j j j j j ij ijj j i ij j i ij i ij j j ij j j j t t A t A t f x a x n x s x x i j t A ++======++-+-=++⋅⎧==⎪⎪⎪⎪≤≤=⎨⎪⎪≥==⎪≤≤⎪∑∑∑∑∑∑或3. 模型求解:由于MATLAB 不能直接处理约束条件:i j ijs x≤≤∑=152500或0152=∑=j ij x ,我们可先将此条件改为i j ijs x≤∑=152,得到如下模型:用MATLAB 求解,分析结果后发现购运方案中钢厂7S 的生产量不足500单位,下面我们采用不让钢厂7S 生产和要求钢厂7S 的产量不小于500个单位两种方法计算:1)不让钢厂7S 生产计算结果:=1f 1278632(万元)(此时每个钢厂的产量都满足条件). 2)要求钢厂7S 的产量不小于500个单位计算结果:=2f 1279664 (万元) (此时每个钢厂的产量都满足条件). 比较这两种情况,得最优解为, 121),m in(m in f f f f ===1278632(万元) 具体的购运计划如表2:表2 问题一的订购和调运方案14157.1.112171152.1(1)()(1)min (2020j 2,3,,15 s.t. 0 1,,7,2,,150j j j j j j j j ij ijj j i ij j i ij ij ij j j j t t A t A t f x a x n x s x i j t A ++=====++-+-=++⋅⎧==⎪⎪⎪⎪≤⎨⎪⎪≥==⎪≤≤⎪⎩∑∑∑∑∑。
数学建模2000B题
i 1
m
ai
ji
n
bj
从发点A到收点B的距离(或单位运费)是已知的,设为
c ij ( i 1, 2 ,..., m , j 1, 2 ,..., n )
。
问题:寻求一个调运方案,使总运输费用达到最小。
一个调运方案主要由一组从发点
Ai
到收点 B j 的输
送量来描述。
发点
收点
B1
B2
290 S4 S3 S2 320 160 70 30 70 170 720 202 1100 20 12 195 1150 600 306 0 10 31 201 A8 480 680 A10 S1 70 42 10 520 88 462 S5 10 220 300 A11 S2 S6 110
30
70
A1
480
31
1150
A9 680
A10
300
A11
201
205 A7
A8
450
80 2 750 A4 606
图二
3
104 A1 301 A2
A3
问题
所属类型 做题 思路和关键点 结果 表示形式
优化模型
1、问题的分析
优化问题
1)优化模型的数学描述
求函数
u f (x)
x ( x 1 , x 2 , x 3 ,..., x n )
在约束条件 h i ( x ) 0 , i 1, 2 ,..., m . 和
g i ( x ) 0 ( g i ( x ) 0 ), i 1, 2 ,..., p .
下的最大值或最小值,其中 设计变量(决策变量) x
钢管订购和运输问题一代码和结果
function f=result(t)%求解问题1tic;x0=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 288.0000302.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.0000347.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.0000287.0000;420.7 410.3000 395.2000 376.6000 316.0000 299.6000 291.0000 276.2000 244.2000 222.0000 211.0000 221.0000 236.2000 243.0000257.0000;410.7 400.3000 380.2000 361.6000 301.0000 285.5000 276.0000266.2000 234.2000 212.0000 188.0000 206.0000 226.2000 228.0000242.0000;415.7 405.3000 385.2000 366.6000 306.0000 290.5000 281.0000 271.2000 234.2000 212.0000 201.0000 195.0000 176.2000 161.0000178.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.0000162.0000];options=optimset('LargeScale','off','Algorithm' ,'active-set','MaxFunEvals' ,50000);%,' Tolx',1.0000e-032);[x,f]=fmincon('myfun',x0,[],[],[],[],vlb,[],'mycon',options,C,N,s);for i=1:7for j=1:15m(i)=m(i)+N(i)*x(i,j);endendx,m,f;b=(f-1278600)/1278600*(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:7for j=1:15f=f+N(i)*x(i,j)*C(i,j);%运输费和成本费endendfor i=1:14f=f+(rl(i)*(rl(i)+1)/2+(L(i)-rl(i))*(L(i)-rl(i)+1)/2)*0.1;%铺设时的运输费endffunction[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:7for j=1:15m(i)=m(i)+N(i)*x(i,j);endc(i)=m(i)-s(i);cc=cc+m(i);endfor i=1:14c(i+7)=rl(i)-L(i);endfor i=2:14for j=1:7a(i)=a(i)+N(j)*x(j,i);endceq(i-1)=a(i)-rl(i)+rl(i-1)-L(i-1); endt1=0;t2=0;for i=1:7t1=t1+N(i)*x(i,1); t2=t2+N(i)*x(i,15); endceq(14)=t1-rl(1); ceq(15)=rl(15); ceq(16)=cc-5171;结果:表一 i S 到i A 的最小费用(单位:万元/单位)1S 2S 3S 4S 5S 6S 7S1A 170.7 215.7 230.7 260.7 255.7 265.7 275.7 2A160.3 205.3 220.3 250.3 245.3 255.3 265.3 3A140.2 190.2 200.2 235.2 225.2 235.2 245.2 4A98.6 171.6 181.6 216.6 206.6 216.6 226.6 5A38111121156146156166表二各厂的生产量及总费用(生产量可小于500)(单位:单位、万元)表三各厂的生产量及总费用(单位:单位、万元)表四问题一订购和运输方案(不足1km的按整数计)(单位:单位、万元)。
钢管订购和运输计划【精选文档】
钢管订购和运输计划【精选文档】(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)钢管的订购和运输计划摘要在钢管的订购和运输计划中,在第一问中用最短路算法,求解出每个钢厂到站点152...A A 的最小费用(包括运输费和出厂销售价),考虑到在铺设时管道要沿铺设路线离散地卸货,即运货到A j 后,还要在铺设路线上运输,因为不足整公里部分要按照整公里计算,所以我们认为沿管道路线每铺设1公里就要卸下1单位钢管,因此从某点A j 向左铺设或向右铺设y 时,此段运费应为:1(1)*0.10.05(1)2y y y y +=+点A j 向右铺设z j ,从A j+1向左铺设y j+1,为了保证合拢,则z j +y j+1=a j ,在这些条件之下,利用lingo 软件,求解出总费用最小。
分析模型的销售价灵敏度的时候,将各个钢厂单位钢管的销售价分别增加和减少若干万元,再用lingo 求解第一问题的模型,看总费用的变化大小,变化大的就是影响结果比较大的;用同样的方法可以分析生产上限的灵敏度。
第三问得时候,我们利用求解第一问的方式来求解问题。
关键字:最短路算法,lingo ,分别改变同样的条件来对比一,问题重述(略)二,符号说明:a ij 站点A j至A j+1的里程(铺设管道需要的钢管量)s i s i钢厂的最大生产量x ij从钢厂s i到A j的钢管数量c ij从钢厂s i运往A j的单位钢材费用最短路,即亮点运输单位钢材所需的最少费用,包括运输费和出厂销价y j A j点往左铺设的钢管数量zj A j点往右铺设钢管的数量f 总费用三,问题分析:(1)对问题一的分析:从钢厂s i向点A j运输钢管时,为了降低费用,应该走费用最小的路径,从一个工厂s i到一个点A j的路线并不唯一,需要从中找出费用最短的路,相应的最小费用为c ij,包括运输费和销售费。
从图我们可以看到,七个钢材厂要到A1这点必须要经过A2,所以在考虑最低费用路径的时候,可以把A1和A2看做一个点来考虑,。
钢管订购和运输的数学模型
1钢管订购和运输的数学模型摘要: 本文先对钢管订购和运输问题做了深入的分析,通过对问题的简化和等价转换,将问题归结为一非线性规划模型,利用软件LINGO 和LINDO 对问题1和3都作出最优解(分别为:127.966亿元与140.5170 亿元),在解1时给出简化模型和算法(解为:130.057亿元)。
在解问题3时,充分考虑了网络的特性,简化了算法。
由于本题是铁路,公路混合网,本文提出等价转换方法将之变为纯公路网,运用固有最段路径算法简化了计算过程.1 问题的提出计划铺设一条输送天然气的主管道,已知有五个生产主管道钢管的钢厂和铁路,公路混合的交通运输网。
试根据钢厂的位置距离销价生产能力以及运输费用等情况制定钢管订购和运输的最佳方案,使总费用最少。
已知运输网(略)及以下数据:(注:为方便计,1km 主管道钢管称为1单位钢管)钢厂i S 在指定期限内能生产该钢管的最大数量为i s 个单位,钢管出厂销价1单位钢管为i p 万元,如下表:1单位钢管的铁路运价如下表:公路运输费用为1单位钢管每公里0.1万元(不足整公里部分按整公里计算)。
2 问题假设H1:运输通路畅通无阻,即任一厂的钢管可到达网络上任一点。
H2:运输费用只与里程和所经过的线路有关,不考虑在铁路和公路之间转换时所增加的额外费用。
H3:总费用只包括运输费和所用钢管的总价格。
H4:钢管必须运到管道全线,设堆放点之间最小距离为1km。
H5:公路运输时不考虑空车来回开的费用3符号说明A i 节点iB i 铁路公路交点C ji厂j到节点i的单位费用(包括销价)S j厂j2*r i运到i点的钢量r i - w i ,r i+w i , r1i,r2i节点i向两侧铺运的距离,r3i为往第三方铺运的距离x ij厂j向i点供的钢量D 问题1中的管道总长d j j厂的销价v i 节点A i与节点A i+1之间的距离4问题分析4.1 问题1的分析1.将运输费用分成两部分:①在管道通路上的运费f1,简称铺运费,这种运输方式称铺运。
数学建模:钢管订购和运输
钢管订购和运输摘要:本文运用线性规划理论建立了钢管订购和运输计划问题的数学模型。
在求解时分别利用了图论中求最短路长的算法、整数规划中的0—1规划的解法及运输问题的表上作业法。
关键词:线性规划,运输问题一、问题重述有一条从A1→A2→ →A15的天然气管道需要铺设,如图1。
经筛选,只有7家厂商获得认可,分别记为S1,S2, ,S7。
图中粗线表示铁路,单细线表示公路,双细线表示管道(假设管道沿线有公路或建有施工公路)。
圆圈表示公路,每段铁路公路和管道旁的数字表示管道的里程(单位km),记1km为一个单位。
一个钢厂如果承担这种钢管的生产,则最少需要500个单位。
钢厂Si在制定期内最多能生产钢管的数量记为si个单位,钢管出场售价为每单位Pi万元,如下表。
一单位钢管的铁路运价如下表:1000km每增加100km运费增加5万元公路运输费为每公里0.1万元(不足整公里部分按1公里计算)。
1:制定一个主管道的订购和运输计划,市总费用最小(给出总费用)。
2:就问题1的模型进行分析,那个钢管厂的钢管销售价格变化对够运计划和总费用影响最大;哪个钢管厂钢管的产量上限的变化对够运计划和总费用的影响最大,并给出相应的数字结果。
3:如果要铺设的管道不是一条线,而是一个树形图,铁路、公路和管道构成网络,对这种更一般的情形给出一种解决办法,并对图2按问题1的要求给出模型和结果。
二、基本假设假设铺设钢管可从Aj向前后两个方向铺设或向同一方向铺设和不考虑火车运载与汽车运载的装卸费。
三、符号说明1 第Si 个钢管厂承担制造钢管的任务。
0 - 1变量Ri, Ri=0 第Si 个钢管厂不承担制造钢管的任务。
ai 表示向第Si 个钢管厂订购的钢管的数量。
xij 表示从钢管厂Si 沿着费用最小的路线运输到火车站Aj 点的钢管的数量。
bj 表示从各个钢管厂运输到Aj 点的钢管的总数。
cij 表示从钢管厂Si 运输单位钢管到Aj 的最小费用。
管道订购与运输问题-2000年全国数学建模竞赛B题优秀论文
管道订购与运输问题1 问题重述2 基本假设(1)只考虑订购费用和运输费用,不考虑装卸等其它费用. (2)钢管单价与订购量、订购次数、订购日期无关.(3)订购汁划是指对每个厂商的定货数量;运输方案是指具有如下属性的一批记录:管道区间,供应厂商,具体运输路线.(4)将每一单位的管道所在地看成一个需求点,向一单位管道的所在地运输钢管即为向一个点运输钢管.3 符号说明M :钢厂总数. n :单位管道总数.:i S 第i 个钢厂 :i S 第i 个钢厂的产量上限。
:i p 第i 个钢厂单位钢管的销售价 i A 管道线上第i 个站点。
i d 管道线上第i 个单位管道的位置。
F :总费用。
:ij C 从钢厂(1,2,,)i S i m =到点(1,2,,)j d j n =的最低单位费用。
4 问题的简化求 S AP 矩阵的基本思路是图的最短路算法 . 由于铁路的运输费用与线路的长度不是线性关系 ,必须对铁路网做一些预处理才能套用图的标准最短路算法 . 下面叙述求 S AP 矩阵的过程:1.利用图的标准最短路算法 ,从铁路网络得出图中任两个点之间的最短路径表 T (如果两个点之间不连通 ,认为它们之间的最短路长度为+ ∞ ) .2.利用题中的铁路运价表将 T 中的每个元素 (即最短距离 )转化为运输费用 ,将运输费用表记为 C.3.将公路的长度换算为运输费用 ,由公路路程图 (包括要沿线铺设管道的公路 )得出公路费用图 G,若 i, j 不连通 ,则令 Gij = + ∞ .4.对于任一组 ( i , j)∈ { 1,… n }× { 1,… m } 如果 Cij <+ ∞ ,且小于 Gij ,那么就在公路费用图中加一条边. 即令 Gij = min{Cij , Gij } .5.利用图的标准最短路算法 ,求公路费用图中任一个 S 点到任一个 A 点的最小费用路径 ,得出 S AP 矩阵. 如表 1所示:SAP 矩阵A123 4 5 6 7 8 9 10 11 12 13 14 15 S1 170716031402986 380 205 31 212 642 920 960 1060 1212 1280 14202 215720531902 1716 1110 955 860 712 1142 1420 1460 1560 1712 1780 19203 230722032002 1816 1210 1055 960 862 482 820 860 960 1112 1180 13204 260725032352 2166 1560 1405 1310 1162 842 620 510 610 762 830 9705 255724532252 2066 1460 1305 1210 1112 792 570 330 510 712 730 8706 265725532352 2166 1560 1405 1310 1212 842 620 510 450 262 110 2807 275726532452 2266 1660 1505 1410 1312 992 760 660 560 382 260 205问题分析运输费用等价转换法则:按单位运费相等原则将任意两点间的最短铁路线转换为公路 线.对于铁路线上的任意两点,i j V V ,用F1oyd 算法找出两点间最短铁路路线的长度ij L 查铁路运价表求得ij L ,对应的铁路单位运费ij f ;又设与该段铁路等费用的公路长度为ij l ,则:0.1ij ij f l =⨯由此,我们就在,i j V V 之间用一条等价的公路线来代替,i j V V 间的最短铁路线.如果,i j V V 之间原来就有公路,就选择新旧公路中较短的一条.这样,我们就把铁路运输网络转换成了公路运输网络.销价等价转换法则:按单位费用相等将任意钢厂的单位销价转换为公路单位运价.对于钢厂S i 的销售单价P i ,我们可以虚设一条公路线,连接钢厂S i 及另一虚拟钢厂'i s ,其长度为i l ,并且满足0.1i i l p =⨯;从而将钢厂的销售单价转换成公路运输单价,而新钢厂'i s 的销售价为0.将铁路和销价转换为公路的过程可以由计算机编程实现. 通过上述的分析,我们可以将原问题化为一个相对简单的产量未定的运输问题,利用115A A 到之间的管道距离和钢厂和站点之间的公路距离建立一个产量未定的运输问题的模型.但是由于1215,A A A ,并不能代表所有的实际需求点(实际需求点是n 个单位管道),因此,我们可以用F1oyd 算法进一步算出7个钢厂到所有实际的n 个需求点(对于问题一,n =5171;对于问题三,n =5903)的最短路径,并由此得出一个具有7个供应点、n 个需求点的产址未定的运输模型.6 模型的建立产量未定的运输模型根据假设4,我们可以将每一单位的管道看成一个需求点,向一单位管道的所在地运输钢管即为向一个点运输钢管.对每个点,我们可以根据该点的位置和最短等价公路距离,求出各钢厂与该点之间最小单位运输费用ij C (销价已经归人运输费用之中了).设总共有m 个供应点(钢厂),n 个需求点,我们就可以得到一个产量未定的运输模型:有m 个供应点、n 个需求点,每个供应点的供应量{0}{500,}i i u s ∈;每个需求点需要1单位,运输单价矩阵为C ,求使得总运输费用最小的运输方案.其数学规划模型: 11minmnij ij i j F C x ===∑∑11{0}{500,}1,2,,..11,2,01nij i j mij i ij x S i ms tx j n x ==⎧∈=⎪⎪⎪==⎨⎪⎪=⎪⎪⎩∑∑或其中: 1112112n m m mn C C C C CC C ⎛⎫⎪=⎪ ⎪⎝⎭为单位费用矩阵 1112112n m m mn x x x X x x x⎛⎫⎪=⎪ ⎪⎝⎭为决策矩阵,也为0-1矩阵 代码如下7 模型的求解对于本题,上述0-1规划规模宏大,现有的一些算法不能胜任,我们必须具体问题具体分析,结合本题实际情况,寻找行之有效的算法.(1)初始方案的改进的最小元素法和改进的伏格尔法 *改进的最小元素法改进的最小元素法又称为贪婪法或瞎子爬山法,它的宗旨是每一步都取当前的最优值算法步骤为,对费用矩阵C 作n 次下列循环:①C 中找一个最小值ij C ; ②令1;ij x =③C 的第j 的所有数据改为+∞;④如果1nij i j x s ==∑,第i 个供应点的供应量已达上限,将C 的第i 行数据全改为+∞。
管道订购与运输python -回复
管道订购与运输python -回复管道订购与运输python是如何进行的在现代工业领域,管道是非常重要的设备之一,用于输送液体、气体、粉末以及其他物质。
为了更好地管理和控制管道系统,许多公司和组织开始使用计算机编程语言来订购和运输管道。
Python作为一种强大的编程语言,在这方面表现出色。
接下来,我们将一步一步地回答管道订购与运输python的相关问题。
第一步:安装Python在开始之前,您需要安装Python编程语言。
Python是一种免费和开源的编程语言,它可以在许多操作系统上运行。
您可以从Python的官方网站(第二步:安装Python库Python提供了各种各样的库,用于不同类型的任务。
对于管道订购和运输,我们将使用一些特定的库,如Pandas、NumPy和Matplotlib。
您可以使用pip命令来安装这些库,如下所示:pip install pandaspip install numpypip install matplotlib第三步:导入库一旦安装了必要的库,您就可以在Python代码中导入它们。
这些库将为您提供许多有用的功能和方法,以便您可以更有效地订购和运输管道。
以下是导入这些库的示例代码:import pandas as pdimport numpy as npimport matplotlib.pyplot as plt第四步:数据准备在进行管道订购和运输之前,您需要准备一些相关数据。
这些数据可以包括管道长度、直径、材料、运输流量等。
您可以将这些数据保存在一个Excel 或CSV文件中,并使用Pandas库来读取和处理这些数据。
以下是一个示例代码,演示如何使用Pandas库来读取和处理数据:data = pd.read_csv('pipeline_data.csv')第五步:数据分析和可视化一旦您准备好了数据,可以使用Python的Pandas、NumPy和Matplotlib 库进行数据分析和可视化。
钢管运输
钢管订购与运输的优化问题摘要本文根据问题的条件和要求,建立两个模型,两个模型均为单目标非线性规划模型,并通过求解这两个模型,解决问题。
对于问题一和问题三,可采用整数的线性规划模型求解,对于问题二是在问题一的基础上,进行灵敏度分析来进行求解的。
针对问题一,经过材料分析与大量数据统筹,由于铁路运输费用函数是分段函数,不能直接应用现有的最短路算法来求解铁路和公路交通网中任意两点间最小费用路问题,所以先建立一个铁路费用虚网,然后结合公路以及运输管道,运用WinQSB软件的Network Modeling算法和excel得到一个基于运输线路的最低费用网。
依据题意知,总费用共分为三部分,运输费用、订购费用和铺路费用,以此建立目标函数。
该模型是以总费用为目标函数的非线性最优化的规划模型,运用lingo软件编写程序,运行可得第一个问题的最优解费用为1281354万元。
对于问题二,是建立在对问题一求出最优解后的分析,通过对模型1的灵敏度分析,改变单独改变钢厂钢管的销价与上限,通过对比最后得到的最少费用可以找出对购运计划和总费用的影响最大的钢厂。
对于问题三,问题三模型的建立原理和问题一的相同,利用Lingo 软件,求得最优解为1407149万元。
关键词:非线性规划Win QSB软件Network Modeling算法lingo软件附录第一部分问题重述 (3)第二部分问题分析 (5)第三部分模型的假设 (6)第四部分符号说明 (7)第五部分模型的建立与求解 (7)1.问题1的模型 (8)2.问题2的模型 (11)3.问题3的模型 (13)第六部分对模型的评价 (18)第七部分参考文献 (18)第八部分附录 (18)一、问题重述要铺设一条1521A A A →→→ 的输送天然气的主管道, 如图一所示(见下页)。
经筛选后可以生产这种主管道钢管的钢厂有721,,S S S 。
图中粗线表示铁路,单细线表示公路,双细线表示要铺设的管道(假设沿管道或者原来有公路,或者建有施工公路),圆圈表示火车站,每段铁路、公路和管道旁的阿拉伯数字表示里程(单位km)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
钢管订购和运输问题一
代码和结果
公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]
function f=result(t)
%求解问题1
tic;
x0=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=[ ;
;
;
;
;
;
];
options=optimset('LargeScale','off','Algorithm' ,'active-
set','MaxFunEvals' ,50000);%,'Tolx',;
[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,f;
b=(f-1278600)/1278600*(s(t)+50)/50
toc
function 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(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)*;%铺设时的运输费
end
f
function [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(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;
结果:
表一 i S 到i A 的最小费用(单位:万元/单位)
1S 2S 3S 4S 5S 6S 7S
1A
2A
3A
4A
5A 38
111
121
156
146
156
166
6A
7A 86
96
131
121
131
141
8A 9A
10A
92 142 82 62 57 62 76 11A 96 146 86 51 33 51 66 12A
106
156
96
61
51
45
56
13A
14A
128 178 118 83 73 11 26 15A
142
192
132
97
87
28
2
表二各厂的生产量及总费用(生产量可小于500)(单位:单位、万
元)
表三各厂的生产量及总费用(单位:单位、万元)
表四问题一订购和运输方案(不足1km的按整数计)(单位:单
位、万元)。