跳转到主要内容

多目标多智能体决策的标准API以及一系列参考环境。

项目描述

Project Status: Active – The project has reached a stable, usable state and is being actively developed. tests pre-commit Code style: black

MOMAland是一个开源的Python库,用于开发比较多目标多智能体强化学习算法,通过提供一个标准API在学习和环境之间进行通信,以及符合该API标准的一组环境。本质上,这些环境遵循标准PettingZoo APIs,但返回的是作为numpy数组的向量化奖励,而不是标量值。

文档网站地址为https://momaland.farama.org/,我们有一个公共的Discord服务器(我们也在那里协调开发工作),您可以在这里加入这里

环境

MOMAland包括来自MOMARL文献中的环境,以及经典环境的多个目标版本,如SISL或Butterfly。环境的完整列表可在https://momaland.farama.org/environments/all-envs/找到。

安装

要安装MOMAland,请使用

pip install momaland

这不包括MOMAland所有组件的依赖项(并非所有内容都需要基本使用,并且某些依赖项在某些系统上可能难以安装)。

  • pip install "momaland[testing]"以安装API测试的依赖项。
  • pip install "momaland[learning]"以安装提供的学习算法的依赖项。
  • pip install "momaland[all]"以安装所有组件的所有依赖项。

API

类似于PettingZoo,MOMAland API将环境建模为简单的Python env类。创建环境实例并与它们交互非常简单 - 这里是一个使用“momultiwalker_stability_v0”环境的示例

from momaland.envs.momultiwalker_stability import momultiwalker_stability_v0 as _env
import numpy as np

# .env() function will return an AEC environment, as per PZ standard
env = _env.env(render_mode="human")

env.reset(seed=42)
for agent in env.agent_iter():
    # vec_reward is a numpy array
    observation, vec_reward, termination, truncation, info = env.last()

    if termination or truncation:
        action = None
    else:
        action = env.action_space(agent).sample() # this is where you would insert your policy

    env.step(action)
env.close()

# optionally, you can scalarize the reward with weights
# Making the vector reward a scalar reward to shift to single-objective multi-agent (aka PettingZoo)
# We can assign different weights to the objectives of each agent.
weights = {
    "walker_0": np.array([0.7, 0.3]),
    "walker_1": np.array([0.5, 0.5]),
    "walker_2": np.array([0.2, 0.8]),
}
env = LinearizeReward(env, weights)

有关多目标多智能体强化学习定义的详细信息,请参阅多目标多智能体决策:基于效用分析的调查

您还可以在此colab笔记本中查看更多示例!MOMAland Demo in Collab

学习算法

我们提供一组与MOMAland环境兼容的学习算法。学习算法在learning/目录中实现。为了使一切尽可能自包含,每个算法都是一个单文件实现(接近cleanRL的哲学)。

尽管如此,我们重用了其他库提供的工具,如来自MORL-Baselines的多目标评估和性能指标。

以下是当前已实现的算法列表

名称 单/多策略 奖励 效用 观察空间 动作空间 论文
MOMAPPO (OLS) 连续
离散
团队 团队 / 线性 任何 任何
标量化IQL 个体 个体 / 线性 离散 离散
集中化包装器 任何 团队 团队 / 任何 离散 离散
线性化包装器 任何 个体 / 线性 任何 任何

环境版本化

MOMAland出于可重复性的原因保持严格的版本控制。所有环境都以像"_v0"这样的后缀结尾。当对可能影响学习结果的环境进行更改时,数字会增加以避免潜在的混淆。

开发路线图

我们可以在这里找到未来的开发路线图。

项目负责人

项目经理:Florian Felten (@ffelten)

此项目的维护也由更广泛的Farama团队贡献:farama.org/team

引用

如果您在研究中使用了此存储库,请引用

@inproceedings{TODO}

开发

设置预提交

克隆仓库并运行 pre-commit install 来设置预提交钩子。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

momaland-0.1.1.tar.gz (111.4 kB 查看哈希值)

上传时间

构建分布

momaland-0.1.1-py3-none-any.whl (150.6 kB 查看哈希值)

上传时间 Python 3

由以下提供支持