经典

经典环境是流行的回合制人类游戏的实现,且大多是竞争性的。

安装

这组环境的特有依赖可以通过以下方式安装

pip install 'pettingzoo[classic]'

用法

要使用随机智能体启动一个四子棋环境

from pettingzoo.classic import connect_four_v3

env = connect_four_v3.env(render_mode="human")
env.reset(seed=42)

for agent in env.agent_iter():
    observation, reward, termination, truncation, info = env.last()

    if termination or truncation:
        action = None
    else:
        mask = observation["action_mask"]
        action = env.action_space(agent).sample(mask)  # this is where you would insert your policy

    env.step(action)
env.close()

经典环境与本库中的其他环境有一些不同之处

  • 目前所有经典环境都不接受任何环境参数。

  • 所有经典环境仅通过打印到终端进行渲染。

  • 大多数环境只在游戏结束时给予奖励,智能体获胜奖励为 1,失败奖励为 -1。

  • 许多经典环境的动作空间中包含非法动作。这些环境将当前时刻的合法动作作为观察的一部分进行传递。这是通过字典观察实现的,其中 observation 元素是观察,action_mask 元素是一个二进制向量,如果动作合法则为 1。请注意,action_mask 观察只在智能体采取行动之前具有非零值。

  • 在包含非法动作的环境中,执行非法动作会导致执行非法动作的玩家获得与输掉游戏相同的奖励,其他玩家获得 0 奖励,然后游戏结束。

许多经典环境基于 RLCard。如果您在研究中使用这些库,请引用它们

@article{zha2019rlcard,
  title={RLCard: A Toolkit for Reinforcement Learning in Card Games},
  author={Zha, Daochen and Lai, Kwei-Herng and Cao, Yuanpu and Huang, Songyi and Wei, Ruzhe and Guo, Junyu and Hu, Xia},
  journal={arXiv preprint arXiv:1910.04376},
  year={2019}
}