乘用车物流运输计划问题
摘要
本文研究的是乘用车物流运输计划的问题,我们运用了多目标规划和整数规划,建立了乘用车分配的优化模型,先后以轿运车数量最少,轿运车成本最少为目标,完成了题目中(一)至(三)问的关于根据Ⅰ、Ⅱ、Ⅲ型车的装配数量合理安排轿运车的问题。
问题一至问题三,我们均采用同一个多目标整数规划的优化模型解决了乘用车安排的问题。
问题一,首先确定1-1和1-2型轿运车各层能装配的最大各类乘用车数记为。1-1型用来装配Ⅰ,Ⅱ,Ⅲ型用乘车的辆数为;1-2型用来装配Ⅰ,Ⅱ,Ⅲ型乘用车的辆数为。运用整数规划的知识,建立轿运车数量最少的目标函数,使用lingo 编程,求得最优解,然后以该最少数量轿运车为约束条件,建立轿运车成本最少的目标函数,并使用lingo编程,求得最优解:1-1型轿运车使用16辆,1-2型使用2辆。
问题二中,利用问题一中建立的模型,修改相关的约束条件,即须装载的乘用车各型号的数量,即可通过lingo编程并求解,得到最优解:1-1型使用12辆,1-2型使用1辆。
问题三中,同样利用问题一中建立的模型,修改相关的约束条件,即可通过lingo编程并求解,得到最优解:1-1型使用26辆,1-2型使用5辆。
本文利用了EXCEL,lingo软件,使用了整数规划的方法和多目标规划的思想,解决了在不同数量的Ⅰ、Ⅱ、Ⅲ型车条件下的乘用车的合理安排问题。并最后对本模型的优缺点进行评价,提出改进方向。
关键词: 多目标规划 整数规划
目录
一、 问题的背景与重述... 3
1.1问题的背景... 3
1.2问题的重述... 3
二、问题的分析... 3
2.1名词分析... 3
2.2对优化轿运车数量的分析... 4
三、模型的假设... 4
四、符号的说明... 4
五、模型的建立与求解... 5
5.1模型的准备... 5
5.2 模型的建立... 5
5.3 问题一的求解... 6
5.4 问题二的求解... 7
5.5 问题三的求解... 8
六、模型的评价与改进... 9
6.1模型的评价... 9
6.1.1模型的优点... 9
6.1.2模型的缺点... 9
6.2模型的改进... 9
七、参考文献... 10
附录... 11
一、 问题的背景与重述
1.1问题的背景
整车物流指的是按照客户订单对整车快速配送的全过程。随着我国汽车工业的高速发展,整车物流量,特别是乘用车的整车物流量迅速增长。在确保完成运输任务的前提下,物流公司追求降低运输成本。但由于轿运车、乘用车有多种规格等原因,当前很多物流公司在制定运输计划时主要依赖调度人员的经验,在面对复杂的运输任务时,往往效率低下,而且运输成本不尽理想。
1.2问题的重述
“轿运车”是通过公路来运输乘用车整车的专用运输车,根据型号的不同有单层和双层两种类型,由于单层轿运车在实际中很少使用,本题仅考虑双层轿运车。双层轿运车又分为三种子型:上、下层各装载1列乘用车,故记为1-1型;下、上层分别装载1、2列,记为1-2型;每辆轿运车可以装载乘用车的最大数量在6到27辆之间。
装载具体要求如下:每种轿运车上、下层装载区域均可等价看成长方形,各列乘用车均纵向摆放,相邻乘用车之间纵向及横向的安全车距均至少为0.1米,下层力争装满,上层两列力求对称,以保证轿运车行驶平稳。受层高限制,高度超过1.7米的乘用车只能装在1-1、1-2型下层。
整车物流的运输成本计算这里简化为:影响成本高低的首先是轿运车使用数量;其次,在轿运车使用数量相同情况下,1-1型轿运车的使用成本较低,2-2型较高,1-2型略低于前两者的平均值,但物流公司1-2型轿运车拥有量小,为方便后续任务安排,每次1-2型轿运车使用量不超过1-1型轿运车使用量的20%;再次,在轿运车使用数量及型号均相同情况下,行驶里程短的成本低,注意因为该物流公司是全国性公司,在各地均会有整车物流业务,所以轿运车到达目的地后原地待命,无须放空返回。最后每次卸车成本几乎可以忽略。
根据上述要求,请你们建立数学模型,解决以下三个问题:
1. 物流公司要运输Ⅰ车型的乘用车100辆及Ⅱ车型的乘用车68辆。
2. 物流公司要运输Ⅱ车型的乘用车72辆及Ⅲ车型的乘用车52辆。
3. 物流公司要运输Ⅰ车型的乘用车156辆、Ⅱ车型的乘用车102辆及Ⅲ车型的乘用车39辆。
二、问题的分析
本题要求我们优化轿运车的数量和选择型号,用尽可能少的车,最低的成本来解决乘用车的装配问题。
2.1名词分析
轿运车:是通过公路来运输乘用车整车的专用运输车,根据型号的不同有单层和双层两种类型,由于单层轿运车在实际中很少使用,本题仅考虑双层轿运车。双层轿运车又分为三种子型:上、下层各装载1列乘用车,故记为1-1型;下、上层分别装载1、2列,记为1-2型;每辆轿运车可以装载乘用车的最大数量在6到27辆之间。
整数规划:在线性规划问题中,有些最优解可能是分数或小数,但是由于对于某些具体问题,常有的要求解答为整数的情形,即要求求最优整数解的问题。
多目标整数规划:在整数规划中,有多个目标需要满足。这样的规划问题成为多目标整数规划。
2.2对优化轿运车数量的分析
针对问题一至三,都是要求我们对已知乘用车各型号数量的条件下,找到最优的轿运车安排方案。轿运车的安排过程中,需要满足一些约束条件,如:1、高度超过1.7米的乘用车只能装在下层;2、相邻的两车之间要有安全间距0.1米;3、1-2型车的使用量不能超过1-1型的20%。我们需要的目标函数在于:找到最少轿运车的安排方案,之后再最少的轿运车安排上,找到最低成本的安排方案。
三、模型的假设
(1)假设在该运输过程中没有用到2-2型轿运车。
(2)1-1型,1-2型的车的数量满足运输要求。
(3)不考虑路程上出现突发事件。
(4)轿运车的上层的每一列只会装同一种型号的乘用车,而下层则最多可以装两种。
四、符号的说明
五、模型的建立与求解
5.1模型的准备
已知情况如下:有三种乘用车,两种轿运车。
表1 乘用车规格
表2 轿运车规格
由表格可以得出,Ⅲ型车的高度大于1.7米,只能装在1-1和1-2型轿运车的下层。并且,发现1-2型的上层Ⅰ和Ⅱ型车均可以自由并排放置。
使用小型计算器计算可得到1-1型和1-2型每层最大装各型乘用车的数量下表所示:
表3 1-1和1-2型轿运车各层最大装载不同型号乘用车数量表
5.2 模型的建立
由以上表3可知,记:
1-1型轿运车装载辆Ⅰ型车,辆Ⅱ型车,辆Ⅲ型车。
1-2型轿运车装载辆Ⅰ型车,辆Ⅱ型车,辆Ⅲ型车。
接着,我们考虑需要装载的Ⅰ型车A辆,Ⅱ型车B辆,Ⅲ型车C辆。
记为能恰好按该方案装满的1-1型轿运车数量。为能恰好按该方案装满的1-2型轿运车数量。并且,不妨设1-1型用来装Ⅰ型车的有辆,用来装Ⅱ型车有辆,用来装Ⅲ型车的有辆,其中有分为上层装Ⅰ型车的辆,以及装Ⅱ型车的辆。同理,1-2型用来装Ⅰ型车的有辆,用来装Ⅱ型车有辆,用来装Ⅲ型车的有辆,其中又分为上层装Ⅰ型车的辆,以及装Ⅱ型车的辆。
则有如下条件满足:
同时,应有:
目标函数1:
在第一个目标函数用Lingo求解之后得到的,即最少的安排车辆。将作为约束条件带入约束方程组中去。
目标函数2:
因为由题目可知,1-2型的成本略低于1-1和2-2型成本的平均数故取相对于1-1型的成本的1.4倍。再次使用lingo求解,即可得到最低成本的选型方案。
5.3 问题一的求解
针对问题一:已知A=100,B=68,C=0带入约束条件中。编写lingo程序(见附录程序1),得到结果如下:
图1
即此时M=18;
以M=18带入约束条件,以目标函数2建立新的lingo程序(见附录程序2),得到结果如下:
图2
有图2可得,此时,最优装载方案为:
表4 问题1的装载及配车方案
5.4 问题二的求解
针对问题2:已知A=0,B=72,C=52带入约束条件中。编写lingo程序(见附录程序3),得到结果如下
图3
所以得到M=13。以M=13带入约束条件,以目标函数2建立新的lingo程序(见附录程序4),得到结果如下:
图4
由图4可以得到此时的最优装载方案为:
表5 问题2的装载及配车方案(注:上层全部都可以装Ⅱ型车)。
5.5 问题三的求解
针对问题三:将A=156,B=102,C=39带入约束条件中,编写lingo程序(见附录程序5),得到结果如下
图5
得到M=31。以M=31带入约束条件,以目标函数2建立新的lingo程序(见附录程序6),得到结果如下:
图6
由图6可以得到最优方案为:
表6 问题3的装载及配车方案(注:对于装载Ⅲ型的1-1车而言,有1辆上层装载Ⅰ型车,有9辆上层装载Ⅱ型车)
六、模型的评价与改进
6.1模型的评价
6.1.1模型的优点
1、本文采用多目标的整数规划,将两个目标按照合理的安排顺序依次实现,得到的模型具有一定的普适性,得到的答案也很合理。
2、在实际操作中易于实现,没有复杂的安排,简单易懂。
6.1.2模型的缺点
1、当涉及要装载的车辆较少时,会有比较大的误差,但是如果数量越多,那么实际结果更加接近。
2、当存在使用2-2型轿运车时,模型难以解释完全,具有局限性。
6.2模型的改进
由于本文使用的简单的多目标整数规划,程序相对简单,可以考虑增加程序的复杂度,能够实现较多的情况。当涉及到的乘用车类型较多,或者轿运车的种类较多时,可以考虑使用排样算法。通过划分车位,构建汽车包容关系树确定轿运车装载不同乘用车类型是的最大装载方案,然后基于配比法,在前一阶段的基础上,确定面向订单的优化配载方案。
七、参考文献
书籍类
[1] 高立杰,铁路汽车物流配载优化研究,北京交通大学,20##年6月。
[2]司守奎,《数学建模算法与应用》,国防科技大学出版社。
[3]《运筹学》,清华大学出版社,第三版。
附录
lingo程序一:pro1qiujie1
model:
min=m1+m2+n1+n2;
8*m1+15*n1>=100;
10*m2+18*n2>=68;
(n1+n2)<=0.2*(m1+m2);
@gin(m1);
@gin(m2);
@gin(n1);
@gin(n2);
end
lingo程序二:pro1qiujie2
model:
min=(m1+m2)+1.4*(n1+n2);
18=m1+m2+n1+n2;
8*m1+15*n1>=100;
10*m2+18*n2>=68;
(n1+n2)<=0.2*(m1+m2);
@gin(m1);
@gin(m2);
@gin(n1);
@gin(n2);
end
Lingo程序三:pro2qiujie1
model:
min=(m2+m3)+(n2+n3);
10*m2+5*m3+18*n2+12*n3>=72;
4*m3+5*n3>=52;
(n2+n3)<=0.2*(m2+m3);
@gin(m2);
@gin(m3);
@gin(n2);
@gin(n3);
end
lingo程序四:pro2qiujie2
model:
min=(m2+m3)+1.4*(n2+n3);
13=(m2+m3)+(n2+n3);
10*m2+5*m3+18*n2+12*n3>=72;
4*m3+5*n3>=52;
(n2+n3)<=0.2*(m2+m3);
@gin(m2);
@gin(m3);
@gin(n2);
@gin(n3);
end
lingo程序五:pro3qiujie1
model:
min=(m1+m2+m31+m32)+(n1+n2+n31+n32);
8*m1+4*m31+15*n1+10*n31>=156;
10*m2+5*m32+18*n2+12*n32>=102;
4*(m31+m32)+5*(n31+n32)>=39;
(n1+n2+n31+n32)<=0.2*(m1+m2+m31+m32);
@gin(m1);
@gin(m2);
@gin(m31);
@gin(m32);
@gin(n1);
@gin(n2);
@gin(n31);
@gin(n32);
end
lingo程序六:pro3qiujie2
model:
min=(m1+m2+m31+m32)+1.4*(n1+n2+n31+n32);
31=(m1+m2+m31+m32)+(n1+n2+n31+n32);
8*m1+4*m31+15*n1+10*n31>=156;
10*m2+5*m32+18*n2+12*n32>=102;
4*(m31+m32)+5*(n31+n32)>=39;
(n1+n2+n31+n32)<=0.2*(m1+m2+m31+m32);
@gin(m1);
@gin(m2);
@gin(m31);
@gin(m32);
@gin(n1);
@gin(n2);
@gin(n31);
@gin(n32);
end