一、算法概述
本文基于Q-learning 离线强化学习,实现三维栅格环境下无人机无碰撞、最短路径、最少步数路径规划。无人机具备1 格/2 格三维全向移动、对角线飞行、悬停能力,通过与环境交互迭代学习最优策略,以到达终点、路径距离、移动步数、避障为核心目标,输出满足约束的最优飞行路径。
二、环境与核心建模
1. 三维状态空间
将无人机飞行空间离散化为三维栅格地图,状态定义为无人机坐标: S = {(x,y,z) | 1 ≤ x ≤ X_max, 1 ≤ y ≤ Y_max, 1 ≤ z ≤ Z_max}
- (x,y,z):无人机空间位置
- X_max, Y_max, Z_max:地图边界(代码中为 10×10×10)
2. 动作空间(代码实现)
共54 种动作,包含:
- 6 个轴向 1 格移动、12 个平面斜向 1 格移动、8 个空间斜向 1 格移动
- 6 个轴向 2 格移动、12 个平面斜向 2 格移动、8 个空间斜向 2 格移动
- 1 个悬停动作 (0,0,0)
动作集合: A = {(Δx,Δy,Δz) | Δx,Δy,Δz ∈ {-2,-1,0,1,2}, 非全零} ∪ {(0,0,0)}
3. 约束条件
- 边界约束:坐标必须在地图范围内
- 避障约束:禁止进入障碍物坐标
- 目标约束:从起点 (2,2,2) 到达终点 (9,9,8)
三、Q-learning 核心数学原理
1. Q 值函数
Q(s,a) 表示状态 s 下执行动作 a 的长期累积奖励期望,是算法核心决策依据: Q(s,a) ← Q(s,a) + α · [R(s,a) + γ · max_a' Q(s',a') - Q(s,a)]
参数定义:
- α:学习率,控制更新步长(代码中动态衰减:0.25→0.05)
- γ:折扣因子,权衡远期奖励(代码中γ=0.99)
- R(s,a):即时奖励
- s':执行动作后的新状态
- max Q(s',a'):下一状态最优动作价值
2. 动作选择策略
采用ε-贪心策略+动态衰减,平衡探索与利用: π(a|s) = { argmax_a Q(s,a) & 概率 1-ε(利用最优策略) 随机合法动作 & 概率 ε(探索未知环境) }
ε 随训练指数衰减:ε = max(ε_min, ε_0 · e^(-0.007·episode))
四、奖励函数 Reward 设计
本算法以路径最短、无碰撞、必达终点、步数最少为目标,奖励函数分 4 类场景设计:
1. 奖励函数数学表达式
R(s,a) = { 3500 - 15·d_step - 5·N_step & 到达终点 -1500 & 碰撞障碍物/越界 30·(d_cur-d_next) -10·d_step -2·N_step -10 & 悬停 30·(d_cur-d_next) -10·d_step -2·N_step & 正常飞行 }
2. 奖励项详细介绍
- 到达终点(最高奖励)
- 基础奖励:+3500,保证无人机优先到达目标
- 惩罚项:单步距离越长、总步数越多,奖励越低,强制最短路径 + 最少步数
- 碰撞障碍物/越界(最高惩罚)
- 惩罚:-1500,让无人机彻底学会避障,杜绝碰撞


