一种多路径规划方法和系统与流程

专利2022-06-29  72


本申请实施例涉及物流技术领域,具体涉及一种多路径规划方法和系统。



背景技术:

食物配送已成为从餐馆到地方连锁店广泛使用的服务。近年来,随着各种外卖平台的兴起,食品配送发展迅速。通常,餐馆在用餐时间接收来自不同地方的顾客的订单,需要餐厅的配送人员将订购的食品运送到相应的地方尽快为客户服务。工作人员往往会选取最短的旅行路线来遍历所有的客户。因此,食品配送的路径规划可以建模为一个旅行商问题(travelingsalesmanproblem,tsp)——配送员只访问每个客户一次且最后回到出发点。

目前求解tsp的算法基本上都是求出其唯一的最优解,在食品配送问题上,存在交通拥堵等突发情况,这可能会导致最优路径无法采用,而由于没有其他候选路径,导致配送效率低下。

如何综合考虑不同的路径方案和实际情况从而高效的确定出最佳路线,是亟待解决的问题。



技术实现要素:

为此,本申请实施例提供一种多路径规划方法和系统,可以规划多条不同的配送路径,解决了单一路径规划在突发状况时的弊端,进一步可以减少配送时间,提高配送效率。

为了实现上述目的,本申请实施例提供如下技术方案:

根据本申请实施例的第一方面,提供了一种多路径规划方法,所述方法包括:

设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;

根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;

开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;

根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;

总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。

可选地,所述设置路径规划的数组参数,计算数组相似度,包括:

邻接矩阵x中的每个元素表示解中存在边,按照如下公式进行定义:

假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照如下公式计算数组相似性:

其中,aij∈a,bij∈b,n是节点数,aij·bij表示aij和bij相乘;数组相似度为大小在0-1之间的实数。

可选地,设定种群中的蚂蚁为路径规划的数组的元素,所述根据每个种群的信息素矩阵构建若干个解决方案,包括如下步骤:

步骤1:针对一个种群中的全部蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1;

步骤2:设置内部循环迭代次数i=1;

步骤3:利用状态转移规则选择下一个要访问的节点,按照如下公式进行选择:

其中,jk(r)表示从地点r直接到达且不在蚂蚁k访问过的节点序列中的节点集合;τ(r,u)表示边(r,u)上的信息素量;η(r,u)为启发式信息,其值为边(r,u)长度的倒数;β是描述信息素浓度和路径长度信息权重的控制参数,β为正实数;q0是[0,1]区间内的参数,当产生的随机数q≤q0时,蚂蚁选择使启发式信息与信息素量的β指数乘积最大的下一节点,否则,按照s进行选择,s采用轮盘赌选择策略;

步骤4:执行局部更新规则以进行信息素局部更新,按照如下公式进行执行:

τ(r,s)=(1-ρ)·τ(r,s) ρ·τ0

其中,ρ为信息素局部挥发速率,0<ρ<1,τ0为信息素的初始值;

步骤5:迭代次数i=i 1,迭代次数i不大于节点数n时,跳至步骤3继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁;

步骤6:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到步骤2继续顺序执行。

可选地,所述根据总迭代次数判断是否对所述蚁群进行重新划分,包括:

设定总迭代每m次对蚁群进行重新划分,m为大于1的整数;

判断总迭代次数对m取余是否为0,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

可选地,所述执行全局更新规则包括如下步骤:

针对每个信息素矩阵记录其种群目前的最优解,用lpb表示最优解的路径长度;

针对目前的最优解进行更新:将本种群的最优解与其他种群的最优解进行相似度计算,若两者相似度超过相似度阈值δ,则所述目前的最优解不取代原有的最优解;否则,将所述目前的最优解更新原来的最优解,并更新路径长度;

针对每个种群按照如下公式在所述目前的最优解上采用全局更新规则更新对应的信息素矩阵:

τ(r,s)=(1-α)·τ(r,s) α·δτ(r,s)

其中,α为信息素的全局蒸发速率;δτ(r,s)=(lpb)-1

根据本申请实施例的第二方面,提供了一种多路径规划系统,所述系统包括:

