本发明涉及一种物流配送路径规划方法,属于物流配送技术领域。
背景技术:
邮政速递物流的业务一般是借用普通服务的邮政网络,通过不同地区的速递物流营业网点进行邮件的配送。实际上,邮车在进行配送作业时,其路径的选择一般都是靠邮车司机的配送经验,没有科学的路径选择依据,对于配送路径的选择比较盲目,甚至有时邮车司机现在的是最不合理的配送路径,远远增大了配送环节的物流成本,从而使速递物流企业得不到满意的收益。因此,在实际的物流配送中,邮车在营业网点之间的路径选择成为影响速递物流配送成本高低的关键因素。配送路径安排的合理与否对配送速度、成本、效益影响很大,采用科学、合理的方法对邮车路径进行优化是速递物流邮车高效率、高质量完成配送任务的关键所在。
速递物流邮车的路径问题需要研究的是:如何在复杂的交通网络中快速、科学的寻找合适的行车路线,有效的解决速递物流配送过程中邮车路径的选择问题,以便达到最大限度的减少配送时间,节省配送过程中产生的成本;可以实现准时运输,按客户要求的指定时间段将邮件送到客户手中,做到人性化服务,更能满足当今消费者对速递物流的要求;在完成配送作业的同时,使配送过程的总成本降低,提高企业效益,优化资源配置,提高物流水平。在众多解决配送车辆路径问题的算法中,蚁群算法逐步被应用到车辆路径优化领域中来,成为近年来学者研究优化组合问题的热点,然而蚁群算法在求解实际问题的最优路径时不仅搜索时间过长,而且容易陷入局部最优,因此需要在理论层面对蚁群算法的改进是非常必要的。
车辆路径问题的研究具有重要的理论意义,在解决实际问题时应用范围广泛。1959年解决车辆路径问题的算法被提出后并没有得到学者们的关注,直到1964年,clarke和wright提出一种danting-ramser方法改进算法—启发式danting-ramser节约算法,由此车辆路径问题得到了众多学者的青睐。随着学者们的不断研究和探索,车辆路径问题的研究方法不断更新和完善,国内越来越多的学者开始研究解决车辆路径优化问题算法。
基于混沌神经网络的路径优化策略,结合供应链需要给出允许两次服务失败的数学模型,提出了一种混合神经网络求解算法,解决了供应链中随机需求车辆路径问题。但是这种方法车辆超负荷运行,利用效率低,管理方法落后,随着企业规模的不断扩大,配送业务量以及配送网点的逐渐增多,这种方法不仅不能完成配送业务,还会还给企业带来巨大的成本,造成人力与财力的浪费,严重制约了企业的发展。
基于多级路径优化的路径规划策略,克服了蚁群算法在信息栅格中路径优化容易陷入单路径死锁的弱点,加强蚁群算法搜索的正反馈、高效收敛的优势,避免算法过早或过晚结束而影响划分算法的整体性能,使得信息栅格节点调度能依据任务量和路径性能进行有效的分配。但是这种方法计算初期信息素匮乏,求解速度慢,当问题规模较大时,蚁群算法在搜索最优路径时搜索速度过慢,需要耗费大量时间才能得到高质量的解。
基于互信息相似度的混合蚁群算法路径优化策略,为了表示最优路径和待配准路径之间的互信息熵,在蚁群算法的概率算子中增加了一个新的相似度影响因子,从而可以增加原算法的全局搜索能力,同时可以加速算法在解空间的搜索速度将该算法应用在旅行商问题上,根据旅行商问题的特定环境,对混合蚁群算法的算式进行了一定程度的化简,使得算法在解决此类问题时,相应的时间复杂度降低。但是这种方法当搜索开始进行到一定程度后,所有蚂蚁找到的解会与某个或是某些局部最优解相近,从而出现停滞现象,导致蚁群算法无法继续对解空间进行进一步搜索,不利于发现全局的最优解。
技术实现要素:
本发明所要解决的技术问题是提供一种提高算法性能和搜索能力,并能够均衡时间效率和求解效率的物流配送路径规划方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种物流配送路径规划方法,用于完成各个配送点配送路径的规划,首先初始化n=1,然后执行如下步骤:
步骤a.根据蚁群算法,分别以各个任意配送点为起点,获得第n次循环下各条分别覆盖所有配送点的初级配送路径,该次循环下初级配送路径的数量等于预设第一数量,且各条初级配送路径中分别所经过的配送点数量均等于所有配送点的总数;同时,基于第n次循环下各条初级配送路径的获得,针对所有配送点,更新各个配送点之间配送路径上的信息素;然后进入步骤b;
步骤b.针对第n次循环下各条初级配送路径,选择路径长度低于预设路径长度阈值的各条初级配送路径,作为第n次循环下各条中级配送路径,然后进入步骤c;
步骤c.采用遗传算法,针对第n次循环下各条中级配送路径进行交叉、变异操作,获得单条初级最优配送路径,作为第n次循环下初级最优配送路径,然后进入步骤d;
步骤d.判断n是否等于预设最大循环次数nmax,是则进入步骤e;否则针对n的值进行加1更新,并返回步骤a;
步骤e.针对各次循环下初级最优配送路径,选择最短路径长度的初级最优配送路径,作为最优配送路径,用于完成各个配送点的配送。
作为本发明的一种优选技术方案,所述步骤a包括如下步骤:
步骤a1.针对所有配送点,根据蚁群算法,将k只蚂蚁分别随机分布在任意配送点上,并构建分别对应各只蚂蚁的各个配送禁忌表为空,然后进入步骤a2;其中,k等于预设第一数量;
步骤a2.分别针对各只蚂蚁,根据蚂蚁所在配送点,在排除该蚂蚁所对应配送禁忌表中配送点的前提下,通过状态转移概率公式获得该蚂蚁的下一中转配送点,并将该配送点加入该蚂蚁所对应的路径当中,同时将该配送点加入该蚂蚁所对应的配送禁忌表中,如此循环执行本步骤上述操作,直至该蚂蚁所经过路径覆盖所有配送点,由此获得各只蚂蚁分别所对应的路径,即获得第n次循环下的k条初级配送路径,然后进入步骤a3;
步骤a3.根据蚁群算法,基于所获第n次循环下的k条初级配送路径,更新各个配送点之间配送路径上的信息素,然后进入步骤b。
作为本发明的一种优选技术方案,所述步骤c包括如下步骤:
步骤c1.针对所有配送点,分别采用不同数值进行标记,获得各个配送点分别所对应的配送标记值,然后进入步骤c2;
步骤c2.根据各个配送点分别所对应的配送标记值,构建第n次循环下各条中级配送路径分别所对应的配送标记值序列,然后进入步骤c3;
步骤c3.采用遗传算法,针对第n次循环下的各个配送标记值序列进行交叉、变异操作,获得单条初级最优配送标记值序列,然后进入步骤c4;
步骤c4.根据各个配送点分别所对应的配送标记值,获得初级最优配送标记值序列所对应的路径,即第n次循环下初级最优配送路径,然后进入步骤d。
作为本发明的一种优选技术方案,还包括步骤b-c如下,执行完步骤b之后,进入步骤b-c,执行完步骤b-c之后,进入步骤c;
步骤b-c.将配送中心节点加入至第n次循环下各条中级配送路径中的开头,更新第n次循环下的各条中级配送路径;
所述步骤c中,针对第n次循环下的各条中级配送路径,采用遗传算法,在保持各条中级配送路径中开头节点不变的情况下,针对各条中级配送路径进行交叉、变异操作,获得单条初级最优配送路径,作为第n次循环下初级最优配送路径。
作为本发明的一种优选技术方案,所述步骤c包括如下步骤:
步骤c1.针对配送中心节点和所有配送点,分别采用不同数值进行标记,获得配送中心节点和各个配送点分别所对应的配送标记值,然后进入步骤c2;
步骤c2.根据配送中心节点和各个配送点分别所对应的配送标记值,构建第n次循环下各条中级配送路径分别所对应的配送标记值序列,然后进入步骤c3;
步骤c3.针对第n次循环下的各个配送标记值序列,采用遗传算法,在保持各个配送标记值序列中第一个配送标记值不变的情况下,针对各个配送标记值序列进行交叉、变异操作,获得单条初级最优配送标记值序列,然后进入步骤c4;
步骤c4.根据各个配送点分别所对应的配送标记值,获得初级最优配送标记值序列所对应的路径,即第n次循环下初级最优配送路径,然后进入步骤d。
本发明所述一种物流配送路径规划方法,采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明设计的物流配送路径规划方法,在复杂的交通网络中快速科学的寻找合适的行车路线,以便最大限度的减少配送时间,节省配送过程中产生的成本;
(2)本发明设计的物流配送路径规划方法,可以实现准时运输,按照客户要求的指定时间段将邮件送到客户手中,做到人性化服务,更能满足当今消费者对速递物流的要求;
(3)本发明设计的物流配送路径规划方法,在完成配送作业的同时,使配送过程的总成本降低,提高企业效益,优化资源配置,提高物流水平;
(4)本发明设计的物流配送路径规划方法,改进路径搜索算法,解决蚁群算法在寻找最优路径时存在的求解速度慢,跟不上问题规模扩大,陷入局部最优等缺陷。
附图说明
图1是本发明所设计物流配送路径规划方法的示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
蚁群算法是通过信息素的累积和更新来选择最优路径,具有分布、并行、全局收敛能力,但是搜索初期信息素匮乏,算法运行速度慢;相比之下,遗传算法具有快速全局搜索能力,但其随机性较强,无法保证每次都能快速准确地收敛于最优解。遗传算法和蚁群算法各自有各自的优势,而且两种算法的结合会有很强的互补性,因此本文将遗传算法引入蚁群算法将极大地提高算法的性能和搜索能力。
为了提高算法的性能和全局搜索能力,弥补蚁群算法和遗传算法各自的缺陷,我们引入遗传算法的交叉、变异操作,能够有效避免在局部搜索过程中的早熟、早收敛现象。利用遗传算法的随机搜索、快速、全局收敛性产生所要解决问题的初始解,并将该初始解转化为蚁群算法的初始信息素分布,然后利用蚁群算法的并行性、正反馈机制以及求解效率高等特点寻求最优解,克服了蚁群算法初始信息素匮乏不足的问题,得到时间效率和求解效率都比较好的启发式算法。
蚁群算法从第一个城市走到最后一个城市走完所有城市后,对于蚁群算法而言完成了对模型中全部城市的访问,在这种情况下禁忌表被填满,通过计算可以得出每只蚂蚁走过的路径长度,两两进行对比后选出最短路径。随后不断重复清空禁忌表、更新信息素这两个过程,一直到完成所需遍历的次数或一定的循环过程中你没有出现更好的解为止。
应用蚁群算法求解路径规划实际问题,首先应生成具有一定数量蚂蚁的蚁群,每只蚂蚁从初始节点出发,根据路径上的信息素浓度选择下一个转移节点,直到建立起一个解;蚂蚁根据所找到解得好坏程度在经过的路径上释放与解的质量成正比的信息素;,每只蚂蚁开始新的求解过程,直到找到满意解。
本发明所设计物流配送路径规划方法中,基于蚁群算法的应用,同时引入遗传算法,其中,遗传算法对蚁群算法改进主要通过以下几个具体步骤实现:
1、复制:即在每一轮搜索后,将父代的最优解复制到下一代,使得算法的最优个体能够在算法中得到延续
2、编码:对车辆路径问题的模型进行编码,将模型中的数学数据转化为基因数据,针对各个客户点,采用彼此互不相同的数分别进行标识;针对各辆配送车,同样采用互不相同的数值进行分别标记。
3、交叉:遗传算法中的交叉操作可以增加种群多样性,将交叉操作引入蚁群算法可以有效的扩大搜索空间,有效避免陷入局部最优解。经过蚁群算法搜索结束之后,将最优解和次优解进行交叉,直到得到有效解。
4、变异:在交叉操作形成子代种群基础上,适度的变异既能保持种群内个体的多样化,又能提高算法的效率。如种群中最优个体的编码s,在此我们选择随机生成两个不同的自然数n1,n2,且满足n1,n2>1,将第n1位的编码相互对调,则生成新的编码s’即产生新的配送路径。
将遗传算法和蚁群算法进行结合后,算法寻找最优解的速度和搜索能力得到了一定的提高,具体从状态改变规则、可见度、信息素更新这三个方面来说明。
1、改进状态转移规则:为了防止蚁群算法容易陷入局部最优解,在蚁群算法的模型中引入一个新的参数f,当蚂蚁k从城市i访问城市j时,首先在区间[0,1]上产生一个随机数f,当f的值小于参数f时,蚂蚁根据参数f选择下一个城市。改进后的状态转移规则如下:
加入参数f后,限制了因为蚂蚁的正回馈行而导致出现较大误差解的影响,当蚂蚁在对下一个城市进行访问时,增强了算法的随机发现能力,扩大了发现解的范围空间,成功的解决了算法过早陷入某个范围内最优解的缺陷。
2、可见度的改进:定义一个城市之间的对比距离uij:uij=doi+doj-dij,其中doi,doj,dij分别表示城市0中心到城市i的距离,城市0到城市j的距离,城市i到城市j的距离。uij的值越高说明应当在访问城市i之后直接访问城市j,因此将改进可见度为:
为避免dij=0而使可见度趋于无限大,又当分母为1时,ηij=1,系数不起作用,在分母上加入常数c(c>1)可以保证可见度对城市节点选择的影响。
3、改进信息素更新规则:信息素更新中通过信息素挥发系数p的引入来提高对尚未访问路径的搜索机会,扩大搜索空间,避免过早出现停滞现象。蚂蚁k在搜索最优路径过程中,当从节点i转移到节点j后,对节点i、j之间的信息素按照下式进行局部更新:τ(i,j)←(1-ρ)·τ(i,j)+ρ·δτ(i,j)
其中,δτ(i,j)=τ0
针对上述遗传算法对蚁群算法的改进,我们发现改进蚁群算法在整体结构上保持和蚁群算法一致,只需要在模型中增加遗传算法的选择、交叉、变异等操作算子。改进蚁群算法的物流配送路径优化问题的算法流程如下图所示。
如图1所示,本发明所设计一种物流配送路径规划方法,用于完成各个配送点配送路径的规划,实际应用中,我们针对遗传算法的应用具体分为两种设计考虑,第一种,在遗传算法中不涉及到配送中心节点的考虑,即应用设计遗传算法中,获得仅基于各个配送点的最优配送路径,然后由配送中心节点出发,沿最优配送路径进行配送;第二种,在遗传算法中考虑到配送中心节点,即应用设计遗传算法中,获得基于配送中心节点和各个配送点的最优配送路径,然后直接沿最优配送路径进行配送。
我们首先看第一种对应的实施例,首先初始化n=1,然后执行如下步骤:
步骤a.根据蚁群算法,分别以各个任意配送点为起点,获得第n次循环下各条分别覆盖所有配送点的初级配送路径,该次循环下初级配送路径的数量等于预设第一数量,且各条初级配送路径中分别所经过的配送点数量均等于所有配送点的总数;同时,基于第n次循环下各条初级配送路径的获得,针对所有配送点,更新各个配送点之间配送路径上的信息素;然后进入步骤b。
上述步骤a具体包括如下步骤:
步骤a1.针对所有配送点,根据蚁群算法,将k只蚂蚁分别随机分布在任意配送点上,并构建分别对应各只蚂蚁的各个配送禁忌表为空,然后进入步骤a2;其中,k等于预设第一数量。
步骤a2.分别针对各只蚂蚁,根据蚂蚁所在配送点,在排除该蚂蚁所对应配送禁忌表中配送点的前提下,通过状态转移概率公式获得该蚂蚁的下一中转配送点,并将该配送点加入该蚂蚁所对应的路径当中,同时将该配送点加入该蚂蚁所对应的配送禁忌表中,如此循环执行本步骤上述操作,直至该蚂蚁所经过路径覆盖所有配送点,由此获得各只蚂蚁分别所对应的路径,即获得第n次循环下的k条初级配送路径,然后进入步骤a3。
步骤a3.根据蚁群算法,基于所获第n次循环下的k条初级配送路径,更新各个配送点之间配送路径上的信息素,然后进入步骤b。
步骤b.针对第n次循环下各条初级配送路径,选择路径长度低于预设路径长度阈值的各条初级配送路径,作为第n次循环下各条中级配送路径,然后进入步骤c。
步骤c.采用遗传算法,针对第n次循环下各条中级配送路径进行交叉、变异操作,获得单条初级最优配送路径,作为第n次循环下初级最优配送路径,然后进入步骤d。
上述步骤c具体包括如下步骤:
步骤c1.针对所有配送点,分别采用不同数值进行标记,获得各个配送点分别所对应的配送标记值,然后进入步骤c2。
步骤c2.根据各个配送点分别所对应的配送标记值,构建第n次循环下各条中级配送路径分别所对应的配送标记值序列,然后进入步骤c3。
步骤c3.采用遗传算法,针对第n次循环下的各个配送标记值序列进行交叉、变异操作,获得单条初级最优配送标记值序列,然后进入步骤c4。
步骤c4.根据各个配送点分别所对应的配送标记值,获得初级最优配送标记值序列所对应的路径,即第n次循环下初级最优配送路径,然后进入步骤d。
步骤d.判断n是否等于预设最大循环次数nmax,是则进入步骤e;否则针对n的值进行加1更新,并返回步骤a。
步骤e.针对各次循环下初级最优配送路径,选择最短路径长度的初级最优配送路径,作为最优配送路径,用于完成各个配送点的配送。
接着看第二种对应的实施例,首先初始化n=1,然后执行如下步骤:
步骤a.根据蚁群算法,分别以各个任意配送点为起点,获得第n次循环下各条分别覆盖所有配送点的初级配送路径,该次循环下初级配送路径的数量等于预设第一数量,且各条初级配送路径中分别所经过的配送点数量均等于所有配送点的总数;同时,基于第n次循环下各条初级配送路径的获得,针对所有配送点,更新各个配送点之间配送路径上的信息素;然后进入步骤b。
上述步骤a具体包括如下步骤:
步骤a1.针对所有配送点,根据蚁群算法,将k只蚂蚁分别随机分布在任意配送点上,并构建分别对应各只蚂蚁的各个配送禁忌表为空,然后进入步骤a2;其中,k等于预设第一数量。
步骤a2.分别针对各只蚂蚁,根据蚂蚁所在配送点,在排除该蚂蚁所对应配送禁忌表中配送点的前提下,通过状态转移概率公式获得该蚂蚁的下一中转配送点,并将该配送点加入该蚂蚁所对应的路径当中,同时将该配送点加入该蚂蚁所对应的配送禁忌表中,如此循环执行本步骤上述操作,直至该蚂蚁所经过路径覆盖所有配送点,由此获得各只蚂蚁分别所对应的路径,即获得第n次循环下的k条初级配送路径,然后进入步骤a3。
步骤a3.根据蚁群算法,基于所获第n次循环下的k条初级配送路径,更新各个配送点之间配送路径上的信息素,然后进入步骤b。
步骤b.针对第n次循环下各条初级配送路径,选择路径长度低于预设路径长度阈值的各条初级配送路径,作为第n次循环下各条中级配送路径,然后进入步骤b-c。
步骤b-c.将配送中心节点加入至第n次循环下各条中级配送路径中的开头,更新第n次循环下的各条中级配送路径,然后进入步骤c;
步骤c.针对第n次循环下的各条中级配送路径,采用遗传算法,在保持各条中级配送路径中开头节点不变的情况下,针对各条中级配送路径进行交叉、变异操作,获得单条初级最优配送路径,作为第n次循环下初级最优配送路径,然后进入步骤d。
上述步骤c具体包括如下步骤:
步骤c1.针对配送中心节点和所有配送点,分别采用不同数值进行标记,获得配送中心节点和各个配送点分别所对应的配送标记值,然后进入步骤c2。
步骤c2.根据配送中心节点和各个配送点分别所对应的配送标记值,构建第n次循环下各条中级配送路径分别所对应的配送标记值序列,然后进入步骤c3。
步骤c3.针对第n次循环下的各个配送标记值序列,采用遗传算法,在保持各个配送标记值序列中第一个配送标记值不变的情况下,针对各个配送标记值序列进行交叉、变异操作,获得单条初级最优配送标记值序列,然后进入步骤c4。
步骤c4.根据各个配送点分别所对应的配送标记值,获得初级最优配送标记值序列所对应的路径,即第n次循环下初级最优配送路径,然后进入步骤d。
步骤e.针对各次循环下初级最优配送路径,选择最短路径长度的初级最优配送路径,作为最优配送路径,用于完成各个配送点的配送。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。