Environments¶
算法库支持的仿真环境¶
本软件包含的单智能体任务仿真环境有gym下的Atari,Mujoco,Classic Control,Box2D。 包含的多智能体任务仿真环境有PettingZoo开源环境下的MPE和SISL,StarCraft2,MAgent2,Google Football环境等。 每个仿真环境下包含丰富的任务场景,如下表所示。
用户自定义环境¶
若用户所使用的仿真环境不在表1中,可对环境进行二次封装并存放至./environment目录下。具体添加方法如下:
步骤一:
在./environment目录下创建文件夹myenv(名称自拟),进入myenv文件件并创建my_env.py文件(文件名自拟),编写如下内容:
class My_Env(gym.Env):
def __init__(env_id: str, seed: str)
self.env = make_env(env_id)
self.env.seed(seed)
self.obeservation_space = Box(0, 1, self.env.dim_state)
self.action_space = self.env.action_space
self.metadata = self.env.metadata
self.reward_range = self.env.reward_range
self.spec = self.env.spec
super(My_Env, self).__init__()
def reset(self):
return self.env.reset()
def step(self, action):
return self.env.step()
def seed(self, seed):
return self.env.seed(seed)
def render(self, mode)
return self.env.render(mode)
def close(self)
self.env.close()
步骤二:在./environment/__init__.py文件中导入自定义的环境类My_Env。
from .myenv.my_env import My_Env
向量化仿真环境¶
为了提高采样效率,节省算法运行时间,本软件支持向量化仿真环境设置,即运行多个仿真环境同时采样。 向量化环境基类VecEnv的定义位于./environment/vector_envs/vector_env.py文件中, 在此基类上定义继承类DummyVecEnv及DummyVecEnv_MAS,分别用于实现单智能体和多智能体向量化仿真环境, 代码位于./environment/vector_envs/dummy_vec_env.py文件中。