预设模块,用于设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;

初始化模块,用于根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;

方案构建模块,用于开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;

更新模块,用于根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;

结果输出模块,用于总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。

可选地,所述预设模块具体用于:

邻接矩阵x中的每个元素表示解中存在边,按照如下公式进行定义:

假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照如下公式计算数组相似性:

其中,aij∈a,bij∈b,n是节点数,aij·bij表示aij和bij相乘;数组相似度为大小在0-1之间的实数。

可选地,设定种群中的蚂蚁为路径规划的数组的元素,所述方案构建模块,具体用于:

步骤1:针对一个种群中的全部蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1;

步骤2:设置内部循环迭代次数i=1;

步骤3:利用状态转移规则选择下一个要访问的节点,按照如下公式进行选择:

其中,jk(r)表示从地点r直接到达且不在蚂蚁k访问过的节点序列中的节点集合;τ(r,u)表示边(r,u)上的信息素量;η(r,u)为启发式信息,其值为边(r,u)长度的倒数;β是描述信息素浓度和路径长度信息权重的控制参数,β为正实数;q0是[0,1]区间内的参数,当产生的随机数q≤q0时,蚂蚁选择使启发式信息与信息素量的β指数乘积最大的下一节点,否则,按照s进行选择,s采用轮盘赌选择策略;

步骤4:执行局部更新规则以进行信息素局部更新,按照如下公式进行执行:

τ(r,s)=(1-ρ)·τ(r,s) ρ·τ0

其中,ρ为信息素局部挥发速率,0<ρ<1,τ0为信息素的初始值;

步骤5:迭代次数i=i 1,迭代次数i不大于节点数n时,跳至步骤3继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁;

步骤6:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到步骤2继续顺序执行。

可选地,所述更新模块,具体用于:

设定总迭代每m次对蚁群进行重新划分,m为大于1的整数;

判断总迭代次数对m取余是否为0,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

可选地,所述执行全局更新规则包括如下步骤:

针对每个信息素矩阵记录其种群目前的最优解,用lpb表示最优解的路径长度;

针对目前的最优解进行更新:将本种群的最优解与其他种群的最优解进行相似度计算,若两者相似度超过相似度阈值δ,则所述目前的最优解不取代原有的最优解;否则,将所述目前的最优解更新原来的最优解,并更新路径长度;

针对每个种群按照如下公式在所述目前的最优解上采用全局更新规则更新对应的信息素矩阵:

τ(r,s)=(1-α)·τ(r,s) α·δτ(r,s)

其中,α为信息素的全局蒸发速率;δτ(r,s)=(lpb)-1

综上所述,本申请实施例提供了一种多路径规划方法和系统,通过设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。可以规划多条不同的配送路径,解决了单一路径规划在突发状况时的弊端,进一步可以减少配送时间,提高配送效率。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

图1为本申请实施例提供的一种多路径规划方法流程图;

图2为本申请实施例提供的多路径规划实施例流程示意图;

图3为本申请实施例提供的一种多路径规划系统。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

蚁群优化(antcolonyoptimization,aco)算法是一项模仿蚂蚁的觅食行为的元启发式技术。大多数aco算法通过状态转移规则和信息素更新规则来寻找全局最优解。蚁群系统(antcolonysystem,acs)算法是一种改进的aco算法,在求解tsp时灵活性和鲁棒性更好。

acs相较于aco,改进了以下三个方面:状态转换规则、全局更新规则和局部更新规则。

状态转移规则又称为伪随机比例规则,更好的利用启发式信息,有效的调节最优路径附近区域开发与其他区域的探索之间的平衡。全局信息素更新规则只在目前得到的最优解上应用,增加最优路径上的信息素浓度,通过引导蚂蚁向最优解搜索来提高搜索效率。局部更新规则将访问边界上的信息素蒸发,以降低其他蚂蚁选择边缘的概率,从而增强了探测能力。然而acs无法找到多个不同的解决方案,因为整个蚁群最终将收敛到一个解决方案。

