钢管订购和运输问题一代码和结果
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 ++=====++-+-=++⋅⎧==⎪⎪⎪⎪≤⎨⎪⎪≥==⎪≤≤⎪⎩∑∑∑∑∑。
- 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的按整数计)(单位:单
位、万元)。