蒙特卡罗方法在21点游戏中的应用
1. 蒙特卡罗预测计算价值函数
1.1 21点游戏状态
在21点游戏中,状态实际上是一个三元组。第一个元素是玩家的得分;第二个元素是庄家牌堆中亮出的牌,其值范围为1到10;第三个元素表示是否有可重复使用的A。
1.2 蒙特卡罗预测步骤
在蒙特卡罗预测中,我们执行以下任务来计算21点环境中280个状态的价值函数:
1. 在简单的21点策略下运行 n_episode 个回合。
2. 对于每个回合,计算每个状态首次访问的回报。
3. 对于每个状态,通过对所有回合的首次回报求平均值来获得其价值。
需要注意的是,我们忽略玩家总和大于21的状态,因为我们知道这些状态的回报都是 -1。
以下是蒙特卡罗预测的Python代码示例:
# 假设已经定义了相应的函数和变量
# 运行n_episode个回合
for episode in range(n_episode):
# 执行回合并记录状态、动作和奖励
states_t, actions_t, rewards_t = run_episode(env, Q, n_action)
return_t = 0
G = {}
# 逆序计算每个状态动作对的回报
for state_t, action_t, reward_t in zip(states_t[::-1], actions_t[::-1], rewards_t[::-1]):
return_t =
超级会员免费看
订阅专栏 解锁全文
2276

被折叠的 条评论
为什么被折叠?



