基于改进蚁群算法的物流配送路径优化Word格式文档下载.docx
《基于改进蚁群算法的物流配送路径优化Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于改进蚁群算法的物流配送路径优化Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
M.Dorigo等人首次提出该方法时,充分利用了蚁群搜索食物的过程与著名的旅行商问题(TSP)之间的相似性,通过人工模拟蚂蚁搜索食物的过程(即通过个体之间的信息交流与相互协作最终找到从蚁穴到食物源的最短路径)来求解TSP。
蚁群算法可用来解决各种不同的组合优化问题,特别适合于在离散优化问题的解空间进行多点非确定性搜索,如旅行商问题(TSP)、二次分配问题(QAP)、作业安排调度问题(JSP)等等;
此外在通信网络负载问题和水科学[10]等应用研究中也被广泛应用。
它具有通用性和鲁棒性,是基于总体优化的方法。
蚁群算法原型本身就是一个寻找最短路径的模型,因此它在路径优化方面有着天然的优势,目前已经有不少蚁群算法在TSP问题中成功运用的例子,如Ant-Q[11]、MMAS[12]等。
物流配送路径优化问题和TSP问题相比有共同点——都是寻找遍历所有客户点的最短路径的问题,也有其特性——有更多更复杂的约束条件和优化目标。
本文就是针对这种特点,研究一种基于蚁群算法的优化路径算法,通过引入遗传算子,在局部搜索过程中能够避免算法早熟、停滞,同时改进信息素的更新方式、客户点选择策略,增强蚁群算法的正反馈作用,从而提高收敛速度和全局搜索能力,使得其在物流配送路径优化问题中有较好的实际效果。
12物流配送的数学模型
12.1问题的描述
一般配送路径问题可描述如下:
有L个客户点,已知每个客户点的需求量及位置,至多用K辆汽车从配送中心到达这批需求点,并且在完成配送任务后,返回物流中心,每辆汽车载重量一定。
要求安排车辆行驶线路使得运输距离最短,且满足以下几个约束条件:
1)每条线路上的客户点需求量之和不超过汽车载重量;
2)每条配送路径的总长度不超过汽车一次配送的最大行驶距离;
3)每个客户点的需求必须且只能由一辆汽车来完成。
其目的是使总成本(如距离、时间等)为最小。
12.2数学模型的建立
12.2.1符号的定义
L:
客户点总数;
qi:
客户点i的货物需求量,其中i=1,2,…,L;
dij:
从客户点i到客户点j的距离。
特别的,当i,j=0时,表示配送中心,例如:
d0,3表示从配送中心到客户点3的距离,d2,0表示从客户点2到配送中心的距离。
i,j=0,1,2,…,L;
K:
车辆的总数;
Qk:
车辆k的最大装载量,其中k=1,2,…,K;
Dk:
车辆k的最大行驶距离,其中k=1,2,…,K;
nk:
车辆k配送的客户总数,当nk=0时,表示车辆k没有参与配送。
k=1,2,…,K;
Rk:
车辆k配送的客户点的集合。
当nk=0时,Rk=Φ;
当nk≠0时,
,其中rki表示该客户点在车辆k的配送线路中顺序为i。
k=1,2,…,K。
12.2.2约束条件
根据前文对物流配送路径优化问题的描述,我们可以提取出以下几个约束条件:
1)每条线路上的客户点需求量之和不超过汽车载重量:
,nk≠0
2)每条配送路径的总长度不超过汽车一次配送的最大行驶距离:
,nk≠0
3)每个客户点的需求必须且只能由一辆汽车来完成:
,k1≠k2
4)配送线路遍历所有客户点:
12.2.3优化目标
根据本文中物流配送路径优化问题的优化目标,我们列出优化目标的数学形式:
13优化配送路线的蚁群算法
13.1基本蚁群算法
蚁群算法是一种由于受自然界生物的行为启发而产生的“自然”算法。
它是从对蚁群行为的研究中产生的。
蚁群中的蚂蚁以“信息素”(pheromone)为媒介的间接的异步的联系方式是蚁群算法的最大的特点。
蚂蚁在行动(寻找食物或者寻找回巢的路径)中,会在它们经过的地方留下一些化学物质(我们称之为“信息”)。
这些物质能被同一蚁群中后来的蚂蚁感受到,并作为一种信号影响后到者的行动(具体表现在后到的蚂蚁选择有这些物质的路径的可能性,比选择没有这些物质的路径的可能性大得多),而后到者留下的信息会对原有的信息素进行加强,并且如此循环下去。
这样,被越多蚂蚁选择的路径,在后到蚂蚁的选择中被选中的可能性就越大(因为残留的信息浓度较大的缘故)。
由于在一定的时间内,越短的路径会被越多的蚂蚁访问,因而积累的信息量也就越多,在下一个时间内被其他的蚂蚁选中的可能性也就越大。
这个过程会一直持续到所有的蚂蚁都走最短的那一条路径为止。
我们用人工蚂蚁代替车辆对客户点进行配送,蚂蚁在i客户点选择服务的下一个客户点j时,主要考虑两个因素,一是i,j两顾客点之间的关系的亲密程度,称为可见度,记为ij;
另外考虑的是由迄今完成的循环所得路径方案体现出来的由i到j的可行性,即信息素浓度ij。
在t时刻蚂蚁k由客户点i转移到客户点j的概率:
其中,allowedk={0,1,…,n-1}-tabuk表示蚂蚁k尚未服务的客户点。
可见度
当下一个要服务的客户点会使运载总量超出汽车载重量,或者使运距超过一次最大行驶距离时,就返回到配送中心,人工蚂蚁代表下一辆车出发,继续配送。
当一次循环结束后,蚂蚁遍历了所有客户点,完成一次配送。
当所有蚂蚁完成一次循环后,根据各蚂蚁遍历的好坏(目标函数值),计算信息素增量,更新相关路径上的信息素,更新规则:
13.2蚁群算法的改进
13.2.1遗传算法对蚁群算法的改进
遗传算法的操作算子是遗传算法的核心内容,我们将复制、交叉、变异这些遗传算子引入蚁群算法中,以提高算法的收敛速度和全局搜索能力。
复制
遗传算法中,复制的主要思想是认为父代中的优质个体可能更接近全局最优解,应该在子代中继承并继续进化。
复制操作使得父代中优质的个体能够在子代中得以保存,避免交叉变异等操作导致优质个体在种群中丢失。
蚁群算法中,在每一代搜索完成后,我们将当前父代中最优的解复制到子代中,使得最优的个体能在子代中继续积累信息素,这样能加快算法的收敛速度。
编码
遗传算法中的交叉和变异操作是建立在基因编码上的,因此在引入交叉和变异操作之前,我们首先对物流配送模型进行编码。
假设有L个客户点,K辆配送车辆,本文采用的编码方式是将这L个客户点分别用1到L这L个自然数标识;
第一辆车从配送中心出发时用0标识,其他车辆则分别用L+1,L+2,…,L+K-1表示。
由于同一辆车可以多次配送,所以,2次以上配送的车辆出发时,依次用L+K,L+K+1,……表示。
新的一辆车从配送点出发,或者编码结束,就表示前一辆的路线结束,返回配送中心。
这样就将一次配送表示为一组由0和自然数组成的编码。
例如,有6个客户点,我们分别用1至6表示,3辆车负责,那么编码:
0,1,2,3,7,4,5,8,6
表示3辆车的配送线路分别是:
车辆1[01230],车辆2[0450],车辆3[060]。
又如编码:
0,1,2,3,8,4,5,9,6
表示的配送线路为:
车辆1[01230],车辆3[0450],车辆1第二次配送[060]。
交叉
交叉操作是遗传算法中增加种群多样性,防止算法早熟、停滞的操作。
在蚁群算法中引入交叉操作,可以有效地扩大搜索空间,避免算法陷入局部最优解。
在蚁群算法每一代搜索完成之后,我们将其中的最优解和次优解进行编码交叉操作,交叉规则如下:
1)假设两组编码分别是S1和S2,首先随机生成交叉段的长度和交叉段起始位置;
2)找出S1和S2中的交叉段,假设S1:
P1|P2|P3,S2:
Q1|Q2|Q3,P2和Q2分别是S1和S2的交叉段;
将Q2插入S1中,位于P2前面,这样形成新的编码S3:
P1|Q2|P2|P3;
3)在S3中,删除P1、P2、P3中与Q2重复的编码。
形成交叉编码S3;
4)同样的方法用在S2上,生成新的编码S4;
5)比较S1、S2、S3、S4的结果,选出最优的两组编码并保存。
变异
变异操作也是增加种群多样性的一种进化手段。
适度的变异,既能保持种群内个体的多样化,又能提高算法的效率。
在蚁群算法中,我们在完成交叉操作后,对种群中最优个体进行变异操作,操作方法为:
1)随机生成变异次数N;
2)随机生成两个不同的自然数n1,n2>
1(第一位不变,保证编码以物流中心为起点);
3)在最优个体的编码S中,将第n1位和第n2位的编码对调;
4)重复2)、3)N次,生成新的编码S’;
3)比较S和S’的结果,保存较优解。
13.2.2蚁群算法的其他改进策略
在引入遗传算法对蚁群算法进行改进后,算法的收敛速度和全局搜索能力得到了提高。
我们下面还将从信息素的更新方式、客户点选择策略进行改进,以提高蚁群算法的自适应性。
信息素传递参数的选取
按照基本蚁群算法,是一个常量,如果过大,则会使未搜索过的路径被选择的概率相对减小,影响全局搜索能力;
而如果过小,又会影响算法的收敛速度。
因此我们在改进算法中将对作适当调整。
在算法初期,我们希望算法能尽快找到较优解,因此要比较大,增大信息浓度的影响,加快算法收敛速度;
而当算法停滞不前时,我们要减小,从而减小信息素对蚁群的影响,增大蚁群对解空间的搜索,以脱离局部最优解的束缚。
4-1式中,r表示连续没有进化的循环的次数,rmax是一个常量,(0,1)是一个常量,控制衰减速度,min是的最小值,防止过小影响收敛速度。
当r达到预先设置的一个数值rmax时,我们就减小,r重新计数,如此反复,直至达到预设最小值min为止。
确定性搜索和探索性搜索的选则
加速收敛就是要在已得到的较优解的基础上,尽量快的进化,以得到更优解。
由于蚁群算法是一种启发式算法,不断地“探索”是蚁群算法进化的必要手段,而正是这种“探索”限制了蚁群算法收敛速度。
例如,当算法得到一个较优解,而且该解有可能进一步优化,但由于“探索”范围很大,使得蚂蚁选择该路径的概率相对减小,从而使得路径上的信息量浓度逐渐衰减,该路径也逐渐被“遗忘”了。
为了解决这一问题,我们引入一个新的常量:
q0[0,1),蚂蚁k在每次选择路径之前,先随机产生一个q[0,1),蚂蚁k选择路径s将根据下式:
式子中,当qq0时,是基本蚁群算法中的探索性搜索;
当q<
q0时,是从已得的结果中,找出概率最大的路径作为选择,是对已得成果的“利用”,为确定性搜索。
确定性搜索弥补了探索性搜索在收敛速度上受限制的缺陷,通过适当调整q0,能够使得确定性搜索和探索性搜索合理搭配,加快蚁群算法的收敛速度。
我们还要对q0的取值进行讨论。
q0时,算法是采用确定性搜索,此时蚂蚁以概率q0选择距离最短的路径;
当q≥q0时,算法是采用探索性搜索,此时蚂蚁以概率l-q0随机选择路径。
在算法迭代的初期q0选取较大的初始值,以较大的概率进行确定性搜索,这样可以加快寻找局部较优路径的速度;
在算法的中期q0选取较小的值,增大探索性搜索的概率,从而扩大搜索空间;
在算法的后期,恢复q0的初始值,加快收敛的速度。
结合改进后的蚁群算法,我们可以得到基于改进后蚁群算法的物流配送路径优化问题的算法流程图:
图1算法流程图
14实验与计算
文献[13]运用改进的遗传算法求解物流配送路径优化问题。
我们就以该文献中的例子进行计算比较。
例某配送中心用2辆汽车对8个客户配送货物。
设汽车的载量为8,000kg,每次配送的最大行驶距离为40km。
配送中心与客户、客户与客户之间的距离如下表(0表示物流中心,1~8表示8个客户点ID):
1
2
3
4
5
6
7
8
7.5
9
20
10
16
6.5
11
15
表1配送中心、客户之间距离(单位:
km)
客户的需求如下表:
客户ID
需求量
表2客户货物需求量(单位:
吨)
文献[13]中,种群大小为50,迭代次数100次。
以下是文献[13]中给出的10次计算的平均结果为71.7km,仅有一次找到最优解67.5km。
用本文的蚁群算法,参数如下:
蚁群共20只蚂蚁,循环10代;
、分别取1和2。
10次计算均找到最优解67.5km。
我们再以文献[6]和文献[14]中的例子进行实验比较。
例2某物流中心有5辆配送车辆,车辆的最大载重量均为8T,一次配送的最大行驶距离均为50km,需要向20个客户送货。
物流中心的坐标为(14.5km,13.0km),20个客户的坐标及其货物需求量见下表:
ID
x轴坐标(km)
y轴坐标(km)
需求量(T)
12.8
8.5
0.1
6.7
16.9
0.9
18.4
3.4
0.4
12
14.8
2.6
1.3
15.4
16.6
1.2
13
1.8
8.7
18.9
15.2
1.5
14
17.1
11.0
1.9
15.5
11.6
0.8
7.4
1.0
1.7
3.9
10.6
0.2
2.8
1.1
7.6
17
11.9
19.8
8.6
8.4
0.6
18
13.2
15.1
1.6
12.5
2.1
19
6.4
5.6
13.8
5.2
9.6
表3客户位置坐标及货物需求量
我们计算10次的结果如下:
次序
总距离
113.0
109.6
110.2
111.7
110.4
111.2
109.1
107.8
表4计算结果及具体方案
10次计算的平均结果110.3083km较文献[6]的平均结果122.0km和文献[14]的平均结果112.5km都有提高,而且最优解107.84km,对应的具体方案为:
0431711200
081915161360
0514212910710
0180
也较文献[14]中的最优解108.6km有了提高。
本文的最优结果图示如下:
图2
15结束语
本文根据物流配送路径优化问题的特点,提出一种基于蚁群算法的优化路径算法。
该算法通过引入遗传算子,在局部搜索过程中能够避免算法早熟、停滞,同时改进信息素的更新方式、客户点选择策略,增强蚁群算法的正反馈作用,从而提高了算法的收敛速度和全局搜索能力。
实验结果表明,改进后的蚁群算法可以快速有效地求得优化物流配送路径的最优解或近似最优解。
本文的研究工作,对蚁群算法及物流配送路径优化问题的研究有一定的参考价值。
参考文献
[1]
BerndBullnheimer,RichaxdFHartl,Christinestrauss.AnimprovedAntSystemalgorithmfortheVehicleRoutingProblem[J].AnnalsofOperationsReseareh,89(1999)319-328.
[2]
LANGMao-xiang.Studyoftheoptimizingofphysicaldistributionroutingproblembasedongeneticalgorithm[J].ChinaJournalofHighwayandTransport,2002,15(3):
76-79.(inChinese)[郎茂祥.基于遗传算法的物流配送路径优化问题研究[J].中国公路学报,2002,15(3):
76-79.]
[3]
XUNing,LIChun-guang,ZHANGJian,etal.StudiesonSomeModernOptimizationAlgorithms.SYSTEMSENGINEERINGANDELECTRONICS.2002Vol.24No.12:
101-104.[徐宁,李春光,张健等.几种现代优化算法的比较研究.系统工程与电子技术,2002年,第24卷第12期:
101-104.]
[4]
CHANGYun-tao,PENGGuo-xiong.Urbanarterialroadcoordinatecontrolbasedongeneticalgorithm[J].JournalofTrafficandTransportationEngineering,2003,3
(2):
106-112.(inChinese)[常云涛,彭国雄.基于遗传算法的城市干道协调控制[J].交通运输工程学报,2003,3
(2):
106-112.]
[5]
LINYang,CAIYuan-li,HUANGYong-xuan.Dynamicorigin-destinationmatrixestimationforfreeways[J].JournalofChang'
anUniversity(NaturalScienceEdition),2003,23(6):
83-86.(inChinese)[林勇,蔡远利,黄永宣.高速公路动态OD矩阵估计[J].长安大学学报(自然科学版),2003,23(6):
83-86.]
[6]
LANGMao-xiang,HUSi-ji.StudyontheOptimizationofPhysicalDistributionRoutingProblembyUsingHybridGeneticAlgorithm.CHINESEJOURNALOFMANAGEMENTSCIENCE,2002Vol.10No.5:
51-56.[郎茂祥、胡思继,用混合遗传算法求解物流配送路径优化问题的研究,中国管理科学,2002,10(10):
51-56.]
[7]
ChenHaijun,ChenTieyin.ApplicationofHybridGeneticAlgorithminVehicleRoutingProblem.COMPUTER&
DIGITALENGINEERING,2005Vol.33No.4:
91-95.[陈海军,陈铁英.混合遗传算法在路径选择问题的应用.计算机与数字工程,第33卷(2005)第4期:
91-95]
[8]
Mar