运输论文final垃圾运输路线Word格式文档下载.docx
《运输论文final垃圾运输路线Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《运输论文final垃圾运输路线Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
一.问题重述
人们正面临着城市生活渣滓所带来的威胁。
随着人类生产和生活的不断发展,由此而产生的渣滓对生态环境及人类生存带来极大的威胁,成为重要的社会问题。
城市生活渣滓的年增长速度达8-10%,严重污染环境。
中国目前处置水平低,管理办法不多,更是急待解决的问题。
在这方面,世界许多国家在谋求解决城市生活渣滓过程中,产生出许多好的办法,并在此过程中总结了经验和教训。
我们知道,城市渣滓自其产生到最终被送到处置场处理,需要环卫部门对其进行收集与运输,这一过程称为城市渣滓的收运。
收运过程可简述如下:
某城市有多个行政区,每个区内均有一个车库,假设某一车库拥有最大装载量为w的渣滓收集车k辆,并且该区的渣滓收集点(待收集渣滓的点)有n个,该城市共有渣滓中转站p座。
每天k辆渣滓车从车库出发,经过收集点收集渣滓,当渣滓负载达到最大装载量时,渣滓车运往中转站,在中转站卸下所有收运的渣滓,然后再出站收集渣滓,如此反复,直到所有收集点的渣滓都被收集完,渣滓车返回车库。
以上收运过程均在各点的工作区间之内完成。
现考虑以下问题:
1.查阅相关文献,建立渣滓收运路线的数学模型,设计出有效的算法,使渣滓收运车辆尽可能少,行车里程尽可能短或者渣滓收运时间尽可能少。
2.针对附录中给出的数据,求解模型。
并且对模型的适用性、算法的稳健性做出分析。
二.符号说明
字母表示
符号意义
垃圾车的数量
每辆垃圾车的容量(所有车辆具有相同的能力)
第i辆垃圾车
第
辆垃圾车行驶的路程长度
从第
个节点到第
个节点的距离
第k辆车离开第i个节点时车中的垃圾量
第i个节点的垃圾量
车辆由点i驶向点j
个节点的行车时间
第k辆车的收集过程中进入中转站的次数
每辆车的最大容量
种群规模
终止代数
交叉概率
变异概率
染色体
三.问题的分析
此问题我们可看作一个复杂化的多人旅行商问题,然而大规模的TSP问题通常无法求得最优解。
回顾这些年对多人TSP问题的研究可以发现一些问题。
其中最主要的的是,对多人TSP问题的研究停留在以所有成员路径总和最小为标准的单人TSP问题,从而可以运用已有的单人TSP问题求解方法。
但是,以所有成员路径总和最小值为优化标准对另一类多人TSP问题却无能为力。
我们能做的,就是运用一个有效的算法,对本问题建立模型,使其优化程度高。
对本问题进一步研究,我们发现它比一般的TSP问题主要有以下几个难点。
1,题目的约束条件很多,例如每辆车每次的装载量和当天最大装载量,上班时间。
2,每次装载量到达上限后,都要往返中转站,而不是在当前渣滓站继续装载或去下一个渣滓站,因此会大大增加计算量。
3,某一些渣滓站的渣滓数由于量大,会被多次到访进行装运。
4,某几辆车可能会到同一个渣滓站共同完成任务。
可以看出,此题比一般TSP问题的复杂程度高出许多。
面对这样大规模的大规模的TSP问题,运用精确算法的效果没有近似算法的效果好。
因此,我们选择具有良好的全局搜索能力的遗传算法(Genetic Algorithm,GA),可以快速的将解空间里的全体解搜出。
具体解题时,我们将问题简化成最简单的TSP问题,然后逐步增加约束条件进行分析,逐步优化,最后满足题目的所有要求。
圾收运车从车库出发后,要将所有收集点的渣滓收集完并运往中转站,但是渣滓收运车的载重量不能超过1000kg,所以,在渣滓收运车负载达到最大载重量时要前往中转站,卸下所有渣滓后再返回继续收集。
可以先假设渣滓车的载重量无限大,可一次将渣滓全部收集完毕,因此暂不考虑中转站问题,而直接从车库出发,找到一条遍历所有收集点的最短路径,从而将问题转化为TSP问题,这样就可求得最短收集路线。
但是由于渣滓收集点高达50个,使用常规方法根本无法在有效时间内完成计算,因此这里考虑使用现代优化算法中的遗传算法进行求解。
然后,再让渣滓收运车沿求出的路线收集渣滓,当渣滓量等于或略小于1000kg后前往中转站,卸载完渣滓后再前往下一个收集点,如此往复进行。
进而可以计算出所需时间,以此可以决定至少需要使用的渣滓收运车数目。
将经历每次到中转站之间的收集路线作为一条子路线,将这些子路线均衡地分配给每辆车执行即可。
四.模型假设
1.汽车在路上的速度总是一定,不会出线抛锚,撞车等现象。
2.任意两点之间都有路径。
3.每辆车只能走自己被安排的路线,不能走其他车的路线,除公共路段外。
4.没到渣滓站活中转站停留的时间一定,不会出现特殊情况而延误时间。
5.每辆车行驶速度相同。
五.模型的建立与求解
通过查阅相关资料知道,普通算法的模型最适合的规模是25个点左右,求解起来比较容易。
本问题中渣滓站点有50个数量较多,因此这里考虑采用现代优化算法中的遗传算法进行求解,用于解答类似问题的组合优化问题的全局最优解。
5.1遗传算法的基本原理
遗传算法是一种借鉴生物界自然选择和自然遗传机制的随机搜索算法,由美国J.Holland教授提出,其主要内容是种群搜索策略和种群中个体之间的信息交换,搜索不依赖于梯度信息.该算法是一种全局搜索算法,尤其适用于传统搜索算法难于解决的复杂和非线性问题.选择(selection)算子、交叉(crossover)算子和变异(variation)算子是遗传算法的3个主要操作算子。
5.2建立遗传算法模型的步骤:
Step1.确定决策变量及其各种约束条件,即确定出个体的表现型工和问题的解空间。
Step2.建立优化模型,即确定出目标函数的类型(是求目标函数的最大值还是求目标函数的最小值)及其数学描述形式或量化方法。
Step3.确定表示可行解的染色体编码方法,也即确定出个体的基因型x及遗传算法的搜索空间。
Step4.确定解码方法,即确定出个体基因型X到个体表现型x的对应关系转换方法。
Step5.确定个体适应度的量化评价方法,即确定出由目标函数值“x)到个体适应度,(x)的转换规则。
Step6.设计遗传算子,即确定出选择运算、交叉运算、变异运算等遗传算子的具体操作方法。
Step7.确定遗传算法的有关运行参数,即确定出遗传算法的M,Pc,Pm等参数。
遗传算法的流程图如下:
5.3模型求解
针对本问题建立基于遗传算法的TSP模型:
Step1.我们选取渣滓站点之间的距离为参变量,确定出个体的表现性X和解的空间,并对其用十进制编码,用随机数列作为染色体,其中
(),,;
每一个随机序列都和种群中的一个个体相对应,例如一个9城市问题的一个染色体为
[0.23,0.82,0.45,0.74,0.87,0.11,0.56,0.69,0.78]
其中编码位置代表城市,位置的随机数表示城市在巡回中的顺序,我们将这些随机数按升序排列得到如下巡回:
6-1-3-7-8-4-9-2-5。
Step2.设定初始种群的大小,因为在不考虑中转站的情况下,渣滓站点有51个,所以种群的大小可设定为51。
初始种群的生成方法如下:
先随机生成一定数目的个体,然后从中挑出最好的个体加到初始群体中。
这种过程不断迭代,直到初始群体中个体数达到了预先确定的规模。
Step3.目标函数为行遍所有收集点的路径长度,属于目标函数最小化问题,
目标函数
为距离
根据适应度函数与目标函数之间的转化规则,我们可以采用非负变换,把最小化优化目标函数变换为以最大值为目标的适应度函数:
适应度函数
为f(x)的最大估计值,根据表格中的数据我们取
。
Step4.设计遗传操作
1)选择算子:
采用轮盘赌选择法。
轮盘赌选择又称比例选择算子,它的基本思想是:
各个个体被选中的概率与其适应度函数值大小成正比。
设群体大小为n,个体i的适应度为Fi,则个体i被选中遗传到下一代群体的概率为:
2)交叉算子:
我们的交叉操作采用单点交叉。
设计如下,对于选定的两个父代个体
,我们随机地选取第
个基因处为交叉点,则经过交叉运算后得到的子代编码为
和
的基因由
的前
个基因和
的后
个基因构成,
个基因构成,例如:
设交叉点为第四个基因处,则
交叉操作的方式有很多种选择,我们应该尽可能选取好的交叉方式,保证子代能继承父代的优良特性。
同时这里的交叉操作也蕴含了变异操作。
3)变异算子:
变异是指依据变异概率Pm将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。
遗传算法中的变异运算是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持种群的多样性。
交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。
本文采用均匀多点变异。
类似交叉操作中选择父代的过程,在r选择多个染色体
作为父代。
对每一个选择的父代,随机选择多个位置,使其在每位置
按均匀变异(该变异点
的取值范围为[ukmin,ukmax],产生一个[0,1]中随机数r,该点变异为
=ukmin+r(ukmax-ukmin))操作。
如:
81421386325734324221
变异后:
814213106322734524121
Schaffer建议的最优参数范围是:
种群规模M=20-100,我们取M=51。
终止代数Tk=800-2000。
交叉概率Pc=0.4-0.99,取Pc=0.9。
变异概率Pm=0.001-0.01,取Pm=0.01。
基于上述遗传算法原理,通过matlab程序,得到各个垃圾站点之间的最短路径分布图:
5.4分配汽车收集垃圾的路径
通过matlab程序得到垃圾站点之间的最短路径后,我们让车辆沿着最短路径路径遍历所有垃圾站点即从车库出发开始收运垃圾,当垃圾车内收集的垃圾接近或达到1000kg,但剩余载重量又小于下一站点垃圾量的时候,垃圾车开往垃圾中转站,在中转站卸下所有收运的垃圾后,再到下一站点继续收集垃圾,如此反复,直到所有收集点的垃圾都被收集完,垃圾车返回车库。
在给车辆分配具体路径时,可根据这样的思路:
先让一辆车开始从车库出发,遍历垃圾站点,当达到最大载重量,或工作时间超过480分钟时,该车辆停止工作,下一辆车继续沿着上一辆车遍历的路径开始遍历,依次收集下一站点的垃圾
依次类推。
为了使车辆数最小,我们可以在以上思想的基础上,对路径进行局部优化,具体做法是可以分配一辆车专门遍历垃圾多的站点,这样可以最大限度的调用车辆。
基于以上算法,通过matlab程序得到车辆路线分配图,如下表所示:
里程(米)
总时间(分)
运载垃圾总量(千克)
101802
478.4
4450
109560
429.7
2450
113576
442.7
2500
125640
478.9
2300
100250
369.8
2000
120216
462.6
94380
351.1
118284
458.9
2850
107056
464.2
3850
路径图:
六.模型的实用性以及算法的稳定性和稳健性
由于本文模型的建立首先是将模型转换为典型的TSP问题,并且利用遗传算法得到了全局近似最优的最短路径,模型建立的过程中除系统算法固有误差外,不存在任何假设或简化的认为误差存在。
基于上述分析可以看出,模型具有可操作性和实用性,对数据没有特别的要求,最突出的优点是利用遗传算法求得了大规模数据的全局最优解,并且每一步的实现均有相应的程序,可以为以后设计相关的专业软件提供模型和程序支持。
在利用遗传算法解TSP问题时,为使算法具有相对稳定性,我们将种群的规模设为51,在大规模种群的情况下,可使算法更加趋于稳定。
通过观察运行matlab的迭代过程,我们发现整个程序运行大约30秒,程序刚开始执行时收敛速度很快,当执行到最后时收敛速度明显变慢,这是本算法的一个缺陷。
蚁群算法就具有很好的收敛性,整个迭代过程速度很快,且每次迭代结果几乎是一致的。
以下是基于蚁群算法和遗传算法运行结果的比较:
遗传算法和蚁群算法最短路径比较:
蚁群算法
10次实验中最好结果
120780
117356
118034
120884
118202
10
117330
120388
123028
120924
117416
遗传算法
115554
116812
118156
120698
120548
123858
122188
121658
116568
比较遗传算法和蚁群算法,可以看出每次试验迭代的最短距离相差很小,从10次试验结果最好的结果中可以看出遗传算法求得的最短路径115554<
117330。
因此用遗传算法求得的各个垃圾站点之间的最短路径可以认为是近似最优的。
算法的稳健性,是指控制系统在一定的参数(结构、大小)摄动下,维持某些性能的特性,现代稳健控制则着重研究控制系统中非微有界摄动下的分析与设计的理论和方法。
本文中要求单车垃圾每天的最大载重量为5000kg,但是在求解的过程中垃圾车每天的最大载重量均不超过5000kg。
单车每天载重量
车次
第1辆
第2辆
第3辆
第4辆
第5辆
第6辆
载重量
第7辆
第8辆
第9辆
从表中可以看出每辆车一天最大的运输辆均小于5000kg,有的车辆由于时间框的限制只能运送2000-3000kg,单车最大运送量有很大的稳定余量。
如果某些垃圾收集点的垃圾某天由于特殊原因有一定的增长,也不会改变垃圾运送的线路设计,从这一点可以看出,算法具有较好的稳健性。
七.模型改进及推广
7.1.基于遗传的VRP模型
基于遗传的TSP模型是建立在对实际问题的抽象,是基于对最短路径的优化,是对全局的最优解,不一定是局部的最优解。
在考虑了约束条件的情况下,我们对TSP模型进行改进,得到基于遗传的VRP模型。
车辆路径问题(VehicleRoutingProblem,简称VRP)由G.Dantzig在50年代末首先提出:
即从一个服务中心向离散分布在某一区域的n个客户派遣m辆车辆来提供货物,要求确定车辆的行走路线使总的运输成本最小,并且保证每个服务需求点只被其中的一辆车辆访问过一次。
这是最简单最经典的VRP问题(如图1所示)。
如果车辆数目不确定,客户需求量不确定时,可以把VRP问题分成固定车辆数VRP和非固定车辆数VRP以及确定性VRP和随机VRP。
针对本文垃圾运送问题,我们是在未考虑中转站、时间窗、单车最大装载量等约束条件的前提下用基于遗传的TSP算法求解出一条近似最优路径。
但是考虑到这些约束条件时,我们所求得的垃圾运输路线不一定是最优的,基于遗传的VRP模型可以很好的解决该问题。
7.2.问题分析
我们的目标是选择合理的垃圾收运路线,可以减少车辆行驶距离,节约时间,可高效地调度收运车辆使得车辆的维修费用、燃油费等相应减少。
同时,人力物力资源也可发挥更高的效率。
对于垃圾点分布不,垃圾量也不尽相等,我们将所有的垃圾点分成K部分,分别由K辆垃圾车完成收运任务。
约束条件包含两个方面:
1.车数量与载重,2.时间在车库上班时间以内。
基于上述分析,我们建立如下数学模型。
目标函数:
约束条件:
约束条件:
(1).每个收集点都只经过一次;
(2).每辆车都从车库出发;
(3).每辆车的车载量都不超过车的容量限制;
(4).车在从车库和中转站出发时装载的货物量为0;
(5).车在下一个收集点离开时的
垃圾量等于上一个点离开时的垃圾量加上在该点的
垃圾量;
(6,7).计算出第k辆车运往中转站的次数N;
(8,9).每辆车最终都从中转站回到车库,车从车
库再去收集的次数为一1;
(1O).到达时间与行车时间的关系约束;
(11).到达时间满足时间窗约束;
(12).每辆车运往中转站的次数不超过R;
(13).每辆车离开中转站时的装载量非负。
7.3.具体算法如下
①.染色体产生。
由于此VRP问题的编码规范与一般TSP问题完全不同。
所有原来的染色体必须服从上述所有的约束,因此,我们要与染色体的结构问题相一致。
1.时间约束的路由。
正如以上所述,遍历所有路由的位置,并返回到出发点的时间必须小于总时间的起点。
2.容量限制。
在具体操作中,我们在给点线路中将随机选择首个垃圾点,然后从一些相邻的垃圾点中选择一个作为线路的第二个垃圾。
在每个位置,我们会计算目前的路线的累积垃圾量,停止路线时,累积的垃圾量超过了车辆的能力。
同上,选择另一条新路线首个的垃圾点。
它必须解决每个垃圾点只能在一条路线上。
3.计算车辆的数目。
重复第2步,如如果染色体上使用的车辆超过了允许车辆,重新生成一个新的染色体,直到它满足车辆数量约束。
②.适应度
假设有M个垃圾点和K辆车,应当有M+K+1的元素在上面的序列。
我们的目标是尽量减少总的距离,特定序列可以表示为连续两个元素之间的所有距离的总和。
我们会选择距离最短的序列:
③.交叉和变异
交叉这里也面临着染色体结构问题,我们不能仅仅选择两条染色体进行单点交叉。
问题是基于定向图上,我们只需要思考垃圾车能力的限制和垃圾车数量的限制。
我们随机选择两个亲代的染色体。
我们建立一个新的垃圾点之间的定向图(不考虑的出发点),所有的点与点之间的路线是从两个染色体选择。
事实上,相当多的部分在两条染色体是重复的,每个顶点有不超过两个输入和两个输出。
也可能有些点是孤立的(两条染色体的一点是一个路由)。
我们就可以简化的路由图。
我们首先选择较短的两个输入点,放弃另一个的输入,然后选择一个较短的两个输出点,而将其他的放弃。
重复寻找,我们最终将得到上述车辆的路线。
根据上述算法用matlab进行求解,具体代码见附录。
八.模型的评价
模型的优点:
1.本模型能最大程度的得到车辆分配的近似最优解。
在满足车量最小的前提下,所求得的路径均能满足时间限制,即时间均不超过480分钟。
2.在基于遗传算法TSP模型下,提出了基于遗传算法的VRP模型,能够较好的解决多约束条件下的车辆调度问题,克服了第一个模型路径可能不是最优解的缺陷。
模型的缺点:
1.城市生活垃圾清运模型的建立,只是针对题目的要求建立模型,并未参考相关专业知识;
2.基于遗传算法的TSP模型收敛性太差。
3.基于遗传算法的VRP运行效率太低。
参考文献
[1]宋薇,刘建国,聂永丰.城市生活垃圾收运路线优化研究[J],环境卫生工程,01期16卷:
11-15,2008.2
[2]王小平,曹立明.遗传算法理论应与软件实现[M].西安:
西安交通大学出
版社,2009,12
[3]谢浩生,范剑波.物流配送车辆优化调度问题的综述[A].宁波工程学院学报,03期22卷:
2010.09
[4]赵静,但琦.数学建模与数学实验(第3版).高等教育出版社,2008.1
[5]陈国良,王煦法,庄镇圈等.遗传算法及其应用.北京:
人民邮电出版社,1996
[6]姜启源
谢金星.数学建模案例选集.北京:
高等教育出版社,
2006.1
附录
1.基于遗传的TSP算法
%my_traveling_salesman_problem.m
%citissandlocations
%andthenplotthem
cities=51;
locations=[00;
-82601545;
-63951227;
-63281235;
64003764;
80347961;
96917240;
74158071;
40103924;
101633112;
57701143;
105105795;
52873096;
98423154;
74868588;
74188090;
79883081;
107363397;
8104-1592;
7528394;
10414-2486;
4838-5557;
7540465;
64914299;
99987600;
10235494;
60503825;
6802-3844;
61921391;
9687-2781;
7521468;
41505260;
1895-5548;