为了获得不同的最佳解决方案,必须保持种群多样性,以便在搜索过程中保留不同的潜在候选方案。小生境技术(nichingtechniques)是一种能够维持种群多样性的有效方法,它能避免种群的全局收敛性并能获得多种解决方案,但它只适用于连续性的问题。

因此,本申请实施例提供的多路径规划方法和系统,将acs与小生境技术结合起来,在acs中引入了多种群策略,得到了新的合成算法(multi-populationantcolonysystem,macs)。在该算法中,一方面,acs引导蚂蚁在一个有希望的空间寻找最优解。另一方面,多种群策略基于相似性将整个蚁群划分为不同种群。每个种群都可以被看作是一个生态位,在局部空间中各自寻找一个最优解。通过这种方式,macs能够获得多个不同的解决方案。

本申请实施例主要应用于食品配送多路径规划,主要涉及在现实外卖配送问题中,采用一种具有多种群细分策略的acs算法来优化配送的多路径规划。通过规划多条不同的配送路径,解决了单一路径规划在突发状况时的弊端,减少配送时间,提高配送效率。可以保证在路径规划中找到多个不同的解决方案,进一步,使配送员在现实情况中遭遇突发事件时可以更换配送路径,在规定时间内送达食物。

图1示出了本申请实施例提供的多路径规划方法,所述方法包括如下步骤:

步骤101:设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度。

其中,食品配送路径规划的基本参数和公式设置如下:

(1)邻接矩阵x中的每个元素都表示解中存在边,其定义如下公式(1):

(2)假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照如下公式(2)计算相似性:

其中,aij∈a,bij∈b,n是节点数,aij·bij表示aij和bij相乘。如果两者都为1,则结果为1;任何一个为0或者两者均为0,则结果为0。通过这个方式计算得到的相似度为大小在0-1之间的实数。

本申请实施例中涉及到蚂蚁系统acs算法,这是一种模仿自然界蚂蚁群体觅食过程的一种随机搜索算法,在觅食过程中避开障碍物、危险源的最短路径,蚂蚁总能在最后找到一条最优路径。根据蚁群的这一特性,用算法来模拟蚁群行为,找到食品配送时的最短路径,又因为一个蚁群一次只能找到一条路径,将一个大的蚁群根据相似度分成多个小的蚁群,每个蚁群各自工作,从而能找出多条不同的路径。

这里的蚁群就是本申请实施例中的多种群蚁群,首先将其平均分成多个小种群,在食品配送路径规划中互相独立的求取各自的解决方案,并在之后的总迭代中定时进行种群重新划分,以便最后得到多条路径。这里的蚁群具体指的是算法代码中创建的一个类,可以称之为蚂蚁类,在蚂蚁类中包含蚂蚁寻路时需要用到的一系列规则以及函数,用该蚂蚁类设置一个数组,整个数组就是蚁群,数组的每个元素就是一只蚂蚁。为避免过于晦涩的语言,因此直接用蚁群来指这类结构。

步骤102:根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵。

具体来说,每只蚂蚁刚初始化时都是一样的,可以通过平均分配来得到一个种群。在之后的种群划分时由于蚂蚁已经找到了各自路径,需要通过比较彼此规划出的路径的相似度来划分出不同的种群。

每个种群初始化信息素矩阵方法:每个种群建立一个独立的信息素矩阵,所述信息素矩阵中的每个元素初始化为τ0。每个种群对应一个自己的信息素矩阵。

步骤103:开始总迭代;设置iteration=1。进入内部迭代,根据信息素矩阵构建多个解决方案并计算最佳路径的长度;也就是所有蚂蚁根据所属信息素矩阵构建解决方案,并计算解决方案的路径长度。

步骤103是为了求取食品配送的路径。信息素矩阵是用来存储城市节点之间的信息素浓度的矩阵,之后可以在该矩阵上执行局部更新规则和全局更新规则,并根据它获得最优路径。

这里先有一个外循环要循环m次(m为该种群蚂蚁的总数),相当于让所有蚂蚁都规划路径,内部循环次数是n次(n是城市节点的数目),每只蚂蚁需要将每个城市都到达一次且最后回到起点,这样得到的城市节点访问序列就是一条完整的路径。该步骤涉及到的规则都是为了帮助蚂蚁寻得一条最优路径,防止算法收敛于局部最优解。

