一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于改进Sarsa算法的路径规划方法与流程

2021-10-09 13:26:00 来源:中国专利 TAG:路径 规划 强化 方法 学习

一种基于改进sarsa算法的路径规划方法
技术领域
1.本发明属于强化学习和路径规划领域,具体涉及一种基于强化学习的路径规划方法。


背景技术:

2.随着人工智能、大数据等技术的发展,智能机器人对人们的日常生活越来越重要,智能机器人能够帮助人们完成自主探索、自主规划路线以及自主躲避障碍物,能够从环境中不断学习并且最终对环境有一个完整清晰的把握。因此,智能机器人的路径规划也变得越来越重要,其在实际生活中也是一个值得深入探讨的研究课题。传统的路径规划方法有人工势场法、模拟退火法、快速搜索随机树法和模糊逻辑方法等,这些方法是经典的路径规划方法,存在目标不可达和陷入局部最优解等问题;接着又出现a
*
算法,但其搜索效率较低,很难在实际中应用;后来出现基于人工智能的路径规划方法有:遗传算法、粒子群优化算法、蚁群算法和神经网络算法等,这些算法搜索效率较高且更加智能化,但是其收敛速度较慢。近年来,强化学习与路径规划相结合成为热门的研究领域。
3.强化学习是智能体通过与环境交互以“试错”的方式进行学习,具有自适应能力和自主探索能力,但将传统的强化学习算法用于未知环境下路径规划也会存在一些问题,比如当智能体处于完全未知的环境中,在探索的初期会存在盲目性,需要不断的试错、探索,从而导致训练时间过长、收敛速度慢。此外,在更加复杂的未知环境中,系统状态维度会不断增加,相关的训练参数随之呈现出指数型增长趋势,消耗大量训练时间和存储空间,最终导致“维数灾难”。目前,应用到路径规划的强化学习算法有q

learning、sarsa、ppo、ddpg、dqn等算法。其中,sarsa算法是一种经典的在线强化学习方法,它存在以下问题:由于采用单步更新,会导致有些没用的q值也存在了q表中,造成一些无效的迭代、学习时间过长,并且训练策略容易失败、收敛速度慢等。


技术实现要素:

4.本发明为了解决基于传统sarsa算法的路径规划过程存在规划收敛速度较慢、规划效率较低的问题。
5.一种基于改进的sarsa算法的路径规划方法,包括如下步骤:
6.针对于待进行路径规划的区域建立地图模型,即在坐标轴上搭建起二维仿真环境,并根据实际环境在地图上设置陷阱和目标位置;
7.智能体的在环境中的坐标为(x,y),对应为智能体的状态s,智能体在地图中的动作空间包括上、下、左、右四个动作,通过环境坐标与动作建立q值表;智能体基于sarsa算法实现路径规划;
8.其特征在于,智能体基于sarsa算法实现路径规划的过程包括以下步骤:
9.s1、初始化q值表、状态s、路径矩阵p(s,a)和贪婪因子ε;路径矩阵p(s,a)用来保存当前回合智能体在环境中走过路径的状态s和动作a;
10.s2、智能体开始探索,对于每次迭代执行以下步骤:
11.在状态s时,智能体采用ε

greedy策略进行动作选择;智能体采取动作a后,环境会反馈一个奖励r并进入到下一个状态s

;更新q值表:
12.q(s,a)

q(s,a) α[r γq(s

,a

)

q(s,a)][p(s,a)]
[0013]
其中,s

与a

表示下一步的状态和动作,γ表示折扣因子。
[0014]
进一步地,步骤s1中初始化路径矩阵p(s,a)的过程如下:
[0015]
路径矩阵p(s,a)的初始值为0;对于回合中的每一步,都会对路径矩阵p(s,a)中相应的位置加上一个增量plus:
[0016]
p(s,a)

p(s,a) plus
[0017]
其中,plus为常量。
[0018]
进一步地,plus为1。
[0019]
进一步地,步骤s1中初始化ε的过程如下:
[0020]
在每一次用ε

greedy策略进行动作选择时,对于回合中的每一步,将ε按下式进行更新:
[0021][0022]
表示对该轮次路径矩阵中所有值进行累加并除累加次数n的对应量,action_space表示动作空间。
[0023]
进一步地,步骤s1中更新q值表后还要对p(s,a)进行更新:p(s,a)

