一、算法概述
本文基于Q-learning离线强化学习,实现三维栅格环境下无人机无碰撞、最短路径、最少步数路径规划。无人机具备1格/2格三维全向移动、对角线飞行、悬停能力,通过与环境交互迭代学习最优策略,以到达终点、路径距离、移动步数、避障为核心目标,输出满足约束的最优飞行路径。
二、环境与核心建模
1. 三维状态空间
将无人机飞行空间离散化为三维栅格地图,状态定义为无人机坐标:
S={(x,y,z)∣1≤x≤Xmax, 1≤y≤Ymax, 1≤z≤Zmax} S = \left\{ (x,y,z) \mid 1 \le x \le X_{max},\ 1 \le y \le Y_{max},\ 1 \le z \le Z_{max} \right\} S={(x,y,z)∣1≤x≤Xmax, 1≤y≤Ymax, 1≤z≤Zmax}
- (x,y,z)(x,y,z)(x,y,z):无人机空间位置
- Xmax,Ymax,ZmaxX_{max},Y_{max},Z_{max}Xmax,Ymax,Zmax:地图边界(代码中为10×10×1010 \times 10 \times 1010×10×10)
2. 动作空间(代码实现)
共54种动作,包含:
- 6个轴向1格移动、12个平面斜向1格移动、8个空间斜向1格移动
- 6个轴向2格移动、12个平面斜向2格移动、8个空间斜向2格移动
- 1个悬停动作 (0,0,0)(0,0,0)(0,0,0)
动作集合:
A={(Δx,Δy,Δz)∣Δx,Δy,Δz∈{−2,−1,0,1,2}, 非全零}∪{(0,0,0)} A = \{ (\Delta x,\Delta y,\Delta z) \mid \Delta x,\Delta y,\Delta z \in \{-2,-1,0,1,2\},\ 非全零 \} \cup \{ (0,0,0) \} A={(Δx,Δy,Δz)∣Δx,Δy,Δz∈{−2,−1,0,1,2}, 非全零}∪{(0,0,0)}
3. 约束条件
- 边界约束:坐标必须在地图范围内
- 避障约束:禁止进入障碍物坐标
- 目标约束:从起点(2,2,2)(2,2,2)(2,2,2)到达终点(9,9,8)(9,9,8)(9,9,8)
三、Q-learning核心数学原理
1. Q值函数
Q(s,a)Q(s,a)Q(s,a) 表示状态sss下执行动作aaa的长期累积奖励期望,是算法核心决策依据:
Q(s,a)←Q(s,a)+α⋅[R(s,a)+γ⋅maxa′Q(s′,a′)−Q(s,a)] Q(s,a) \leftarrow Q(s,a) + \alpha \cdot \left[ R(s,a) + \gamma \cdot \max_{a'} Q(s',a') - Q(s,a) \right] Q(s,a)←Q(s,a)+α⋅[R(s,a)+γ⋅a′maxQ(s′,a′)−Q(s,a)]
参数定义:
- α\alphaα:学习率,控制更新步长(代码中动态衰减:0.25→0.050.25 \to 0.050.25→0.05)
- γ\gammaγ:折扣因子,权衡远期奖励(代码中γ=0.99\gamma=0.99γ=0.99)
- R(s,a)R(s,a)R(s,a):即时奖励
- s′s's′:执行动作后的新状态
- maxQ(s′,a′)\max Q(s',a')maxQ(s′,a′):下一状态最优动作价值
2. 动作选择策略
采用**ε\varepsilonε-贪心策略+动态衰减**,平衡探索与利用:
π(a∣s)={argmaxaQ(s,a)概率 1−ε(利用最优策略)随机合法动作概率 ε(探索未知环境) \pi(a|s)= \begin{cases} \arg\max\limits_a Q(s,a) & 概率\ 1-\varepsilon(利用最优策略)\\ 随机合法动作 & 概率\ \varepsilon(探索未知环境) \end{cases} π(a∣s)={argamaxQ(s,a)随机合法动作概率 1−ε(利用最优策略)概率 ε(探索未知环境)
ε\varepsilonε 随训练指数衰减:ε=max(εmin, ε0⋅e−0.007⋅episode)\varepsilon = \max(\varepsilon_{min},\ \varepsilon_0 \cdot e^{-0.007 \cdot episode})ε=max(εmin, ε0⋅e−0.007⋅episode)