自然界中的蚂蚁每经过一个地方都会留下信息素,而留下的信息素随着时间也会慢慢蒸发,这对应着局部更新规则。蚂蚁一般通过信息素的浓度选择下一步要去哪里,信息素浓度最高的路径会被选择,但这会造成局部最优的现象,一条非最优路径一旦积累了一定的信息素浓度,之后的蚂蚁就会都盲目选择这条路,无法跳出来寻找全局最优路径。因此蚂蚁会以一定概率不依靠信息素探索新的路径,使其他路径也能积累信息素,帮助获得最优解,这也是该步骤提及的状态转移规则,可以用来提高算法的性能。

经过这一步骤,可以得到该种群m只蚂蚁一次迭代所规划的完整路径m条,为接下来的一系列操作做准备。

在步骤103中具体又包括如下步骤:

s1031:对一个种群中的蚂蚁,一开始所有蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1。

s1032:内部循环迭代次数i=1。

s1033:执行状态转移规则:利用状态转移规则选择下一个要访问的节点,所涉及的参数按照公式(3)如下:

其中,jk(r)表示从城市r可以直接到达的且又不在蚂蚁k访问过的节点序列中的节点集合;τ(r,u)表示边(r,u)上的信息素量;η(r,u)为启发式信息,其值为边(r,u)长度的倒数;β是描述信息素浓度和路径长度信息相对重要性的控制参数,为正实数;q0是一个[0,1]区间内的参数,当产生的随机数q≤q0时,蚂蚁直接选择使启发式信息与信息素量的β指数乘积最大的下一节点,否则按照s进行选择,s采用轮盘赌选择策略,涉及的公式与参数如下公式(4):

s1034:执行局部更新规则:进行信息素局部更新,涉及的公式(5)与参数如下:

τ(r,s)=(1-ρ)·τ(r,s) ρ·τ0(5)

其中,ρ为信息素局部挥发速率,满足0<ρ<1;τ0为信息素的初始值。

s1035:迭代次数i=i 1,迭代次数i小于等于节点数n时,跳至s1033继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁。

s1036:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到s1032继续顺序执行。

在步骤103中,计算最佳路径长度的基本方法如下:在s1036中得到每个种群中k只蚂蚁构造的k条完整路径,计算这些路径的长度,并从中选出每个种群中长度最小的路径(局部最优路径),与各自种群中当前全局最优路径(初始为0,直接将局部最优路径赋值给全局最优路径)比较,更新种群中的全局最优路径。最终能够得到l条不同种群的全局最优路径。

步骤104:根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

在步骤104中,规定总迭代每m次对蚁群进行重新划分,之后不论是否重新划分过均进行信息素全局更新;判断总迭代次数对m取余是否为0?若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;

根据总迭代次数决定是否对蚁群进行重新划分的基本方法,包括如下步骤:

s1041:将所有的蚂蚁按各自所构建的路径长度升序排列,存储在序列lsorted中。

s1042:设置空集pop来存储种群。

s1043:通过循环操作选择l个种子:每次循环选择lsorted中路径长度最短的蚂蚁k检验是否能够成为种子,具体方法采用式(2)依次计算k与pop中已有种子的所有相似度(若pop中无元素,则k与其的相似度为0),如果所有的相似度均小于预先规定的相似度阈值δ,则将k选为种子,从lsorted移除并加入到pop中。循环结束后pop中会存储l个种子。

s1044:l个种子选完后,剩下的蚂蚁分别和l个种子采用式(2)进行相似度计算,各自选取具有与自己最大相似度的种子加入到该种子的种群中。

s1045:种群划分完后,将信息素矩阵和迄今为止在不同种群中建立的最优解重新分配到相应的新种群,具体分配方法为:每个新的种群依次选择与其种子具有最大相似度的最优解以及该最优解对应的信息素矩阵,对于已分配的最优解,不能重复分配使用。

在步骤104中,信息素全局更新方法如下:

