MPE环境代码解读(MAA2C)

MPE环境代码解读(MAA2C)1 代码架构 1 1 环境 ENV 和 World 对象 make env py 包含将多智能体环境作为 OpenAI gym 类对象导入的代码 方法 def make env scenario name benchmark False core py 包含在整个代码中使用的各种对象 Entities Landmarks Agents 等 的类

大家好,我是讯享网,很高兴认识大家。

1.代码架构

1.1环境ENV和World对象

make_env.py:包含将多智能体环境作为OpenAI gym类对象导入的代码 方法:def make_env(scenario_name, benchmark=False) 

讯享网

在这里插入图片描述
讯享网

讯享网core.py:包含在整个代码中使用的各种对象(Entities, Landmarks, Agents等)的类。 类: 1.class EntityState(object)#所有实体的物理状态 物理位置p_pos和物理速度p_vel 2.class AgentState(EntityState)#agent状态(包括沟通和内部/精神状态) 通信信息c 3.class Action(object)# agent的动作 物理动作u和通信动作c 4.class Entity(object)# 物理世界实体的属性和状态 移动、碰撞、颜色、速度 5.class Landmark(Entity)# 地标实体的属性 6.class Agent(Entity)# Agent实体的属性 7.class World(object)#多agent世界 rendering.py: 用于在屏幕上显示agent的行为 policy.py: 包含基于键盘输入的交互策略的代码 scenario.py:包含为所有场景扩展的基本场景对象 

在这里插入图片描述

World(object)类的world对象相当于环境模拟器,该对象是对特定场景下真实环境的模拟,通过scenario.make_world()方法构造。world对象由一系列不同角色的entities对象组成,这些entites对象分为以下两大类: Landmark类,属于该类的entites对象属性不会发生变化,相当于物理世界中的静物,例如地标landmark对象,草grass对象,食物food对象等等; Agent类,属于该类的entites对象属性会不断发生变化,相当于物理世界中的动物,在这里也即关注的智能体agent对象 agent对象还分为两类: policy_agent:动作由强化学习算法所控制的智能体; scripted_agent:动作由自定义脚本所控制的智能体 

在这里插入图片描述

讯享网environment.py:py:包含环境模拟的代码(交互物理,_step()函数等) env对象由env.world对象与env.agents对象组成,这里的world对象就是上面所介绍的环境模拟器,而agents对象是world中由强化学习所控制的所有智能体world.policy_agents。 

在这里插入图片描述

env对象最为关键的三个方法是: def reset(self):重置环境模拟器world; def step(self, action_n):更新环境模拟器world; def render(self, mode='human'):渲染,显示当前环境模拟器状态 可以调用以下方法来获取单个智能体的观测、奖励、info和done: def _get_obs(self, agent); def _get_reward(self, agent); def _get_done(self, agent); def _get_info(self, agent)。 

1.2scenario对象

讯享网MPE提供了一系列不同的粒子场景,这些场景全部被放置在scearios文件夹下: simple、simple_adversary、simple_crypto、simple_push、simple_reference、simple_speaker_listener、simple_spread、simple_tag、simple_world_comm 

在这里插入图片描述

小讯
上一篇 2025-01-26 22:11
下一篇 2025-02-24 21:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26024.html