基于强化学习蟑螂算法的机器人路径规划方法与流程

文档序号:11587383阅读:297来源:国知局

本发明涉及一种基于强化学习蟑螂算法的机器人路径规划方法。



背景技术:

机器学习是研究计算机怎样模拟或实现某种学习行为,以获取新的知识或技能。机器学习可以重新组织计算机已有的知识结构,并使之不断改善自身的性能。强化学习是一种重要的机器学习方法,在智能控制、机器人及分析预测等领域被广泛应用,已成为近些年较为热门的研究领域。

蟑螂仿生算法是新近出现的一类群智能算法,在已有的研究成果中,已经将蟑螂算法用于tsp、函数优化和机器人路径导航等实际问题。已有的应用于机器人路径导航的蟑螂算法对蟑螂的基本生物特性进行了仿生,但算法没有很好的结合机器学习的思想,因此算法较少具备自学习能力。



技术实现要素:

本发明的目的是:设计一种基于强化学习蟑螂算法的机器人路径规划方法,该方法对生物蟑螂根据信息素寻迹尾随的生物特性进行仿生,使用传统的栅格法完成环境建模,以到达终点的欧式距离作为启发信息,通过可行路径的长度的转换计算得到单元格信息素浓度,算法执行过程中信息素浓度动态实时更新,种群中蟑螂个体通过信息素实现信息交流完成个体之间的经验学习,融合强化学习策略的蟑螂仿生算法用于求解机器人路径规划,强化学习策略兼顾蟑螂个体行进方向选择的正反馈性和随机性。

本发明的技术解决方案是该基于强化学习的机器人路径规划方法包括如下步骤:

步骤1:对工作空间建模,生成栅格地图,并完成栅格地图初始化,包括起点单元格s、终点单元格t和每个单元格初始信息素浓度;

步骤2:在起点s生成一个规模为w的蟑螂种群,综合运用随机搜索与贪婪搜索,完成算法的初始搜索过程,并产生q条可行路径;

步骤3:根据步骤2所产生的q条可行路,更新栅格地图中的信息素;

步骤4:蟑螂个体通过强化学习策略,完成路径搜索;蟑螂记录搜索到的当前最优个体路径,根据最优个体路径动态实时更新栅格地图信息素浓度;通过个体最优路径实时更新种群最优路径;种群搜索过程中,引入淘汰机制,对于一定步数内仍未发现可行路径的蟑螂,其本次搜索行为将被终止,该蟑螂从起点从新搜索;

步骤5:输出种群最优路径作为机器人的最终行进路径。

更具体地,所述步骤1中对工作空间建模,具体包括:通过密度为x×y的栅格对真实工作空间进行建模,生成栅格地图,完成栅格地图的初始化;栅格地图中的所有单元格cθ构成集合map,map={cθ|θ=1,2,…,x×y};将栅格地图置于直角坐标系中,每个单元格cθ的空间位置由其左下角的坐标(x,y)唯一标记,这里(x=1…x,y=1…y);在栅格地图中,可行单元格标记为“1”,障碍物单元格标记为“0”;在栅格地图中标记出起点单元格s和终点单元格t;为每个单元格设置相同的初始信息素浓度,初始信息素浓度计算方法为:phθ=1/(x×y),(θ=1,2,…,x×y)。

为了使本发明描述更加清晰,在下面叙述中,不同计算过程中所使用的单元格采用不同符号表示,如:集合fit中的单元格用符号fj表示,有序集合pi中的单元格用pit表示,上面符号满足:pit∈map,fj∈map,

更具体地,所述步骤2中蟑螂群的初始搜索过程,具体包括:种群中第i只蟑螂个体被记为roachi(i=1,2…w),这里w为蟑螂群规模;roachi每一步向前行进一个单元格,在第t步时,也即行进了t个单元格,所行进的路径被记为有序集合pi={pi1,pi2,…,pit};pit表示第i只蟑螂第t步所在的单元格;蟑螂下一步行进的单元格pit+1的计算方法为:

其中,fit表示roachi在t步时的可行域集合,fit由roachi当前位置单元格pit相邻的九个单元格中的可行单元格构成,但不包含pit-1;集合fit表示为:

fit={fj|j=1…m,m≤8,fj≠pit-1}

r0是一个随机产生的阈值,且r0~u(0,1),蟑螂个体每行进一步r0都被从新计算;

min{cθ|cθ∈fit}属于贪婪搜索,表示pit+1将选择可行域集合fit中距离起点位置t欧式距离最短的单元格;

