%I thought what I'd do was I'd pretend I was one of those deaf-mutes, or should I?
clear all;
%风速初始化
Windyworld.windx=zeros(7,10);
Windyworld.windy=zeros(7,10);
Windyworld.windy(:,4:9)=Windyworld.windy(:,4:9)+1;
targetxy=[6,8]; %!!注意:第一个坐标为y坐标,第二个坐标为x坐标
alpha=0.5;
gamma=0.99;
Tloop=6000; %总学习循环次数
mark=zeros(1,Tloop); %记录是否成功
%迭代为二重时间循环
Q_func=zeros(7,10,4); %!!三维值函数矩阵:(z=1:+x)(z=2:-x)(z=3:+y)(z=4:-y)
Q_func(:,:,2)=0.2; %size(B),ndims(B)
Q_func(targetxy(1),targetxy(2),:)=0; %目标值的所有Q函数始终为0
for Ts=1:Tloop %Ts=study time
%单次运动初始化
rolexy=[4,1];
result(Ts).Q_func=zeros(7,10,4);
result(Ts).trace=zeros(40,3);
result(Ts).trace(1,:)=([1,rolexy(1),rolexy(2)]);
for Tm=1:40
%按照策略获得到达下一步的动作
act=tcegreedy(Ts,Q_func(rolexy(1),rolexy(2),:));
nextxy=movement(act,rolexy,Windyworld);
%TD算法进行策略值迭代
%计算reward
if nextxy(1)==targetxy(1)&&nextxy(2)==targetxy(2) %到达目标
reward=5;
else if nextxy(1)<1||nextxy(1)>7||nextxy(2)<1||nextxy(2)>10 %超出边界
reward=-1;
else
reward=0;
end %reward不考虑超出步数的问题
end
%计算下一步的策略函数最大值
%Qlearning方式进行Q函数更新,更新Q值中所用的s'状态下动作与实际在s'状态下做出动作不一定相同(因为e-greedy的存在)
if nextxy(1)<1||nextxy(1)>7||nextxy(2)<1||nextxy(2)>10 %超出边界
Q1=0;
else
Q1=max(Q_func(nextxy(1),nextxy(2),:));
end
Q_func(rolexy(1),rolexy(2),act)=(1-alpha)*Q_func(rolexy(1),rolexy(2),act)+alpha*(reward+gamma*Q1);
%更新坐标
rolexy=nextxy;
result(Ts).trace(Tm+1,:)=([Tm+1,rolexy(1),rolexy(2)]);
%判断是否跳出本episode
if rolexy(1)==targetxy(1)&&rolexy(2)==targetxy(2)
mark(Ts)=1;
break;
else if rolexy(1)<1||rolexy(1)>7||rolexy(2)<1||rolexy(2)>10
break;
end
end
end
result(Ts).Q_func=Q_func;
end
Avegain=zeros(1,Tloop);
for i=1:Tloop
Avegain(i)=sum(mark(1:i))/i;
end
plot(1:Tloop,Avegain);
没有合适的资源?快使用搜索试试~ 我知道了~
Matlab强化学习_网格迷宫问题_QLearning算法
共3个文件
m:3个
3星 · 超过75%的资源 需积分: 39 91 下载量 201 浏览量
2020-01-19
19:35:05
上传
评论 6
收藏 2KB RAR 举报
温馨提示
MATLAB强化学习代码包,用于解决多步决策模型(网格迷宫问题)的Q-Learning算法。 编程与算法的详细说明可参看我的专栏:https://blog.csdn.net/weixin_43723517/category_9676083.html "I thought what I'd do was I'd pretend I was one of those deaf-mutes, or should I?"
资源推荐
资源详情
资源评论
收起资源包目录
Matlab强化学习_网格迷宫问题_QLearning.rar (3个子文件)
Q_learning
WGW_Qlearning.m 2KB
tcegreedy.m 412B
movement.m 535B
共 3 条
- 1
资源评论
- 小醇仔2020-05-31有没有中文说明之类,没有中文说明解释看不懂
忘了面孔的Batou
- 粉丝: 695
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功