γp(s,a)。
[0024]
进一步地,智能体进行动作选择的过程中利用边界检测函数对边界进行检测,然后基于智能体的位置进行动作选择,包括以下步骤:
[0025]
边界检测函数用于判断智能体是否在地图的边界处,将地图的参数传入边界检测函数,然后边界检测函数给出各种边界的坐标及其名称,智能体根据所在位置所处的边界调整动作的选择。
[0026]
进一步地,所述奖励
[0027]
进一步地,针对于待进行路径规划的区域建立地图模型的过程中采用栅格法建立带栅格的地图模型。
[0028]
进一步地,折扣因子γ取值范围是0<γ<1。
[0029]
本发明的有益技术效果如下:
[0030]
针于sarsa算法存在学习时间过长、训练策略容易失败以及收敛速度慢等问题,对其进行了改进,提出了一种基于改进sarsa算法的路径规划方法,本发明能够充分地利用迷宫环境,提供合理的路径规划。与原sarsa算法相比,在相同难度的迷宫环境中,改进sarsa算法的收敛速度较快,算法的运行效率更高,总回报增多,能够有效减少算法的总步数与平均每轮步数,在相同难度的迷宫环境中,改进算法的总步数减少了23.3%,从而提高了算法的性能。
附图说明
[0031]
图1为本发明的路径规划方法流程图;
[0032]
图2为本发明的实验环境图;
[0033]
图3为本发明实施例与传统sarsa算法的路径规划方法损失函数对比示意图;
[0034]
图4为本发明实施例与传统sarsa算法的路径规划方法运行时间对比示意图;
[0035]
图5为本发明实施例与传统sarsa算法的路径规划方法总回报对比示意图。
具体实施方式
[0036]
本发明的目的是提供一种基于改进sarsa算法的路径规划方法,该方法能够使智能机器人在复杂的迷宫环境中避免碰撞和落入陷阱以进行合理的路径规划,进而到达目标位置。在传统的sarsa算法基础上,引入路径矩阵p(s,a),该矩阵用来保存当前回合智能体在环境中走过的路径,每次更新会使路径矩阵p(s,a)中所有的值按比例减少,实现离目标位置越近的路径越重要的效果;引入动态调整贪婪因子ε,提高算法的探索能力,若智能体离目标位置越近,以路径矩阵p(s,a)为启发来增大1

ε来提高算法探索的目的性,反之,则增大ε提高探索的随机性。通过算法损失函数、运行时间、总回报、步数角度等指标来评估算法的性能,相对于传统的sarsa算法,改进sarsa算法在相同难度的迷宫环境中实现同等路径规划的收敛速度、总回报得到明显提升,能够有效减少算法迭代步数,算法的运行效率更高,这里的收敛速度是达到最优q值时的智能体需要进行的探索迭代步数,每次智能体探索到终点或者陷阱为一轮探索迭代过程。
[0037]
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图和具体实施实例,对本发明实施例中的技术方案进行清楚、完整地描述:
[0038]
本发明提出了一种基于改进sarsa算法的路径规划方法,在传统的sarsa算法基础上,引入路径矩阵p(s,a),路径矩阵p(s,a)的大小与q值表相同,初始化使该矩阵的所有值为0,在某个状态下执行某个动作后便在路径矩阵p(s,a)相应的位置增加plus值,进而实现用来保存当前回合智能体在环境中走过路径的效果,每次更新会使路径矩阵p(s,a)中所有的值按比例减少,可以实现离目标位置越近的路径越重要作用,路径矩阵p(s,a)参与q值表的更新,强化有效路径值;引入动态调整贪婪因子ε,提高算法的探索能力,若智能体离目标位置越近,以路径矩阵p(s,a)为启发,来增大1

