价值迭代的思想是改变最优价值函数,使其包括对所有可能性动作的评估。这样我们就可以只关注value function的收敛过程,只要value function达到最优,那策略也达到最优,value function没有最优,策略也还没有最优。
待value function收敛以后在进行决策,从而简化了迭代步骤。
可视化过程如下动图所示:
from matplotlib import pyplot as plt
import numpy as np
from matplotlib import animation
from scipy.stats import poisson # 统计学的包,用于生成泊松分布
plt.rcParams['font.sans-serif'] = ['SimHei'] # 正确显示中文
plt.rcParams['axes.unicode_minus'] = False # 正确显示正负号
#初始化
poisson_cache = dict()
x = np.arange(0, 21)
y = np.arange(0, 21)
x, y = np.meshgrid(x, y)
value = np.zeros((21, 21))
max_value_change = 100
policy = np.zeros(value.shape, dtype=np.int) # 存储策略【0,1,2……20】
fig = plt.figure(figsize=(10, 5))
ax1 = fig.add_subplot(1, 2, 1, projection='3d')
ax2 = fig.add_subplot(1, 2, 2, projection='3d')
def init(): # 画布坐标轴范围初始化
ax1.set_xlim([0, 20])
ax1.set_ylim([0, 20])
ax1.set_zlim([