一种WSRNs中机器人替换失效传感器的路径优化方法与流程

文档序号:19282874发布日期:2019-11-29 23:09阅读:378来源:国知局
一种WSRNs中机器人替换失效传感器的路径优化方法与流程

本发明涉及无线传感器和机器人网络(wsrns)中机器人修复传感器领域,特别是一种获得wsrns中利用机器人从基站出发所携带的传感器或在行进中拾取的冗余传感器替换区域中无效传感器的最优路径的确定方法。



背景技术:

网络的完全覆盖对于完成已发布的传感任务非常重要,无效传感器必须及时修复或更换。利用机器人灵活和不受约束的运动特点,在其帮助下更换无效传感器是有效的。利用机器人解决wsrns中的传感器替换问题的目标在于最小化机器人访问传感器节点的路径成本,即路径最短。wsrns中部署了大量传感器,当机器人在整个环境中移动时,找到一条最佳轨迹是一个十分复杂的问题。文献[falconr,lix,nayaka,etal.theone-commoditytravelingsalesmanproblemwithselectivepickupanddelivery:anantcolonyapproach[c]//ieeecongressonevolutionarycomputation,cec2010,2010:1-8]将该问题建模为具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd),采用蚁群算法求解,仅适用于小规模传感器分布的情况。由于其算法本身的限制,随着问题规模的增加,算法容易陷入局部最优解,故该方法不能处理大规模分布的传感器替换问题。而本发明的动态构建算法更贴近1-tsp-selpd问题的特点,容易搜索到全局最优方案,可有效地实现大规模传感器分布情况下机器人的路径规划。在现实问题中,问题往往是大规模的,本发明对此具有更好的应用适应性。



技术实现要素:

针对“无线传感器与机器人网络(wsrns)”区域内利用冗余传感器或从基站携带的传感器替换无效传感器问题,本发明提供了一种获得机器人最优运行路径的方法,以使得机器人更高效地完成任务。发明提供了一个两阶段的解决方法:第一阶段,基于既有lkh(lin-kernighanheuristic)算法获得一条连接所有待替换的传感器(d点)的初始最短路径;第二阶段,利用发明的动态构建算法构建出一条连接所有d点和部分p点(被拾取的冗余传感器)的最优路径,选择路径上的冗余传感器,并将其携带至d点以逐一替换失效传感器。其目的在于,克服现有技术难以处理大规模传感器分布问题的不足,以迅速地获得更大规模的传感器分布条件下的机器人的最优路径。

所述初始最短路径是指通过经典的lkh算法得到的最短lkh路径。lkh算法以随机化方式产生的初始路径为基础,重复执行交换操作,将一种路径转换为另一种路径,直至交换不出改善的路径,此当前路径即为最短lkh路径。

所述机器人最优路径是指在此不完整的初始最短路径的基础上通过发明的动态构建算法将区域内有利的冗余传感器节点(p点)插入该路径,多次迭代后得到的路径成本最小的解。插入p点的具体实现包括两个过程:

(1)构建候选边集,在此集合中以轮盘赌法随机地选择一条边;

(2)在此边附近随机地选择一个p点。

所述具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd)模型为:

本方法用一个完全图g=(v,e)表示传感器网络,其中v={v0,v1,...,vn}是顶点集,e={eij}是边集,eij是传感器顶点vi和vj之间的边,其中eij的成本等于其欧几里德长度d(eij)。v中的元素包含取货节点和交货节点,qi是节点属性(1代表取货节点,-1代表交货节点)。而且,v0是基站,且q0=0。每个移动机器人最多可以携带qmax个传感器(即容量为qmax),因此机器人的载重q在经过eij时必须满足0≤q≤qmax。算法的目标函数是即找到一条连接所有d点及部分p点的满足以下要求的最小成本且可行的路径

(1)机器人从基站开始并在基站结束;