rand{cθ|cθ∈fit}表示pit+1将随机选择可行域集合fit中的一个单元格;

当fit中包含终点单元格t则一条可行路径被发现;

当整个种群寻找到q条可行路径时,算法初始搜索完成。

更具体地,所述步骤3信息素更新,具体包括:根据生成的q条可行路径,更新栅格地图中单元格的信息素浓度;单元格的信息素浓度由经过该单元格的最短路径长度计算得出;假设经过单元格cθ的最短路径长度为ω,那么,cθ的信息素浓度phθ的更新方法为:

更具体地,所述步骤4使用强化学习策略,完成最优路径搜索,具体包括:整个种群发现的当前种群最优路径被记录为pbest,roachi发现的当前个体最优路径被记录为pathi;pbest的计算方法为:

pbest=opt{pathi|i=1…w}

初始搜索的步骤2和信息素更新的步骤3完成后,整个种群通过强化学习策略完成最优路径搜索,蟑螂个体roachi的t+1步行进策略如下式所示:

其中r1~u(0,1),rein{cθ|cθ∈fit}表示通过强化学习策略得到一个单元格作为pit+1

具体计算过程为:按信息素浓度由低到高依次对fit中的m个单元格设置权重,其中信息素浓度最低的权重设置为:δ1=10,第二低的权值为:δ2=20,余下的值通过斐波那契数列计算得出,排序为n的单元格权重δn=δn-1+δn-2;

根据单元格权重,计算其各自的权重空间,s1=10,排序为n的单元格的权重空间为sn=δn–δn-1;

按权重排序,最后一个单元格的权重为δm,在1到δm之间取一个随机整数r2=rand(1,δm);如果r2∈sn,则sn单元格被选择作为下一步行进的单元格;

roachi从起点s到终点t的爬行过程中,如果pi中的单元格数量大于pathi中单元格的数量,则引入淘汰机制,roachi的当前搜索被终止,返回起点s从新爬行搜索;

roachi从起点s到终点t爬行完毕后,此时pi中的单元格数量应小于或等于pathi中单元格的数量,意味着一条可行路径pi被发现;如果pi优于roachi的个体最优路径pathi,则pathi被更新,过程如下:

pathi=opt{pi,pathi}

当pathi被更新,则比较pathi和pbest,完成pbest更新,过程如下:

pbest=opt{pbest,pathi}

当pathi被更新,则pathi路径上的所有单元格信息素浓度需完成动态更新,假设pathi更新后的路径长度为τ,更新公式为:

在算法执行过程中,整个map信息素被动态实时更新。

本发明具有以下优点:

1、初始搜索过程产生的q条可行路径改变整个栅格地图中的信息素浓度,为接下来蟑螂个体的搜索提供必要的学习信息。

2、单元格的信息素浓度,由经过该单元格的最短路径转换计算得出,浓度值与最短路径长度成反比,路径越短的单元格浓度值越高,蟑螂个体的爬行方案使得蟑螂个体倾向于选择浓度高的单元格作为其下一步行进单元格,合理利用了正反馈策略。

3、蟑螂个体的搜索策略兼顾启发信息、正反馈和随机性,蟑螂个体将在学习其他蟑螂搜索经验的基础上寻迹尾随,不断优化个体最优路径,进而优化种群最优路径。

4、每个蟑螂个体最优路径被更新后,路径上的信息素浓度值也会被动态更新,因此,整个搜索过程栅格地图的信息素将会动态地实时更新,蟑螂个体的搜索经验将被种群中其他蟑螂学习。

5、淘汰机制避免了蟑螂个体执行过多的无效搜索,提高了算法效率。

附图说明

图1是本发明的算法流程图;

图2是本发明的建模后的机器人工作空间。

具体实施方式

下面结合附图和实施例,对本发明的技术方案进行详细地说明,但不应理解为是对技术方案的限制。在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言,本发明可以无需一个或多个这些细节而得以实施。在其它的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。

图1给出了本发明机器人路径规划方法的总体流程,请参见图1,下面是对方法中各个步骤的详细描述。

步骤s101:如图2所示,将一个充满障碍物的工作空间用栅格建模形成栅格地图,栅格地图的左上角为原点,这样每个单元格都用其右下角的一组坐标(x,y)来标记;

栅格地图中的所有单元格cθ构成集合map,map={cθ|θ=1,2,…,x×y};将栅格地图置于直角坐标系中,每个单元格cθ的空间位置由其左下角的坐标(x,y)唯一标记,这里(x=1…x,y=1…y);在栅格地图中,用“1”标记可行单元格300,用“0”标记出障碍物单元格200,s标记起点单元格100、t标记终点单元格400;为每个单元格设置相同的初始信息素浓度,初始信息素浓度计算方法为:

