因此,PER-DDPG 网络结构[13]如图3 所示。

图3 PER-DDPG 网络结构
Fig. 3 PER-DDPG structure
2.5 多无人机PER-PDDPG 算法
一般来说,多智能体深度强化学习根据智能体之间通联方式的不同将多智能体深度强化学习分为如下4 类:无关联型、通信学习型、协作学习型和建模学习型[14-15]。其中,无关联型算法并不是提出了一个完全新的学习算法,它们主要是分析和评估单智能体算法在多智能体场景中的应用情况,每个智能体独自与环境交互、学习,不与其他的智能体产生通信联系[11]。尽管此算法忽略多智能体的场景特性会导致学习失败,但该方法能够灵活用于智能体数量多变的场景,实际应用中也取得了较好的训练效果。
因此,本文借鉴无关联型多智能体强化学习思想,引入经验共享机制,设计一种集中式训练、分布式执行的算法来解决多无人机路径规划问题,称之为基于优先经验回放的并行DDPG 算法(Parallel Deep Deterministic Policy Gradient based on Prioritized Experience Replay,PERPDDPG)。PER-PDDPG 算法将PER-DDPG 网络并行扩展到多无人机场景中,每架无人机把各自观测到的状态存入同一经验池中进行共享,使用同一个PER-DDPG 网络,即同一Actor 策略网络与Critic 评价网络进行集中式学习、训练,再根据各无人机当前状态各自选择动作执行。
所有的无人机基于相同的策略网络,将自身的观测数据、目标点、与其最近的无人机的相关信息等组成的状态s 输入到Actor 网络中,得到控制指令a 并执行,到达新的状态s',从环境中得到相应的回报r,并将该条经验( s , a , r , s' )存入所有无人机共享的经验池中。训练时,从共享经验池中按照优先经验回放机制优先抽取一批数据样本,结合共享的目标网络Critic 网络来更新实时的策略和评价网络。网络参数更新方式同样为软更新。具体网络结构如图4 所示。
图4 PER-PDDPG 网络结构
Fig. 4 PER-PDDPG structure
相比于单无人机算法,PER-PDDPG 使用多无人机并行的方式加速探索,能更快更广地探索状态空间,丰富了经验池的多样性。
3 基于PER-PDDPG 的无人机路径规划算法
3.1 状态空间
设定无人机携带机载GPS 设备和陀螺仪,可以获得自身的位置信息和速度信息,即 ξ=[x, y,v ,ψ];携带激光雷达传感器能获得周围环境信息,在雷达探测范围内遇到障碍物时,激光被阻挡,障碍物后方就探测不到,每条射线都会返回一个距离值。雷达半径的参数设置以无人机机载激光雷达VUX-240 的探测距离为参考,具体参数设置如下:
(1)雷达探测半径为2 km;
(2)雷达探测范围为60°。
若有障碍物阻挡,则返回被阻挡处与机载雷达的距离,否则将该值设置为雷达最大探测半径值2 km。
在多智能体系统中,智能体除了绕过障碍物外,还要避免与其他智能体发生碰撞。为了简化网络结构,多无人机系统中的每架无人机将除本机以外的其他无人机视为环境中正在移动的障碍物。
本文选择的状态输入包括3 部分。
(1)无人机i 机载雷达返回的观测数据:本文使用正前方60°范围的雷达测量数据,为了降低计 算 复 杂 度,将 此 范 围 分 为 7 方 向 {d i1 , d i2 , di3,di4 , di5 , di6 , di7 },即使用间隔10°的测量数据作为网络输入。得到无人机i 坐标系下的各角度障碍物分布情况后,对其进行归一化处理
利用上述糙率及1997年地形资料,复演同量级的各场历史洪水,可以判定该量级洪水在该河段水面线的下降程度,从而可在一定程度上估算历史资料用于模型率定的可靠程度。比较惠阳—樊屋河段6 000 m3/s~7 000 m3/s量级的历史洪水结果见表2,结果显示1970年—1987年发生同量级洪水时,东深取水口附近水位较现在高1.35 m~1.55 m,博罗水位较现在高0.68 m~0.83 m,相应地惠阳水位较现在高0.59 m~0.78 m,表明惠阳的水位变化受博罗水位变化影响大,其水位变化受自身河床变形影响相对较小。

此外,传感器的观测数据中包含了与其最近一架无人机的信息(ρ iu , θiu ), ρiu表示无人机i 探测到的与它最近的无人机的距离,
表示无人机i 航向与它最近的无人机所在方位的夹角。
(2)无人机i 自身当前运动状态:( v i , ψi)∈A,其中vi 和ψi 分别表示无人机i 当前时刻的速度和航向角,前者归一化至[ 0,1] ,后者归一化至[ -1 ,1]。
(3)目标点信息:由于不存在全局的地图信息,目标点信息以无人机极坐标系形式给出, ρit表示目标点到无人机的距离,单位为km; θit表示无人机航向与目标点所在方位的夹角,如图5所示。其中,距离信息 ρi t将根据雷达探测范围被归一化,实际输入到网络中的是 ρit /2。而角度信息则归一化至[ -1 ,1],目标点在无人机左侧时夹角 θ