步骤1:每个信息素矩阵记录其种群迄今为止的最优解,用lpb表示最优解的路径长度。

步骤2:对目前为止的最优解进行更新:将本种群的最优解与其它l-1个种群的最优解进行相似度计算,如果出现相似度超过相似度阈值δ的情况,则此次的最优解不会取代原有的最优解;否则,用本次最优解更新原来的解,并将其长度更新到lpb。

步骤3:每个种群只在其迄今为止的最优解上采用全局更新规则更新其对应的信息素矩阵,涉及的公式(6)及参数如下:

τ(r,s)=(1-α)·τ(r,s) α·δτ(r,s)(6)

α为信息素的全局蒸发速率;δτ(r,s)=(lpb)-1,lpb为前面所提及的最优解的路径长度。

步骤105:总迭代次数加一,若满足结束条件,则迭代结束,输出:得到的所有解决方案;否则转入步骤103。

总迭代次数iteration=iteration 1,如果总迭代次数超过预设的迭代次数或者求得的解已经达到要求,则结束,并输出每个种群得到的最优解决方案以及路径长度;否则,转入步骤103继续往下执行。

为了使得本申请实施例提供的多路径规划方法更加清楚,现结合图2对实施例进行进一步阐释,图2示出了基于macs算法的多路径规划方法流程图。

步骤201:初始划分整个蚁群。

步骤202:初始化信息素矩阵。

步骤203:开始总迭代,次数iteration=1。

步骤204:所有蚂蚁根据所属的信息素矩阵构建解决方案。

步骤205:计算解决方案的路径长度。

步骤206:判断总迭代次数对m取余是否为0,若是,执行步骤207;若不是,执行步骤208。

步骤207:重新划分整个蚁群。

步骤208:执行全局更新规则。

步骤209:判断是否满足结束条件,若满足,结束;若不满足,执行步骤210。

步骤210:总迭代次数iteration=iteration 1,结束。

其中,在步骤204中,所有蚂蚁根据所属的信息素矩阵构建解决方案中,具体包括如下步骤:

步骤2041:选用编号k=1的蚂蚁。

步骤2042:迭代次数i=1。

步骤2043:执行状态转移规则。

步骤2044:执行局部更新规则。

步骤2045:迭代次数i=i 1。

步骤2046:判断迭代次数i是否大于节点数n,若是,执行步骤2047;若不是,执行步骤2043。

步骤2047:选用编号k=k 1的蚂蚁。

步骤2048:判断蚂蚁编号k是否大于蚂蚁总数,若是,执行步骤205;若不是,执行步骤2042。

将蚁群系统(acs)算法和小生境技术(nichingtechniques)相结合:一方面,acs算法引导蚁群寻找出当前空间内的最优解;另一方面,小生境技术将整个蚁群基于相似性分成不同种群,每个种群可以看做是一个生态位,在局部空间各自寻找一个最优解。在实际的测试中,本申请实施例提供的方法取得的效果达到了令人满意的预期,具有可行性和实用性。

本申请实施例提供的多路径规划方法,在解决tsp时能够得到多个解决方案,基于传统的acs算法加入小生境技术中的多种群策略改进而来。在实际运用中效果显著,在配送员在食品配送过程中提供多种不同的路径方案,可供配送员根据实际情况和个人喜好进行选择,避免了突发状况下单一路径无法采用的弊端。

综上所述,本申请实施例提供了一种多路径规划方法,通过设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。可以规划多条不同的配送路径。

基于相同的技术构思,本申请实施例还提供了一种多路径规划系统,如图3所示,所述系统包括:

预设模块301,用于设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度。

初始化模块302,用于根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵。

方案构建模块303,用于开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径。

更新模块304,用于根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

结果输出模块305,用于总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。

在一种可能的实施方式中,所述预设模块301具体用于:

邻接矩阵x中的每个元素表示解中存在边,按照公式(1)进行定义。

假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照公式(2)计算数组相似性。

在一种可能的实施方式中,设定种群中的蚂蚁为路径规划的数组的元素,所述方案构建模块303,具体用于:

