MARL-code-pytorch核心功能揭秘:MAPPO/MADDPG/QMIX算法对比与实现
MARL-code-pytorch核心功能揭秘:MAPPO/MADDPG/QMIX算法对比与实现
【免费下载链接】MARL-code-pytorchConcise pytorch implements of MARL algorithms, including MAPPO, MADDPG, MATD3, QMIX and VDN.项目地址: https://gitcode.com/gh_mirrors/ma/MARL-code-pytorch
MARL-code-pytorch是一个简洁的多智能体强化学习(MARL)算法实现库,基于PyTorch框架开发,包含MAPPO、MADDPG、MATD3、QMIX和VDN等主流算法。本文将深入对比这些算法的核心特性、适用场景及实现细节,帮助新手快速掌握多智能体强化学习的实践应用。
🚀 核心算法概览
MAPPO:高效的策略优化算法
MAPPO(Multi-Agent Proximal Policy Optimization)是PPO算法的多智能体扩展,通过集中式训练、分布式执行的方式,在复杂环境中表现出色。该算法在项目中的实现位于1.MAPPO_MPE/和2.MAPPO_SMAC/目录下,分别针对MPE和SMAC环境优化。
MADDPG/MATD3:连续动作空间的解决方案
MADDPG(Multi-Agent Deep Deterministic Policy Gradient)及其改进版MATD3(Multi-Agent Twin Delayed DDPG)适用于连续动作空间场景。项目在4.MADDPG_MATD3_MPE/目录提供了完整实现,包含maddpg.py和matd3.py核心文件。
QMIX/VDN:值函数分解方法
QMIX(Q-value Mixing Network)和VDN(Value Decomposition Network)通过值函数分解解决多智能体信用分配问题,特别适合合作型任务。实现代码位于3.QMIX_VDN_SMAC/目录,关键文件包括qmix_smac.py和mix_net.py。
📊 算法性能对比
MAPPO在MPE环境中的表现
在MPE(Multi-Agent Particle-World Environment)的"spread"场景中,MAPPO算法展现出稳定的学习曲线。随着训练步数增加,智能体的 episode 奖励持续提升并最终收敛,证明了其在离散动作空间下的有效性。
图:MAPPO算法在MPE环境"spread"场景中的训练奖励曲线
MAPPO在SMAC游戏中的胜率
在星际争霸多智能体挑战赛(SMAC)环境中,MAPPO在"3m"、"8m"和"2s3z"三个经典地图上均实现了接近100%的胜率,尤其在"3m"和"8m"地图中表现出快速收敛的特点。
图:MAPPO算法在SMAC不同地图中的胜率曲线
QMIX vs VDN性能对比
QMIX算法在SMAC环境中普遍优于VDN,特别是在"8m"和"2s3z"复杂地图上,QMIX展现出更快的学习速度和更高的最终胜率,验证了其非线性值函数分解的优势。
图:QMIX与VDN算法在SMAC环境中的胜率对比
MADDPG vs MATD3连续动作对比
在MPE的"simple_speaker_listener"和"simple_spread"连续动作场景中,MATD3算法整体表现优于MADDPG,尤其是在"simple_spread"场景中,MATD3的奖励值明显更高且波动更小。
图:MADDPG与MATD3在MPE连续动作环境中的奖励曲线对比
⚙️ 环境配置与修改
环境依赖安装
使用该项目需安装以下依赖:
- python==3.7.9
- numpy==1.19.4
- pytorch==1.5.0
- gym==0.10.5
- Multi-Agent Particle-World Environment(MPE)
- SMAC-StarCraft Multi-Agent Challenge
MPE环境的关键修改
为支持离散/连续动作空间的灵活切换,项目对MPE环境源码进行了两处关键修改:
- environment.py修改:在MultiAgentEnv类的初始化方法中添加discrete参数,控制动作空间类型。
图:MPE environment.py文件修改示意图
- make_env.py修改:在环境创建函数中添加discrete参数,方便用户根据算法需求选择动作空间类型。
图:MPE make_env.py文件修改示意图
环境创建方法
- 离散动作空间:
env=make_env(scenario_name, discrete=True) - 连续动作空间:
env=make_env(scenario_name, discrete=False)
📝 快速开始指南
1. 克隆项目代码
git clone https://gitcode.com/gh_mirrors/ma/MARL-code-pytorch cd MARL-code-pytorch2. 运行算法示例
- MAPPO (MPE):
python 1.MAPPO_MPE/MAPPO_MPE_main.py - MAPPO (SMAC):
python 2.MAPPO_SMAC/MAPPO_SMAC_main.py - QMIX (SMAC):
python 3.QMIX_VDN_SMAC/QMIX_SMAC_main.py - MADDPG/MATD3 (MPE):
python 4.MADDPG_MATD3_MPE/MADDPG_MATD3_main.py
3. 查看训练结果
训练日志和结果文件会保存在各算法目录下的data_train/、model/和runs/文件夹中,可通过TensorBoard查看详细训练过程。
🎯 算法选择建议
| 算法 | 动作空间 | 适用场景 | 核心优势 |
|---|---|---|---|
| MAPPO | 离散/连续 | 复杂多智能体协作/竞争 | 样本效率高,收敛稳定 |
| MADDPG | 连续 | 多智能体协作任务 | 适合高维连续动作空间 |
| MATD3 | 连续 | 复杂连续控制任务 | 比MADDPG具有更好的探索能力 |
| QMIX | 离散 | 合作型多智能体任务 | 有效解决信用分配问题 |
| VDN | 离散 | 简单合作任务 | 实现简单,计算开销小 |
通过MARL-code-pytorch项目,开发者可以快速对比不同多智能体强化学习算法的性能特点,根据具体任务需求选择合适的解决方案。项目简洁的代码结构和清晰的训练结果,为新手学习和实践多智能体强化学习提供了理想的起点。
【免费下载链接】MARL-code-pytorchConcise pytorch implements of MARL algorithms, including MAPPO, MADDPG, MATD3, QMIX and VDN.项目地址: https://gitcode.com/gh_mirrors/ma/MARL-code-pytorch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考