基于强化学习的路径规划matlab仿真,对比QLearning和SARSA

news/2025/3/14 17:56:49/文章来源:https://www.cnblogs.com/51matlab/p/18344298

1.算法仿真效果

matlab2022a仿真结果如下(完整代码运行后无水印):

 

 

2.算法涉及理论知识概要

       强化学习(Reinforcement Learning, RL)是一种机器学习方法,它使代理(agent)通过与环境互动,学习采取何种行动以最大化累积奖励。在路径规划问题中,强化学习被用于自动探索环境,找到从起点到终点的最佳路径。其中,QLearning和SARSA是两种经典的价值迭代方法。

 

2.1 QLearning

       QLearning是一种off-policy学习方法,意味着它学习的是一个最优策略,而不是仅仅基于所执行的策略。它通过更新动作价值函数Q(s,a)来实现这一点,公式如下:

 

 

 

       QLearning的特点在于其更新规则不依赖于当前策略,而是基于最佳动作进行更新,这使得它能够直接学习最优策略,即使执行的策略与学习策略不同。

 

2.2 SARSA

       相比之下,SARSA(State-Action-Reward-State-Action)是一种on-policy学习方法,它根据当前策略来选择下一个动作,并据此更新动作价值函数。SARSA的更新公式如下:

 

 

 

2.3 对比分析

策略差异:QLearning是off-policy,它学习的是最优策略,而实际执行的动作可以来自任意策略,这使得它更灵活,能够探索更广阔的行为空间;SARSA则是on-policy,更新规则依赖于执行的策略,学习与行为策略一致,这要求算法必须按照正在学习的策略来行动,有时限制了探索范围。

 

更新规则:QLearning在更新时考虑的是下一个状态st+1​下所有动作的最大期望回报,这使得它在探索未知环境时更加积极,但也可能导致过估计;SARSA则只考虑下一个状态下按当前策略选择的动作的回报,这使得它更保守,倾向于评估当前策略下的性能。

 

收敛性:理论上,QLearning在无限探索且无偏的情况下可以保证收敛到最优策略,但实践中容易过估计,尤其是在状态空间较大时;SARSA由于其保守性,通常收敛性更稳定,但可能不会直接找到最优解。

 

适用场景:QLearning更适合于探索性要求较高、需要寻找全局最优策略的任务;而SARSA则适用于策略更新需要与执行策略一致,或对稳定性要求较高的场景。

 

3.MATLAB核心程序

    % 保存每轮数据step_save(iters) = step;Rwd1(iters) = Rwd3;Rwd2(iters) = Rwd3/step;Rwd3 = 0; % 重置累积奖励% 在到达目标后的额外步骤处理[next, temp] = func_next(current, action, Maps,temp, Rm, Cm);rewardNew = Rwd_stop;if func_Overlap(next,xy1) ~= 0if next.row == Rm && next.col >= 2 && next.col < Cm % 悬崖情况rewardNew = Rwd_n;next = xy0; % 回到起点endelserewardNew = Rwd_p;end% 再次应用Epsilon-greedy策略randN = 0 + (rand(1) * 1);if(randN > Lsearch)[~,nextAction] = max(Qtable0(next.row,next.col,:));elsenextAction = round(1 + (rand(1) * 3));endnextQ    = Qtable0(next.row,next.col,nextAction);Qcur     = Qtable0(current.row, current.col, action);Qtable0(current.row, current.col, action) = Qcur + Lr * (rewardNew + Gma*nextQ - Qcur);if  iters == Mitertemp2 = func_Episode(Qtable0,Rm,Cm,xy0,xy1,Maps,Nact);figure(2);subplot(311); plot(1:iters, Rwd1, 'b');ylabel('每轮奖励之和')axis([0 iters min(Rwd1)-10 max(Rwd1+10)])subplot(312); plot(1:iters, step_save, 'b');ylabel('步数');axis([0 iters 0 max(step_save+10)])xlabel('试验次数')subplot(313); plot(1:iters, Rwd2, 'b');ylabel('每轮奖励平均值')axis([0 iters min(Rwd2)-10 max(Rwd2+10)])drawnowelseQtable1=Qtable0;enditers = iters + 1; % 迭代计数器增加
endsave R2.mat
0Z_007m

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778443.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里云服务器第一次使用时的配置

因为项目用到了4G模块, 测试云平台是基于阿里云 第一次远程桌面登录时,发现 使用 SocketTool 创建客户端后不能在云服务器上监听到相应的连接 根据阿里云官方的指南配置了一个专用端口 https://startup.aliyun.com/info/1074728.html 配置完成后,可观察到,使用模块也可正常发送…

