具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,在示例性实施例中,因为相同的参考标记表示具有相同结构的相同部件或相同方法的相同步骤,如果示例性地描述了一实施例,则在其他示例性实施例中仅描述与已描述实施例不同的结构或方法。
在整个说明书及权利要求书中,当一个部件描述为“连接”到另一部件,该一个部件可以“直接连接”到另一部件,或者通过第三部件“电连接”到另一部件。此外,除非明确地进行相反的描述,术语“包括”及其相应术语应仅理解为包括所述部件,而不应该理解为排除任何其他部件。
图1所示为本申请一实施例提供的一种基于强化学习的路径规划方法的流程图。如图1所示,该路径规划方法包括如下步骤:
步骤110:建立环境势能场,环境势能场包括目标点的引力场和障碍物的斥力场。
通过在路径规划的环境中附加虚拟力,即在目标点设置引力场、障碍物处设置斥力场,其中引力场和斥力场会在一定范围内响应产生对应的引力和斥力,并且随着与目标点或障碍物的距离越远,其产生的引力或斥力也越小。路径规划的中的每一个状态都可能会受到引力场和/或斥力场的作用力,即引力场和斥力场可能单独对每一个状态进行作用,也可以同时对每一个状态进行作用。
建立环境势能场的具体方法可以是:定义目标点的引力场为Us,障碍物的斥力场为Uo,得到的合力场为U’,
其中,ζ为引力场的增益因子,η为斥力场的增益因子,ρ(qs,qt)表示当前状态点到目标点T的欧几里得距离,ρ(qs,qo)表示当前状态点到障碍物的欧几里得距离,ρ0表示障碍物的作用半径。从而可以得到斥力Fre、引力Faat和合力F'分别为:
Faat=ζρ(qs,qt),F'=Faat+Fre;
步骤120:根据环境势能场和奖励函数,优化奖励函数。
由于强化学习方法通常是以奖励函数作为迭代的激励,即通过设置奖励函数来激励智能体在迭代过程中朝着奖励更多的路径或方向前行,从而来找到最优或更优的路径。本申请实施例通过优化奖励函数,将环境势能场的作用加入到奖励函数里以优化奖励函数,从而可以利用目标点的引力和障碍物的斥力将智能体引导至远离障碍物和靠近目标点的路径,从而可以更加快速的实现学习,并且也能够避免智能体在学习过程中陷入局部最优解。
步骤130:选择迭代路径,得到下一状态。
根据优化后的奖励函数和环境势能场的作用,选取迭代路径,即选择迭代方向和迭代步长,并且在当前状态下进行相应的迭代后得到下一状态。
步骤140:当下一状态的奖励函数满足预算条件时,结束迭代。
当下一状态的奖励函数满足预算条件时,则可以结束当前迭代。在一实施例中,预算条件可以包括:下一状态的累计奖励函数小于第一阈值;或下一状态的累计奖励函数大于第二阈值;其中,第一阈值小于第二阈值。当下一状态的累计奖励函数过小(小于第一阈值)时,即智能体很可能正在进行重复无用的探索动作,例如很可能陷入了一个死胡同中,此时,可以结束迭代并重新开始学习,以避免智能体做无用功。当下一状态的累计奖励函数较大(大于第二阈值)时,即获取较优或最优解,此时,可以结束当前迭代。应当理解,本申请实施例还可以选择其他结束迭代的条件,例如当迭代次数大于预算次数时,说明迭代效率过低或短时间内无法获取最优解,此时也可以结束迭代并重新开始学习。
本发明实施例提供的一种基于强化学习的路径规划方法,通过建立环境势能场,利用目标点的引力场和障碍物的斥力场对迭代路径的引导作用,可以加快收敛的速度,并且可以根据环境势能场优化奖励函数,从而实现奖励函数中也体现环境势能,即综合原奖励函数、目标点的引力场和障碍物的斥力场所产生的作用力的合力,来更有目的性的选取迭代路径,得到下一状态,从而在加快迭代搜索效率的同时也能够更加容易找到目标点,从而提高学习能力。
图2所示为本申请另一实施例提供的一种基于强化学习的路径规划方法的流程图。如图2所示,上述方法还可以包括:
步骤150:根据环境势能场和奖励函数,初始化当前状态的评价函数。
常规的Q学习方法中的评价函数通常初始化为零或者随机数值,这样显然是不利于学习过程的。为了加快学习过程,本申请实施例根据环境势能场和奖励函数来初始化评价函数,从而更有目的性的评价当前状态的即时回报。在一实施例中,当前状态的初始评价函数值与对应的奖励函数正相关,当前状态的初始评价函数值与对应的状态下的势能值正相关;其中,势能值为引力场和斥力场的合力。在一实施例中,步骤150中初始化评价函数的具体方式可以是:
根据学习的环境,确定起始点S、目标点T、障碍物位置O1,O2,…,On,以及定义从状态st出发的累积回报G(st)。
具体的,累计回报
其中,π为控制策略,R=(r
t,r
t+1,…,r
t+i)为获得的立即回报序列,γ为折算因子。
Q0(si,a)=r+γG0(si);其中,G0(si)为智能体在每一个状态下所受到的环境势能场的作用力(即引力和斥力的合力),以G0(si)表示对应状态下的最大累计回报,即上述累计回报中的最大值。
在一实施例中,上述实施例中的步骤120的具体实现方式可以包括:优化后的奖励函数与对应的优化前的奖励函数正相关,优化后的奖励函数与对应的状态下的势能值正相关;其中,势能值为引力场和斥力场的合力。
由于奖励函数对于智能体的学习过程有很大的影响,因此,本申请实施例通过优化奖励函数,可以提高学习的效率。具体的优化方法可以是:
R=r+r’=r+F’β;其中,F’为上述合力,易知越靠近目标点,F’越大,β为一个小的正常数。若选择的动作使得下一个状态更靠近目标点,则给智能体附加一个正奖励,越靠近奖励越大,反之若远离目标点,则附加一个负奖励,越远离负奖励越大,从而可以更加激励智能体向目标点靠近。
图3所示为本申请另一实施例提供的一种基于强化学习的路径规划方法的流程图。如图3所示,上述方法还可以包括:
步骤160:根据优化后的奖励函数,更新评价函数;其中,评价函数与优化后的奖励函数正相关。
在一实施例中,更新评价函数的具体方式可以是:
Q(st,a)=Q(st,a)+α[Rt+1+γmaxQ(st+1,a)-Q(st,a)];
其中,Q(st,a)为当前状态的评价函数,Q(st+1,a)为下一状态的评价函数,Rt+1为下一状态的奖励函数。通过当前的评价函数和奖励函数更新评价函数,并且奖励函数中包含了环境势能场的作用力,从而评价函数中也包含了环境势能场的作用力,从而可以更加有目的性的指导智能体的迭代。
图4所示为本申请另一实施例提供的一种基于强化学习的路径规划方法的流程图。如图4所示,上述方法还可以包括:
步骤170:根据环境势能场的势能值构建启发函数,启发函数与环境势能场的势能值正相关。通过设置与环境势能场的势能值正相关的启发函数,可以以启发函数引导智能体迭代和学习,特别是在迭代的前期,智能体对于环境知识掌握的较少时,需要一定的引导才能更加有目的性的迭代,从而提高迭代效率和效果。
在一实施例中,上述步骤130的具体实现依据可以如下任一种策略:根据启发函数确定迭代路径;或根据评价函数确定迭代路径;或随机选择迭代路径。
由于迭代初期,智能体对环境了解较少,因此需要多进行探索和借助启发函数来选择动作;迭代中期,智能体对环境已有了较多的认识,因此该阶段以启发函数的引导为主;到了迭代后期,智能体已经基本掌握了环境知识,此时以利用环境知识为主,即主要依据评价函数来选择迭代路径。在一实施例中,选择迭代路径的各种依据的概率之和为1。
具体的,迭代路径选择函数可以是:
其中,H
t(s
t,a
t)为启发函数,Q
t(s
t,a
t)为评价函数,a
r表示随机选择迭代路径,p
q、p
h、ε分别为选择三种依据的概率,且为随迭代次数变化的非线性函数,p
q+p
h+ε=1。应当理解,本申请实施例中,可以根据学习的阶段对三种依据的概率进行调整,例如在迭代初期时,将p
h设置较高,而在迭代后期时,将p
q设置较高。
图5所示为本申请另一实施例提供的一种基于强化学习的路径规划方法的流程图。如图5所示,该路径规划方法可以包括如下步骤:
步骤210:建立环境势能场,环境势能场包括目标点的引力场和障碍物的斥力场。
步骤210的具体实现方式如上述实施例中的步骤110,此处不再赘述。
步骤220:根据环境势能场和奖励函数,初始化当前状态的评价函数。
步骤220的具体实现方式如上述实施例中的步骤150,此处不再赘述。
步骤230:选择迭代路径,得到下一状态。
步骤230的具体实现方式如上述实施例中的步骤130,此处不再赘述。
步骤240:获取下一状态的奖励函数。
根据选择的迭代路径,得到下一状态后,获取下一状态的奖励函数。
步骤250:更新评价函数。
根据当前状态的评价函数、下一状态的评价函数和下一状态的奖励函数,更新当前状态的评价函数,具体的实现方式如上述实施例中的步骤160,此处不再赘述。
步骤260:判断是否满足限定条件。
在一实施例中,限定条件可以是以下条件中的任一种:下一状态对应的节点即为目标点;累计奖励函数小于或等于预设奖励值;迭代次数小于或等于预设次数。当判断结果为满足限定条件时,转步骤270;否则,转步骤230。
步骤270:更新迭代次数。
即迭代次数加1。
步骤280:判断迭代次数是否大于预设迭代次数。若判断结果为迭代次数大于预设迭代次数,则结束当前迭代;否则转步骤220。
图6所示为本申请一实施例提供的一种基于强化学习的路径规划装置的结构示意图。如图6所示,该路径规划装置600包括:势能场建立模块610,用于建立环境势能场,环境势能场包括目标点的引力场和障碍物的斥力场;奖励函数优化模块620,用于根据环境势能场和奖励函数,优化奖励函数;迭代模块630,用于选择迭代路径,得到下一状态;以及判断模块640,用于当下一状态的奖励函数满足预算条件时,结束迭代。
本发明实施例提供的一种基于强化学习的路径规划装置,通过势能场建立模块610建立环境势能场,利用目标点的引力场和障碍物的斥力场对迭代路径的引导作用,可以加快收敛的速度,并且奖励函数优化模块620可以根据环境势能场优化奖励函数,从而实现奖励函数中也体现环境势能,即综合原奖励函数、目标点的引力场和障碍物的斥力场所产生的作用力的合力,迭代模块630更有目的性的选取迭代路径,得到下一状态,从而在加快迭代搜索效率的同时也能够更加容易找到目标点,从而提高学习能力。
在一实施例中,预算条件可以包括:下一状态的累计奖励函数小于第一阈值;或下一状态的累计奖励函数大于第二阈值;其中,第一阈值小于第二阈值。
图7所示为本申请另一实施例提供的一种基于强化学习的路径规划装置的结构示意图。如图7所示,路径规划装置600还可以包括:奖励函数初始化模块650,用于根据环境势能场和奖励函数,初始化当前状态的评价函数。
在一实施例中,如图7所示,路径规划装置600还可以包括:评价函数更新模块660,用于根据优化后的奖励函数,更新评价函数;其中,评价函数与优化后的奖励函数正相关。
在一实施例中,如图7所示,路径规划装置600还可以包括:启发函数构建模块670,用于根据环境势能场的势能值构建启发函数,启发函数与环境势能场的势能值正相关。
在一实施例中,迭代模块630可以进一步配置为:根据启发函数确定迭代路径;或根据评价函数确定迭代路径;或随机选择迭代路径。
图8所示为本申请另一实施例提供的一种基于强化学习的路径规划装置的结构示意图。如图8所示,该路径规划装置600可以包括:势能场建立模块610,用于建立环境势能场,环境势能场包括目标点的引力场和障碍物的斥力场;奖励函数初始化模块650,用于根据环境势能场和奖励函数,初始化当前状态的评价函数;迭代模块630,用于选择迭代路径,得到下一状态;奖励函数获取模块680,用于获取下一状态的奖励函数;评价函数更新模块660,用于更新评价函数;第一判断模块690,用于判断是否满足限定条件;迭代次数更新模块6100,用于当判断结果为满足限定条件时,更新迭代次数;第二判断模块6110,用于判断迭代次数是否大于预设迭代次数,若判断结果为迭代次数大于预设迭代次数,则结束当前迭代;否则,根据环境势能场和奖励函数,重新初始化当前状态的评价函数。
下面,参考图9来描述根据本申请实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图9图示了根据本申请实施例的电子设备的框图。
如图9所示,电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的基于强化学习的路径规划方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置13可以是麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入设备13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的基于强化学习的路径规划方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的基于强化学习的路径规划方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。