宋文静 谢荣鹏
摘 要:本文首先确定各钢厂到各管道节点的最低运费线路及相应的最低运价,结合各钢厂的钢管销售价格,就可得到各钢厂到各管道节点的单位购运成本(销价+最低单位运价)。然后以总费用最小为目标,建立规划模型,确定管道的订购厂家,管道的订购量,管道的运送节点选择以及铺设每条管道线路从其两端的供给方案。模型的创新之处在于,通过引入无穷,将全部39个节点都考虑进了铁路运输网以及公路运输网之中,使得模型有更广泛的适用性。结论是:问题一的最小费用为1282923万元;问题二中,钢厂6的钢管销价变化对购运计划和总费用影响最大,而钢厂1的钢管产量上限变化对购运计划及总费用的影响最大;问题三的最小费用为1413446万元。
关键词:钢管购运;最短路径;线性规划;决策
一、基本假设
(1)假设钢管在运输和施工过程中没有损耗,即钢管的总需求量不会变化;(2)假设各厂生产的钢管是无差异的,即只有价格能影响购运方案;(3)假设钢管是无限可分的;(4)假设铁路货运对每次运货量没有下限要求;
二、问题分析
1. 问题一
问题核心在于最小花费,该花费由三部分组成:钢材的出厂价格、钢材在铁路节点和公路节点间的运输费、管道建设过程的运输费。即:
总花费S=钢材的出厂价格+钢材在铁路节点和公路节点间的运输费+管道建设过程的运输费
花费一:钢材的出厂价格
钢材的总购买花费=∑(钢厂单位钢材的价格*在该钢厂的采购量)
花费二:钢材在铁路节点和公路节点间的运输费
考虑到钢材经过管道节点的必须性以及钢材间的无差异性,先求单位钢材从钢铁厂Si到Aj的最小花费Vij。由于全部钢材只经过单次的铁路运输和单次的公路运输,对于这一花费可以划分为公路铁路两部分。
在铁路运输网中运用floyd算法,可求得任意两点间铁路运输最小花费Hxy。
在公路运输网中也运用floyd算法,可求得任意两点间公路运输最小花费Txy。
最后,运用枚举算法。枚举铁路公路运输运输中转点Z。
Vij=min(Hxz+Tzy),z=1..39,i=x,j=y
节点间的运输费=∑(钢材从Si到Vj的总量*单位钢材的最小花费Vij)
花费三:管道建设过程的运输费
由于实际情况较为复杂,考虑理想条件下,运输和建设同时进行,对这一过程做积分处理可得:
管道建设过程的总运输费=0.5*单位钢材公路运输价格*(∑一点的钢材左运输量的平方)+∑一点的钢材右运输量的平方)
此时该问题转化为量化的非线性规划问题。目标为最小总花费,限制条件为钢铁厂产量的上下限以及管道铺设长度要求,对于每个管道节点考虑其向左运输与向右运输。
min C
s.t. 500k≦≦Mik,k=0或1
RightAj1+LeftAj2= BAj1,Aj2
RightAj+LeftAj=
2.问题二
通过引入对偶价格,来研究各厂钢铁价格对总花费影响。分析当资源增加一个数量而得到目标函数新的最小值时,目标函数最小值的增量与资源的增量的比值的相反数,就是目标函数对约束条件(即资源)的一阶偏导数。
3.问题三
考虑到是一个树状图的问题,因此引入根节点与子节点的概念,即每个管道节点与多个节点由计划管道相连。相较于问题一,在求解过程中,增加了非线性规划的条件与变量,在价格的计算上要考虑每个管道节点的多个方向。
在问题三中,管道图为二叉树,所以暂时只考虑每个管道节点与左节点,右节点和根节点之间的交互。
三、模型的建立与求解
1. 问题一
先对题给道路图进行量化处理,记录点的编号后,再将公路信息建立邻接矩阵计算从某一工厂到某一管道节点的最小花费,包括订购费和运输费两部分,在matlab运行得到花费矩阵。
将计算从一工厂到一管道节点的最小花费数据导入lingo(question1.lg4),运行非线性规划求解程序得到花费为1282923。
2. 问题二
研究销售价格变化的影响:
如果价格增加1%,花费的增量分别为1280、1240、1550、0、1412.824、2489.25、0.
可知,6廠价格变化对开销影响较大;
3.问题三
以邻接矩阵形式来数字化,由于相较于问题一,只有公路道路的增加,这里只给出增加的公路网络。
计算从某一工厂到某一管道节点的最小花费,包括订购费和运输费两部分,matl运行question得到花费矩阵
将计算从某一工厂到某一管道节点的最小花费数据导入lingo,运行非线性规划求解程序得到花费为1413446。
参考文献:
[1]卓金武. MATLAB在数学建模中的应用[M]. 北京航空航天大学出版社, 2011.
[2] 杨桂元, 朱家明. 数学建模竞赛优秀论文评析[M]. 中国科学技术大学出版社, 2013.