在OpenAI gym框架中实现用于强化学习的Hex游戏。优化了模拟速度。
项目描述
MiniHex
一个OpenAI gym环境,允许智能体玩Hex游戏。该环境的目的是要简洁且具有快速模拟,同时具有可变棋盘大小。在随机动作下,目前在一个11x11的网格(原始大小)和单个CPU(Intel Xenon E3-1230 @3.3GHz)上达到 ~340个游戏每秒。
Hex是一个两人游戏,需要转换成“单智能体环境”以适应gym框架。我们通过在创建时要求一个opponent_policy
来实现这一点。智能体的每次移动都将立即被对手的移动所跟随。这是一个输入棋盘状态并输出动作的函数。
安装
pip install minihex
可编辑安装(如果您想调整环境)
git clone https://github.com/FirefoxMetzger/minihex.git
pip install -e minihex/
最小工作示例
import gym
import minihex
env = gym.make("hex-v0",
opponent_policy=minihex.random_policy,
board_size=11)
state, info = env.reset()
done = False
while not done:
board, player = state
action = minihex.random_policy(board, player, info)
state, reward, done, info = env.step(action)
env.render()
if reward == -1:
print("Player (Black) Lost")
elif reward == 1:
print("Player (Black) Won")
else:
print("Draw")
调试模式
如果环境以debug=True
实例化,则每一步都会检查是否提供了有效的动作,如果提供了无效的动作,则将引发一个IndexError
。这在编写智能体时非常有用,例如,如果智能体在其自己的环境信念中维护并可能请求无效的动作。然而,在评估/大规模运行时,此检查可能会引起显著的减速。因此,只有在明确请求的情况下才会执行。
限制
目前,该环境缺少以下功能,以升级到版本1.0
- 用于减轻第二玩家劣势的交换动作。
- RGB渲染模式
- 将环境添加到pypi
- 不投降行动
错误与贡献
如果您遇到问题,请检查GitHub问题页面或在那里创建一个新的问题。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
minihex-1.0.1.tar.gz (4.8 kB 查看散列值)
构建分发
minihex-1.0.1-py3-none-any.whl (5.8 kB 查看散列值)
关闭
minihex-1.0.1.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | be0f3fb98260e80b80a3b773d5b72eab29b009061b5214faa40e3cd9256f84a3 |
|
MD5 | 9e8831444b4991e2a5de83419c017616 |
|
BLAKE2b-256 | d13f0fc8b958bca58a69643865afa81f92efb518bd554789ea9a25876f8fa08d |
关闭
minihex-1.0.1-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4249c0d049445abaf0e1893acd6077bd2de8ca74393899bad241691972e90ebe |
|
MD5 | 815cbf3b868e5e04c509551babb3a301 |
|
BLAKE2b-256 | ab1708225b23600ff23e9797031e20ad4dd975cdc2d03199dfa5bea80e19b254 |