(2)交货节点的入度与出度相等,为1,取货节点的入度与出度相等,小于或等于1;

(3)满足所有交货节点的需求;

(4)对于每次访问节点,机器人载重不超过其最大载重(容量)。

具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd)用以下数学公式表示:

xij∈{0,1}(6)

其中,vp为取货节点集;vd为交货节点集;cij为边eij的成本,大于零;为边eij的载重,如果边eij不属于路径,为0;如果边eij属于路径,xij为1,否则为0。等式1陈述了1-tsp-selpd的目的,其将移动机器人的总路径成本最小化;约束2确保每个取货节点最多被访问一次;约束条件3要求每个交货节点和基站必须只被访问一次;约束4让每条边的载重足以满足需求并且不超过机器人的容量;约束5保证消除节点间的子路径。

所述的基于动态构建算法的路径优化方法,具体包括以下步骤:

步骤1:利用lkh算法生成包括所有d点的最短路径,用集合表示,其中nd是所有d点的个数。此集合中的边是有序的,从边l1到边依次排列,此排列的方向是路径的前进方向。

步骤2:可行边集的动态构建。以lkh所构建的路径作为基础,利用动态构建算法沿着lkh路径不断地选边,插入p点,将这些点顺序地连接到基站所形成的路径,就是一个可行解。图2示例地展示了插入p点形成新路径的基本过程:d1,d2,d3,d4是待替换的d点,在边d2d3的附近(某个范围内)选择一点p1,删除d2d3边后,形成了路径d1d2p1d3d4;进而,在边p1d3的附近选择一点p2,删除p1d3边后,形成路径d1d2p1p2d3d4.

具体包括以下过程:

将lkh算法获得的lkh路径的各边依次纳入lkh集合,记为slkh,集合中的元素称为lkh边。从该集合中取出的元素用于构建解的候选边集。候选边集是指这个集合中的边可以被选择用以构建椭圆点集(即以该边为椭圆的长轴,椭圆内的点构成的点的集合),令当前路径的候选边集合为sce={e1,e2,...,ei+k},其中i是指已经从slkh中取出的边的数量,即已经添加到sce中的lkh路径上的前i条边,k是已插入到sce中的p点的数量(添加一个节点即添加了一条边,k={1,2,.....,nd-q0},其中nd是所有d点的数量,q0是从基站出发时携带的荷载数量)。slkh集合中的边li(i=1,2,...,nd)移入sce后称为l-edge(如图1中的d2d3);以l-edge为底边插入p点之后所形成的新的路径边,称为e-edge(如图1中的d2p1,p1d3)。这两类边的远离基站的那个端点的叫做该边的尾点(如图1中的d3是d2d3,p1d3和p2d3的尾点)。l-edge的尾点是d点,而e-edge的尾点则不一定是d点。

a)设定候选边集sce的约束条件

当前路径上存在一个待替换的d点。sce所对应的当前路径上的最后一边的尾点始终保留一个待替换的d点,即sce中最后一个元素(边)的尾点是一个待替换的d点。因为每捡起的一个p点,即意味着一个d点被替换,因此,须使得sce对应的路径上至少存在一个待替换的d点,以便将搜索到的p点上的荷载可替换此d点。

满足边的荷载约束。机器人不能携带超过其容量的荷载。令loadi来表示机器人经过边i时所携带的荷载数。当机器人在p点捡取一个荷载后,其随后各边的loadi将增加1。不断地捡取荷载必使得机器人经过某一条边时达到容量,因此,必须设定此容量限制。

b)构建候选边集sce

sce集合的初始化是构建集合sce的第一步。拓展、生长和缩减边的三种操作被用来使这个候选边集合发生变化,以不断获取更多新的p点。

c)在候选边集sce中选择边e

用轮盘赌法选择候选边集中的一边,作为构建椭圆点集的椭圆长轴。算法设置了参数m来控制边的长度对选择结果的影响,参数m是将候选边集的每个边的长度设置为长度的m次方。