关于热部署的配置

导入依赖<!-- 热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> &l…

基于matlab的风力发电系统建模与详细性能仿真分析

1.课题概述介绍了风力发电的原理,并讨论了风力机的模型。风力发电的原理非常简单,最简单的风力涡轮机是由叶轮和发电机组成的。根据能量转换原理,气流可以推动叶轮旋转。如果叶轮轴和发电机轴相连,叶轮上的机械能将转化为电能。风力涡轮机是用来捕获风,将动能转换为机械能…

Rhubarb Red All In One

Rhubarb Red All In One 大黄,又称作生大黄、熟大黄、生将军、生锦纹、酒军、黄良、川军,是多种蓼科大黄属的多年生草本植物的合称,一般从粗短的根茎种植。大黄长有三角形的大叶,叶柄肥厚。花形细小,聚集成花序,颜色从绿白色到玫瑰红色。Rhubarb Red All In One Rhubarbˈ…

【专题】2024客户服务与生成式AI人工智能的优势洞察报告合集PDF分享

原文链接 :https://tecdat.cn/?p=37222 本文分析了不同AI经验的企业如何利用生成式AI,发现新手型企业通过1至3年的对话式AI经验,89%已开始使用生成式AI直接回答客户问题,而经验型企业则通过5年以上经验,推动更广泛的转型。阅读原文,获取专题报告合集全文,解锁文末340份A…

【视频讲解】Xgboost、ARIMA 和 Prophet对国际牛肉市场市场份额数据、比特币价格时间序列预测-CSDN博客

原文链接:https://tecdat.cn/?p=37228 原文出处:拓端数据部落公众号 分析师:Kechen Zhao 本文将通过视频讲解,展示如何用Xgboost、ARIMA 和 Prophet对国际牛肉市场市场份额数据时间序列预测,并结合一个Python# ARIMA、XGBOOST、PROPHET和LSTM预测比特币价格实例的代码数据…

STM32学习记录(二):GPIO

何为高低电平?高电平电压(high level voltage),输出的电压值相对较高 低电平电压(low level voltage),输出的电压值相对较低高低电平的电压具体值是多少需要参考数据手册,举个例子,如下表所示,VDD的典型值是3.3V,根据数据手册可以知道低电平下GPIO输出的最大电压是0.4V;…

基于卡尔曼滤波的系统参数辨识matlab仿真

1.程序功能描述通过kalman滤波的方法,对系统的参数进行辨识,整个程序仿真输出参数辨识的收敛过程,参数辨识误差,参数辨识之后系统的输出和真实的系统输出误差,最后设置不同的信噪比,对比不同干扰下的系统参数辨识误差。2.测试软件版本以及运行结果展示 MATLAB2022a版本运…

如何打开帝国cms安全设置?登录帝国cms管理后台

要打开帝国CMS的安全设置,请按照以下步骤操作: 登录帝国CMS管理后台 输入您的用户名和密码登录帝国CMS管理后台。进入系统设置 单击侧边栏中的“系统设置”菜单项。找到“安全设置”选项 在“系统设置”页面中,向下滚动并找到“安全设置”选项。打开安全设置页面 单击“安全…

dedecms数据库配置文件所在路径为:/data/common.inc.php

<?php //数据库连接信息 $cfg_dbhost = localhost;网站地址 $cfg_dbname = data;数据库名 $cfg_dbuser = data_user;数据库用户名 $cfg_dbpwd = admin;数据库连接密码 $cfg_dbprefix = dede_;数据库前缀 $cfg_db_language = gbk;数据库语言版本 ?>扫码添加技术…

帝国cms恢复数据在哪里设置

帝国cms恢复数据设置方法 一、确定恢复位置 在帝国cms中,数据主要存储在数据库中,因此恢复数据需要在数据库操作界面中进行。 二、进入数据库界面 点击下载“嗨格式数据恢复大师”; 登陆帝国cms后台管理界面,选择左侧菜单中的“管理中心” -> “数据库管理”。 三、选择…

【学习笔记】线段树应用

【学习笔记】线段树应用 标题用 ##,说明太水啦~ 主要是以一些题目为例谈谈线段树的一些拓展用法,感觉线段树很神! P2146 [NOI2015] 软件包管理器 树剖+线段树 树剖+线段树板子,这种树剖的题只是加了个树剖的壳把它转换为区间问题罢了。至于为什么,这里弱弱的引用神🐟的…