步骤1:针对一个种群中的全部蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1。

步骤2:设置内部循环迭代次数i=1。

步骤3:利用状态转移规则选择下一个要访问的节点,按照公式(3)进行选择。

步骤4:执行局部更新规则以进行信息素局部更新,按照公式(4)进行执行。

步骤5:迭代次数i=i 1,迭代次数i不大于节点数n时,跳至步骤3继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁。

步骤6:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到步骤2继续顺序执行。

在一种可能的实施方式中,所述更新模块,具体用于:

设定总迭代每m次对蚁群进行重新划分,m为大于1的整数;判断总迭代次数对m取余是否为0,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

在一种可能的实施方式中,所述执行全局更新规则包括如下步骤:

针对每个信息素矩阵记录其种群目前的最优解,用lpb表示最优解的路径长度。针对目前的最优解进行更新:将本种群的最优解与其他种群的最优解进行相似度计算,若两者相似度超过相似度阈值δ,则所述目前的最优解不取代原有的最优解;否则,将所述目前的最优解更新原来的最优解,并更新路径长度。针对每个种群按照公式(5)在所述目前的最优解上采用全局更新规则更新对应的信息素矩阵。

本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。


技术特征:

1.一种多路径规划方法,其特征在于,所述方法包括:

设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;

根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;

开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;

根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;

总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。

2.如权利要求1所述的方法,其特征在于,所述设置路径规划的数组参数,计算数组相似度,包括:

邻接矩阵x中的每个元素表示解中存在边,按照如下公式进行定义:

假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照如下公式计算数组相似性:

其中,aij∈a,bij∈b,n是节点数,aij·bij表示aij和bij相乘;数组相似度为大小在0-1之间的实数。

3.如权利要求1所述的方法,其特征在于,设定种群中的蚂蚁为路径规划的数组的元素,所述根据每个种群的信息素矩阵构建若干个解决方案,包括如下步骤:

步骤1:针对一个种群中的全部蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1;

步骤2:设置内部循环迭代次数i=1;

步骤3:利用状态转移规则选择下一个要访问的节点,按照如下公式进行选择:

其中,jk(r)表示从地点r直接到达且不在蚂蚁k访问过的节点序列中的节点集合;τ(r,u)表示边(r,u)上的信息素量;η(r,u)为启发式信息,其值为边(r,u)长度的倒数;β是描述信息素浓度和路径长度信息权重的控制参数,β为正实数;q0是[0,1]区间内的参数,当产生的随机数q≤q0时,蚂蚁选择使启发式信息与信息素量的β指数乘积最大的下一节点,否则,按照s进行选择,s采用轮盘赌选择策略;

步骤4:执行局部更新规则以进行信息素局部更新,按照如下公式进行执行:

τ(r,s)=(1-ρ)·τ(r,s) ρ·τ0

其中,ρ为信息素局部挥发速率,0<ρ<1,τ0为信息素的初始值;

步骤5:迭代次数i=i 1,迭代次数i不大于节点数n时,跳至步骤3继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁;

步骤6:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到步骤2继续顺序执行。

4.如权利要求1所述的方法,其特征在于,所述根据总迭代次数判断是否对所述蚁群进行重新划分,包括:

设定总迭代每m次对蚁群进行重新划分,m为大于1的整数;

判断总迭代次数对m取余是否为0,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

5.如权利要求4所述的方法,其特征在于,所述执行全局更新规则包括如下步骤:

针对每个信息素矩阵记录其种群目前的最优解,用lpb表示最优解的路径长度;

针对目前的最优解进行更新:将本种群的最优解与其他种群的最优解进行相似度计算,若两者相似度超过相似度阈值δ,则所述目前的最优解不取代原有的最优解;否则,将所述目前的最优解更新原来的最优解,并更新路径长度;

针对每个种群按照如下公式在所述目前的最优解上采用全局更新规则更新对应的信息素矩阵:

τ(r,s)=(1-α)·τ(r,s) α·δτ(r,s)

其中,α为信息素的全局蒸发速率;δτ(r,s)=(lpb)-1