d)在该边e上构建椭圆点集,并在构建的椭圆域中选择p点

以该边为椭圆的长轴建立椭圆区域,采用随机的方式在椭圆域中获得一个p点。选择p点的基本原则是尽可能地减少新路径的长度。椭圆区域的大小通过改变椭圆的短轴长度来调整。图3表示了椭圆形区域。

椭圆是在局部坐标系统uo′v下构造的,交货节点d点和取货节点p点的位置是在全局坐标系xoy下确定的,需将椭圆方程从局部坐标系转换到全局坐标系,以判断取货节点p(x,y)是否在椭圆内。若点p满足等式(7),则表示该点在椭圆区域内。

b=a·r(9)

式中a,b分别为椭圆的长半轴和短半轴,r是二者的比值,α是坐标系uo′v旋转到全局坐标系xoy的角度,(s,t)是边e的中点(坐标系uow的原心)在坐标系xoy的坐标。

对于椭圆内存在不止一个p点的情况,采用随机策略选择一个p点。对于在椭圆区域内没有p点的情况,则重新选择另外一边e,再进行选点操作。如果一定次数(通常取10次)的选边之后,仍然选不到点就直接插入等式(7)所计算的loc(x,y)值中最小的点p。

步骤3:重复步骤2,直至达到指定迭代次数(根据问题规模,选择实验结果中能达到稳定结果的次数)。其中路径成本最小的可行解即为所求连接所有d点和部分p点的机器人最优路径。

所述步骤2中步骤b)的候选边集sce的构建过程如下:

(1)sce集合的初始化

如果基站没有荷载可以提供,即q0=0。将lkh路径上的第一条l1边纳入集合sce,并保留1个d点,以便边l1附近的p点(基于该边所构建的椭圆点集中的点)被捡起来后能替换该d点,如图4。

如果基站提供荷载,即q0≠0,则先将从基站携带的荷载就近替换到从基站开始的lkh路径上的q0个d点。因为此路径本身就是最短路径,也就是将sce初始的q0个l-edge的尾点由基站携带的q0个荷载替换。为了获得这q0个尾点,需将q0中排在前面的1+q0条边添加至sce,此时t=q0+2。如图5,q0=2,添加od1、d1d2至sce,并用携带的荷载替换d1和d2。

除了添加q0条lkh边用于提供q0个d点以便被这q0个携带的荷载替换外,还考虑到沿这些点构成的路径的附近捡取一个荷载后,尚需存在1个d点作为此捡起的荷载的替换位置。如图5,d1d2被替换后,尚应添加边d2d3至sce。

图4和图5中,实线表示lkh路径中移入sce的边,空心圆表示未被替换的d点,实心圆表示已经被替换的d点,o点表示基站,low,up表示指向当前sce集合的上下界的指针,t是当前已经移入sce的slkh中的最后一边的下一边,叫做lkh当前边,作为下一次准备移入sce的边。

(2)sce集合的拓展

替换l-edge的尾点的荷载的来源有两种:①来自于基站的荷载,由机器人来替换sce集合的开始的q0个边;②由l-edge和e-edge的拓展后获得的荷载,去替换当前sce集合的最后一边的尾点。“拓展”是指在l-edge上构建椭圆点集并允许在其中选择p点,由此所选择的p点连接而成的e-edge被增加在sce中,sce中任何一个边(l-edge或e-edge)可以被选择以构建椭圆点集,并且该椭圆点集被用于选点。

l-edge和e-edge是在sce中选择的,具体方法是:首先,按轮盘赌法从sce中选择一边,如图6中的e;然后,基于这条边,构建椭圆点集,在椭圆点集中,按步骤d的方法获得点p。

