基于强化学习的改进三维A*算法在线航迹规划
Improved three-dimensional A* algorithm of real-time path planning based on reinforcement learning
通讯作者: 张栋
收稿日期: 2021-08-12
| 基金资助: |
|
Received: 2021-08-12
作者简介 About authors
任智(1999—),男,博士研究生,主要研究方向为飞行器集群智能规划与自主控制 。
张栋(1986—),男,副教授,博士,主要研究方向为飞行器集群智能规划与自主控制 。
唐硕(1963—),男,教授,博士,主要研究方向为飞行动力学与制导 。
针对飞行器在线航迹规划对算法实时性与结果最优性要求高的问题,基于强化学习方法改进三维A*算法。首先,引入收缩因子改进代价函数的启发信息加权方法提升算法时间性能;其次,建立算法实时性与结果最优性的性能变化度量模型,结合深度确定性策略梯度方法设计动作-状态与奖励函数,对收缩因子进行优化训练;最后,在多场景下对改进后的三维A*算法进行仿真验证。仿真结果表明,改进算法能够在保证航迹结果最优性的同时有效提升算法时间性能。
关键词:
In order to address the problem of high requirements for real-time performance and optimality of real-time path planning, a three-dimensional A* algorithm is improved based on the reinforcement learning method. Firstly, the shrinkage factor is introduced to ameliorate the heuristic information weighting method of the improved cost function, so as to improve the time performance. Secondly, a measurement model is established to measure the real-time performance and optimality of the algorithm. Combined with the deterministic policy gradient method, the action-state and reward functions are designed to optimize the shrinkage factor. Finally, the improved three-dimensional A* algorithm is simulated in multiple scenarios, and the simulation results show that the improved algorithm can ensure the optimality of the track results and effectively improve the time performance of the algorithm.
Keywords:
本文引用格式
任智, 张栋, 唐硕.
REN Zhi.
0 引言
近年来, 国内外学者对A*算法的研究与改进主要从启发函数设计、拓展节点策略和数据处理方法3个角度出发。文献[9]通过调整启发函数中启发信息的权重, 增加少许计算时间,以换取航迹结果的优化。文献[10]引入了跳点搜索的拓展节点方法, 通过对搜索空间直线和对角线方向上冗余节点的有效剪枝, 提升二维栅格空间的搜索速度。文献[11]采用动态矩形的双向搜索路径方法, 进一步提升了算法的遍历速度。文献[12]通过引入对算法性能的评价标准为改进A*算法选择了合适的参数, 提升了算法的鲁棒性。上述改进方法针对的是二维空间下的航迹规划场景, 而三维空间规划的航迹节点数目更多, 计算量更大。文献[13] 针对动态环境下无人航迹规划问题,将稀疏A*算法嵌入到即时修复式架构, 实现规定时间内可行航迹的生成与威胁连续机动下的在线航迹规划。文献[14]基于指数衰减的方法,调整A*算法在搜索节点过程中启发信息的权重, 改进方法能够适应不同的环境。
考虑到实际战场环境下的规划任务需求, 飞行器在线航迹规划问题并不追求得到问题的最优解, 而是尽可能快地得到可行解。因此, 区别于传统改进方法中对启发信息的加权, 引入收缩因子改进A*算法代价函数。由于复杂地形环境对多约束条件下A*算法性能有着巨大影响, 在不同任务场景中难以根据工程经验确定收缩因子的大小。对于遗传算法、梯度优化等传统优化算法而言, 难以结合A*算法的整体规划过程对其航迹最优与求解效率构建目标优化模型, 仅能够针对特定任务场景下的A*算法收缩因子进行优化, 故优化结果不具备通用性。而深度确定性策略梯度(deep deterministic policy gradient, DDPG)方法能够综合利用神经网络与强化学习无模型学习的优势, 以提升算法综合性能为训练目标设计奖励函数, 无需构建具体优化模型, 将A*算法整体规划作为学习训练的抽象环境, 利用神经网络拟合改进A*算法代价函数的收缩因子。因此, 首先建立A*算法时间性能与最优性能变化度量模型; 然后,结合DDPG方法设计神经网络与A*算法搜索的复合架构, 对不同任务场景收缩因子策略进行训练; 最后,在线飞行时依据离线训练结果确定的收缩因子进行三维A*算法在线航迹规划。
1 问题描述与分析
1.1 航迹规划模型
式中: 第一式表征最短航迹长度约束, lmin为由飞行器自身性能确定的最小航迹长度, h为拓展节点步长, hmin为最小步长; 第二式表征最小转弯半径约束, φ为航向角, βmax为最大转弯角, PiPi+1=(xi+1-xi, yi+1-yi, zi+1-zi)表征由相邻节点确定的航迹片段; 第三式表征最大俯仰角约束, αmax为最大俯仰角, z为节点高程值; 第四式表征机动性能约束与飞行器飞行过程中其他约束的参数关系, v为飞行速度, nmax为最大可用过载, g为重力加速度。
1.2 三维A*算法拓展方式
结合航迹规划模型中建立的飞行性能约束, 航迹节点在三维空间中以生成树的方式展开,进行拓展搜索。搜索过程具体为:以当前点为球心、搜索步长为半径的球面上对上、下、左、右、前与斜对角等9个方向进行搜索, 则当前飞行器飞行至第k个航迹节点时在发射坐标系下的姿态角为
为保证拓展节点的搜索粒度, 可考虑将水平方向和垂直方向上的搜索范围按角度等分。由此, 根据算法步长与俯仰角和转弯角约束,将规划空间离散成可供拓展的航迹节点。各节点包括高程坐标信息、俯仰角、转弯角和评价函数值的六要素信息。设当前搜索节点Pcur(xcur, ycur, zcur, αcur, βcur, Fcur), 对应父节点Ppar(xpar, ypar, zpar, αpar, βpar, Fpar), 拓展节点为Pnext={Pnext, i|i=1, 2, …}, 拓展方式如图 1所示。
图1
1.3 三维A*算法代价函数
A*算法在Dijkstra算法的基础上, 采用贪心策略, 通过在搜索过程中引入启发信息, 使搜索节点趋向于最优路径。代价函数包括当前节点到起始点的路程信息和当前节点到目标节点的启发信息两个部分。在传统代价函数改进中对启发信息加权, 具体形式为
式中: fg为采用曼哈顿方法确定的当前节点到起始点间的路程代价; fh为当前节点到目标点的启发信息; ε为启发信息在代价函数中的权重系数。当ε=1时, 代价函数中的启发信息与路程信息的量级相同, 此时为标准A*算法;当ε>1时, 代价函数中启发信息膨胀, 随着ε的增大, 航迹节点的搜索拓展更倾向于目标搜索节点, 最终航迹规划结果的航迹长度增加, 求解时间减小。这表明: 权重系数的增大能够通过牺牲规划结果最优性来提升算法时间性能。特别地, 当ε=0时,标准A*算法退化为Dijkstra算法。
虽然启发信息的加权能够提升算法实时性能, 但随着加权系数的增大, 代价函数值在A*算法列表搜索时也随之存在数值爆炸的问题, 影响搜索效率。因此, 将启发信息的权重系数转换为路程代价的收缩因子, 使得权重系数限定在有限区间内, 避免搜索过程中列表代价函数值爆炸, 代价函数变形为
式中:ω为路程信息在代价函数中的收缩因子, 表征当前路程代价的权重。本文后续针对路程代价的收缩因子展开对代价函数权重系数的优化设计。
2 结合DDPG的改进A*算法
2.1 强化学习模型
强化学习的本质是当前研究的对象(智能体)与环境的交互。智能体通过对环境的感知确定当前的状态, 依据既定策略在环境中选择动作, 进而完成智能体的动作-状态转移。在智能体与环境的交互过程中, 通过值函数对智能体选择策略进行奖惩, 实现满足目标期望的迭代学习优化, 使得智能体最终能够获得最多的累计奖励。本节根据研究问题与对象设计智能体、状态、动作等概念, 建立强化学习模型。
2.1.1 动作-状态设计
考虑本文研究对象与内容, 在A*算法求解航迹规划过程中, 收缩因子的大小影响了规划结果最优性和时间性能。其中, 由于A*算法中的节点拓展搜索方法采取定步长策略, 规划航迹结果长度与航迹节点数目成正比, 故可将航迹长度最优问题转化为航迹节点数目最优问题。因此, 强化学习模型中的智能体即为概念实体A*算法, 对应的状态即为A*算法的算法时间性能和规划结果最优性能在当前收缩因子影响下的优化程度, 动作即为选定的收缩因子, 则动作-状态空间映射可表示为
式中: A为智能体动作集; S为智能体状态集; st为A*算法时间性能在当前选定收缩因子下相对于标准A*算法时间性能的变化量; se为A*算法最优性能在当前选定收缩因子下相对标准A*算法最优性能的变化量。
记t为A*算法在当前选定收缩因子下进行航迹规划所需的时间; e为A*算法在当前选定收缩因子下进行航迹规划最终结果的航迹节点数目。算法性能变化的衡量以收缩因子w=1时对应的标准A*算法性能为基准, 量化百分比指标为
式中:si为当前缩减因子条件下A*算法航迹规划后的性能参数提升百分比; sori为改进前标准A*算法对应的性能参数; simp为引入收缩因子后改进A*算法对应的性能参数。
2.1.2 奖励函数设计
奖励函数的设计是强化学习模型的难点, 决定了强化学习方法在学习迭代后最终收敛的期望与目标。在本文的研究问题中, 奖励函数是衡量收缩因子的选取对A*算法时间性能和结果最优性能影响的数学模型, 反映了在解决飞行器航迹规划问题时对A*算法时间性能与航迹最优性能的需求与侧重。两者变化的归一化度量为
式中: fi为当前缩减因子条件下A*算法航迹规划后的性能参数提升百分比; fimax为目标达到最大程度优化所对应的性能参数百分比; f′i表征了性能参数在归一化后与初始标准A*方法相比的性能优化程度。
考虑飞行器航迹规划问题对算法时间性能与结果最优性能的要求, 设计评价函数:
式中: δi表征了多目标优化中性能参数fi的重要程度, 可根据研究问题需求进行设计; fi* ′为改进前标准A*算法对应的性能参数的归一化度量。
考虑奖惩关系, 时间性能提升程度越大则给定奖励, 最优性能降低程度越大则给定惩罚, 结合式(6)设计奖励函数:
式中: sgn(x)为阶跃响应函数; ||·||2为2范数。
2.2 结合DDPG的改进方法
2.2.1 DDPG原理[30]
强化学习方法的基本过程是通过策略优化迭代进行动作状态转移,从而实现最大奖励总和, DDPG采用Actor-Critic方法架构结合神经网络和梯度策略(policy gradient, PG)。一方面, 在策略函数μ模拟的卷积神经网络中, 即Actor动作估计网络(策略网络), 采用行为策略β和离线(off-policy)生成状态动作转移策略经验回放的训练数据集; 另一方面, 在状态价值函数Q模拟的卷积神经网络中, 即Critic状态估计网络(Q网络), 在策略网络训练数据集基础上进行采样, 进而迭代学习得到最优策略。区别于PG方法选择动作的概率策略, DDPG方法采用确定性的行为策略β。特别地, 在策略网络参数的训练过程中, 动作决策采用Ornstein-Uhlenbeck随机过程引入噪声, 通过时序相关的随机探索, 提升算法对潜在更优策略的探索效率。
式中: st为当前t时刻智能体的状态; θtμ为当前t时刻策略网络训练参数; N为引入的随机噪声。在策略网络基础上, Q网络对执行策略μ进行训练与迭代优化, 通过动作-价值函数得到智能体在当前状态下依据策略网络的动作数据集进行采样所获的回报期望。
式中: E(·)表示智能体状态动作转移时所获得回报的期望; r表示智能体对应动作下完成状态转移时所得的即时回报; γ为避免总回报爆炸的收敛因子; Q为迭代学习的值函数; θQt为对应当前t时刻Q网络的训练参数。策略网络和Q网络参数的估计采用梯度下降方法:
式中: πσ(s)为对应网络训练的策略对象, σ为对应网络训练的策略参数; ▽σ为对应网络损失函数梯度。对于动作估计的当前策略网络, 损失函数取平均损失函数; 对于状态估计的当前Q网络, 损失函数取平方损失函数:
通过上述损失函数计算函数梯度并更新对应网络的权值, 采用软更新方法将网络参数从当前网络更新到目标网络:
式中: τ为软策略更新因子。
2.2.2 收缩因子训练框架
区别于确定性策略梯度(deterministic policy gradient, DPG)方法的Actor-Critic双网络, DDPG方法将各网络扩增为当前网络和目标网络。Actor当前网络负责策略网络参数的迭代更新, 而Actor目标网络则负责根据经验回放池中的状态采样选择最优动作。Critic当前网络负责Q网络参数迭代更新, 而Critic目标网络负责当前值函数计算, 具体结构如图 2所示。
图2
结合A*算法代价函数中权重系数的优化设计, DDPG算法的循环结构如图 3所示。
图3
综上, 基于DDPG方法的A*算法代价函数中的权重系数优化设计方法流程如图 4所示。首先, 对卷积神经网络参数与经验回放池进行参数初始化; 然后, Actor-Critic网络从经验回放池中选取与动作对应的收缩因子; 接着, 由改进A*算法求解任务点间航迹规划, 并得到算法求解时间与规划结果节点数目; 进而, 完成状态-动作转移并计算即时奖励与损失函数; 重复上述训练步骤直至完成最大迭代次数后, 随机更新A*算法航迹规划任务点信息, 重复训练直至达到最大学习次数; 最终, 由此得到对应固定环境下的收缩因子策略。
图4
分析训练过程可知, 在每一代训练前将任务点等信息随机初始化, 在训练过程中反复调用A*算法对航迹规划问题进行求解, 收缩因子策略的训练时间较长。因此, 在线航迹规划采用离线训练在线应用的策略, 在飞行器出发前对既定战场环境下的收缩因子确定策略进行离线训练, 而在飞行器在线飞行过程中则根据由离线学习结果而确定的收缩因子, 采用改进A*算法实现三维航迹在线规划。训练完成后, Actor网络中存放了可最大程度提升算法综合性能的收缩因子策略。由第2.1节可知, 模型中状态为收缩因子对时间性能与最优性能的优化程度, 动作对应收缩因子, 环境指A*算法的整体规划过程。因此,本文提出的强化学习模型具有通用性,训练的收缩因子策略能够适用于不同作战任务场景。
3 仿真分析
本节首先在三维静态环境下验证收缩因子对A*算法航迹规划时间性能与规划结果最优性能的影响; 然后结合DDPG方法对收缩因子进行训练, 并考虑多组不同任务点与禁飞区的仿真场景, 对比文献[13]提出的指数衰减加权方法, 验证本文提出的改进A*算法在静态场景下的规划性能; 最后在动态场景下验证结合DDPG训练收缩因子策略的改进A*方法的在线航迹规划能力。
3.1 引入收缩因子的改进A*算法仿真实验
图5
表1 飞行器性能参数表
Table 1
| 序号 | 性能 | 性能参数 |
| 1 | 飞行速度/(m/s) | 200 |
| 2 | 安全飞行高度/m | 500 |
| 3 | 最大俯仰角/(°) | 20 |
| 4 | 最大航向角/(°) | 45 |
| 5 | 最小转弯半径/m | 1 242.6 |
表2 禁飞区参数表
Table 2
| 序号 | 经纬坐标/(°) | 威胁半径/km |
| 1 | (112.4, 38.6) | 5 |
| 2 | (112.7, 38.4) | 5 |
| 3 | (112.5, 38.44) | 5 |
| 4 | (112.6, 38.25) | 5 |
| 5 | (112.4, 38.4) | 5 |
| 6 | (112.2, 38.5) | 5 |
为进一步提升算法时间性能, 考虑算法存储空间与排序搜索方法: ①为避免A*算法中开放列表中的拓展节点数目过多, 消耗大量排序与计算时间, 考虑引入存储空间约束以进一步提升算法计算效率; ②考虑采用二叉堆方法对代价函数值进行排序[31], 若当前开放列表中节点数目超过预设存储空间上限, 则根据排序结果将代价函数值最大的拓展节点移除, 以保证拓展节点搜索效率。
图6
图6
标准A*算法与改进A*算法规划结果平面图
Fig.6
2D comparison diagram of planning results between standard and improved A* algorithm
图7
图7
标准A*算法与改进A*算法规划结果三维图
Fig.7
3D comparison diagram of planning results between standard and improved A* algorithm
当w=1时,标准A*算法的仿真时间为264.13 s, 规划结果节点数目为49个; 当w=0时,改进A*算法运行时间为0.932 s, 规划节点数目为53个。分析两者仿真时间、规划结果节点数目以及规划路径结果可以发现, 引入收缩因子后, 改进A*算法的规划结果满足战场环境约束与飞行器性能约束, 能够在保证航迹规划结果可行的前提下提升算法时间性能。
3.2 结合DDPG方法的收缩因子训练仿真实验
结合DDPG方法对收缩因子进行迭代训练, 在每一代训练前更新任务点信息, 依据收缩因子值区间边界的A*算法航迹规划仿真结果。以第3.1节仿真场景为例确定奖励函数对应参数, 如表 3所示。
表3 奖励函数参数表
Table 3
| 序号 | 性能 | 性能参数 |
| 1 | ti*/s | 264.13 |
| 2 | timax/s | 0.932 |
| 3 | ei* | 49 |
| 4 | eimax | 53 |
DDPG卷积神经网络参数如表 4所示。
表4 卷积神经网络参数表
Table 4
| 序号 | 性能 | 性能参数 |
| 1 | Actor网络学习率 | 0.001 |
| 2 | Critic网络学习率 | 0.002 |
| 3 | Batch训练样本大小 | 128 |
| 4 | 经验回放池大小 | 10 000 |
| 5 | 软策略更新因子 | 0.01 |
| 6 | 收缩因子初值 | 0.4 |
| 7 | 即时回报收敛因子 | 0.9 |
图8
图8
改进算法最优性能变化图
Fig.8
Variation diagram of improved algorithm optimal performance
图9
图10
图11
分析收缩因子迭代训练结果可知, 在训练初期收缩因子在给定初值附近进行探索, 收缩因子越小, 算法时间性能越可以得到显著提升, 规划的航迹结果轨迹长度最优性能略微下降。收缩因子策略训练在300代后逐渐收敛, 奖励函数总回报稳定在[0.121.0.372], 最终确定收缩因子稳定在[0.415, 0.429]。
3.3 静态对比仿真实验
表5 仿真场景参数表
Table 5
| 场景 | 起始节点 | 目标节点 | 禁飞区1 | 禁飞区2 | 禁飞区3 | 禁飞区4 | 禁飞区5 | 禁飞区6 |
| 1 | (112.9, 38.2) | (112.1, 38.8) | (112.4, 38.6) | (112.7, 38.4) | (112.5, 38.44) | (112.6, 38.25) | (112.4, 38.4) | (112.2, 38.5) |
| 2 | (112.9, 38.7) | (112.1, 38.2) | (112.4, 38.6) | (112.7, 38.4) | (112.5, 38.44) | (112.6, 38.25) | (112.4, 38.4) | (112.2, 38.5) |
| 3 | (112.9, 38.5) | (112.1, 38.4) | (112.4, 38.6) | (112.7, 38.4) | (112.5, 38.44) | (112.6, 38.25) | (112.4, 38.4) | (112.2, 38.5) |
| 4 | (112.9, 38.2) | (112.1, 38.8) | (112.7, 38.3) | (112.4, 38.6) | (112.4, 38.3) | (112.2, 38.4) | (112.6, 38.3) | (112.6, 38.4) |
| 5 | (112.9, 38.7) | (112.1, 38.2) | (112.7, 38.3) | (112.4, 38.6) | (112.4, 38.3) | (112.2, 38.4) | (112.6, 38.3) | (112.6, 38.4) |
| 6 | (112.9, 38.5) | (112.1, 38.4) | (112.7, 38.3) | (112.4, 38.6) | (112.4, 38.3) | (112.2, 38.4) | (112.6, 38.3) | (112.6, 38.4) |
表6 各场景仿真结果表
Table 6
| 场景 | DDPG训练策略 | 指数衰减方法 | |||
| 仿真时间/s | 节点 | 仿真时间/s | 节点 | ||
| 1 | 1.373 | 52 | 9.612 | 69 | |
| 2 | 2.651 | 61 | 38.347 | 76 | |
| 3 | 0.894 | 54 | 2.811 | 54 | |
| 4 | 1.081 | 46 | 4.692 | 50 | |
| 5 | 1.670 | 52 | 19.793 | 74 | |
| 6 | 0.612 | 47 | 6.185 | 48 | |
图12
图12
两种改进A*算法规划结果平面图
Fig.12
2D comparison diagram of planning results between two improved A* algorithms
图13
图13
两种改进A*算法规划结果三维图
Fig.13
3D comparison diagram of planning results between two improved A* algorithms
分析表 6仿真结果可知, 结合DDPG方法训练的收缩因子策略相较于指数衰减加权方法,改进效果好且鲁棒性强, 而指数衰减加权方法规划结果最优性差强人意, 且对于不同地形环境与任务场景的改进效果不稳定。
3.4 三维动态仿真实验
图14
图14
动态场景改进算法规划结果平面图
Fig.14
2D diagram of planning results for improved algorithm in dynamic scenario
图15
图15
动态场景改进A*算法规划结果三维图
Fig.15
3D diagram of planning results for improved algorithm in dynamic scenario
分析仿真结果, 飞行器全段飞行仿真时间为580.0 s, 总航迹节点数目为58个, 规划航迹结果满足地形环境与飞行器性能约束。仿真结果表明, 结合DDPG方法训练收缩因子策略改进后的A*算法能够满足飞行器在线航迹规划的时间性能要求。
4 结论
基于强化学习方法改进三维A*算法, 在保证飞行器三维航迹规划结果最优性的同时提升了算法的时间性能。引入收缩因子改进A*算法代价函数加权方法, 解决了启发信息加权后在A*搜索时列表中代价函数值过大而影响搜索效率的问题, 进一步提升了算法时间性能。考虑收缩因子对规划结果最优性与实时性的影响, 建立综合指标模型, 并结合DDPG方法对收缩因子进行训练优化。针对复杂约束条件与地形环境的不同仿真场景, 改进算法的时间性能均能满足在线航迹规划的实时性要求, 且算法规划结果满足飞行器自身性能条件与战场环境约束。
参考文献
Trajectory planning with collision avoidance for redundant robots using Jacobian and artificial potential field-based real-time inverse kinematics
[J].DOI:10.1007/s12555-019-0076-7 [本文引用: 1]
Analysis of parallel genetic algorithm and parallel particle swarm optimization algorithm UAV path planning on controller area network
[J].
A novel reinforcement learning based grey wolf optimizer algorithm for unmanned aerial vehicles (UAVs) path planning
[J].
Rotary unmanned aerial vehicles path planning in rough terrain based on multi-objective particle swarm optimization
[J].
A new path planning method of mobile robot based on adaptive dynamic firefly algorithm
[J].DOI:10.1142/S0217984920503224 [本文引用: 1]
An improved A-Star based path planning algorithm for autonomous land vehicles
[J].
Rectangle expansion A* pathfinding for grid maps
[J].DOI:10.1016/j.cja.2016.04.023 [本文引用: 1]
基于加权A*算法的服务型机器人路径规划
[J].
Path planning of service robot based on weighted A* algorithm
[J].
基于即时修复式稀疏A*算法的动态航迹规划
[J].
Dynamic path planning based on real-time repair sparse A* algorithm
[J].
改进A*算法的移动机器人最短路径规划
[J].
Shortest path planning for mobile robots based on improved A* algorithm
[J].
基于知识的深度强化学习研究综述
[J].
A review of knowledge based deep reinforcement learning
[J].
Reinforcement learning path planning algorithm based on obstacle area expansion strategy
[J].
引入势场及陷阱搜索的强化学习路径规划算法
[J].
Reinforcement learning path planning algorithm based on gravitational potential field and trap search
[J].
Improved multi-agent deep deterministic policy gradient for path planning-based crowd simulation
[J].
Deep reinforcement learning for indoor mobile robot path planning
[J].
Fuzzy Q learning algorithm for dual-aircraft path planning to cooperatively detect targets by passive radars
[J].
Path planning for UAV ground target tracking via deep reinforcement learning
[J].
支持强化学习RNSGA-Ⅱ算法在航迹规划中应用
[J].
Application of reinforcement learning RNSGA- Ⅱ algorithm in flight path planning
[J].
基于网格PRM的无人机多约束航路规划
[J].
Multi-constraints UAV path planning based on grid PRM
[J].
Bi-directional adaptive A* algorithm toward optimal path planning for large-scale UAV under multi-constraints
[J].
/
| 〈 |
|
〉 |