6.一种多路径规划系统,其特征在于,所述系统包括:

预设模块,用于设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;

初始化模块,用于根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;

方案构建模块,用于开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;

更新模块,用于根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;

结果输出模块,用于总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。

7.如权利要求6所述的系统,其特征在于,所述预设模块具体用于:

邻接矩阵x中的每个元素表示解中存在边,按照如下公式进行定义:

假设有两个解,设为a和b,分别用两个邻接矩阵a和b表示,按照如下公式计算数组相似性:

其中,aij∈a,bij∈b,n是节点数,aij·bij表示aij和bij相乘;数组相似度为大小在0-1之间的实数。

8.如权利要求6所述的系统,其特征在于,设定种群中的蚂蚁为路径规划的数组的元素,所述方案构建模块,具体用于:

步骤1:针对一个种群中的全部蚂蚁随机或均匀分布在节点上,选择蚂蚁编号k=1;

步骤2:设置内部循环迭代次数i=1;

步骤3:利用状态转移规则选择下一个要访问的节点,按照如下公式进行选择:

其中,jk(r)表示从地点r直接到达且不在蚂蚁k访问过的节点序列中的节点集合;τ(r,u)表示边(r,u)上的信息素量;η(r,u)为启发式信息,其值为边(r,u)长度的倒数;β是描述信息素浓度和路径长度信息权重的控制参数,β为正实数;q0是[0,1]区间内的参数,当产生的随机数q≤q0时,蚂蚁选择使启发式信息与信息素量的β指数乘积最大的下一节点,否则,按照s进行选择,s采用轮盘赌选择策略;

步骤4:执行局部更新规则以进行信息素局部更新,按照如下公式进行执行:

τ(r,s)=(1-ρ)·τ(r,s) ρ·τ0

其中,ρ为信息素局部挥发速率,0<ρ<1,τ0为信息素的初始值;

步骤5:迭代次数i=i 1,迭代次数i不大于节点数n时,跳至步骤3继续顺序执行;否则,蚂蚁k的搜索结束选取编号为k=k 1的蚂蚁;

步骤6:若蚂蚁的编号k超过了蚂蚁总数,则结束构造路径;否则,跳转到步骤2继续顺序执行。

9.如权利要求6所述的系统,其特征在于,所述更新模块,具体用于:

设定总迭代每m次对蚁群进行重新划分,m为大于1的整数;

判断总迭代次数对m取余是否为0,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则。

10.如权利要求9所述的系统,其特征在于,所述执行全局更新规则包括如下步骤:

针对每个信息素矩阵记录其种群目前的最优解,用lpb表示最优解的路径长度;

针对目前的最优解进行更新:将本种群的最优解与其他种群的最优解进行相似度计算,若两者相似度超过相似度阈值δ,则所述目前的最优解不取代原有的最优解;否则,将所述目前的最优解更新原来的最优解,并更新路径长度;

针对每个种群按照如下公式在所述目前的最优解上采用全局更新规则更新对应的信息素矩阵:

τ(r,s)=(1-α)·τ(r,s) α·δτ(r,s)

其中,α为信息素的全局蒸发速率;δτ(r,s)=(lpb)-1

技术总结
本申请实施例公开了一种多路径规划方法及系统,其中所述方法包括:设置路径规划的数组参数,计算数组相似度,将所述数组参数确认为蚁群参数,将所述数组相似度确认为蚁群相似度;根据所述蚁群相似度划分蚁群为若干个种群,并初始化每个种群的信息素矩阵;开始总迭代,根据每个种群的信息素矩阵构建若干个解决方案,计算每个解决方案中的最佳路径;根据总迭代次数判断是否对所述蚁群进行重新划分,若是,重新划分整个蚁群,并执行全局更新规则;若不是,执行全局更新规则;总迭代次数加一,当满足结束条件时迭代结束,得到若干个种群的最佳路径及路径长度。可以规划多条不同的配送路径。

技术研发人员:龚月姣;邵鑫仙;詹志辉;钟竞辉
受保护的技术使用者:华南理工大学
技术研发日:2020.01.21
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-50069.html

最新回复(0)