图5 多无人机场景
Fig. 5 Scenario of multiple UAVs
it取正,在无人机右侧则取为负。
无人机状态输入是大小为13 的向量,如下

3.2 动作空间
固定翼无人机的机动决策是通过选择合适的加速度和角速度然后执行 TΔ 时间,达到无人机的期望速度和期望航向角。如公式(1),无人机i 的控制输入为一个二维向量,即动作空间

式中, ia 表示无人机i 的加速度, iω 表示无人机i的角速度,满足约束公式(2)。
其具体的速度大小范围设定参照CW-10 型号的固定翼无人机,设定为[10 m/s, 20 m/s]。
3.3 状态转移函数
无人机根据当前状态,决策出机动动作后,环境的状态将会发生改变,变为下一时刻状态。环境的状态就是无人机与目标点、障碍物之间的关系,包括位置和速度信息,因此状态转移函数就是无人机的运动状态转移方程,即

3.4 奖励函数
为了提高样本效率,加快收敛学习速度,本文奖励函数的设计采用稀疏奖励[16-17]和引导型回报函数相结合的方式。
设计到达奖励 rarrive,当无人机与目标点的距离小于阈值 dgoal ,即认为到达目标点,给予一个正向奖励。设计碰撞惩罚 rc ollision ,当雷达探测反馈的最小距离小于安全阈值时,则认为无人机在环境中发生碰撞,给予碰撞行为负面惩罚。设计危险惩罚 rdanger,当无人机靠近障碍物时给予惩罚

对于每架无人机而言,环境中存在“移动障碍物”,环境不是特别稳定,所以训练的难度和不稳定性会增强。为了实现全局的目标,每架无人机的奖励函数中应加入与整体任务完成情况相关的奖惩指标。
此外,即使每架无人机自身不动,在未得到最优策略时,别的无人机也有几率迎面撞上来,或者出现双方速度过快来不及反应就发生碰撞的情况,因此多无人机系统的避障难度和要求相比于单无人机系统会更高。为了加强无人机避障能力的训练,本文设置每回合的重置机制如下:
(1)单架无人机到达其指定目标点后,环境不会被重置,因为其他无人机仍未完成任务。在所有无人机都完成任务之前,该架无人机将持续使用其完成任务时刻的状态作为网络输入,以主动增加顺利到达目标点的数据样本供其他无人机学习。只有全部无人机均完成任务,才能将本次回合视为一个成功回合。
(2)为了实现全局任务,每架无人机的单步奖励函数被设计为所有无人机与其目标点之间的距离相关的函数 ,分别表示所有无人机相邻两个时刻与目标点距离、航向角的差值。
每回合结束情形如图6 所示。

图6 多无人机场景训练回合结束情形
Fig. 6 End of the training round in the multiple UAVs scene
综上所述,每架无人机以及无人机编队总体的单步奖励函数设计为

式中, ra 是到达奖励; rb 和 rc 是引导无人机朝向目标点飞行的引导奖励,r b 代表无人机从t-1 时刻到t时刻通过与目标距离的变化获得的奖励, rc 代表无人机从t-1 时刻到t 时刻通过速度方向与目标夹角的变化获得的奖励, 1c 和 c2 都是常数, tiρ 代表无人机i 在t 时刻与目标的距离,θit代表无人机i在t 时刻速度方向与目标方向的夹角; rc ollision 是无人机发生碰撞时获得的惩罚值; rd anger是对无人机过于靠近障碍物的惩罚;常数C 是一个很小的负值,用于促使无人机能使用较少的步数尽快到达目标点; rtotal 为无人机编队的奖励值,为其下属各无人机的奖励均值。
式(15)中具体的参数取值如表1 所示。
表1 仿真奖励参数设计
Table 1 Design of simulation reward parameter

每轮训练无人机编队总体的奖励R 设计如下:

式中, r
代表第i 步无人机编队的奖励值,n 为该轮次下无人机编队的总步数。
3.5 PER-PDDPG 算法流程
在多无人机场景下,为简化任务,本文设置与无人机数量相同的目标点。本章中使用匈牙利分配算法[18],按照第2.3 节中的算法步骤,根据不同无人机在不同目标点执行任务的代价矩阵,对多个目标点进行预先分配。基于PER-PDDPG的多无人机路径规划算法流程如表2 所示。
表2 PER-PDDPG 算法
Table 2 PER-PDDPG algorithm

当算法开始执行时,评价网络 Q( s, a | θ Q)和策略网络 μ ( s| θ μ)的参数 θ Q和 θ μ将被随机初始化。初始化完成后,参数将被同时拷贝到对应的目标网络中,随后初始化经验池D。算法最多被执行Max _Episode 个回合,每个回合最多与环境有Max _Step 步的互动和学习。在每个回合开始时,环境以及用于动作探索的噪声函数将被初始化。