CN107563653A - 一种多机器人全覆盖任务分配方法 - Google Patents
一种多机器人全覆盖任务分配方法 Download PDFInfo
- Publication number
- CN107563653A CN107563653A CN201710806262.0A CN201710806262A CN107563653A CN 107563653 A CN107563653 A CN 107563653A CN 201710806262 A CN201710806262 A CN 201710806262A CN 107563653 A CN107563653 A CN 107563653A
- Authority
- CN
- China
- Prior art keywords
- individual
- pop
- fitness
- summit
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种多机器人全覆盖任务分配方法,技术方案是先对全覆盖环境进行分解建模,得到拓扑图G,基于G生成pop棵有向生成树即个体作为第0代种群;采用个体适应度计算方法根据G将要被分割而成的块数q对T1,T2,...,Tk...,Tpop分别计算适应度;找到适应度最小的个体best、适应度最大的个体worst;迭代maxgen代,每一代使用选择交叉和变异算子来选择有潜力的个体、生成新的更有潜力的个体,采用个体适应度计算方法计算第maxgen代的个体的适应度,并在计算过程中记录得到的切割方案。采用本发明仅需较小的种群、较少的进化代数即可获得与最优解很接近的近似解。
Description
技术领域
本发明涉及多机器人执行全覆盖任务前的任务分配方法,尤其是一种基于遗传算法的任务分配方法。
背景技术
全覆盖任务是指:利用移动机器人,在物理接触或传感器感知范围内遍历目标环境区域,并尽可能地满足时间短、重复路径少或未遍历区域小的目标。全覆盖技术是很多机器人应用的基础,例如地板清洁、油污清理、草地修剪、粮食收割、海底探索、扫雷排雷等。多机器人的全覆盖任务具有两个最重要的步骤——任务分配和路径规划。本发明涉及到的就是多机器人进行全覆盖任务分配的一种方法。
在任务分配之前,需要对全覆盖环境进行建模。由于全覆盖环境一般都比较大,所以整个全覆盖环境将被分解成一个个的小区域。Morse分解方法(文献“Acar E U,ChosetH,Rizzi A A,et al.Morse decompositions for coverage tasks[J].TheInternational Journal of Robotics Research,2002,21(4):331-344.”译为:覆盖任务的Morse分解,《机器人研究国际期刊》)是一种环境的分解方法,它基于障碍物的形状与覆盖方向,将环境分解成多个小的区域。将每个小区域视作一个拓扑图的顶点,两个区域之间的公共边界线视为拓扑图的边,将真实全覆盖环境建模成了抽象的图模型。因为每个小区域面积不一,因此全覆盖所需要的时间也不一,所以对每个小区域赋予权值,表示全覆盖所需要的时间,上述抽象的图模型就是一个顶点带权的拓扑图。
在将真实世界建模成抽象的图模型之后,多机器人全覆盖任务分配问题(记为BCPq)可抽象成针对顶点带权的拓扑图进行最优分割的模型,其描述如下:
设G=(V,E,w)是一个连通的图,它是一个顶点带权的拓扑图,V是拓扑图的顶点集,E是拓扑图的边集,w是顶点集上的权值。q是一个大于等于2的已知的整数,表示机器人的台数,也表示拓扑图将要被分割而成的块数。又设w(X)是集合X中所有元素的权值和,其中X是顶点的一个子集(即)。BCPq的目的是寻找拓扑图的顶点集合的一个q-分割P=(V1,V2,...,Vq),其中分割而成的每一个部分Vi(1≤i≤q)中的所有顶点在原图G中是连通的,并且顶点全部分配完毕没有遗漏(即V=V1∪V2...∪Vq),且该分割P的追求是使得下式的值尽量小
(1)式中的w(Vi)是第i台机器人完成顶点集Vi全覆盖工作所需要的时间,可以理解为,所有机器人(即第1台机器人、第2台机器人、…、第i台机器人、…、第q台机器人)的完成时间中的最大值。该分割P的追求是使所有机器人的工作越早完成越好。举例说明:在图1中,一个可能的3-分割为{{R1},{R2,R3,R4,R6,R7},{R5,R6,R8,R9}}(分割而成的部分可以有重复顶点,但不能有顶点被遗漏)。此分割是否是最优的,则需要判断此分割与任何别的分割中谁的最晚完成时间更小。
除全覆盖任务分配外,日常生活、科学研究和工程技术实践中,很多问题都可抽象成针对顶点带权的拓扑图进行最优分割的模型,如,多计算机结点对有不同执行时间的、有一定相互联系的计算机程序的分配。
针对BCPq问题,由于可行的分割方案数目极其巨大,因此无法通过简单枚举来获得最优的分割方案。此外,这一问题也已经被证明是难解问题,即便是简单的预定块的数目为2的情况,因此该问题不存在多项式时间的确定性的精确算法来获得真实最优解。所以,如何在可行的时间内获取问题高质量的近似最优解是本领域技术人员关注的技术问题。
为了解决这个问题,传统方法主要有两种思路,第一种是构造式的启发式(heuristics)近似算法(例如文献“Zheng X,Koenig S,Kempe D,et al.Multirobotforest coverage for weighted and unweighted terrain[J].IEEE Transactions onRobotics,2010,26(6):1018-1031.”译为:针对加权与不加权地形的多机器人森林覆盖,《IEEE机器人汇刊》),另一种是元启发式(meta-heuristics)近似算法(例如文献“DjuricB,Kratica J,Tosic D,et al.Solving the maximally balanced connected partitionproblem in graphs by using genetic algorithm[J].Computing and Informatics,2008,27(3):341.”译为:使用遗传算法解决图的最大性平衡连通分割问题,《计算与信息》)。第一种方法,主要通过一些启发式信息,常常是一些贪心信息来逐步构造出分割方案,其缺陷主要有:1)容易陷入局部最优解,因为逐步贪心往往不是全局最优的;2)有的启发式构造方法虽然可以证明近似比,即构造方法所获的解与真实最优解在最差情况下的比值,但这一比值往往比较大,例如是最优解的4倍之大;3)构造方法的复杂度往往较高,是顶点规模的立方级复杂度以上,对几千个顶点以上的图常常需要以小时计或者天计的计算时间。第二种方法,主要有遗传算法(genetic algorithm,GA)等,但前人的遗传算法所采用的思路是最直接的,即把每个顶点硬分配给某个块,然后模拟自然界生物的进化过程,通过选择、交叉和变异等操作,不断地寻找更优的解,但这样硬分配方式的遗传算法存在一些缺陷:1)交叉、变异操作难以产生新的有效的分割方案,因为这样的编码方式很容易产生无效的分割方案,例如连通块的数目不对;2)优秀的基因或者结构难以遗传到子代,常常子代方案相对父代方案面目全非,这样造成遗传算法一直随机漫步,难以持续朝着好的进化方向进化;3)对块的数目稍大以及图的规模稍大的问题结果不好,学术界目前仅存在针对分成两个块、总共几百个结点规模的遗传算法。
基于以上分析可以发现,针对多机器人全覆盖任务分配问题,如何分割顶点带权的拓扑图,并且尽可能缩短机器人最晚完成时间,是全覆盖任务分配需要解决的技术问题。一个能够分割一般图(general graphs)、能够分割较大规模的图、能够分割成不限定于两块的方法,能给机器人任务分配带来巨大效益。
发明内容
本发明要解决的技术问题是针对一种多机器人全覆盖任务的分配问题,传统的分配方法无法获得较高质量的近似最优解,且只适用于较小的图规模、较少的块数目的情况。针对这些不足,以及现实需求,本发明提出了一种基于有根树进化和有根树切割的多机器人全覆盖任务分配方法。
本发明的技术方案是首先利用Morse分解方法对环境进行拓扑图建模,然后对顶点带权的拓扑图进行分割,将最初连通的图分割成预定数目的连通块且每个顶点至少属于一个连通块,并最小化最重的连通块。分割完成之后,将每一个连通块指定给一台机器人,从而完成对整个环境的全覆盖任务的分配。由于直接将图分解成预定数目的连通块极其困难,因此可以把对图的分解转化成对图的生成树的切割。对任意一棵树进行切割,其最重的连通块的值可能不理想,因此需让生成树进化,以便产生最重块较小的生成树。总体过程是,起始时产生一些生成树,通过树的切割获得每棵树对应的最优分割目标(objective)值(也称适应度值)。不断选择有潜力(适应度较小)的树并生成进化具有潜力的树,最终得到适应度很小的树,即获得了任务分配的近似最优解。
本发明包括以下步骤:
第一步,利用背景技术中提到Morse分解方法对全覆盖环境进行分解,并将每个小区域视作一个拓扑图的顶点,两个区域之间的公共边界线视为拓扑图的边,则将真实全覆盖环境建模成顶点带权的拓扑图G=(V,E,w),顶点带权指拓扑图的顶点被赋予不同的权值,代表机器人全覆盖此顶点所需要的时间。
假设一个全覆盖环境是一个二维平面(如图1所示),平面中存在一些形状任意的障碍物(图1中阴影部分)。机器人是一个半径r的圆,则机器人的覆盖宽度为2r。假设机器人总是在竖直方向不断地作简单的“之字形”运动。障碍物上存在一些有数学定义且有物理意义的点,称之为Morse点,如图1中的M1~M5点。通过任意一个Morse点,作与机器人运动方向相同的直线,形成了Morse直线(如图1中的黑粗竖线)。所有的Morse直线、障碍物的边界线以及环境的边界线,把整个全覆盖环境划分成了多个区域,将分割而成的不同区域进行任意编号,如图1中的R1~R9。若两个区域之间有公共边界线,则称两个区域是连通的,如R2与R1、R3、R4都是连通的。将区域抽象成拓扑图的顶点,区域之间的连通关系抽象成拓扑图的边,则得到了环境的一个拓扑图模型。又由于各区域面积大小不同,或者在现实中,各区域的清理难度不同,拓扑图的顶点被赋予了不同的权值,代表机器人全覆盖它所需要的时间。由此得到拓扑图G=(V,E,w),设拓扑图G的顶点编号为0,1,...,j...,n-1,权值分别是w0,w1,...,wj...,wn-1,n为V中的顶点个数,0≤j≤n-1,j是整数。
第二步,基于拓扑图G,随机生成pop棵有向生成树作为第0代种群,每一棵有向生成树也称为一个遗传算法个体(individual)。具体步骤如下:
2.1基于拓扑图G,随机生成pop棵(pop是偶数)生成树,每一棵生成树都包含了G中所有顶点。随机生成的方法很多,例如:将图G所有边编号为e1,e2,...,e|E|(|E|是图中的总边数),利用Knuth方法(文献“The Art of Programming[J].ITNOW,2011,53(4)”,译为:《程序设计艺术》,ITNOW出版社,2011年第53期第4页)随机生成一个1~|E|的排列,这个排列确定了一个边的加入顺序,然后往最开始只有顶点而无边的图中依次加入边,如果加入的边没有形成环,则加入成功;否则取消要加入的边,所有边加完之后就形成了一棵随机树,随机树用T1,T2,...,Tk...,Tpop,1≤k≤pop表示。
2.2T1,T2,...,Tk...,Tpop是无根、无向的,但为了计算的方便对它们进行定根、定向(定根和定向不影响最终的计算结果)。定根的方法是:T1,T2,...,Tk...,Tpop都以0号顶点为树根,则T1,T2,...,Tk...,Tpop变成了有根树。
2.3对有根树T1,T2,...,Tk...,Tpop的边进行定向,定向的方法是:将树根视作野火的火星,野火从树根扩散,每条边上野火的扩散方向就是该边的方向(可参考图4(a),野火从0号扩散到2号,2号扩散到1号、3号,3号扩散到4号,4号扩散到5号,各边的方向如图4(a)箭头所示)。
2.4使用结构体Indi表示遗传算法个体。Indi包含了个体的适应度fit、一个数组pre和一个邻接表adj。适应度指这棵树最优地切割成q块时,q块中最重块的权值最小为多少,q是一个大于等于2的整数,表示机器人的台数,等于拓扑图将要被分割而成的块数。pre[j]记录的是j号结点的直接前驱(直接前驱只有一个),adj[j]是一个链表数组,记录的是j号结点的所有直接后继,结点一般不止一个直接后继。由于树根没有直接前驱,为方便,将树根结点的直接前驱定义为-1。例如在图4(a)中,2号结点的直接前驱是0号结点,直接后继是1号和3号结点{pre[2]=0,adj[2]={1,3}}。所有的遗传算法个体T1,T2,...,Tk...,Tpop组成了第0代种群(population)。
第三步,采用个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)对第0代种群中的个体T1,T2,...,Tk...,Tpop分别计算适应度。计算个体适应度的方法是:迭代地采用二分法猜测与验证的方法,第t次迭代时,猜测一棵树最重块的权值不超过某值Mt时,看该树能否切割成不超过q数目的块。若能,则下一次二分地猜测一个比Mt更小的Mt+1;如不能,则下一次二分地猜测一个比Mt更大的一个Mt+1。个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)表示根据拓扑图将要被分割而成的块数q、种群中个体的总数pop对种群中个体T1,T2,...,Tk...,Tpop分别计算适应度(1≤k≤pop,q表示拓扑图将要被分割而成的块数,pop为种群中个体的总数,q、k均为整数,pop是偶数)。SYD方法具体如下:
3.1初始化个数m=1,处理对象为个体T1。
3.2初始化次数t=1,Lt=wmax是个体中最重的顶点的权值,Rt=wsum是个体中所有顶点的权值和。
3.3如果Lt<Rt,执行步骤3.4;否则说明已经获得个体的适应度为Rt,执行步骤3.7,继续计算下一个个体的适应度。
3.4即Mt是此次的猜测值,表示对x进行下取整,x是实数。
3.5采用《一个线性的树切割算法》所提出的线性树切割算法,计算当最重块不超过Mt时,一棵树最少能被切割成lump块。《一个线性的树切割算法》指文献“Kundu S,MisraJ.A linear tree partitioning algorithm[J].SIAM Journal on Computing,1977,6(1):151-154,译为:一个线性的树切割算法,《SIAM计算期刊》1977年第6期第151页至154页”中提出的一种“当最重块不超过H(H是一个正整数)时,一棵树可以最少切割成几块以及最少的块是如何切割而出的”的一个线性的树切割算法。该算法的复杂度低,仅为O(n),可以快速进行树切割。
3.6如果lump>q,则猜测不成功,需增大猜测值,即令Lt+1=Mt+1,Rt+1=Rt,t=t+1,执行步骤3.3;若lump≤q,则猜测成功,猜测更小的Mt,即令Lt+1=Lt,Rt+1=Mt,t=t+1,执行步骤3.3。
3.7m=m+1。
3.8判定m≤pop是否成立,若成立执行步骤3.2,若不成立,说明已经计算完种群中每个个体的适应度,执行第四步。
第四步,找到第0代种群T1,T2,...,Tk...,Tpop中最好的(即适应度最小)一个个体best、最差的(即适应度最大)一个个体worst,以便后续的精英替换使用。
第五步,迭代maxgen代(maxgen是一个已知的整数,一般在1000左右,表示进化的代数),每一代使用选择交叉和变异算子,来选择有潜力的个体、生成新的更有潜力的个体。具体步骤如下:
5.1初始化当前代数gen=1;
5.2如果gen<=maxgen,则执行步骤5.3,否则执行第六步。
5.3初始化已处理对数pair=0;
5.4若pair<pop/2,则执行步骤5.5;否则说明总共新生成了pop/2对个体,即得到了第gen代的pop个体,转5.8;
5.5从第gen-1代中,选择两个有潜力的个体P1和P2。获得P1的方法是:从第gen-1代的个体之中,随机选定两个个体,通过比较这两个个体的适应度,选择适应度较小的个体作为P1。获得P2的方法是:从第gen-1代的排除了P1后的个体之中,也随机抽取两个个体,通过比较这两个个体的适应度,选择适应度较小的个体作为P2。
5.6对P1和P2进行交叉或变异操作,生成第gen代的两个新个体P1’和P2’。具体步骤如下:
5.6.1随机生成[0,1)之间的一个小数,如果该小数小于等于交叉概率cr(cr是预先设置的一个经验值,是常量小数,一般在0.6到1.0之间,变异概率mu=1-cr。即生成一对新个体时,要么是通过交叉生成的,要么是通过变异生成的。),执行步骤5.6.2,对P1和P2两个个体进行交叉(crossover);否则执行步骤5.6.3,对P1和P2两个个体进行变异。
5.6.2对步骤5.5选中的第gen-1代中两个个体P1和P2进行交叉,生成第gen代的两个新个体P1’和P2’。具体步骤如下:
5.6.2.1随机选中顶点集合V中的两个顶点a和b,将P1中a和b之间的路径记为E1,将P2中a和b之间的路径记为E2。交叉的操作就是用E1来修饰更新P2,用E2来修饰更新P1。
5.6.2.2采用修饰更新方法f(P2,E1),用E1来修饰更新P2,得到P2’,然后执行5.6.2.3。修饰更新方法f(P,EE)(f(P,EE)表示用边EE来修饰更新树P,得到P’)具体如下:
5.6.2.2.1在EE上,找到EE中两个顶点a与b的最近公共祖先(即顺着边的方向走,能同时到达a和b且离根结点最远的一个结点),设为lca(例如图4(a)中,1号结点与4号节点的最近公共祖先是2号结点)。
5.6.2.2.2将P’初始化为P。从lca开始,依次把EE上的有向边,按照拓扑顺序,一条条地加入到P’中。具体步骤如下:
5.6.2.2.2.1获取路径EE上的一条有向边(x,y),在路径EE中去掉有向边(x,y);
5.6.2.2.2.2判断如果将有向边(x,y)加入到P’后,是否使P’形成了一个有向环。如果是,则这条边是不可接受的(inadmissible),不能加入到P’中,转5.6.2.2.2.3。否则,将边(x,y)加入到P’中,并将原来P’中顶点y的直接前驱修改为顶点x(即从adj[pre[y]]中删除y,再令pre[y]=x,并增加y为原来顶点x的直接后继(即y成为了x的一个直接后继adj[x]={原本的直接后继,y}),转5.6.2.2.2.3。
5.6.2.2.2.3判断EE中是否还有有向边,如果是,执行步骤5.6.2.2.2.1,否则修饰更新完毕,得到P’。
5.6.2.3采用修饰更新方法f(P1,E2),用E2来修饰更新P1,得到P1’。转步骤5.7。
5.6.3对步骤5.5选中的第gen-1代中两个个体P1和P2进行变异,生成第gen代的两个新个体P1”和P2”。
5.6.3.1采用变异方法Va(P1)对P1进行变异,得到P1”。变异方法Va(P)(Va(P)表示对个体P进行变异,得到P”)具体如下:
5.6.3.1.1将P”初始化为P。在P”中随机选择一个顶点s作为变异点,判定顶点s是否有多于一个邻接点(邻接点指拓扑图G中与该顶点s有边相连的节点)。若没有多于1个邻接点,则转步骤5.6.3.1.3;若有多于1个邻接点,排除在P”中s的前驱或后继,选出其它任意一个邻接点r。
5.6.3.1.2判断如果将有向边(r,s)加入到P”并且去掉顶点s的直接前驱到顶点s的有向边后,是否使P”形成一个有向环。如果是,则这条边是不可接受的,不能加入到P”中,转步骤5.6.3.1.3;否则有向边(r,s)加入到P”中,并且去掉顶点s的直接前驱到顶点s的有向边。具体步骤如下:
5.6.3.1.2.1删除顶点s的直接前驱到顶点s的有向边,即顶点s直接前驱的直接后继中删除顶点s。(例如图4(d)中,5号节点的直接前驱是4号节点,4号节点的直接后继删除5号节点,adj[4]={2})。
5.6.3.1.2.2把顶点s的直接前驱更改成邻接点r,pre[s]=r。(例如图4(d)中,随机选中5号节点,5号节点的直接前驱是4号节点。5号节点的另一个邻接点是0号节点,将5号节点的直接前驱改为0号节点,pre[5]=0。)
5.6.3.1.2.3把邻接点r的直接后继增加顶点s(例如图4(d)中,0号节点的直接后继增加5号节点,adj[0]={4,5},如图4(e)所示)。
5.6.3.1.3变异完成,得到P”。
5.6.3.2采用变异方法Va(P2)对P2进行变异,得到P2”。
5.7pair=pair+1,执行步骤5.4。
5.8采用第三步所述个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)计算第gen代的所有pop个个体的适应度。使用Indi结构体,记录第gen代中最差(即适应度最大)的一个个体worst’。
5.9如果worst’的适应度大于best,则第gen代中的worst’个体被best个体替换掉。
5.10在第gen代个体中,找到最好的即适应度最小的个体,记录为best,以便下一代替换时使用。
5.11gen=gen+1,执行步骤5.2。
第六步,采用第三步所述个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)计算第maxgen代的个体的适应度,并在计算的过程中记录采用一个线性的树切割算法得到的切割方案。所有个体计算完毕之后,输出适应度最小的个体的适应度和切割方案。适应度最小的个体,切割而成的q个连通块,每一个连通块,就对应了一台机器人的任务。由此获得了一个较好的q个机器人的任务分配方案。
本发明的有益技术效果是:
(1)将对图的分割转化成了对树的分割。而对树的分割,通过一个猜测与验证过程,可间接地得到。
(2)通过树的进化,获得越来越好的分割,从而获得良好的全局寻优能力。
(3)较低的时间复杂度。仅需要较小的种群、较少的进化代数,即可获得与最优解很接近的近似解。
附图说明
图1是本发明构建的真实环境二维建模示意图。
图2是本发明整体流程图。
图3(a)是全覆盖环境举例;图3(b)是图3(a)的原拓扑图;图3(c)是基于图3(b)可能生成的一棵随机树。
图4是本发明所使用的交叉和变异示例;图4(a)和图4(b)是两个用于交叉的父代个体(每个个体是原拓扑图的一棵有向的生成树);图4(c)和图4(d)是交叉后生成的个体;图4(e)和图4(f)是图4(d)和图4(c)变异而得到的个体。
图5是一个类似于室内环境的拓扑图,每个方格表示一个图节点,黑色方格表示墙壁,无需分割也不能通行。白色方格代表可以通行的小区域,权值是1,图5是69×69的规格。
图6是本发明的实验效果图,是A2算法和本发明在图5上的10次运行的平均值和标准差的比较图,以及与两种算法与理想最优值Idealism的比较示意。
图7是本发明的实验效果图,是在图5上的结果,表示的是10次运行的平均值相对于理想最优值Idealism的比例。
具体实施方式
图1是本发明构建的真实环境二维建模示意图。如图1所示,图1是对一个真实环境的建模。M1~M5分别表示Morse点,竖线表示Morse直线,R1,R2,R3,R4,R6,R7,R8,R9分别表示将整个大区域根据Morse直线划出的小区域。一个可能的3-分割为{{R1},{R2,R3,R4,R6,R7},{R5,R6,R8,R9}}。
图2是本发明整体流程图。图3(a)是真实的全覆盖环境举例,用于说明本发明的具体实施方式。图3(a)所示环境是一个封闭的房间,黑色粗框代表墙壁,不能通行;图3(b)是图3(a)的原拓扑图;图3(c)是基于图3(b)可能生成的一棵随机树。
如图2所示,本发明以图3(a)所示的全覆盖环境进行多机器人全覆盖任务分配的步骤是:
第一步,对图3(a)所示的全覆盖环境进行分解,障碍物的边界线把整个全覆盖环境划分成了多个区域,将分割而成的不同区域进行编号,如图3(a)中的0~5。将每个小区域视作一个拓扑图的顶点,两个区域之间联通视为拓扑图的边,则将真实全覆盖环境建模成顶点带权的拓扑图G=(V,E,w),如图3(b)所示。V指拓扑图的顶点集,为{0,1,2,3,4,5}。E是拓扑图的边集,为{(0,1),(0,2),(0,4),(0,5),(1,2),(2,3),(2,4),(3,4),(4,5)},w是顶点集上的权值,为{3,2,2,1,2,1},wmax=3,wsum=11。机器人的台数q是2。
第二步,基于拓扑图G,随机生成20(pop=20)棵有向生成树作为第0代种群。
2.1基于图3(b)所示的拓扑图G,随机生成20棵生成树,拓扑图的每一棵生成树都包含了拓扑图中所有顶点。例如图3(c)是图3(b)所示的拓扑图G的一棵生成树。
2.2T1,T2,...,T20都以0号顶点为树根。
2.3对有根树T1,T2,...,T20的边进行定向。
例如图4(a)所示,野火从0号扩散到2号,2号扩散到1号、3号,3号扩散到4号,4号扩散到5号,各边的方向如图4(a)箭头所示。
2.4使用结构体Indi来表示遗传算法个体T1,T2,...,T20,并组成了第0代种群。以图4(a)为例(图4(a)记为个体T1),0号结点的直接前驱和后继为T1.pre[0]=-1T1.adj[0]={2};1号结点的直接前驱和后继是T1.pre[1]=2,T1.adj[1]={};2号结点的直接前驱和后继是T1.pre[2]=0T1.adj[2]={1,3};3号结点的直接前驱和后继是T1.pre[3]=2T1.adj[3]={4};4号结点的直接前驱和后继是T1.pre[4]=3T1.adj[4]={5};5号结点的直接前驱和后继T1.pre[5]=4,adj[5]={}。
第三步,采用个体适应度计算方法SYD(2,20,T1,T2,...,T20)对第0代种群中的个体T1,T2,...,T20分别计算适应度。以图4(a)所示的T1为例,SYD方法具体如下:
3.1初始化个数m=1,处理对象为个体T1。
3.2初始化次数t=1,L1=wmax=3,R1=wsum=11。
第一次循环
3.3由于L1<R1,执行步骤3.4。
3.4M1此次的猜测值为7,
3.5采用《一个线性的树切割算法》所提出的线性树切割算法,计算当最重块不超过7时,一棵树最少能被切割成2块。
3.6由于2≤q,则猜测成功,猜测更小的Mt,即令L2=L1=3,R2=M1=7,t=2。
第二次循环
3.3由于L2<R2,执行步骤3.4。
3.4M2此次的猜测值为5,
3.5采用《一个线性的树切割算法》所提出的线性树切割算法,计算当最重块不超过5时,一棵树最少能被切割成3块。
3.6由于3>q,则猜测不成功,需增大猜测值,令L3=M2+1=6,R3=R2=7,t=3,执行步骤3.3。
第三次循环
3.3由于L3<R3,执行步骤3.4。
3.4M3此次的猜测值为6,
3.5采用《一个线性的树切割算法》所提出的线性树切割算法,计算当最重块不超过6时,一棵树最少能被切割成3块。
3.6由于3>q,则猜测不成功,需增大猜测值,令L4=M3+1=7,R4=R3=7,t=4,执行步骤3.3。
第四次循环
3.3L4=R4,说明已经获得个体T1的适应度为R4=7。执行步骤3.7。
3.7m=2。
3.8判定m≤pop成立,若成立执行步骤3.2,继续计算种群中的个体T2的适应度,直到计算完个体T20后,执行第四步。
第四步,找到第0代种群T1,T2,...,T20中最好的(即适应度最小)一个个体best、最差的(即适应度最大)一个个体worst,以便后续的精英替换使用。
第五步,迭代maxgen代(maxgen设置为1000,表示进化的代数),每一代使用选择交叉和变异算子,来选择有潜力的个体、生成新的更有潜力的个体。下面以图4(a)T1和图4(b)(图4(b)记为个体T2)为例详细说明交叉或变异操作,其具体步骤如下:
5.1初始化当前代数gen=1;
第一次大循环
5.2如果gen<=maxgen,则执行步骤5.3,否则执行第六步。
5.3初始化已处理对数pair=0;
5.4若pair<pop/2,则执行步骤5.5;否则说明总共新生成了pop/2对个体,即得到了第gen代的pop个体,转5.8;
5.5从第0代中,选择两个有潜力的个体P1=T1和P2=T2。
5.6对P1和P2进行交叉或变异操作,生成第1代的两个新个体P1’和P2’。具体步骤如下:
5.6.1随机生成[0,1)之间的一个小数。如果该小数(例如0.5)小于等于交叉概率cr(cr是预先设置的一个经验值0.8,变异概率mu=0.2。),执行步骤5.6.2。
5.6.2对步骤5.5选中的第0代中两个个体P1和P2进行交叉,生成第1代的两个新个体P1’和P2’。交叉操作的目的是从P1和P2产生更有潜力的两个个体,即获得与P1、P2比较相像,但是又有所差异的两个新个体,就如父母生下的子女与父母有些相像又有所不同。具体步骤如下:
5.6.2.1随机选中顶点集合V中的两个顶点a和b,a=1,b=3。如图4(a)所示,将P1中a和b之间的路径记为E1,E1是图4(a)中标粗的路径,将P2中a和b之间的路径记为E2,E2是图4(b)中标粗的路径。交叉的操作就是用E1来修饰更新P2,用E2来修饰更新P1。
5.6.2.2采用修饰更新方法f(P1,E2),用E2来修饰更新P1,得到P1’,然后执行5.6.2.3。具体如下:
5.6.2.2.1在E2上,找到两个顶点a与b的最近公共祖先,设为lca(例如图4(b)中,1号结点与3号节点的最近公共祖先是0号结点)。
5.6.2.2.2将P’初始化为P1。从0号节点开始,依次把E2上的有向边,按照拓扑顺序,一条条地加入到P’中。具体步骤如下:
第一次循环
5.6.2.2.2.1获取路径E2上的一条有向边(0,1),在路径E2中去掉有向边(0,1);
5.6.2.2.2.2判断如果将有向边(0,1)加入到P’后,(0,2),(2,1),(0,1)并没有形成有向环,因此(0,1)是可接受的;将边(0,1)加入到P’中,并将1号结点的直接前驱改为P1.pre[1]=0,2号结点的后继删除1;0号结点的后继改为P1.adj[0]={2,1}。
5.6.2.2.2.3判断E2中是否还有有向边,如果是,执行步骤5.6.2.2.2.1。
第二次循环
5.6.2.2.2.1获取路径E2上的一条有向边(0,4),在路径E2中去掉有向边(0,4);
5.6.2.2.2.2判断如果将有向边(0,4)加入到P’后,(0,2),(2,3),(3,4),(0,4)并没有形成有向环,因此(0,4)是可接受的;将边(0,4)加入到P’中,并将4号结点的直接前驱改为P1.pre[4]=0,3号结点的后继删除4;0号结点的后继改为P1.adj[0]={2,1,4}。
5.6.2.2.2.3判断E2中是否还有有向边,如果是,执行步骤5.6.2.2.2.1。
第三次循环
5.6.2.2.2.1获取路径E2上的一条有向边(4,3),在路径E2中去掉有向边(4,3);
5.6.2.2.2.2判断如果将有向边(4,3)加入到P’后,(0,2),(2,3),(0,4),(4,3)并没有形成有向环,因此(4,3)是可接受的;将边(4,3)加入到P’中,并将3号结点的直接前驱改为P1.pre[3]=4,2号结点的后继删除3;4号结点的后继改为P1.adj[0]={5,3}。
5.6.2.2.2.3判断E2中是否还有有向边,E2中已经没有有向边,P1修饰更新完毕,得到P’,即如图4(c)所示。
5.6.2.3采用修饰更新方法f(P2,E1),用E1来修饰更新P2,得到P2’,如图4(d)所示。执行步骤5.7。
5.7pair=pair+1,执行步骤5.4。
5.8采用第三步所述个体适应度计算方法SYD(2,20,T1,T2,...,T20)方法计算第gen代的所有pop个个体的适应度。使用Indi结构体,记录第gen代中最差(即适应度最大)的一个个体worst’。
5.9如果worst’的适应度大于best的适应度,则第gen代中的worst’被best替换掉。
5.10在第gen代个体中,找到最好的个体,记录为best,以便下一代替换时使用。
5.11gen=gen+1,执行步骤5.2。
第二次大循环
5.2如果gen<=maxgen,则执行步骤5.3,否则执行第六步。
5.3初始化已处理对数pair=0;
5.4若pair<pop/2,则执行步骤5.5;否则说明总共新生成了pop/2对个体,即得到了第gen代的pop个体,转5.8;
5.5从第1代中,选择两个有潜力的个体P1=T3和P2=T4。(图4(c)记为T3图4(d)记为T4)
5.6对P1和P2进行交叉或变异操作,生成第2代的两个新个体P1’和P2’。具体步骤如下:
5.6.1随机生成[0,1)之间的一个小数。如果该小数(例如0.9)大于交叉概率cr(0.8),执行步骤5.6.3,对P1和P2两个个体进行变异。
5.6.3对步骤5.5选中的第1代中两个个体P1和P2进行变异,生成第2代的两个新个体P1”和P2”。
5.6.3.1采用变异方法Va(P2)对P2进行变异,得到P2”,具体如下:
5.6.3.1.1将P”初始化为P2。如图4(d)所示,在P”中随机选择一个顶点s作为变异点,假设选中了5号节点,如图3(b)拓扑图所示,5号节点的邻接点有0号节点和4号节点。5号节点的邻接点多于1个,排除P”中5号节点的直接前驱4号节点,选出0号节点。
5.6.3.1.2判断如果加入有向边(0,5),并且去掉有向边(4,5),在P”中并不会形成有向环,所以更改是可接受的。将有向边(0,5)加入P”中,并去掉有向边(4,5)。具体步骤如下:
5.6.3.1.2.1将4号节点的直接后继删除5号节点,P2.adj[4]={2}。
5.6.3.1.2.2将5号节点的直接前驱改为0号节点,P2.pre[5]=0。
5.6.3.1.2.3将0号节点的直接后继增加5号节点,P2.adj[0]={4,5}。
5.6.3.1.3变异完成,得到P2”,如图4(e)所示。
5.6.3.2采用变异方法Va(P1)对P1进行变异,得到P1”,如图4(f)所示。
5.7pair=pair+1,执行步骤5.4。
5.8得到第gen代的20个个体T1,T2,...,T20,采用第三步所述个体适应度计算方法SYD(2,20,T1,T2,...,T20)方法计算第gen代的所有pop个个体的适应度。使用Indi结构体,记录第gen代中最差(即适应度最大)的一个个体worst’。
5.9如果worst’的适应度大于best,则第gen代中的worst’个体被best个体替换掉。
5.10在第gen代个体中,找到最好的个体,记录为best,以便下一代替换时使用。
5.11gen=gen+1,执行步骤5.2。
迭代,直到得到第1000代的20个个体T1,T2,...,T20,退出循环。
第六步,采用第三步所述个体适应度计算方法SYD(2,20,T1,T2,...,T20)方法计算第1000代的个体的适应度,并在计算的过程中记录采用线性树切割算法得到的切割方案。所有个体计算完毕之后,输出适应度最小的个体的适应度和切割方案。适应度最小的个体,切割而成的2个连通块{{1,2,3},{0,4,5}},每一个连通块,就对应了一台机器人的任务。由此获得了一个较好的2个机器人的任务的分配方案。
本发明的效果可以通过以下仿真实验进一步说明:
实验条件:在Intel Xeon CPU E3-1225 v3,3.2GHz processor;8GB RAM and64bit Win7系统上,使用C++程序计算在图5上的STED算法的分割结果,并将结果与A2比较。图5是一个类似于室内环境的拓扑图,每个方格表示一个图节点,每个小方格表示一个可通行区域或者墙壁。黑色方格表示墙壁,无需分割也不能通行。白色方格代表可以通行的小区域,权值是1。
因为真正的最优分割是无法知道具体是多少,所以我们设置了一个理想最优值来近似代表真正最优值。理想最优值
实验内容:比较本发明的算法,记作STED与前人的经典算法A2在图5所示网格图上的结果,主要比较结果的精确度和运行时间。图5是一个模拟室内环境的网格图。其规模为69×69,需要分割的顶点数为4040个。
用本发明与A2算法(一个对图进行分割的基于森林覆盖的算法,见文献“Multirobot forest coverage for weighted and unweighted terrain[J].IEEETransactions on Robotics,2010,26(6):1018-1031.”,译为:针对带权和不带权地形的多机器人森林覆盖算法,《机器人汇刊》,2010年第26期第1018~1031页)的解进行比较,该比较是基于理想最优值idealism的。由于拓扑图的真实最优值无法知道,所以拓扑图的理想最优值具有一定的参考比较价值。所谓理想最优值(the idealism),是图的总权值除以块的数目,即平均权值,即理想最优值不一定能达到,因为这取决于图本身、分的块数等因素。理想最优值往往会小于真实最优值(true optimum)。将本算法、A2算法获得的解,与理想最优值一起比较,将可以更好地看出本算法的有效性。
对图5对应的拓扑图,计算分成2块、4块、6块、...、20块的最优分割。因此有10种情形(cases)。对每一种情形,本发明都运行10次,因为遗传算法是基于随机数的,结果会波动,因此记录10次获得的结果,并将最后平均值作为算法的结果;对这10次运行的结果,求出标准差也用于比较。记录本发明和A2的总时间,并用于最后比较时间。A2算法无须参数设置,而本发明中的参数设置如下:种群大小:pop=20,最大进化代数maxgen=50,交叉概率cr=0.8,变异概率mu=0.2。
图6所示的是A2算法和本发明在图5上的10次运行的平均值和标准差的比较图,以及与两种算法与理想最优值的比较示意。
横坐标是机器人的数目,也即要将图分割而成的块的数目。横轴是想要分成的块数,纵轴是最重块的权值,每3根柱状数据从左往右依次代表了A2、理想最优值和本发明的结果,每根柱状数据的细直线标出了正负标准差。理想最优值的标准差定为0。可以看出,A2算法的结果几乎与理想最优值相差较大,而本发明的结果几乎与理想最优值相同。此外,分析标准差的大小可发现,A2算法的标准差很大,而本发明的标准差很小,所以本发明能很稳定地获得近似于理想最优值的解,并且均值标准差都优于前人的方法。由于在现实中,理想最优值比真实最优值要小,所以本发明很有可能获得了真实最优值。
图7所示的是算法结果的另一种展示,横坐标是机器人的数目,纵坐标表示的是图6所示10次运行的平均值相对于理想最优值的比例,这里画的不是如图6那样的原始结果,而是将每个结果值除以对应的理想最优值idealism,因此得到的是结果对理想最优值的比值。从图中可以看出,本发明的比值几乎在1附近,而A2的比值则较高,约是理想最优值的1.5倍至两倍。另一个发现是,A2算法的性能随着块数的增大而变差(即比例越来越大),而STED的性能几乎与块数无关。STED每一趟运行的时间复杂度最差是O(pop*maxgen*(n2+n*log2Wsum)),n是顶点的数目,但最差的情况很少,大多数情形下n2可换成n。A2算法的时间复杂度是O(n2*log2Wsum)。实验记录的时间,A2大约需要4倍于本发明的时间。
Claims (9)
1.一种多机器人全覆盖任务分配方法,其特征在于包括以下步骤:
第一步,利用Morse分解方法对全覆盖环境进行分解,并将每个小区域视作一个拓扑图的顶点,两个区域之间的公共边界线视为拓扑图的边,将真实全覆盖环境建模成顶点带权的拓扑图G=(V,E,w),顶点带权指拓扑图的顶点被赋予不同的权值,代表机器人全覆盖此顶点所需要的时间;拓扑图G的顶点编号为0,1,...,j...,n-1,权值分别是w0,w1,...,wj...,wn-1,n为V中的顶点个数,0≤j≤n-1,j是整数;
第二步,基于拓扑图G,随机生成pop棵有向生成树作为第0代种群,每一棵有向生成树也称为一个遗传算法个体,pop是偶数,具体步骤如下:
2.1基于拓扑图G,随机生成pop棵生成树,表示为T1,T2,...,Tk...,Tpop,1≤k≤pop,每一棵生成树都包含G中所有顶点;
2.2对T1,T2,...,Tk...,Tpop进行定根;
2.3对有根树T1,T2,...,Tk...,Tpop的边进行定向;
2.4使用结构体Indi表示遗传算法个体T1,T2,...,Tk...,Tpop,Indi包含个体的适应度fit、一个数组pre和一个邻接表adj;适应度指这棵树最优地切割成q块时,q块中最重块的权值最小为多少,q是一个大于等于2的整数,表示机器人的台数,等于拓扑图将要被分割而成的块数;pre[j]记录j号结点的直接前驱,adj[j]是一个链表数组,记录j号结点的所有直接后继;树根结点的直接前驱定义为-1;所有的遗传算法个体T1,T2,...,Tk...,Tpop组成第0代种群;
第三步,采用个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)根据拓扑图G将要被分割而成的块数q、种群中个体的总数pop对第0代种群中的个体T1,T2,...,Tk...,Tpop分别计算适应度,得到第0代种群T1,T2,...,Tk...,Tpop每个个体的适应度;方法是:迭代地采用二分法猜测与验证的方法,第t次迭代时,猜测一棵树最重块的权值不超过某值Mt时,看该树能否切割成不超过q数目的块;若能,则下一次二分地猜测一个比Mt更小的Mt+1;如不能,则下一次二分地猜测一个比Mt更大的一个Mt+1;
第四步,找到第0代种群T1,T2,...,Tk...,Tpop中适应度最小的一个个体best、适应度最大的一个个体worst;
第五步,迭代maxgen代,maxgen是一个整数,表示进化的代数,每一代使用选择交叉和变异算子,来选择有潜力的个体、生成新的更有潜力的个体,具体步骤如下:
5.1初始化当前代数gen=1;
5.2如果gen<=maxgen,则执行步骤5.3,否则执行第六步;
5.3初始化已处理对数pair=0;
5.4若pair<pop/2,则执行步骤5.5;否则说明总共新生成了pop/2对个体,即得到了第gen代的pop个体,转5.8;
5.5从第gen-1代中,选择两个有潜力的个体P1和P2;
5.6对P1和P2进行交叉或变异操作,生成第gen代的两个新个体P1’和P2’,具体步骤如下:
5.6.1随机生成[0,1)之间的一个小数,如果该小数小于等于交叉概率cr,cr是小于1大于0的常量小数,执行步骤5.6.2,对P1和P2两个个体进行交叉;否则执行步骤5.6.3,对P1和P2两个个体进行变异;
5.6.2对步骤5.5选中的第gen-1代中两个个体P1和P2进行交叉,生成第gen代的两个新个体P1’和P2’,方法是:
5.6.2.1随机选中顶点集合V中的两个顶点a和b,将P1中a和b之间的路径记为E1,将P2中a和b之间的路径记为E2,交叉的操作就是用E1来修饰更新P2,用E2来修饰更新P1;
5.6.2.2采用修饰更新方法f(P2,E1),用E1来修饰更新P2,得到P2’,然后执行5.6.2.3;f(P,EE)表示用边EE来修饰更新树P,得到P’;
5.6.2.3采用修饰更新方法f(P1,E2),用E2来修饰更新P1,得到P1’,转步骤5.7;
5.6.3对步骤5.5选中的第gen-1代中两个个体P1和P2进行变异,生成第gen代的两个新个体P1”和P2”,方法是:
5.6.3.1采用变异方法Va(P1)对P1进行变异,得到P1”,变异方法Va(P)表示对个体P进行变异,得到P”;
5.6.3.2采用变异方法Va(P2)对P2进行变异,得到P2”;
5.7pair=pair+1,执行步骤5.4;
5.8采用个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)计算第gen代的所有pop个个体的适应度,使用Indi结构体,记录第gen代中适应度最大的一个个体worst’;
5.9如果worst’的适应度大于best,则第gen代中的worst’个体被best个体替换掉;
5.10在第gen代个体中,找到适应度最小的个体,记录为best;
5.11gen=gen+1,执行步骤5.2;
第六步,采用个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)计算第maxgen代的个体的适应度,并在计算的过程中记录采用快速树切割算法得到的切割方案;所有个体计算完毕之后,输出适应度最小的个体的适应度和切割方案;适应度最小的个体,切割而成的q个连通块,每一个连通块,就对应了一台机器人的任务,由此获得q个机器人的任务分配方案。
2.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于2.1步所述基于拓扑图G,随机生成pop棵生成树的方法是:将图G所有边编号为e1,e2,...,e|E|,|E|是图中的总边数,利用Knuth方法随机生成一个1~|E|的排列,这个排列确定了一个边的加入顺序,然后往最开始只有顶点而无边的图中依次加入边,如果加入的边没有形成环,则加入成功;否则取消要加入的边,所有边加完之后就形成了一棵树;依此法做pop次,生成pop棵生成树,用T1,T2,...,Tk...,Tpop表示。
3.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于2.2步所述对T1,T2,...,Tk...,Tpop进行定根的方法是:T1,T2,...,Tk...,Tpop都以0号顶点为树根,则T1,T2,...,Tk...,Tpop变成了有根树。
4.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于2.3步所述对有根树T1,T2,...,Tk...,Tpop的边进行定向的方法是:将树根视作野火的火星,野火从树根扩散,每条边上野火的扩散方向就是该边的方向。
5.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于第三步所述个体适应度计算方法SYD(q,pop,T1,T2,...,Tk...,Tpop)具体步骤是:
3.1初始化个数m=1,处理对象为个体T1;
3.2初始化次数t=1,Lt=wmax是个体中最重的顶点的权值,Rt=wsum是个体中所有顶点的权值和;
3.3如果Lt<Rt,执行步骤3.4;否则说明已经获得个体的适应度为Rt,执行步骤3.7;
3.4即Mt是此次的猜测值,表示对x进行下取整,x是实数;
3.5采用线性树切割算法计算当最重块不超过Mt时,一棵树最少能被切割成lump块;
3.6如果lump>q,则猜测不成功,需增大猜测值,即令Lt+1=Mt+1,Rt+1=Rt,t=t+1,执行步骤3.3;若lump≤q,则猜测成功,猜测更小的Mt,即令Lt+1=Lt,Rt+1=Mt,t=t+1,执行步骤3.3;
3.7m=m+1;
3.8判定m≤pop是否成立,若成立执行步骤3.2,若不成立,说明已经计算完种群中每个个体的适应度。
6.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于所述maxgen为1000,交叉概率cr为0.6到1.0之间。
7.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于5.5步所述获得P1的方法是:从第gen-1代的个体之中,随机选定两个个体,通过比较这两个个体的适应度,选择适应度较小的个体作为P1;获得P2的方法是:从第gen-1代的排除了P1后的个体之中,也随机抽取两个个体,通过比较这两个个体的适应度,选择适应度较小的个体作为P2。
8.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于5.6.2.2步所述修饰更新方法f(P,EE)具体步骤如下:
5.6.2.2.1在EE上,找到EE中两个顶点a与b的最近公共祖先,设为lca;
5.6.2.2.2将P’初始化为P,从lca开始,依次把EE上的有向边,按照拓扑顺序,一条条地加入到P’中;具体步骤如下:
5.6.2.2.2.1获取路径EE上的一条有向边(x,y),在路径EE中去掉有向边(x,y);
5.6.2.2.2.2判断将有向边(x,y)加入到P’后,是否使P’形成了一个有向环;如果是,则这条边是不可接受的,不能加入到P’中,转5.6.2.2.2.3;否则,将边(x,y)加入到P’中,并将原来P’中顶点y的直接前驱修改为顶点x,即从adj[pre[y]]中删除y,再令pre[y]=x,并增加y为原来顶点x的直接后继,即adj[x]={原本的直接后继,y},转5.6.2.2.2.3;
5.6.2.2.2.3判断EE中是否还有有向边,如果是,执行步骤5.6.2.2.2.1,否则修饰更新完毕,得到P’。
9.如权利要求1所述的一种多机器人全覆盖任务分配方法,其特征在于5.6.3.1步所述变异方法Va(P)具体步骤如下:
5.6.3.1.1将P”初始化为P,在P”中随机选择一个顶点s作为变异点,判定顶点s是否有多于一个邻接点,若没有多于1个邻接点,则转步骤5.6.3.1.3;若有多于1个邻接点,排除在P”中s的前驱或后继,选出其它任意一个邻接点r;
5.6.3.1.2判断如果将有向边(r,s)加入到P”并且去掉顶点s的直接前驱到顶点s的有向边后,是否使P”形成一个有向环,如果是,则这条边是不可接受的,不能加入到P”中,转步骤5.6.3.1.3;否则有向边(r,s)加入到P”中,并且去掉顶点s的直接前驱到顶点s的有向边;具体步骤如下:
5.6.3.1.2.1删除顶点s的直接前驱到顶点s的有向边,即顶点s直接前驱的直接后继中删除顶点s;
5.6.3.1.2.2把顶点s的直接前驱更改成邻接点r,pre[s]=r;
5.6.3.1.2.3把邻接点r的直接后继增加顶点s;
5.6.3.1.3变异完成,得到P”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710806262.0A CN107563653B (zh) | 2017-09-08 | 2017-09-08 | 一种多机器人全覆盖任务分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710806262.0A CN107563653B (zh) | 2017-09-08 | 2017-09-08 | 一种多机器人全覆盖任务分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107563653A true CN107563653A (zh) | 2018-01-09 |
CN107563653B CN107563653B (zh) | 2020-04-28 |
Family
ID=60980243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710806262.0A Active CN107563653B (zh) | 2017-09-08 | 2017-09-08 | 一种多机器人全覆盖任务分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107563653B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108594813A (zh) * | 2018-04-18 | 2018-09-28 | 苏州大学张家港工业技术研究院 | 一种大尺度室内环境下多清洁机器人任务分配方法 |
CN108922550A (zh) * | 2018-07-04 | 2018-11-30 | 全童科教(东莞)有限公司 | 一种采用摩斯声码控制机器人移动的方法及系统 |
CN110084512A (zh) * | 2019-04-26 | 2019-08-02 | 河海大学常州校区 | 一种面向智能仓储系统的多机器人任务分配方法 |
CN110456789A (zh) * | 2019-07-23 | 2019-11-15 | 中国矿业大学 | 一种清洁机器人的全覆盖路径规划方法 |
CN110480635A (zh) * | 2019-08-09 | 2019-11-22 | 中国人民解放军国防科技大学 | 一种用于多机器人的控制方法及控制系统 |
CN111984033A (zh) * | 2020-08-19 | 2020-11-24 | 天津(滨海)人工智能军民融合创新中心 | 一种多无人机覆盖任务路径规划方法及装置 |
CN112462783A (zh) * | 2020-12-02 | 2021-03-09 | 中国人民解放军国防科技大学 | 全覆盖应用下异构多机器人系统的任务规划方法 |
CN114037350A (zh) * | 2021-11-29 | 2022-02-11 | 南开大学 | 一种适用于多机器人任务分配的均匀单元分解方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09179894A (ja) * | 1995-12-22 | 1997-07-11 | Sony Corp | 回路設計装置および方法 |
CN101364110A (zh) * | 2008-09-28 | 2009-02-11 | 重庆邮电大学 | 一种多自主机器人协同作业控制方法及系统 |
CN103886375A (zh) * | 2014-04-17 | 2014-06-25 | 张黎明 | 一种基于二叉空间分割树的资源调度优化方法 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN105302062A (zh) * | 2015-10-15 | 2016-02-03 | 东南大学 | 一种基于任务解耦的多机器人协作焊接路径的生成方法 |
CN106020230A (zh) * | 2016-05-20 | 2016-10-12 | 武汉科技大学 | 一种能耗约束下的多无人机任务分配方法 |
CN106843211A (zh) * | 2017-02-07 | 2017-06-13 | 东华大学 | 一种基于改进遗传算法的移动机器人路径规划方法 |
-
2017
- 2017-09-08 CN CN201710806262.0A patent/CN107563653B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09179894A (ja) * | 1995-12-22 | 1997-07-11 | Sony Corp | 回路設計装置および方法 |
CN101364110A (zh) * | 2008-09-28 | 2009-02-11 | 重庆邮电大学 | 一种多自主机器人协同作业控制方法及系统 |
CN103886375A (zh) * | 2014-04-17 | 2014-06-25 | 张黎明 | 一种基于二叉空间分割树的资源调度优化方法 |
CN105069530A (zh) * | 2015-08-13 | 2015-11-18 | 肇庆学院 | 一种基于多目标优化的多机器人任务分配方法 |
CN105302062A (zh) * | 2015-10-15 | 2016-02-03 | 东南大学 | 一种基于任务解耦的多机器人协作焊接路径的生成方法 |
CN106020230A (zh) * | 2016-05-20 | 2016-10-12 | 武汉科技大学 | 一种能耗约束下的多无人机任务分配方法 |
CN106843211A (zh) * | 2017-02-07 | 2017-06-13 | 东华大学 | 一种基于改进遗传算法的移动机器人路径规划方法 |
Non-Patent Citations (2)
Title |
---|
BRANKICA DJURIC等: "Solving the maximally balanced connected partition problem in graphs by using genetic algorithm", 《COMPUTING AND INFORMATICS》 * |
LILIANE R.B. SALGADO等: "Approximation Results on Balanced Connected Partitions of Graphs", 《ELECTRONIC NOTES IN DISCRETE MATHEMATICS》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108594813A (zh) * | 2018-04-18 | 2018-09-28 | 苏州大学张家港工业技术研究院 | 一种大尺度室内环境下多清洁机器人任务分配方法 |
CN108594813B (zh) * | 2018-04-18 | 2021-04-09 | 苏州大学张家港工业技术研究院 | 一种大尺度室内环境下多清洁机器人任务分配方法 |
CN108922550A (zh) * | 2018-07-04 | 2018-11-30 | 全童科教(东莞)有限公司 | 一种采用摩斯声码控制机器人移动的方法及系统 |
CN110084512A (zh) * | 2019-04-26 | 2019-08-02 | 河海大学常州校区 | 一种面向智能仓储系统的多机器人任务分配方法 |
CN110084512B (zh) * | 2019-04-26 | 2022-04-22 | 河海大学常州校区 | 一种面向智能仓储系统的多机器人任务分配方法 |
CN110456789A (zh) * | 2019-07-23 | 2019-11-15 | 中国矿业大学 | 一种清洁机器人的全覆盖路径规划方法 |
CN110480635A (zh) * | 2019-08-09 | 2019-11-22 | 中国人民解放军国防科技大学 | 一种用于多机器人的控制方法及控制系统 |
CN111984033A (zh) * | 2020-08-19 | 2020-11-24 | 天津(滨海)人工智能军民融合创新中心 | 一种多无人机覆盖任务路径规划方法及装置 |
CN112462783A (zh) * | 2020-12-02 | 2021-03-09 | 中国人民解放军国防科技大学 | 全覆盖应用下异构多机器人系统的任务规划方法 |
CN112462783B (zh) * | 2020-12-02 | 2021-07-23 | 中国人民解放军国防科技大学 | 全覆盖应用下异构多机器人系统的任务规划方法 |
CN114037350A (zh) * | 2021-11-29 | 2022-02-11 | 南开大学 | 一种适用于多机器人任务分配的均匀单元分解方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107563653B (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107563653A (zh) | 一种多机器人全覆盖任务分配方法 | |
Harding et al. | Meta-parametric design | |
Tam | Genetic algorithms, function optimization, and facility layout design | |
Nguyen et al. | Filter based backward elimination in wrapper based PSO for feature selection in classification | |
CN110033519A (zh) | 基于隐式函数的三维建模方法、装置、系统及存储介质 | |
CN105513051B (zh) | 一种点云数据处理方法和设备 | |
Alatartsev et al. | Constricting insertion heuristic for traveling salesman problem with neighborhoods | |
Lu et al. | A beamlet-based graph structure for path planning using multiscale information | |
Ewing et al. | Betweenness centrality in multi-agent path finding | |
CN115331751A (zh) | 基于机器学习的化学通路分析预测方法及终端设备 | |
Wittmann et al. | Domain decomposition and locality optimization for large-scale lattice Boltzmann simulations | |
Bartz-Beielstein | Stacked generalization of surrogate models-a practical approach | |
Zhang et al. | One way to fill all the concave region in grid-based map | |
CN103646282B (zh) | 基于混合优化算法的并行处理方法 | |
Camata et al. | Parallel linear octree meshing with immersed surfaces | |
Srinivasan et al. | Multi-Agent Collective Construction Using 3D Decomposition | |
Cogo et al. | SpaceSubdivisionTestbed: A graphical tool for arbitrary shaped 2D polygon subdivision | |
CN110349265B (zh) | 一种四面体拓扑网格生成方法及电子设备 | |
Shi et al. | Genetic search for optimally-constrained multiple-line fitting of discrete data points | |
JP4977193B2 (ja) | 任意の実数群から探索点の最近傍値を探索する方法 | |
Wang et al. | Real-Time CUDA Based Collision detection and Physics based collision response simulation | |
CN112417247A (zh) | 基于随机游走的动态流图数据顶点重要性更新方法和装置 | |
Nguyen | Building TIN (triangular irregular network) problem in topology model | |
Pham et al. | Optimizing Agent-Based Simulations for the GPU | |
ULUTAS | A modified flexible bay and slicing structure for unequal area facilities |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |