跳转到主要内容

在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 查看散列值)

上传时间 Python 3

由以下支持