phθ=1/(x×y),(θ=1,2,…,x×y);

步骤s102:初始化蟑螂种群规模w;算法迭代次数m;迭代计数器m被赋值为1;蟑螂计数器被赋值为0;

步骤s103:根据随机搜索和贪婪搜索策略,种群中蟑螂个体进行路径搜索;种群中第i只蟑螂个体被记为roachi(i=1,2…w),这里w为蟑螂群规模;roachi每一步向前行进一个单元格,在第t步时(行进了t个单元格),所行进的路径被记为有序集合pi={pi1,pi2,…,pit};pit表示第i只蟑螂第t步所在的单元格;蟑螂下一步行进的单元格pit+1的计算方法为:

公式(1)中,fit表示roachi在t步时的可行域集合,fit由roachi当前位置单元格pit相邻的九个单元格中的可行单元格构成,但不包含pit-1;集合fit表示为:

fit={fj|j=1…m,m≤8,fj≠pit-1}(2)

r0是一个随机产生的阈值,且r0~u(0,1),蟑螂个体每行进一步r0都被从新计算;

min(cθ|cθ∈fit)属于贪婪搜索,表示pit+1将选择可行域集合fit中距离终点位置t欧式距离最短的单元格;

rand(cθ|cθ∈fit)表示pit+1将随机选择可行域集合fit中的一个单元格;

当fit中包含终点单元格t则一条可行路径被发现;

步骤s104:整个种群发现q条可行路径,则初始搜索过程结束;

步骤s105:根据初始搜索过程生成的q条路径,更新栅格地图中的信息素浓,单元格的信息素浓度由经过该单元格的最短路径长度计算得出;假设经过单元格cθ的最短路径长度为ω,那么,cθ的信息素浓度phθ的更新方法为:

步骤s106:蟑螂计数器i加1,表示下一只蟑螂准备向前搜索一步;

步骤s107:如果蟑螂计数器i超过总群规模w,则i被赋值为1,表示从第一只蟑螂开始继续搜索;

步骤s108:强化学习策略,种群中蟑螂个体进行路径搜索,roachi行进一步pit+1。蟑螂个体roachi的t+1步行进策略如下式所示:

上式中r1~u(0,1),rein(cθ|cθ∈fit)表示通过强化学习策略得到一个单元格作为pit+1

具体计算过程为:按信息素浓度由低到高依次对fit中的m个单元格设置权重,其中信息素浓度最低的权重设置为:δ1=10,第二低的权值为:δ2=20,余下的值通过斐波那契数列计算得出,排序为n的单元格权重δn=δn-1+δn-2;

根据单元格权重,计算其各自的权重空间,s1=10,排序为n的单元格的权重空间为sn=δn–δn-1;

按权重排序,最后一个单元格的权重为δm,在1到δm之间取一个随机整数r2=rand(1,δm);如果r2∈sn,则sn单元格被选择作为下一步行进的单元格;

步骤s109:判断pi单元格数量是否大于pathi;如果pi单元格数量大于pathi,则跳转至s113步,表示第i只蟑螂从起点s从新爬行;如果pi单元格数量大于pathi,则顺序执行s110;

步骤s110:判断roachi是否发现终点终点t;如果roachi发现终点终点t,则顺序执行s111;如果roachi没有发现终点终点t,则跳转至s106,表示下一只蟑螂开始向前搜索一步;

步骤s111:判断pi记录的路径是否优于pathi记录的路径;如果pi记录的路径优于pathi记录的路径,则跳转至s112;如果pi记录的路径优不于pathi记录的路径,则跳转至s113,表示表示第i只蟑螂从起点s从新爬行;

步骤s112:更新pathi,更新pathi上单元格信息素;

步骤s113:表示表示第i只蟑螂从起点s从新爬行;

步骤s114:判断pathi是否优于pbest;如果pathi优于pbest,如果pathi优于pbest,则顺序执行s115;如果pathi不优于pbest,则跳转至s106,表示下一只蟑螂开始向前搜索一步;

步骤s115:用pathi更新pbest;

步骤s116:最优路径更新次数计数器m加1;

步骤s117:判断最优路径更新次数计数器m是否小于m;如果m大于m,则顺序执行s118;否则如果m小于或等于m,则跳转至s106,表示下一只开始向前搜索一步;

s118:输出pbest作为机器人的最终行进路径。

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