在e-edge边选点存在比在l-edge边附近选点所形成的路径的总长度更短的可能性。如图7b和7c,基于d2d3拓展出p3而生成d1p1d2p3d3(图7b)和基于p1d2拓展出p2而生成d1p1p2d2d3(图7c)两种情况中,前者的路径长度比后者更长一些。因此,e-edge应当被不断地拓展,即可以继续基于添加的e-edge边构建椭圆点集并选点,如图7c,d1d2d3是原始的lkh路径,在d1d2上拓展得到p1后,在p1d2上继续拓展得到p2。这种不断拓展e-edge的方式,拓宽了p点的搜索范围,增加了解的多样性。通过重复使用这种在不同的e-edge上选p点的方式可连续地获得大量的可行解。其终止条件是,sce内某边的荷载达到了边的容量。

捡起一个荷载将引起插入点之后的各边荷载数变化。如图6,插入取货节点p点后,loade2=loade1+1,且e2随后各边loadi=loadi+1(i=e2+1,e2+2,.....,up-1)。图6b显示了拾取p点后各边荷载的变化情况(图6中加圈的数字表示loadi)。

机器人不断地捡取与替换传感器,经过各边时,其每条边上的loadi不断变化。然而,任何一边的loadi都不允许超出机器人容量的限制,因此,当达到容量时(loadi=qmax),拓展就停止了。

(3)sce集合的生长

sce中最后一边的尾点总是保留了一个待替换的d点,当拓展一次(即获得了一个p点的荷载)后,此孔即被替换了。为了能继续拓展,需在sce中的终边增加一个待替换点作为补充。所谓“边的生长”就是指在sce集合的最后一边之后添加slkh的当前边,其目的在于通过增加新边来提供l-edge的尾点。

如图8b中,q0=2,在p点处捡起一个荷载后,d3将被替换,此时将slkh的当前边延伸到集合的下界,即在sce集合中生长出边d3d4。该边的荷载为:

loadup=loadup-1-1。

(4)sce集合的缩减

sce集合中的各边须满足边荷载容量的约束。如果在任意一个e-edge的椭圆点集中获得一个p点,那么机器人经过此点后的各边时,在这些边上的荷载数均增加,因为这个原因,经过sce集合中的某一条边k所携带的荷载数loadk将会被累加到容量qmax。此时,在sce中的边k及其之前的各边不能再被用于构建椭圆点集。因为一旦以这些边所构建的椭圆点集内的点被捡起,那么,当机器人经过边k时,loadk≥qmax。结果,边k及其之前的各边从sce集合被删减,这就是sce集合的缩减。如图8c中,设qmax=3,经过p1d2边的那么,p1d2及其前面的各边被从sce中去掉。

有益效果

本发明提供了一种基于动态构建算法的路径优化方法,针对“无线传感器与机器人网络(wsrns)”区域内利用冗余传感器或从基站携带的传感器替换失效传感器的问题。通过对不同规模问题的算法测试结果分析可知:应用本发明提出的理论和方法能快速高效地找到机器人最优路径,算法可避免陷入局部最优,且在大规模问题中能获得较好的路径,该方法有助于高效与经济地完成传感器更换的工作。

①分阶段优化、效率高。分两阶段生成多个机器人路径方案,最终比较得到最优路径。第一阶段采用经典高效的lkh算法生成只包含交货节点的最短路径,第二阶段采用动态构建算法生成最优路径。总的计算时间即使是对于较大规模问题也用时很少(一般不超过10s),算法得到的最终结果在大规模问题中明显较传统的蚁群算法优。

②适用于大规模的wsrns问题,是一种全局优化搜索方法。所发明的动态构建算法与1-tsp-selpd问题的特点结合紧密:第一阶段获得d点的tsp最短路径,而第二阶段利用了此最短路径,降低了第二阶段中路径搜索的代价,从而更较有效地避免陷入局部最优。正因为如此,所发明的方法能在大规模问题中表现出优异的性能。

附图说明

图1为动态构建算法流程图;

图2为插入p点形成新路径图;

图3为椭圆形区域图;

图4为q0=0时sce的初始化图;

图5为q0=2时sce的初始化图;

图6为sce的拓展及荷载变化图;

图7为在不同的边拓展形成的路径长度图;

图8为集合的生长及缩减图;

图930规模问题下参数m和r值的影响图;

图10500规模问题下参数m和r值的影响图;

图11三种算法最优值和平均值的比较图。

具体实施方式

下面结合附图和实施例对本发明做进一步说明:

一种基于动态构建算法的路径优化方法,针对于“无线传感器和机器人网络(wsrns)”区域内机器人利用冗余传感器或从基站携带的传感器替换失效传感器的问题。本发明可获得机器人最优运行路径,以使机器人更高效地完成任务。该发明将该问题建模为具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd),无线传感器和机器人网络中的失效传感器对应于1-tsp-selpd问题中的交货节点,即d点;无线传感器和机器人网络中的冗余传感器对应于1-tsp-selpd问题中的取货节点,即p点。该方法提供一个两阶段的解决方法:第一阶段,利用既有lkh(lin-kernighanheuristic)算法获得一条连接所有待替换的失效传感器(d点)的初始最短路径;第二阶段,利用发明的动态构建算法构建出一条连接所有d点和部分p点(被拾取的冗余传感器)的最优路径,选择路径上的冗余传感器,并将其携带至d点以逐一替换失效传感器。

所述初始最短路径是指通过经典的lkh算法得到的最短lkh路径。lkh算法以随机化方式产生的初始路径为基础,重复执行交换操作,将一种路径转换为另一种路径,直至没有交换不出改善的路径,此当前路径即为最短lkh路径。

所述机器人最优路径是指在此不完整的初始最短路径的基础上通过发明的动态构建算法将区域内有利的冗余传感器节点(p点)插入该路径,多次迭代后得到的路径成本最小的解。插入p点的具体实现包括两个过程:

(1)构建候选边集,在此集合中以轮盘赌法随机地选择一条边;

(2)在此边附近随机地选择一个p点。

所述具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd)模型为:

本方法用一个完全图g=(v,e)表示传感器网络,其中v={v0,v1,...,vn}是顶点集,e={eij}是边集,eij是传感器顶点vi和vj之间的边,其中eij的成本等于其欧几里德长度d(eij)。v中的元素包含取货节点和交货节点,qi是节点属性(1代表取货节点,-1代表交货节点)。而且,v0是基站,且q0=0。每个移动机器人最多可以携带qmax个传感器(即容量为qmax),因此机器人的载重q在经过eij时必须满足0≤q≤qmax。算法的目标函数是即找到一条满足以下要求的最小成本且可行的路径

(5)机器人从基站开始并在基站结束;

(6)交货节点的入度与出度相等,为1,取货节点的入度与出度相等,小于或等于1;

(7)满足所有交货节点的需求;

(8)对于每次访问节点,机器人载重不超过其最大载重(容量)。

具有选择性取货和交货的单商品旅行推销员问题(1-tsp-selpd)用以下数学公式表示:

xij∈{0,1}(6)

其中,vp为取货节点集;vd为交货节点集;cij为边eij的成本,大于零;为边eij的载重,如果边eij不属于路径,为0;如果边eij属于路径,xij为1,否则为0。等式1陈述了1-tsp-selpd的目的,其将移动机器人的总路径成本最小化;约束2确保每个取货节点最多被访问一次;约束条件3要求每个交货节点和基站必须只被访问一次;约束4让每条边的载重足以满址需求并且不超过机器人的容量;约束5保证消除节点间的子路径。

基于动态构建算法的路径优化方法流程图如图1所示;

该算法采用c++编码,所有计算实验均采用2.27ghz的intelxeoncpu-e5507和windows7下的2gb内存。本方法的基准实例来自文献“falconr,lix,nayaka,etal.theone-commoditytravelingsalesmanproblemwithselectivepickupanddelivery:anantcolonyapproach[c]//ieeecongressonevolutionarycomputation,cec2010,1-8”,基站位于(0,0),该节点的节点属性为q0=0。

