研究生数学建模E题.docx
《研究生数学建模E题.docx》由会员分享,可在线阅读,更多相关《研究生数学建模E题.docx(18页珍藏版)》请在冰豆网上搜索。
研究生数学建模E题
货运车物流运输计划问题
在整数线性规划的基础上建立适当的模型、再运用分支定界法找到满足约束条件的较优变量,同时比较两种算法的迭代次数和运行时间,为进一步提高算法的利用率提供了依据。
最后通过MATLABGUI做成软件模拟在不同配置下相对应的分配方案,在总费用最小的前提下,程序运行时间短、效率高、能够较精确快速的找到合适的解决方案。
通过分析相应的整数线性规划建立相关的数学模型最后通过软件计算得到理想的效果,但是考虑到装箱调度决策过程中有多种可能,保证所有运输任务完成的情况下分配尽可能少的车辆来运输,因此,我们选择在货运车尽可能满载的情况下的分配方案。
这样可以减程序中少大量的矩阵运算和程序运行时间以及变量的迭代次数。
随着变量个数的增多,约束条件下不能得到较优的目标值,因此我们采用分支定界法先定出可选择的分配方案,再在优化的分配方案中找出相对较优的分配方案,例如运用整数线性规划得到不同车配置方案,运用分支定界法改变约束条件得到结果,在有路径的约束条件下我们运用两阶段法考虑整个分配方案。
先考虑第一阶段数量上的优化再考虑第二阶段路径上的优化。
运用逐步调优的策略在相同路程下就不优先考虑路径的优化,进一步调整配置方案。
在给定装配任务和分配任务的同时我们运用关联分类器先按题目要求将两张表建立关联,通过所给轿用车型的长、宽、高建立一个分类器。
按照表二中长、宽、高的不同分类分为12类,根据调度经验改用启发式算法将分类数降低至10类。
在满足题目要求的前提下我们采用货运车车型混装的形式,在一定程度上减少货运车的使用数量。
从而达到最充分的发挥资源的效能去获取最佳的经济效益。
对整车装箱调度问题进行研究从而降低运输成本具有一定的意义。
1、问题重述
智能装载的问题描述:
在一个配送中心,有N件货物需要分别配送至目的地A,B,C……,可以使用M辆车。
问如何规划车辆的配送路线,以及如何合理分配车辆的货物装载情况,提高车辆的实载率,减少车辆的数量。
已知:
1、车辆的信息:
载重量,车厢的长宽高
2、货物的信息:
货物的重量,货物的长宽高,货物的卸货地
3、卸货地:
位置信息(经纬度)
4、每天的运单量(总量不固定、每个目的地每天有无订单以及订单多少不固定)
限制条件:
1、车辆从始发地开始,顺序到达最后卸货地之前,不回头;
2、车辆中途只卸货,不上货;
3、货物的总体积不超过车厢的容积(长宽高均不超过);
4、货物的总重量不超过车辆的载重量;
5、不考虑货物能否堆叠放置;
6、不考虑货物的朝向问题,全部正放(长宽在底);
7、货物根据卸货地的顺序采取后进先出的原则;
8、相同一个卸货地的货物只装载在相同一辆车辆;
整车物流是指按照客户订单对整车快速配送的全过程。
随着我国汽车工业的高速发展,整车物流量,特别是货运车的整车物流量迅速增长。
货运车物流计划问题主要是为了解决货运车运送货运车的装载过程中资源充分利用以及减少运输成本的问题。
需要利用货运车按照要求将不同规格不同数量的货运车运送到各自的目的地。
当前很多物流公司在制定运输计划时主要依赖调度人员的经验,在面对复杂的运输任务时,往往效率低下,而且运输成本不尽理想。
我们需要解决的问题是根据可以调用的“货运车”中选择出若干辆货运车,进而给出其中每一辆货运车上货运车的装载方案和目的地。
在确保任务完成的前提下,降低运输成本。
2、模型假设
1.对于问题1-4假设在中转站有足够的货运车够调运,不考虑多次装卸产生的费用。
2.在所有运输中不考虑在规定时间的因素,所有装配都没有时间限制。
3.在运输过程中不考虑意外损失的消耗费用。
4.不考虑
3、问题分析
影响成本高低的首先是货车使用数量;其次,在货车使用数量相同情况下,不同车型的使用成本不同,由低到高进行排列,原则是先装费用低的货车,在费用低的货车使用完情况下,使用费用较高的原则;再次,在货运车使用数量及型号相同的情况下,行驶里程最短的成本低。
(如果该公司是全国性的公司,在各地均会有整车物流业务,及无需放空返回。
最后每次装卸车的成本忽略)如果不考虑该公司性质,则只需满足每次装卸车的成本忽略。
解决策略:
数据:
车型选择(车的装载能力,长、宽、高),货物(大小、重量,目的地)选择,经度(longtitude),纬度(latitude);运单量(订单量)。
需求:
完成货物运送,给出运送方案,
目标:
运送时间最少,费用最低;
1.根据当天货物订单特征(大小,重量),目的地打点(longtitude,latitude),并根据目标地和配送中心的距离(计算距离)
2.根据配送中心和配送货物的多少、远近(此处我们考虑相同货物聚类(以配送中心点为中心))的点,找出其最佳配送路线(按照距离最小,车型配置等)。
3.优先装载远方的货物,并考虑货物大小,重量;为了考虑平稳性先将大件货物放在底层(具体装载方案)。
4.单通道我们占时考虑将货物放在分叉点,多通道考虑分配优化方案。
4、模型的建立与求解
4.1问题一的分析:
若物流公司要运输多箱产品我们考虑到装箱调度决策过程中有多种可能,在多目标约束条件下根据最优分配原则。
保证所有运输任务完成的情况下分配尽可能少的车辆来运输。
在此,我们选择在货运车尽可能满载的情况下的分配方案。
这样可以减少大量的矩阵运算和程序运行时间以及变量的迭代次数。
考虑到充分利用货运车空间,在满足题目要求的前提下我们采用货运车车型混装的形式,这样可以在一定程度上减少货运车的使用数量。
4.1.1数学模型的建立
建立目标函数:
(1)
于是我们建立约束条件:
1)1-1型货运车满足的约束条件:
方案
I型车数量
II型车数量
剩余长度(m)
1
0
5
0.425
2
1
3
3.145
3
2
2
2.15
4
3
1
1.155
5
4
0
0.16
2)在此约束条件下货运车还应该满足以下条件:
方案
I型车数量
II型车数量
剩余长度(m)
1
0
6
2.01
2
1
5
1.015
3
2
4
0.02
4
3
2
2.74
5
4
1
1.745
6
5
0
0.75
3)同时满足以下约束条件:
4.1.2模型的求解
我们运用枚举法得到每一种可能性运用lingo和Matlab分支定界法得到相应的结果:
总和
1-1型
1-2型
迭代次数
运行时间(s)
lingo
18
15
3
821
0
matlab
18
15
3
1537
77
4.1.3结果说明
在满足所有条件下1-1型有4种方案:
1-1型
1-2型
I型
II型
I型
II型
方案一
3
0
5
0
0
方案二
1
1
3
0
0
方案三
3
0
0
2
4
方案五
11
4
0
0
0
共计18辆,分别是1-1型15辆,1-2型3辆。
具体安排是3辆1-1型车上装I型0辆货运车,II型5辆货运车。
方案二是1-1型车1辆上装I型0辆货运车,II型5辆货运车。
方案三是1-2型车3辆上装I型2辆货运车,II型4辆货运车。
方案五是1-1型车11辆上装I型4辆货运车,II型0辆货运车。
4.2问题二的分析
在给定II车型和III车型的基础上我们还是和第一问一样建立相应的解法,但是我们要对车的上下层做条件约束,因为题目中考虑到以保证货运车行驶平稳。
受层高限制,高度超过1.7米的货运车只能装在1-1、1-2型下层,所以我们建立以下模型:
4.2.1模型的建立:
建立目标函数:
(2)
于是我们建立约束条件:
1)1-1型货运车满足的约束条件:
方案
I型车数量
II型车数量
1
0
4
2
1
3
3
2
2
4
3
1
5
5
0
2)在此约束条件下1-2型货运车还应该满足以下条件:
方案
I型车数量
II型车数量
1
0
6
2
1
5
3
2
4
4
3
2
5
4
1
6
5
0
3)同时满足以下约束条件:
4.2.2模型的求解
我们运用枚举法得到每一种可能性运用Matlab分支定界法得到相应的结果:
总和
1-1型
1-2型
运行时间(s)
matlab
13
11
2
2.491
4.2.3结果说明
在满足所有条件下有4种方案:
1-1型
1-2型
II型
III型
II型
III型
方案一
10
(上层5,下层0)
(上层0,下层4)
0
0
方案二
1
(上层5,下层1)
(上层0,下层3)
0
0
方案三
1
0
0
(上层12,下层0)
(上层0,下层4)
方案五
1
0
0
(上层12,下层1)
(上层0,下层3)
共计13辆,分别是1-1型11辆,1-2型2辆。
具体安排是10辆1-1型车上装II型上层5,下层0辆货运车,III型上层0,下层4辆货运车。
方案二是1-1型车1辆上装II型上层5,下层1辆货运车,III型上层0,下层3辆货运车。
方案三是1-2型车1辆上装II型上层12,下层0辆货运车,III型上层0,下层4辆货运车。
方案五是1-2型车1辆上装II型上层12,下层1辆货运车,III型上层0,下层3辆货运车。
4.3问题三的分析:
在给定I车型和II车型、III车型的基础上我们还是和前两问一样建立相应的解法,但是我们要对车的上下层做条件约束,因为题目中考虑到以保证货运车行驶平稳。
受层高限制,高度超过1.7米的货运车只能装在1-1、1-2型下层,所以我们建立以下模型:
4.3.1模型的建立:
建立目标函数:
(3)
于是我们建立约束条件:
1)1-1型货运车满足的约束条件:
在只用1-1下层的情况下满足:
其中
上层的情况满足:
在只使用1-2型货运车时应当满足以下条件:
下层的情况满足:
其中
上层的情况满足:
4.3.2模型的求解
由于该模型所包含的参数过多我们调用解整数规划的函数包:
进一步我们运用Matlab工具箱调用该函数进行计算得到如下结果。
轿用车类型
相类,同装载方式的车辆数
I型车上层
I型车下层
II型车上层
II型车下层
III型车上层
III型车下层
I-I
2
0
0
5
0
0
4
I-I
3
4
0
0
0
0
4
I-I
1
0
0
5
5
0
0
I-I
1
4
0
0
5
0
0
I-I
1
0
1
5
0
0
3
I-I
1
4
1
0
0
0
3
I-I
1
0
2
5
0
0
2
I-I
3
4
2
0
0
0
2
I-I
1
0
3
5
0
0
1
I-I
6
4
3
0
0
0
1
I-I
1
0
4
5
0
0
0
I-I
5
4
4
0
0
0
0
I-II
3
2
1
4
4
0
4
I-II
2
2
2
4
4
0
4
我们运用枚举法得到每一种可能性运用Matlab分支定界法得到相应的结果:
总和
1-1型
1-2型
运行时间
(s)
matlab
31
26
5
10.021075
4.3.3结果说明
在满足所有条件下有14种方案:
共计31辆,分别是1-1型26辆,1-2型5辆。
具体安排是2辆1-1型车上装II型上层5辆,下层0辆货运车,III型上层0,下层4辆货运车。
3辆1-1型车上装I型上层4辆,下层0辆货运车,III型上层0,下层4辆货运车。
1辆1-1型车上装II型上层5辆,下层5辆货运车.
其余结果如上表。
4.4问题四的模型建立及求解(普通算法)。
在有路径的约束条件下我们分两步考虑该问题,首先考虑数量的优化再考虑路径的优化,在不考虑折返的情况下,我们分段考虑OD段,就一个单向图路径也是最优的,考虑量上的优化,即共计166辆I型和78辆II型的货运车,则该问题转化为第一问的问题,在相同的约束条件和目标函数下我们得到最优的方案。
同时,在在OD段运输的总费用为1-1型货运车和1-2型货运车耗费的费用之和。
即:
(4)
在D段全部装载到货运车上,在D点卸下41辆I型车,由于每次卸车成本几乎可以忽略,现在需要125辆I型车和78辆II型车。
重新分配时同时满足条件:
C点需要33辆I型货运车,47辆II型货运车,因此我们再转化为第一问进一步求解得到较优的结果为
1-1型货运车的分配方案:
数量
I型
II型
方案X0
3
0
5
方案X3
1
3
1
方案X4
3
4
0
1-2型货运车的分配方案:
数量
I型
II型
方案y1
1
1
5
又因为在DA段需要92辆I和31辆II,所以再考虑运用第一问的思路得到如下结果:
数量
I型
II型
方案X2
1
2
2
方案X3
2
3
1
方案X4
8
0
6
1-2型货运车的分配方案:
数量
I型
II型
方案y2
2
2
4
最终需要25辆1-1型和4辆1-2型才能完成最终的任务。
4.4.1结果解释
因为考虑到DA段需要92辆I和31辆II,则需要1-1型车1辆装I型2辆,装II型2辆。
方案三需要2辆1-1型来装3辆I型和1辆II型。
方案四需要8辆1-1型货运车,其中装载I型0辆,II型6辆。
需要1-2型货运车2辆装载I型2辆和II型4辆。
4.4.2问题四的启发式算法(遗传算法)
遗传算法提供了一种求解复杂系统问题的通用框架,它不依赖于问题的具体领域,对问题的求解有很强的鲁棒性,所以遗传算法在函数和组合优化、生产调度、自动控制、智能控制、机器学习、数据挖掘、图像处理以及人工生命等领域得到了成功而广泛的应用.在各个不同的应用领域,为了取得更好的结果。
针对本题的要求我们对数量进行优化,最后再将好的数量分配方案继续逐步遗传,到最后全局最优,由于Matlab自身带有遗传算法的工具箱最后我们通过调优得到最后的优化结果。
总和
1-1型
1-2型
运行时间(s)
matlab
25
21
4
2.491
4.5问题五的模型建立和求解
首先根据附表从宏观角度可以看出问题五的装载以及运输方案会很多,首先表中不同货运车型的种类非常多,如果仍然依照前几问中的解决方案对其进行最优化分析将会导致变量数目极为庞大,几乎无法用程序进行实现,这就需要对数据进行聚类整合,进而简化目标函数,减少变量的个数。
按照高大于等于1.7m和小于1.7m进行划分,在此条件下我们再考虑宽度大于等于1.7m和小于1.7m进行划分,得到结果不是很理想,所以我们继续按照长度划分,最后分为10类。
由于可以调用的货运车类型都给出,数量和装载区域都给出,我们考虑1-1型和1-2型货运车的装配方案,由于装配方案很多,我们对可能的几种方案根据调度经验我们去掉可能性较小的几种结果,建立相关的模型。
4.5.1模型的建立
流程图:
对于数据表格1与表格2中的数据进行分类,以简化模型的设计,尽可能的提高其运行效率。
文章中采用分类算法对所有的货运车进行分类。
由题目已知得到:
高度大于1.7米的货运车只能放在1-1、1-2的下层。
而宽度方面的也存在限制,1-1类型货运车可以装载任意类型的货运车,而1-2型货运车上层和2-2型货运车上下层在装载宽度超过1.7米的货运车时,会受到宽度的限制。
对于长度,对于装载优化也有一定的影响,但是不如前两者对装载优化的影响大。
鉴于此,我们采用高度作为一级分类标准,宽度作为二级分类标准,长度作为三级分类标准。
流程图如下所示:
注:
单位mm
分类器的编码以及设计。
运行界面如下所示:
分类结果如下:
这里我们根据上述对货运车数据的分析,并进行分类,从而得到10类主要的货运车型,由于不同类型货运车的长度变化较大,因此货运车不再进行分类,这里解决的主体思想仍然是根据货运车的长度,宽度给出对应约束条件,建立整数线性规划,然而这里要注意的是此问中即便已经对货运车进行了较好的分类方式,较大程度上减少了变量的个数,然而普通的求解整数线性规划的算法也并不容易实现。
类似问题一中我们可以用枚举法加上循环中的一些限制条件可以得到问题的最优解,而运用分支定界的算法则更为容易算出结果;问题二通过分析需要对货运车上下层分配不同数量不同车型的货运车,变量数目会有所增加,此时枚举法不再适用;问题三中则是前两问的综合情况,一般求解线性规划的算法都会遇到耗时长,结果难以实现等问题。
因此这一问中为了能够实现问题较好的解,可以从数据的归类分析,优化算法,或者增添更为有效,合理地约束条件以及从问题上进行一些假设估计,便于简化问题。
这里我们主要是对货运车数据进行合理地分类,然后对问题中的分层进行假设,简化模型,即简化了目标函数;然后在程序中通过空间利用率的判断再次对各个方案进行筛选,这样做不仅从某个角度分析简化了该线性规划模型,而且也较好地避免那些接近最优解的方案被遗漏的问题。
考虑到变量多的难题,我们运用matlab工具箱:
yalmip解决多变量的整数线性规划,而变量个数的控制则结合之前的分类以及循环过程中一些条件限制;在该问题中通过对某些类型的车不考虑过于细致地上下层方案分析,而是视为一致,以减少变量(方案)的个数,然后确定变量个数进行最优化分析,最后我们根据题经验性以及成本上对上述得到的结果略微调整。
考虑只是用1-1型下层,满足不等式:
考虑只使用1-2型下层,满足不等式:
考虑只使用2-2型下层,满足不等式:
对于1-1型货运车,其上下层规格相同,故其上层与下层具有相同的性质。
对于1-2型货运车上层,满足不等式:
对于2-2型货运车上层,满足不等式:
我们建立目标函数为:
(5)
4.5.2模型的求解
在分类器根据高度和宽度的条件约束得到如下的分类结果
宽度小于1.70米
A
B
C
D
E
Ⅰ
0
0
0
0
0
Ⅱ
14
13
14
18
15
Ⅲ
31
25
36
28
29
Ⅳ
59
39
31
29
35
Ⅴ
69
47
31
38
31
Ⅵ
34
19
10
19
16
Ⅶ
2
0
0
1
1
宽度大于1.75米
A
B
C
D
E
Ⅰ
0
0
0
0
0
Ⅱ
14
13
14
18
15
Ⅲ
29
21
25
24
24
Ⅳ
29
19
22
16
25
Ⅴ
69
49
43
44
36
Ⅵ
34
19
13
19
16
Ⅶ
2
0
0
1
1
最后我们通过调用相关的函数得到相应的结果。
4.5.3结果解释
通过对问题化简后所建立模型的实现,我们得到了到各地的货运车的数量如下表:
货运车主要类型
A
B
C
D
E
I-I
27
21
21
21
20
I-II
5
3
4
4
4
II-II
0
0
0
0
0
从上述结果可以看出主要使用I-I,I-II型车进行运输,总的数量为130辆。
首先考虑的是在满足各地需求的前提下尽可能少的使用II-II型车,一方面它的成本价格较为昂贵,另一方面它的数量本来就少。
由于这里是简化后的模型分析结果,从上表看出此次决策并未使用II-II车型,因此结果并不一定是最优。
那么可以在符合条件的情况下根据经验对车数量进行略微调整,可以对那些需求普通车型较多的地点对其进行调整,从表中需求量可以看出:
A,B,C三地对普通型车辆需求量相对较多,而B地派往的运输车I-I为21辆,I-II仅为三辆,在车辆宽度,长度符合的条件下,我们可以适当减少两辆I-I型车,增加一辆II-II型车,这样可以在不影响各地需求量的前提下使总的数量减少,调整后结果如下:
货运车主要类型
A
B
C
D
E
I-I
27
19
21
21
20
I-II
5
3
4
4
4
II-II
0
1
0
0
0
类似上面的分析,在满足前提的情况下,在综合成本和时间角度方面,可以据经验作出不同的调整方案,最终使得货运车使用的总数量最少。
4.5.4启发式算法
在此基础上我们对模型进行优化依,先据调运经验在装载时我们采用贪婪算法的思想尽可能多的装载货物,即大型车和小型车混合搭配找到较优的变量取舍建立相应的函数,我们考虑多变量函数的求解给我们带来繁琐的计算,最后我们根据计算得到相应的结果,再次运用关联分类对结果优化,我们运用函数包yalmip该方法进行仿真模拟,对前四问依次仿真模拟得到相应的结果: