21点代码python_利用蒙特卡洛方法实现21点问题的最优解(内含python源码)

本文介绍了如何运用蒙特卡洛法实现21点游戏的最优策略。通过gym环境建立游戏,使用On-policy first-visit MC control策略,经过多次迭代训练得到近似最优解。实验包括策略生成、样本序列生成和价值函数的更新与可视化,最终展示了蒙特卡洛方法在强化学习中的应用。
摘要由CSDN通过智能技术生成

想要获取完整代码,请访问面包多进行支持哦,仅需一口奶茶的钱!

一、实验目的

实现基于蒙特卡洛法的21点问题的最优解,了解强化学习的基本原理,理解蒙特卡洛法并编写相应的代码。

二、实验内容

赌场上流行的21点纸牌游戏的目的是获得其数值之和尽可能大而不超过21的牌。所有的人形牌面都算作10,而A可以算作1或11。我们的实验仅考虑每个玩家独立与庄家竞争的版本。游戏开始时,庄家和玩家都有两张牌。庄家的一张牌面朝上,另一张牌面朝下。如果玩家有21张牌(一张A和一张10牌),则称为自然牌。他就赢了,除非庄家也有自然牌,在这种情况下,游戏是平局。如果玩家没有自然牌,那么他可以要求额外的牌,单张发牌(hits),直到他停止(sticks)或超过21(goes bust)。如果他破产,那么他输了,如果他坚持,那么就轮到庄家的回合。庄家hits或sticks或者goes bust;在牌数字和为17或更多的时候,庄家就停止发牌。赢、输、或平局由谁的最终和值更接近21决定。

三、实验过程

本次实验需要导入如下包:

import gym

import numpy as np

from collections import defaultdict

import matplotlib

import matplotlib.pyplot as plt

运用gym自带的21点游戏进行接下来的编程:

env = gym.make('Blackjack-v0')

observation = env.reset()

print(env.ac

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值