n是每个数据样本中所有传感器(包括基站)的数量,n-1个传感器的随机2d坐标是在|-500,500|2中生成的。令交货节点和取货节点的比例为1∶3,移动机器人的容量为传感孔总数的四分之一。路径成本xij是节点i和j之间的欧几里德距离。测试根据传感器数量(包括基站)n和机器人容量q分成两大类:n∈{20,30,40,50,60}的小规模实例和n∈{100,200,300,400,500}的大规模实例。

步骤1:利用lkh算法生成包括所有d点的最短路径,用集合表示,其中nd是所有d点的个数。此集合中的边是有序的,从边l1到边依次排列,此排列的方向是路径的前进方向。

步骤2:可行边集的动态构建。以lkh所构建的路径作为基础,利用动态构建算法沿着lkh路径不断地选边,插入p点,将这些点顺序地连接到基站所形成的路径,就是一个可行解。图2示例地展示了插入p点形成新路径的基本过程:d1,d2,d3,d4是待替换的传感器孔(d点),在边d2d3的附近(某个范围内)选择一点p1,删除d2d3边后,形成了路径d1d2p1d3d4;进而,在边p1d3的附近选择一点p2,删除p1d3边后,形成路径d1d2p1p2d3d4.

具体包括以下过程:

将lkh算法获得的lkh路径的各边依次纳入lkh集合,记为slkh,集合中的元素称为lkh边。从该集合中取出的元素用于构建解的候选边集。候选边集是指这个集合中的边可以被选择用以构建椭圆点集(即以该边为椭圆的长轴,椭圆内的点构成的点的集合),令当前路径的候选边集合为sce={e1,e2,...,ei+k},其中i是指已经从slkh中取出的边的数量,即已经添加到sce中的lkh路径上的前i条边,k是已插入到sce中的p点的数量(添加一个节点即添加了一条边,k={1,2,.....,nd-q0},其中nd是所有d点的数量,q0是从基站出发时携带的荷载数量)。slkh集合中的边li(i=1,2,...,nd)移入sce后称为l-edge(如图1中的d2d3);以l-edge为底边插入p点之后所形成的新的路径边,称为e-edge(如图1中的d2p1,p1d3)。这两类边的远离基站的那个端点的叫做该边的尾点(如图1中的d3是d2d3,p1d3和p2d3的尾点)。l-edge的尾点是d点,而e-edge的尾点则不一定是d点。

a)设定候选边集sce的约束条件

当前路径上存在一个待替换的d点。sce所对应的当前路径上的最后一边的尾点保留一个待替换的d点,即sce中最后一个元素(边)的尾点是一个待替换的d点。因为每捡起的一个p点,即意味着一个d点被替换,因此,须使得sce对应的路径上至少存在一个待替换的d点,以便将搜索到的p点上的荷载可替换此d点。

满足边的荷载约束。机器人不能携带超过其容量的荷载。令loadi来表示机器人经过边i时所携带的荷载数。当机器人在p点捡取一个荷载后,其随后各边的loadi将增加1。不断地捡取荷载必使得机器人经过某一条边时达到容量,因此,必须设定此容量限制。

b)构建候选边集sce

sce集合的初始化是构建集合sce的第一步。拓展、生长和缩减边的三种操作被用来使这个候选边集合发生变化,以不断获取更多新的p点。

c)在候选边集sce中选择边e

用轮盘赌法选择候选边集中的一边,作为构建椭圆点集的椭圆长轴。算法设置了参数m来控制边的长度对选择结果的影响,参数m是将候选边集的每个边的长度设置为长度的m次方。解决不同的问题时,在算法运行前设置不同的m值,以获取最优路径。