ε来提高算法探索的目的性,反之,则增大ε提高探索的随机性,经过实验验证动态调整贪婪因子ε可以显著提高路径探索效率。根据强化学习的原理,图1给出了路径规划方法的流程图,具体包括如下步骤:
[0039]
步骤1:将各项数据信息初始化,对相关变量进行赋值:
[0040]
步骤1.1:初始化环境模型:采用栅格法在坐标轴中建立带栅格的实验模型,在坐标轴上搭建起二维仿真环境;
[0041]
该环境是一个n*n的栅格地图,并在地图上设置随机陷阱和目标位置,形成迷宫环境,通过随机陷阱以及目标点设置,实现智能体躲避陷阱以及趋向目标地点的能力,智能体落入陷阱后会从起始点重新开始探索学习;智能体的位置用(x,y)来表示,与q表中的某个状态相对应,智能体的起始点固定为左上角即(0,0),图2描述的是具体的实验环境,其中红色方格为智能体,而黑色方格为陷阱,黄色圆圈为目标位置,白色区域为普通区域,可供智能体行走;
[0042]
步骤1.2:动作空间设置:智能体在地图模型的环境下采取的所有行动,在环境中定义智能体的动作为上、下、左、右等四个动作,用列表[0,1,2,3]表示,其中0表示上,1表示下,2表示右,3表示左,将智能体近似为一个质点;
[0043]
步骤1.3:奖励函数设置:奖励函数是通过反馈来评价智能体从现在的状态变化到下一个状态所执行的动作的优良,用r表示,包括目标位置、陷阱和其他位置的奖励设置,利用奖励函数智能体能够选择出最优策略,具体设计如下:
[0044][0045]
智能体在探索环境普通区域时,不获得奖励;当智能体掉入陷阱则获得

100的惩罚;当智能体到达目标位置,会得到100的奖励,最后通过总的奖励值来判断该策略是否为最优策略;
[0046]
步骤1.4:初始化q值表:通过环境坐标与动作来建立q值表,强化学习算法的关键在于q值表的建立,智能体的状态s用环境的坐标来表示,因此通过环境坐标与动作来建立q值表,比如左上角的坐标是(0,0),在该环境模型中,智能体在每一个格子处可以选择的动作有四个,每一个动作都对应一个q值,比如图2使用8*8的地图,内部有50个状态可到达(去除起点、终点和陷阱),则有200个q值,则此时的q表为50*4的矩阵,q表结构如下所示,表1为三个状态和两个动作的q表:
[0047]
表1 q表结构示意图
[0048][0049]
步骤1.5:初始化状态s和路径矩阵p(s,a),该矩阵用来保存当前回合智能体在环境中走过路径的状态s和动作a,路径矩阵p(s,a)的大小和q值表相同,路径矩阵p(s,a)的初始值为0,对于回合中的每一步,都会对路径矩阵p(s,a)中相应的位置加上一个增量plus,公式如下:
[0050]
p(s,a)

p(s,a) plus
[0051]
其中,plus为常量,根据不同的任务可设置不同的数值,在本实验中设置为1,该路径矩阵参与q表的更新,并且让该路径矩阵的值逐步减少,从而实现离目标位置越近的路径越重要,即当智能体在某个时间点选择了某一动作,可以理解为对该状态

动作对作了一个记号,并且该记号的印记随着时间的增长而逐渐变得模糊,最后在若干步后智能体到达了终点,此时可以看到离终点越近的步骤记号越清晰,离终点越远的步骤记号越模糊,实现了离目标位置越近的路径越重要;
[0052]
路径矩阵p(s,a)每次在某个状态执行某个动作时便会在该位置加一个plus值,可
以实现记录下智能体走过的路径;智路径矩阵中记录的较新的值便是离终点最近的点,同时每走一步便会对路径矩阵中的值乘一个γ,即越早存入路径矩阵的值会变得越小,即实现了离终点越近越重要的效果。
[0053]
步骤1.6:初始化ε:以路径矩阵p(s,a)为启发,∑
a=action_space p(s,a)表示对路径矩阵p(s,a)的值求和,action_space表示动作空间,当∑
a=action_space
p(s,a)的值越大,可以认为该位置到目标点的距离有趋于0的趋势,即离目标点的距离越近,此时通过增大1

ε的值来增大探索的目的性,在每一次用ε

greedy策略进行动作选择时,对于回合中的每一步,将ε的减去∑
a=action_space
p(s,a)/n,公式如下所示:
[0054][0055]

[0056][0057]
ε函数的自变量为p(s,a),函数∑
a=action_space
p(s,a)/n的值应小ε,通过此公式可以实现动态调整ε的作用,并且随着智能体距离终点的距离越近,该函数值越大,可以实现适当的减少ε的值的效果,进而达到增加探索目的的作用。
[0058]
是对该轮次路径矩阵中所有值进行累加并除累加次数n,根据上面的思路可以解释,距离终点越近该值越大,由此值参参与心值的调整,可以实现动态调整贪心值的效果,并实验验证具有较好的效果。
[0059]
步骤2:智能体开始探索,具体探索步骤如下:
[0060]
步骤2.1:在状态s时,获取当前坐标的四个动作所对应的q值,智能体采用ε

