POGEMA

POGEMA(Partially-Observable Grid Environment for Multiple Agents)是一个为多智能体路径规划(PO-MAPF)问题设计的网格环境,旨在提供一个灵活、可调节且可扩展的基准平台。  

一、主要特点

1. 灵活性:POGEMA允许用户根据不同的PO-MAPF设置进行定制,支持随机地图生成以及自定义地图输入。

2. 可扩展性:环境支持多智能体的路径规划任务,智能体可以在网格的相邻单元格之间移动,每个动作(移动或等待)占用一个时间步长。

3. 部分可观测性:每个智能体在每个时间步只能接收到环境的局部观测,并基于此决定下一步行动。

二、安装方法

您可以通过以下命令从PyPI安装POGEMA:

pip install pogema

三、使用示例

以下是一个简单的示例,展示如何创建POGEMA环境并运行一个随机策略的智能体:

from pogema import pogema_v0, GridConfig

# 创建POGEMA环境
env = pogema_v0(grid_config=GridConfig())

# 重置环境
obs, info = env.reset()

while True:
    # 使用随机策略选择动作
    obs, reward, terminated, truncated, info = env.step(env.sample_actions())
    env.render()
    if all(terminated) or all(truncated):
        break

四、Baselines and Evaluation Protocol

POGEMA提供了基准实现和评估管道,详细信息可在POGEMA Benchmark仓库中找到。  

五、接口支持

POGEMA与多个多智能体强化学习框架集成,包括PettingZoo、PyMARL和SampleFactory。

1. PettingZoo

简介: PettingZoo 是一个多智能体强化学习(MARL)环境的标准化 API,类似于 Gymnasium 但专注于多智能体环境。

from pogema import pogema_v0, GridConfig

# Create Pogema environment with PettingZoo interface
env = pogema_v0(GridConfig(integration="PettingZoo"))

2. PyMARL

简介: PyMARL(Python Multi-Agent RL)是专为 StarCraft II 多智能体挑战(SMAC)设计的 MARL 训练框架。

from pogema import pogema_v0, GridConfig

env = pogema_v0(GridConfig(integration="PyMARL"))

3. SampleFactory

简介: SampleFactory 是一个高效的单机分布式强化学习框架,专注于高吞吐量训练(用于 PPO、IMPALA)。

from pogema import pogema_v0, GridConfig

env = pogema_v0(GridConfig(integration="SampleFactory"))

4. Gymnasium

简介: Gymnasium(Gym 的继承版本)是 OpenAI Gym 的社区维护版本,为 RL 训练提供标准化 API。

Pogema is fully capable for single-agent pathfinding tasks.

from pogema import pogema_v0, GridConfig

env = pogema_v0(GridConfig(integration="gymnasium"))

 

5. Customization(自定义功能)

Random maps

随机地图生成:用户可以定义随机地图的配置,包括智能体数量、网格大小、障碍物密度等。

from pogema import pogema_v0, GridConfig

# Define random configuration
grid_config = GridConfig(num_agents=4,          # number of agents
                         size=8,                # size of the grid
                         density=0.4,          # obstacle density
                         seed=1,          # set to None for random 
                                          # obstacles, agents and targets 
                                          # positions at each reset
                         max_episode_steps=128,          # horizon
                         obs_radius=3,          # defines field of view
                         )

env = pogema_v0(grid_config=grid_config)
env.reset()
env.render()

Custom maps

自定义地图:用户可以通过ASCII符号定义自定义地图,并在环境中注册使用。

from pogema import pogema_v0, GridConfig

grid = """
.....#.....
.....#.....
...........
.....#.....
.....#.....
#.####.....
.....###.##
.....#.....
.....#.....
...........
.....#.....
"""

# Define new configuration with 8 randomly placed agents
grid_config = GridConfig(map=grid, num_agents=8)

# Create custom Pogema environment
env = pogema_v0(grid_config=grid_config)

总结来说,POGEMA 是一个高效且可扩展的多智能体环境,支持 PettingZoo、PyMARL、SampleFactory、Gymnasium,并允许用户灵活地进行环境自定义,适用于多种强化学习研究任务。 🚀 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值