问题描述:
问题类似于老虎机(单臂赌博机),不同之处是它有k个控制杆,每次动作选择相当于拉动老虎机的一个控制杆,我们希望通过强化学习的方法,让智能体能够通过重复地选择学习,来最大化最终的奖金值。
复现结果:
环境可视化:蓝色为各个按键的真实收益;绿色为智能体对按键的估计收益;红色为智能体的选择。
代码实现
1、环境搭建:
import numpy as np
global value
value = np.array([0.0]*10, dtype=float) #初始化全局变量
q = np.array([-8,-5,-2,1,5,6,1,2,8,0]) # 固定生成收益初始值
#q = np.random.normal(0, 5, 10) # 正态随机收益初始值
qq = np.random.normal(0, 0.01, 10)
print(q)
def env2():
for i in range(0, 10):
global value
value[i] = np.random.normal(q[i]+qq[i], 1, 1)
return value
2、gif制作
import numpy as np
import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation # 绘制动图的库
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正确显示中文
plt.rcParams[