✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
⛄ 内容介绍
【多臂赌机】基于时变egreedy策略结合强化学习求解多臂赌机问题附matlab代码
⛄ 部分代码
%I thought what I'd do was I'd pretend I was one of those deaf-mutes, or should I?
clc
close all
clear all;
epsilon=1; %epsilon概率进行探索(exploration),1-epsilon概率进行利用(exploitation)
T=10000;
%决策机内存初始化
Avegain=zeros(1,5); %
Testtime=zeros(1,5);
Reward=zeros(1,T);
for i=1:T
if rand(1)<=epsilon/sqrt(i) %探索
num=unidrnd(5); %随机生成最大为5的正整数,随机选择摇臂
else %利用
a=findmax(Avegain(1,:));
num=a(2);%选择平均奖赏最大的摇臂
end
r=Slotmachine5(num);
if i==1 %更新累计奖赏
Reward(1,i)=r;
else
Reward(1,i)=(Reward(1,i-1)*(i-1)+r)/i;
end
Avegain(1,num)=(Avegain(1,num)*Testtime(1,num)+r)/(Testtime(1,num)+1); %更新所选臂的平均奖赏
Testtime(1,num)=Testtime(1,num)+1; %更新所选臂的实验次数
end
result.Testtime=Testtime;
result.Avegain=Avegain;
result.Reward=Reward;
plot(1:10000,Reward);
xlabel('测试次数');
ylabel('平均累计奖赏');
legend('ε=1/√t');
%legend('ε=1/t');
⛄ 运行结果
⛄ 参考文献
[1] 陈特. 基于多臂赌博机在线学习的无线缓存策略研究[D]. 电子科技大学.
[2] 陈特, 董彬虹, 陈延涛,等. 一种基于多目标多臂赌博机在线学习的无线缓存方法:, CN109982389A[P]. 2019.
[3] 黄科举, 杨俊安, 周继航,等. 基于多臂赌博机模型的IEEE 802.11 MAC协议认知干扰技术[J]. 通信对抗, 2017, 36(2):7.
[4] 林宝玲, 贾日恒, 林飞龙,等. 基于预算时变的多臂赌博机模型[J]. 计算机科学, 2022, 49(S02):6.