教程:仓库结构¶
引言¶
欢迎来到四个简短教程中的第一个,它将指导你从概念到部署创建自己的 PettingZoo 环境。
我们将创建一个并行环境,这意味着每个智能体同时行动。
在考虑环境逻辑之前,我们应该了解环境仓库的结构。
树状结构¶
环境仓库通常采用以下结构布局
Custom-Environment
├── custom-environment
└── env
└── custom_environment.py
└── custom_environment_v0.py
├── README.md
└── requirements.txt
/custom-environment/env
是存放环境代码的地方,以及任何辅助函数(如果环境复杂的话)。/custom-environment/custom_environment_v0.py
是一个导入环境的文件 - 我们使用文件名进行环境版本控制。/README.md
是用于描述环境的文件。/requirements.txt
是用于记录环境依赖项的文件。至少,其中应该包含pettingzoo
。请通过==
对所有依赖项进行版本控制。
进阶:附加(可选)文件¶
上述文件结构是最小的。一个更适合部署的环境将包含
/docs/
用于文档,/setup.py
用于打包,/custom-environment/__init__.py
用于弃用处理,以及Github Actions 用于环境测试的持续集成。
实现这些内容超出了本教程的范围。
骨架代码¶
你的全部环境逻辑都存储在 /custom-environment/env
中
/custom-environment/env/custom_environment.py¶
from pettingzoo import ParallelEnv
class CustomEnvironment(ParallelEnv):
metadata = {
"name": "custom_environment_v0",
}
def __init__(self):
pass
def reset(self, seed=None, options=None):
pass
def step(self, actions):
pass
def render(self):
pass
def observation_space(self, agent):
return self.observation_spaces[agent]
def action_space(self, agent):
return self.action_spaces[agent]