基于MATLAB的强化学习Q学习算法框架
本项目是一个基于MATLAB环境实现的强化学习Q-Learning路径规划框架。该项目旨在展示智能代理如何在具有限制和障碍的离散网格环境中,通过不断的试错学习和奖励反馈,最终找到从起点到终点的最优决策路径。通过模拟环境交互,项目演示了贝尔曼方程(Bellman Equation)在价值评估表(Q-Table)更新中的核心作用。
项目介绍
本项目模拟了一个6x6的网格世界。代理的任务是从网格的左上角(起点)出发,避开预设的障碍物和边界限制,以最快的速度到达右下角(终点)。系统的核心在于通过训练建立一个Q表,该表记录了每一个状态下采取不同动作的潜在价值。随着训练轮数的增加,代理根据累积的经验逐渐减少随机探索,转而利用已学到的知识进行决策。
功能特性
- 环境模拟系统:构建了一个包含边界检测、障碍物判断和终点识别的离散网格环境。
- 动作选择策略:实现了Epsilon-Greedy策略,平衡了对未知环境的探索(Exploration)和对已知最优动作的利用(Exploitation)。
- 动态Q表更新:利用标准贝尔曼方程实时修正状态-动作对的价值,支持学习率、折扣因子等参数的精细调节。
- 训练实时监控:命令行实时输出每一轮训练的累计奖励和当前的探索率。
- 数据可视化:自动生成学习收敛曲线图以及包含起点、终点、障碍物和最终规划路径的交互式地图。
- 最优路径提取:在训练完成后,根据成熟的Q表自动计算并展示一条从起始位置到目标位置的最佳移动路线。
使用方法
- 环境准备:确保您的计算机上安装了MATLAB环境。
- 运行程序:在MATLAB命令行窗口执行主程序函数。
- 观察训练过程:程序将开始500轮训练,每隔100轮会更新一次当前的训练进度,包括总奖励和探索率的变化。
- 查看结果:训练结束后,系统会自动弹出可视化窗口,左侧展示奖励随训练轮数的变化趋势,右侧展示网格环境及提取出的最优红色标注路径。
- 参数修改:可以通过直接修改主函数顶部的超参数(如alpha, gamma, epsilon等)来观察算法在不同配置下的性能差异。
系统要求
- 软件版本:MATLAB R2016b 或更高版本。
- 硬件要求:无特殊要求,普通办公级计算机即可运行。
- 依赖项:无需安装额外的工具箱,使用MATLAB基础函数库即可运行。
实现逻辑与算法细节
主算法逻辑流程:
- 环境配置:定义了一个6x6的网格(36个状态)和4个离散动作(上、下、左、右)。初始化所有状态下的Q值为零。
- 超参数设定:
- 学习率 (Alpha) 设定为 0.1,控制新旧信息的更新比例。
- 折扣因子 (Gamma) 设定为 0.9,决定了对未来远期奖励的重视程度。
- 探索率 (Epsilon) 从 1.0 开始,每轮以 0.995 的比例衰减,直到达到 0.01 的最小值。
- 训练循环:
- 在每一轮训练中,代理从起点开始,最大允许移动 100 步。
- 动作选择:生成随机数与 Epsilon 比较。若进行开发(Exploitation),则选择Q值最大的动作;若存在多个相同最大值,则随机选择其中之一。
- 环境反馈:代理执行动作后,由环境反馈下一个状态、即时奖励以及是否结束的标志。
- 价值更新:应用公式 Q(s,a) = Q(s,a) + alpha * (R + gamma * max(Q(s',a')) - Q(s,a)) 更新当前状态的价值。
- 环境奖励机制:
- 正常移动一步:奖励 -1,促使代理寻求最短路径。
- 撞击边界:奖励 -5,且代理停留在原地。
- 触碰障碍物:奖励 -10。
- 到达终点:奖励 +100,并结束当前训练轮次。
- 最优策略提取:完成最大训练轮数后,代理不再进行随机探索,而是完全根据Q表中每个状态的最大价值动作进行推理,形成路径序列。
- 可视化实现:
- 使用 smooth 函数对奖励历史进行平滑处理,以更清晰地显示收敛趋势。
- 利用线段(line)绘制网格线,利用散点(scatter)绘制不同类型的节点:五角星代表终点,圆形代表起点,灰色方框代表障碍物。
- 坐标系翻转:使用 YDir reverse 处理,使网格坐标与代码中的矩阵索引逻辑保持一致。
关键函数功能描述
- 主控逻辑功能:负责初始化环境参数、控制训练循环次数、调用更新算法、并最终触发可视化模块。它维护了Q表的整个生命周期。
- 环境交互功能:接收当前状态和选定的动作,计算代理的位移。该功能内含逻辑判断,用于处理边界碰撞、障碍物惩罚和终点判别,并返回执行后的结果数据(下一状态、奖励值及状态标志)。
- 路径计算功能:在Q表训练完成后,通过循环查询每个状态下的最优动作(Q值最大者),从起点开始迭代,直到到达终点或达到最大迭代步数。
- 图形绘制功能:将抽象的数值数据转换为直观的图表,包括展示算法是否收敛的奖励曲线图和网格化的路径导航图。