d)在该边e上构建椭圆点集,并在构建的椭圆域中选择p点

以该边为椭圆的长轴建立椭圆区域,采用随机的方式在椭圆域中获得一个p点。选择p点的基本原则是尽可能地减少新路径的长度。椭圆区域的大小通过改变椭圆的短轴长度来调整。图3表示了椭圆形区域。

椭圆是在局部坐标系统uo′v下构造的,交货节点d点和取货节点p点的位置是在全局坐标系xoy下确定的,需将椭圆方程从局部坐标系转换到全局坐标系,以判断取货节点p(x,y)是否在椭圆内。若点p满足等式(7),则表示该点在椭圆区域内。

b=a·r(3)

式中a,b分别为椭圆的长半轴和短半轴,r是二者的比值,α是坐标系uo′v旋转到全局坐标系xoy的角度,(s,t)是边e的中点(坐标系uo′v的原心)在坐标系xoy的坐标。

对于椭圆内存在不止一个p点的情况,采用随机策略选择一个p点。对于在椭圆区域内没有p点的情况,则重新选择另外一边e,再进行选点操作。如果一定次数(通常取10次)的选边之后,仍然选不到点就直接插入等式(7)所计算的loc(x,y)值中最小的点p。

步骤3:重复步骤2,直至达到指定迭代次数(根据问题规模,选择实验结果中能达到稳定效果的次数)。其中路径成本最小的可行解即为所求连接所有d点和部分p点的机器人最优路径。

所述步骤2中步骤b)的候选边集sce的构建过程如下:

(1)sce集合的初始化

如果基站没有荷载可以提供,即q0=0。将lkh路径上的第一条l1边纳入集合sce,并保留1个d点,以便边l1附近的p点(基于该边所构建的椭圆点集中的点)被捡起来后能替换该d点,如图4。

如果基站提供荷载,即q0≠0,则先将从基站携带的荷载就近替换到从基站开始的lkh路径上的q0个d点。因为此路径本身就是最短路径,也就是将sce初始的q0个l-edge的尾点由基站携带的q0个荷载替换。为了获得这q0个尾点,需将q0中排在前而的1+q0条边添加至sce,此时t=q0+2。如图5,q0=2,添加od1、d1d2至sce,并用携带的荷载替换d1和d2。

除了添加q0条lkh边用于提供q0个d点以便被这q0个携带的荷载替换外,还考虑到沿这些点构成的路径的附近捡取一个荷载后,尚需存在1个d点作为此捡起的荷载的替换位置。如图5,d1d2被替换后,尚应添加边d2d3至sce。

图4和图5中,实线表示lkh路径中移入sce的边,空心圆表示未被替换的d点,实心圆表示已经被替换的d点,o点表示基站,low,up表示指向当前sce集合的上下界的指针,t是当前已经移入sce的slkh中的最后一边的下一边,叫做lkh当前边,作为下一次准备移入sce的边。

(2)sce集合的拓展

替换充l-edge的尾点的荷载的来源有两种:①来自于基站的荷载,由机器人来替换补sce集合的开始的q0个边;②由l-edge和e-edge的拓展后获得的荷载,去替换当前sce集合的最后一边的尾点。“拓展”是指在l-edge上构建椭圆点集并允许在其中选择p点,由此所选择的p点连接而成的e-edge被增加在sce中,sce中任何一个边(l-edge或e-edge)可以被选择以构建椭圆点集,并且该椭圆点集被用于选点。

l-edge和e-edge是在sce中选择的,具体方法是:首先,按轮盘赌法从sce中选择一边,如图6中的e;然后,基于这条边,构建椭圆点集,在椭圆点集中,按步骤d的方法获得点p。

