一、算法概述
本文基于Q-learning离线强化学习,实现三维栅格环境下无人机无碰撞、最短路径、最少步数路径规划。无人机具备1格/2格三维全向移动、对角线飞行、悬停能力,通过与环境交互迭代学习最优策略,以到达终点、路径距离、移动步数、避障为核心目标,输出满足约束的最优飞行路径。
二、环境与核心建模
1. 三维状态空间
将无人机飞行空间离散化为三维栅格地图,状态定义为无人机坐标: $$ 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} $$
(x,y,z):无人机空间位置Xmax,Ymax,Zmax:地图边界(代码中为 10×10×10)
2. 动作空间(代码实现)
共54种动作,包含:
- 6个轴向1格移动、12个平面斜向1格移动、8个空间斜向1格移动
- 6个轴向2格移动、12个平面斜向2格移动、8个空间斜向2格移动
- 1个悬停动作
(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) } $$
3. 约束条件
- 边界约束:坐标必须在地图范围内
- 避障约束:禁止进入障碍物坐标
- 目标约束:从起点
(2,2,2)到达终点(9,9,8)
三、Q-learning核心数学原理
1. Q值函数
Q(s,a) 表示状态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] $$
参数定义:
α:学习率,控制更新步长(代码中动态衰减:0.25→0.05)γ:折扣因子,权衡远期奖励(代码中 γ=0.99)R(s,a):即时奖励s':执行动作后的新状态max Q(s',a'):下一状态最优动作价值
2. 动作选择策略
采用ε-贪心策略+动态衰减,平衡探索与利用: $$ \pi(a|s)= \begin{cases} \arg\max_a Q(s,a) & \text{概率 } 1-\varepsilon(利用最优策略)\ \text{随机合法动作} & \text{概率 } \varepsilon(探索未知环境) \end{cases} $$
ε 随训练指数衰减:ε = max(ε_min, ε_0 · e^(-0.007 · episode))
四、奖励函数Reward设计
本算法以路径最短、无碰撞、必达终点、步数最少为目标,奖励函数分4类场景设计:
1. 奖励函数数学表达式
$$ R(s,a)= \begin{cases} 3500 - 15 \cdot d_{step} - 5 \cdot N_{step} & \text{到达终点}\ -1500 & \text{碰撞障碍物/越界}\ 30 \cdot (d_{cur}-d_{next}) -10 \cdot d_{step} -2 \cdot N_{step} -10 & \text{悬停}\ 30 \cdot (d_{cur}-d_{next}) -10 \cdot d_{step} -2 \cdot N_{step} & \text{正常飞行} \end{cases} $$



