function robot=Qlearning(robot,task,Rew,N)
% Q learning ArithmaticQ学习算法
[m,n]=size(Rew); % load the task and the robot装载任务和机器人
gam=robot.gamma;
alp=robot.alpha;
as=1:4; %方向选择值
LearnN=0;
si=task.initialState;ki=sub2ind([m,n],si(1),si(2));%提取开始位置在数组中的索引值
st=task.terminalState;kt=sub2ind([m,n],st(1),st(2));%提取终点位置在数组中的索引值
for lp=1:N
alp=alp*exp((1-rem(lp,10))/N);%贪婪策略
Q=robot.Qtable; % load the new table载入新的表
robot.state=si; % return to the initial state 回到初始状态
s0=si;k0=ki;
step=0;
slist=[];
while k0~=kt
qs=Q(k0,:);
q=min(qs);ras=as;ras(qs==q)=[];
if isempty(ras) % policy策略
a=unidrnd(4,1);%在一维数组中离散产生随机整数4
else
qs(qs==q)=[];
a=drnd(ras,qs-q(1));
end
s=exact(s0,a);
if any(s<1)||any(s>m)||any(s>n) % beyond the environment超越环境
Q(k0,a)=Q(k0,a)-100; break;
else % feasible
k=sub2ind([m,n],s(1),s(2)); %提取数组中的索引值
v=max(Q(k,:)); % V(s)
D=Rew(k)+gam*v-Q(k0,a)-.2;
Q(k0,a)=Q(k0,a)+alp*D;
end
slist=[slist;s0,a,s];
s0=s;k0=k;step=step+1;
disp([num2str(s0),' | ',num2str(a),' | ',num2str(s),' LearnN ',num2str(LearnN),' step ',num2str(step)]) % 打印状态转移
end
LearnN=LearnN+1;
robot.state=s; % update the robot更新机器人
robot.Qtable=Q;
if k0==kt
if isempty(robot.best), % record记录
robot.best=slist;
elseif step<size(robot.best,1),
robot.best=slist;
end
end
end
function s=exact(s,a)
switch(a)
case 1 % dowm
s=s+[1,0];
case 2 % right
s=s+[0,1];
case 3 % up
s=s+[-1,0];
case 4 % left
s=s+[0,-1];
otherwise
end
没有合适的资源?快使用搜索试试~ 我知道了~
基于Q学习实现机器人路径规划附matlab 仿真.zip
共5个文件
m:3个
asv:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 6 浏览量
2023-04-23
21:55:05
上传
评论 1
收藏 4KB ZIP 举报
温馨提示
1.版本:matlab2014/2019a,内含运行结果,不会运行可私信 2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士等教研学习使用 5.博客介绍:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可si信
资源推荐
资源详情
资源评论
收起资源包目录
基于Q学习实现机器人路径规划附matlab 仿真.zip (5个子文件)
基于Q学习实现机器人路径规划附matlab 仿真
Qlearning.m 2KB
drnd.asv 594B
Qlearning.asv 2KB
QDemo.m 590B
drnd.m 603B
共 5 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 2w+
- 资源: 7669
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功