在e-edge边选点存在比在l-edge边附近选点所形成的路径的总长度更短的可能性。如图7b和7c,基于d2d3拓展出p3而生成d1p1d2p3d3(图7b)和基于p1d2拓展出p2而生成d1p1p2d2d3(图7c)两种情况中,前者的路径长度比后者更长一些。因此,e-edge应当被不断地拓展,即可以继续基于添加的e-edge边构建椭圆点集并选点,如图7c,d1d2d3是原始的lkh路径,在d1d2上拓展得到p1后,在p1d2上继续拓展得到p2。这种不断拓展e-edge的方式,拓宽了p点的搜索范围,增加了解的多样性。通过重复使用这种在不同的e-edge上选p点的方式可连续地获得大量的可行解。其终止条件是,sce内某边的荷载达到了边的容量。

捡起一个荷载将引起插入点之后的各边荷载数变化。如图6,插入取货节点p点后,loade2=loade1+1,且e2随后各边loadi=loadi+1(i=e2+1,e2+2,.....,up-1)。图6b显示了拾取p点后各边荷载的变化情况(图6中加圈的数字表示loadi)。

机器人不断地捡取与替换传感器,经过各边时,其每条边上的loadi不断变化。然而,任何一边的loadi都不允许超出机器人容量的限制,因此,当达到容量时(loadi=qmax),拓展就停止了。

(3)sce集合的生长

sce中最后一边的尾点总是保留了一个待替换点(d点),当拓展一次(即获得了一个p点的荷载)后,此孔即被替换了。为了能继续拓展,需在sce中的终边增加一个待替换孔作为补充。所谓“边的生长”就是指在sce集合的最后一边之后添加slkh的当前边,其目的在于通过增加新边来提供l-edge的尾点。

如图8b中,q0=2,在p点处捡起一个荷载后,d3将被替换,此时将slkh的当前边延伸到集合的下界,即在sce集合中生长出边d3d4。该边的荷载为:

loadup=loadup-1-1。

(4)sce集合的缩减

sce集合中的各边须满足边荷载容量的约束。如果在任意一个e-edge的椭圆点集中获得一个p点,那么机器人经过此点后的各边时,在这些边上的荷载数均增加,因为这个原因,经过sce集合中的某一条边k所携带的荷载数loadk将会被累加到容量qmax。此时,在sce中的边k及其之前的各边不能再被用于构建椭圆点集。因为一旦以这些边所构建的椭圆点集内的点被捡起,那么,当机器人经过边k时,loadk≥qmax。结果,边k及其之前的各边从sce集合被删减,这就是sce集合的缩减。如图8c中,设qmax=3,经过p1d2边的那么,p1d2及其前面的各边被从sce中去掉。

该算法中有两个参数m和r:m是轮盘中用来选择边的边长的m次方,r是确定椭圆曲率的比例因子,它等于椭圆的短半轴与椭圆的长半轴的比值。在两个参数组合的基准实例上运行了200次迭代程序,结果如下所示:测试参数m对结果的影响时将r固定为0.5,m的范围取为1至11,步长取为2;测试参数r对结果的影响时将m固定为10,r范围取为0.1至1.1,步长取为0.2。表1展示了参数m对算法结果的影响。表2展示了参数r对算法结果的影响。

表1参数m对结果的影响

表2参数r对结果的影响

如图9和图10:在小规模问题中,参数m的取值对结果影响不大。参数r对结果有重要的影响,当r值较大时,所得路径较优。然而,随着问题规模的增加,参数r对结果影响不大,参数m逐渐成为影响结果的主要因素,当m取值为7至11时,所得路径较优。

为了对算法的运行效率进行测试,将该算法与用于解决的1-tsp-selpd的上述文献提出的两种算法imsa和mmas进行了比较,具体的结果数据对比见表3。

表3与imsa、mmas算法的比较结果

从上表和图11可以看出,本算法花费的时间远远少于imsa和mmas,且在大规模问题中,获得了较imsa和mmas算法更好的结果,效率较高。在wsrns修复过程中,问题是大多是大规模的,因此,本算法有更好的适应性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1