目录
1.引言
2.算法测试效果
3.算法涉及理论知识概要
4.MATLAB核心程序
5.完整算法代码文件获得
1.引言
SARSA属于在线时序差分学习算法,是强化学习中值迭代类算法的核心代表,也是Q-Learning的孪生算法。SARSA是在线策略更新价值函数时,使用当前正在执行的策略产生的样本,探索与利用同步进行,更保守、更适合避免危险的场景(如迷宫中规避障碍)。对于迷宫路线规划任务,SARSA能在探索过程中主动规避障碍(悬崖/死路),规划出更安全、更稳健的可行路线,因此成为迷宫规划的优选算法之一。
2.算法测试效果
测试场景
强化学习收敛曲线
强化学习训练前
强化学习训练后
3.算法涉及理论知识概要
强化学习是智能体(Agent)通过与环境(Environment)不断交互、试错来积累经验,最终学习到最优决策策略的机器学习范式,核心目标是让智能体在持续的交互中最大化长期累积收益。其与监督学习的本质区别在于:无标注的“正确答案”,仅通过奖励信号反馈行为优劣,完全依赖自主探索完成学习。
将迷宫规划问题转化为标准强化学习问题,核心目标是:让智能体从迷宫起点出发,通过在环境中选择"上、下、左、右"动作,在规避墙壁、边界等障碍的前提下,学习到一条从起点到终点的最短路径,最终形成稳定的最优决策策略。
将迷宫问题标准化为强化学习可求解的框架,需明确5个核心要素,所有原理与公式均基于此映射关系展开,是实现的前提:
智能体(Agent):在迷宫中移动的探索主体(如机器人、虚拟质点);
环境(Environment):二维栅格化的迷宫本身,包含可通行区、障碍区、起点、终点;
状态(State,S):智能体在迷宫中的实时坐标,记为S=(x,y),x,y分别为迷宫的行列索引,所有状态构成状态空间S;
动作(Action, A):智能体的可执行移动方向,标准迷宫中定义4个基础动作,动作空间上下左右,可简写为A={0,1,2,3};
奖励(Reward,R):环境对智能体动作的即时反馈,是策略优化的核心依据,奖励函数的设计直接决定算法效果。
SARSA的名称直接对应公式的输入要素:S(当前状态)、 A(当前动作)、 R(即时奖励)、S′(下一状态)、 A′(下一动作),其Q值更新公式为:
假设智能体当前状态S=(x,y),选择动作上 ,移动后到达状态S′=(x−1,y),获得即时奖励R,并在S′ 下选择动作右 ,则更新公式为:
4.MATLAB核心程序
%最优路径可视化:转换为二维迷宫坐标并绘图 pmat=zeros(Nums,Nums); %将一维路径的状态编号,转换为二维迷宫的行列坐标 [Qtab,r]=quorem(sym(Paths),sym(Nums)); Qtab=double(Qtab+1);r=double(r); Qtab(r==0)=Nums;r(r==0)=Nums; % 遍历路径坐标,在路径矩阵中标记路径位置(值设为50) for i=1:length(Qtab) pmat(Qtab(i),r(i))=50; end %绘制最终的迷宫最优路径图 figure imagesc(pmat) for i=1:Nums for j=1:Nums if Maps(i,j)==min(Maps) text(j,i,'X','HorizontalAlignment','center') end if pmat(i,j)==50 text(j,i,'\bullet','Color','red','FontSize',20) end end end text(1,1,'起点','HorizontalAlignment','right') text(Nums,Nums,'终点','HorizontalAlignment','right') hold on imagesc(Maps,'AlphaData',0.2) hold off axis off title(['优化后路径:',num2str(Paths)]); 0Z_028m5.完整算法代码文件获得
完整程序见博客首页左侧或者打开本文底部
V
(V关注后回复码:X111)