一种基于多智能体强化学习的路径规划方法与流程

文档序号:16387465发布日期:2018-12-22 10:12阅读:483来源:国知局
本发明属于飞行器
技术领域
:,涉及一种基于多智能体强化学习的路径规划方法。
背景技术
:随着空中交通管理技术的不断发展和完善,对飞行器进行准确快速的路径规划是保证飞行器在复杂空域环境下安全飞行和有效提高空中交通效率的重要手段。路径规划往往是按照一定的评价标准体系,在给定的规划空间内,寻找运动物体从起始点到达目标点并且满足约束条件和一定性能指标的最优或最可行轨迹,使运动物体安全地完成预定任务,飞行器在空中的路径选择问题一直以来是研究的重点。较为常用的飞行路径选择方法多是在飞行器飞行前对路径进行规划,从预先确定的起飞点与目的地之间的多条飞行路径中,根据特定的准则选定一条最优路径,但是该方法需要获取网络整体的信息、运算量大,另外考虑到飞行器在实际飞行的过程中运动性能复杂,任务环境复杂,在对航迹进行规划时需要综合考虑飞行器的机动性能、任务时间、地形环境以及敌控区域等因素,根据实际空况调整飞行路径的灵活性十分必要。国内外研究学者在路径规划方面做了大量的工作,主要包括传统规划方法和智能规划方法。传统规划方法包括动态规划算法、最优控制算法和导数相关法等,这类方法要进行大规模的反复迭代,缺乏智能导向能力,计算量普遍较大,计算时间长,不适用于低空空域的自由飞行,而且鲁棒性较差。智能规划算法包括一些搜索算法和群体智能算法,如a*算法、dijkstra算法、蚁群算法和粒子群算法等,随着问题规模的增长,计算复杂度急剧增大。一般来说,飞行器在空中的飞行环境是动态变化的,很难预先获得全局的精确信息,为了满足日益多样化的飞行需求,亟需研发一种在飞行器飞行途中,快速对飞行路径进行动态选择的方法,使飞行决策支持系统或无人机飞行管理系统具备一定的实时航迹规划能力,从而提高航空网络的吞吐量,提高空域资源的利用率。强化学习作为机器学习的方法之一,又称再励学习、增强学习,来源于生物学中的条件反射理论,其基本思想是对所希望的结果予以奖励,对不希望的结果予以惩罚,逐渐形成一种趋向于好结果的条件反射。如图1所示,智能体在完成某项任务时,首先通过动作a与周围环境进行交互,在动作a和环境的作用下,智能体会产生新的状态s,同时环境会给出一个立即回报r。如此循环下去,智能体与环境不断地交互从而产生很多数据。强化学习算法利用产生的数据修改自身的动作策略,再与环境交互,产生新的数据,进一步改善自身行为,经过数次迭代学习后,智能体能够学到完成相应任务的最优动作,也就是最优策略。强化学习在路径规划问题中早有应用,但由于强化学习一般采用状态-动作对的表示方法,所以习惯上都是采用网格世界来对规划区域进行划分,根据网格的标号来对状态进行划分。对于强化学习来说,状态的数量会直接影响学习速度;随着状态的扩大和状态的细分会导致强化学习“维数灾难”。技术实现要素:针对强化学习中的“维数灾难”问题,本发明提供了一种基于多智能体强化学习的路径规划方法,基于最基本的强化学习q-learning算法,对状态和动作空间进行划分和抽象,采用两个功能互补的智能体:全局智能体和局部智能体来对飞行环境进行探索和利用,分别对应全局路径规划和局部路径规划,有效减少状态的数量,使飞行器最优化在空中的动作,从而解决飞行路径规划问题,躲避障碍与威胁源。具体步骤如下:步骤一、建立空中飞行环境的全局状态划分模型;根据全局状态划分模型初始化全局状态转移表q-table1;同时设定回报机制建立全局回报矩阵r1。模型包含飞机的出发点,飞机的目标点以及飞行空域半径不同的威胁源;出发点,目标点和威胁源均代表了不同的全局状态,同时构造成状态转移图;根据状态转移图,构建全局状态转移表q-table1与同阶的全局回报矩阵r1;全局状态转移表q-table1初始化为零矩阵;全局回报矩阵r1根据状态转移图的结构建立:行和列均用依次按顺序排列的全局状态表示;矩阵r1内的元素表示行对应的全局状态与列对应的全局状态,组成的全局状态对,元素的具体值表示全局状态对是否能执行行为以及回报价值。-1表示行对应的全局状态与列对应的全局状态之间的行为不能执行,即为不可选择的行为;非-1的值表示:该值行对应的全局状态与列对应的全局状态之间的行为能执行,且回报价值为该值。步骤二、根据初始化的全局状态转移表q-table1,随机选择某行的全局状态,作为起始状态s1;并设定外层循环的最大迭代次数n1。起始状态s1为出发点、威胁源或目标点。步骤三、判断起始状态s1是否为目标点,如果是,进入步骤九;否则,进入步骤四。步骤四、针对全局状态转移表q-table1,在当前状态s1所有的列中,利用ε-greedy算法选择某个列记为行为a1;步骤五、利用选定的行为a1,在全局状态转移表q-table1中得到当前状态s1的下一个状态行为a1所在的列数即为下一个状态所在的行数。步骤六、利用q-learning算法的转移规则更新全局状态转移表q-table1中,当前状态s1以及行为a1所对应的具体元素值;具体如下式所示:其中q(s1,a1)表示更新后全局状态转移表q-table1中状态s1选择行为a1所对应的元素值;r1(s1,a1)表示全局回报矩阵r1中,当前状态s1采取行为a1对应的即时回报价值;γ1为全局智能体的折扣因子常数,满足0≤γ1<1;表示下一个状态在全局状态转移表q-table1中所有可选行为中的最大元素值;表示下一个状态所对应的行为。步骤七、更新判断s1是否为全局状态中的目标点,如果是,进入步骤九;否则,进行步骤八;步骤八、进入内层循环,采用q-learning算法得到更新后的状态s1所对应的局部规划路径。具体步骤为:步骤801、更新后的状态s1对应的是威胁源,将该威胁源及其周围区域划分为局部状态网格,每一个网格对应一个局部状态;所有状态网格构成要学习的局部状态转移表q-table2,同时建立局部回报矩阵r2。局部回报矩阵r2内的元素的回报价值按照如下规则确定:威胁源内部及边缘所在的状态网格回报值为负数,设定为-1,其余状态网格回报值为0,其中,起点和终点的状态网格回报值为100。起点和终点按照如下规则确定:距离全局状态划分模型中起始点最近的一个网格为局部区域的起点,距离全局状态划分模型中目标点最近的一个网格为局部区域的终点。步骤802、初始化局部状态转移表q-table2为零矩阵,随机选择某行网格中的局部状态,作为起始状态s2;设定内层循环的最大迭代次数n2;步骤803、在当前状态s2所有的列中,利用ε-greedy算法选择某个列记为行为a2;步骤804、利用选定的行为a2,在局部状态转移表q-table2中得到当前状态s2的下一个状态行为a2所在的列数即为下一个状态所在的行数。步骤805、利用q-learning算法更新局部状态转移表q-table2中,当前状态s2以及行为a2所对应的具体元素值;q(s2,a2)表示更新后局部状态转移表q-table2中状态s2选择行为a2所对应的元素值;r2(s2,a2)表示局部回报矩阵r2中,当前状态s2采取行为a2后的即时回报价值,γ2表示局部智能体的折扣因子常数,满足0≤γ2<1,表示下一个状态在局部状态转移表q-table2中所有可选行为中的最大元素值,表示下一个状态所对应的行为。步骤806、更新返回步骤803,直至迭代次数达到n2完成内层循环,得到当前状态s1所对应的局部规划路径。根据网格中各个元素值,从起点开始,找出所有相邻网格的最大元素值,将最大元素值所在的网格定为路径的第一个网格,从该元素开始继续找所有不重复的相邻网格,选出最大元素值所在的网格定为路径的第二个网格,依次类推,直到转移到最后一个网格为终点网格,从起点到终点选中的所有转移网格就是规划出飞行器在空中的局部路径。步骤九、外层循环的迭代次数自增1,并判断迭代次数是否达到n1,如果是,完成飞行器在空中的全局路径规划。否则,重新随机选择起始状态s1并返回步骤三。本发明的优点在于:1)、一种基于多智能体强化学习的路径规划方法,对全局、局部的状态和动作空间进行划分和抽象,能够有效地解决强化学习在复杂路径规划问题中的“维数灾难”困难,使得飞行器能够在不同的环境中自主进行路径规划,适应不同环境的要求,提高飞行器的生存率和任务完成率;2)、一种基于多智能体强化学习的路径规划方法,采用全局智能体和局部智能体分别进行全局和局部的路径规划,能够有效降低飞行器对环境探索学习的时间,提高强化学习的收敛速度,尽快完成飞行器在未知环境中的路径规划。附图说明图1为本发明现有技术中采用的强化学习原理图;图2为本发明实施例中给出的全局状态划分示意图;图3为本发明实施例中给出的局部状态划分示意图;图4为本发明实施例中全局状态转移图结构;图5为本发明实施例中全局回报矩阵的示意图;图6为本发明实施例中初始化全局状态表的示意图;图7为本发明实施例中参考规划路径的示意图;图8为本发明一种基于多智能体强化学习的路径规划方法流程图;图9为本发明一种基于多智能体强化学习的路径规划方法中局部路径规划流程图。具体实施方式下面将结合附图和实施例对本发明作进一步的详细说明。本发明提出一种基于多智能体强化学习的路径规划方法,考虑的问题是如何从某一点寻找到一条安全的路径到达目标点。首先,定义两种功能不同但互补的智能体用于全局路径规划和局部路径规划,针对强化学习中的维数爆炸问题,对飞行区域进行全局和局部的状态划分,其中全局状态包含起始点、终点和不同的威胁源,局部状态为飞行器在到达某一全局状态下的具体位置;定义全局智能体的回报矩阵并初始化全局状态转移表;然后,根据全局状态转移表,在所有的全局状态中随机初始化飞行器的起始状态;并按照ε-greedy策略进行动作选择,得出飞行器在不同状态间的转移方式,并结合全局回报矩阵和q-learning算法的转移策略进行全局状态转移表的学习和更新;此过程中,在全局智能体进入新的状态后开始启用局部智能体进行局部路径规划,同样使用q-learning算法进行局部状态转移表的学习;直至学习迭代次数达到预先设定的最大值。最后,使用最终得到的全局状态矩阵q-table1和局部状态矩阵q-table2确定飞行器的最优规划路径。本发明能够对强化学习中的智能体进行分工,使不同的智能体具有不同的能力,靠智能体间的协作来加快完成路径规划任务,不仅减少了传统q学习算法中智能体的状态和动作空间,加快学习和训练速度,也能够保证路径规划的灵活性和准确性。该方法的总体流程图如图8所示,具体步骤如下:步骤一、建立空中飞行环境的全局状态划分模型;根据全局状态划分模型初始化全局状态转移表q-table1;同时设定回报机制建立全局回报矩阵r1。模型包含飞机的出发点,飞机的目标点以及飞行空域半径不同的威胁源,以及它们所在的位置;出发点,目标点和威胁源均代表了不同的全局状态,同时构造成状态转移图;全局智能体以威胁源作为划分状态的基准,即每个威胁源所在的区域、飞机的出发点和计划的目标点构成了状态空间,若威胁源个数为n,则状态空间的总状态数为n+2,在每一个状态下可选择的动作个数为n+1,在这里的动作并不是指具体的动作,而是明确下一步可以转移到的状态。如图2所示,是一个简单的飞机进入敌方防御阵地的任务规划示意图,含有三个威胁源,出发点对应状态1,目标点对应状态5,图中地空导弹、地面雷达、山谷地形、恶劣气候等飞行器可能受到威胁的区域,需要在规划飞行路径时进行躲避,用圆圈表示威胁源,圆圈半径即为威胁源的威胁半径,虚线框内均表示该威胁源的状态区域,如威胁源3对应的是状态4。在出发点1若选择动作3,表示下一步要向动作3进行转移,如果该动作可以执行,则转移到状态3的状态域。根据状态转移图,构建全局状态转移表q-table1与同阶的全局回报矩阵r1;强化学习q-learning算法中有两个重要的术语:“状态(state)”和“行为(action)”,在此将每一种“状态”对应一个节点,而每一种“行为”对应一个箭头,即表示状态间的转移。若在此过程中受到威胁源的阻挡,则表示状态无法转移,如图2中,状态1无法转移到状态4,据此,建立全局状态转移的图结构表示,如图4所示。为了将编号为5的状态设置为目标点,为每一种动作(即相应连边)关联一个回报值(reward),直接转移到目标状态的动作reward值为100,其他动作的reward值为0。根据此状态转移的图结构,以“状态”为行,“行为”为列,构建出一个关于reward值的回报矩阵r1,如图5所示,行和列均用依次按顺序排列的全局状态表示;矩阵r1内的元素表示行对应的全局状态与列对应的全局状态,组成的全局状态对,元素的具体值表示全局状态对是否能执行行为以及回报价值。-1表示空值,意为相应节点之间没有边相连;也就是表示行对应的全局状态与列对应的全局状态之间的行为不能执行,即为不可选择的行为;非-1的值表示:该值行对应的全局状态与列对应的全局状态之间的行为能执行,且回报价值为该值。类似地,构建全局智能体的状态转移表q-table1,用来表示智能体从经验中学到的知识,转移表q-table1与回报矩阵r1是同阶的,由于刚开始智能体对外界环境一无所知,因此将全局状态转移表q-table1初始化为零矩阵,如图6所示。对于状态数目未知的情形,让智能体从一个元素出发,每次发现一个新的状态时就在状态表中增加相应的行列。步骤二、根据初始化的全局状态转移表q-table1,在所有的全局状态中随机选择某行的全局状态,作为起始状态s1;进入外层循环并设定外层循环的最大迭代次数n1。起始状态s1为出发点、威胁源或目标点。步骤三、判断起始状态s1是否为目标点,如果是,进入步骤九;否则,进入步骤四。步骤四、针对全局状态转移表q-table1,在当前状态s1所有的列中,利用ε-greedy算法选择某个列记为行为a1;步骤五、利用选定的行为a1,在全局状态转移表q-table1中得到当前状态s1的下一个状态行为a1所在的列数即为下一个状态所在的行数。步骤六、利用q-learning算法的转移规则更新全局状态转移表q-table1中,当前状态s1以及行为a1所对应的具体元素值;具体如下式所示:其中q(s1,a1)表示更新后全局状态转移表q-table1中状态s1选择行为a1所对应的元素值;r1(s1,a1)表示全局回报矩阵r1中,当前状态s1采取行为a1对应的即时回报价值;γ1为全局智能体的折扣因子常数,满足0≤γ1<1;表示下一个状态在全局状态转移表q-table1中所有可选行为中的最大元素值;表示下一个状态所对应的行为。步骤七、更新判断s1是否为全局状态中的目标点,如果是,进入步骤九;否则,进行步骤八;步骤八、进入内层循环,采用q-learning算法得到更新后的状态s1所对应的局部规划路径。全局智能体和局部智能体所面对的状态和可行动作也是不同的;局部智能体在全局智能体确定了下一步的转移状态之后发挥作用,目的是为了能够规划出避开威胁源的路径,由于局部智能体位于状态域当中,一般一个状态域中包含一个威胁源,可以使用网格法对状态和动作进行划分,即一个网格对应着一种状态,如图3所示,若进入到威胁源所在的网格中,则给予智能体为负值的惩罚,反之给予智能体一个为正值的奖赏。在每一个状态网格中有上、下、左、右四种动作可以选择,在这里,选择ε-greedy算法为动作生成策略,以达到强化学习中“探索”和“利用”的平衡。局部路径规划的核心思想仍采用q-learning算法,其中局部状态区域采用网格的表示形式进行状态的划分,根据距离全局起点和全局目标点的距离确定局部区域的起点和终点,威胁源内的状态回报值为负数,反之为正值,构建与回报矩阵r1结构类似的局部回报矩阵r2,以及局部状态转移表q-table2,利用q-learning算法的转移规则进行局部状态转移表q-table2的学习:具体步骤为:步骤801、更新后的状态s1对应的是威胁源,将该威胁源及其周围区域划分为局部状态网格,每一个网格对应一个局部状态;所有状态网格构成要学习的局部状态转移表q-table2,同时建立局部回报矩阵r2。局部回报矩阵r2内的元素的回报价值按照如下规则确定:威胁源内部及边缘所在的状态网格回报值为负数,设定为-1,其余状态网格回报值为0,其中,起点和终点的状态网格回报值为100。起点和终点按照如下规则确定:距离全局状态划分模型中起始点最近的一个网格为局部区域的起点,距离全局状态划分模型中目标点最近的一个网格为局部区域的终点。步骤802、初始化局部状态转移表q-table2为零矩阵,随机选择某行网格中的局部状态,作为起始状态s2;设定内层循环的最大迭代次数n2;步骤803、在当前状态s2所有的列中,利用ε-greedy算法选择某个列记为行为a2;步骤804、利用选定的行为a2,在局部状态转移表q-table2中得到当前状态s2的下一个状态行为a2所在的列数即为下一个状态所在的行数。步骤805、利用q-learning算法更新局部状态转移表q-table2中,当前状态s2以及行为a2所对应的具体元素值;q(s2,a2)表示更新后局部状态转移表q-table2中状态s2选择行为a2所对应的元素值;r2(s2,a2)表示局部回报矩阵r2中,当前状态s2采取行为a2后的即时回报价值,γ2表示局部智能体的折扣因子常数,满足0≤γ2<1,表示下一个状态在局部状态转移表q-table2中所有可选行为中的最大元素值,表示下一个状态所对应的行为。步骤806、更新返回步骤803,直至迭代次数达到n2完成内层循环,得到当前状态s1所对应的局部规划路径。根据网格中各个元素值,从起点开始,找出所有相邻网格的最大元素值,将最大元素值所在的网格定为路径的第一个网格,从该元素开始继续找所有不重复的相邻网格,选出最大元素值所在的网格定为路径的第二个网格,依次类推,直到转移到最后一个网格为终点网格,从起点到终点选中的所有转移网格就是规划出飞行器在空中的局部路径。步骤九、外层循环的迭代次数自增1,并判断迭代次数是否达到n1,如果是,完成飞行器在空中的全局路径规划。否则,重新随机选择起始状态s1并返回步骤三。最终,在三个威胁源的环境下可能规划出飞行器的参考路径为如图7所示。至此,完成了飞行器在相应环境中全局以及局部路径规划。该方法能够使飞行器完成给定的任务,适应不同环境的要求,提高飞行器的生存率和任务完成率;同时,也大大提高了训练过程中的收敛速度。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1