Skip to content

An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities

License

Notifications You must be signed in to change notification settings

jackma009/PettingZoo

 
 

Repository files navigation

pre-commit 代码风格: black

PettingZoo 是一个用于进行多智能体强化学习研究的 Python 库,类似于 Gymnasium 的多智能体版本。

文档网站位于 pettingzoo.farama.org,我们还有一个公共 Discord 服务器(我们也用来协调开发工作),您可以在这里加入:https://discord.gg/nhvKkYa6qX

环境

PettingZoo 包含以下环境系列:

安装

安装基础 PettingZoo 库:pip install pettingzoo

这不包括所有环境系列的依赖项(某些环境在某些系统上可能会出现安装问题)。

要安装某个系列的依赖项,请使用 pip install 'pettingzoo[atari]',或使用 pip install 'pettingzoo[all]' 安装所有依赖项。

我们支持在 Linux 和 macOS 上使用 Python 3.8、3.9、3.10 和 3.11。我们会接受与 Windows 相关的 PR,但不正式支持它。

注意:某些 Linux 发行版可能需要手动安装 cmakeswigzlib1g-dev(例如,sudo apt install cmake swig zlib1g-dev

入门

有关 PettingZoo 的介绍,请参见基本用法。要创建新环境,请参见我们的环境创建教程自定义环境示例

有关使用 PettingZoo 训练 RL 模型的示例,请参见我们的教程:

API

PettingZoo 将环境建模为 智能体环境循环 (AEC) 游戏,以便能够在一个 API 下清晰地支持所有类型的多智能体 RL 环境,并最小化某些常见错误类型的可能性。

在 PettingZoo 中使用环境与 Gymnasium 非常相似,即通过以下方式初始化环境:

from pettingzoo.butterfly import pistonball_v6
env = pistonball_v6.env()

可以以与 Gymnasium 非常相似的方式与环境交互:

env.reset()
for agent in env.agent_iter():
    observation, reward, termination, truncation, info = env.last()
    action = None if termination or truncation else env.action_space(agent).sample()  # 这里是您插入策略的地方
    env.step(action)

完整的 API 文档请参见 https://pettingzoo.farama.org/api/aec/

并行 API

在某些环境中,假设智能体同时采取行动是有效的。对于这些游戏,我们提供了一个次要 API 来允许并行操作,文档位于 https://pettingzoo.farama.org/api/parallel/

SuperSuit

SuperSuit 是一个库,包含了 PettingZoo 和 Gymnasium 环境中常用的所有包装器(帧堆叠、观察归一化等),具有良好的 API。我们开发它是为了替代内置于 PettingZoo 中的包装器。https://github.com/Farama-Foundation/SuperSuit

环境版本控制

PettingZoo 为了可重现性原因保持严格的版本控制。所有环境都以"_v"结尾。当对环境进行更改时,可能会影响学习结果,因此会将版本号增加一,以避免潜在的混淆。

引用

要引用本项目,请使用以下格式:

@article{terry2021pettingzoo,
  title={Pettingzoo: Gym for multi-agent reinforcement learning},
  author={Terry, J and Black, Benjamin and Grammel, Nathaniel and Jayakumar, Mario and Hari, Ananth and Sullivan, Ryan and Santos, Luis S and Dieffendahl, Clemens and Horsch, Caroline and Perez-Vicente, Rodrigo and others},
  journal={Advances in Neural Information Processing Systems},
  volume={34},
  pages={15032--15043},
  year={2021}
}

项目维护者

About

An API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Makefile 0.1%