多目标多智能体决策的标准API以及一系列参考环境。
项目描述
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)
有关多目标多智能体强化学习定义的详细信息,请参阅多目标多智能体决策:基于效用分析的调查。
学习算法
我们提供一组与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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ffd61796d5cfbac21125b6fe1d156b816c44d404d5d072e3accdcf7c45c18b5a |
|
MD5 | 085908d219b6be5a2c0fdc3603318fc9 |
|
BLAKE2b-256 | 21d8a0e61753e96a9017b9dd8fef29014bdda21a74a9bf4167d8ac01788f86ad |
momaland-0.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 288f27fb72e2db67bc4aec9d250d5ddb2526667f52b4c825ccc4387355eb3cc9 |
|
MD5 | 7ec67e581c4f2dfe0f015d81de70d8eb |
|
BLAKE2b-256 | 93235813f20cd417187ce167da1ab4efd69e1afc9286ec8ffd662d1fdfdb7524 |