greedy策略进行动作选择,ε

greedy策略是一种动作选择策略,其中ε为设定的小于1的超参数,智能体以概率εε随机选择未知动作,即随机从四种动作中进行选择;智能体以1

ε的概率从q表已有动作中选择q值最大的动作;
[0061]
在动作选择中,考虑到智能体的动作选择在某些特定位置并不是完全自由的,比如当智能体在左上角的时候,智能体下一步的动作只能为下或者右,因此在动作选择模块中额外添加了边界检测函数。边界检测函数可以判断智能体是否在地图的边界处,当发现智能体在边界处则减少动作选择,提高了智能体的探索效率。具体实施方式为:使用列表的形式将所有的边界储存,然后边界检测函数给出各种边界的坐标及其名称,再将地图的坐标参数传入边界检测函数,在动作选择模块时针对每个状态判断是否在边界列表里,如果在列表内则将根据边界的不同调整动作选择的方式,减少在边界时的动作选择范围;
[0062]
步骤2.2:智能体采取动作后,环境会反馈一个奖励r并进入到下一个状态s

,智能体在每一个迭代(episode)中不停进行循环训练,通过如下公式不断更新q值表:
[0063]
q(s,a)

q(s,a) α[r γq(s

,a

)

q(s,a)][p(s,a)]
[0064]
其中,s

与a

表示下一步的状态和动作,γ表示折扣因子,0<γ<1,折扣因子的设置可以避免q值无限增大,变量p(s,a)表示路径矩阵,该变量随着动作的执行会进一步发生改变;
[0065]
同时根据如下公式来更新p(s,a)的值,使得p(s,a)矩阵中的值按比例γ进行减
少,写入路径矩阵p(s,a)越早的值会变得越小,后写入的值相对较大,显然后面的动作与状态距离终点更近,由此达到距离终点越近的值越重要的效果:
[0066]
p(s,a)

γp(s,a)
[0067]
步骤3:判断当前位置是否是目标位置或陷阱,如果是,则结束该回合的智能体探索,同时判断是否达到收敛条件,未达到收敛条件则返回步骤1.4开始新一轮的探索;如果当前位置不是目标或者陷阱回到步骤2继续探索;当智能体获得了最优解后便结束探索。
[0068]
本实施例中,在陷阱和目标位置随机设定的8*8迷宫环境中进行实验,对比sarsa改进算法与原算法的性能差异,通过算法损失函数、运行时间、总回报、步数角度等指标进行评估算法的性能。
[0069]
图3为本发明实施例与传统sarsa算法的路径规划方法损失函数对比示意图:算法的损失函数用来衡量算法模型的预测能力,反映出算法形成的路径与最优路径的相似度,因此损失函数越小越好,算法的损失函数的表达式如下公式给出:
[0070][0071]
其中,y为实际路径的总回报,f(x)表示最优路径的总回报,turn为轮数,考虑让结果更加直观清晰,将上述奖励的具体值减小一百倍,通过分析图3可以得出改进sarsa算法的损失函数明显小于sarsa算法。
[0072]
图4为本发明实施例与传统sarsa算法的路径规划方法运行时间对比示意图:当算法迭代次数n<25时,改进sarsa算法与sarsa算法的运行时间几乎没有差距,随着智能体不断深入地学习,当算法迭代次数n大于25后,学习效率不断提高,探索能力更强,可以得出改进sarsa算法的运行效率更高。
[0073]
图5为本发明实施例与传统sarsa算法的路径规划方法总回报对比示意图:可以看到改进算法的总回报比原算法高,且几乎在所有的回合都比原算法要高,这说明改进算法不仅在初期比原算法更快达到终点,并且在达到终点后的收敛速度比原算法更快。
[0074]
在总步数与平均每轮步数方面的结果如表2所示,可以看到改进算法的总步数与平均每轮步数比原算法要小很多,改进算法的总步数减少了23.3%,说明改进算法在路径规划时的效率更高。
[0075]
表2步数角度的对比单位:步
[0076][0077]
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