复现软硬件:
Ubunru20.04,Python 3.8.10, torch 2.4.1, gym 0.10.5,VScode
论文:
http://arxiv.org/pdf/1706.02275
环境:
GitHub - openai/multiagent-particle-envs: Code for a multi-agent particle environment used in the paper "Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments"
核心代码(方法):
GitHub - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients: A Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithm
具体步骤:
step1:启动终端,建立工作空间
mkdir maddpg_ws
step2:克隆环境
cd maddpg_ws
git clone https://github.com/openai/multiagent-particle-envs.git
step3:安装并激活虚拟环境
cd maddpg_ws
cd multiagent-particle-envs
python3 -m venv maddpg-env
source maddpg-env/bin/activate
激活成功后会有如上图所示的显示,在命令行之前多了(maddpg_env),则表示激活成功。
备注:这一部操作是为了在虚拟环境下去安装所需的环境、功能包、工具等,与系统的配置隔离开,避免影响系统的配置。
step4:安装所需的功能包和工具(在第三部的基础上)
pip3 install gym==0.10.5 numpy==1.24.4 torch==2.4.1 matplotlib
# matplotlib 为绘图工具,后期输出结果要用的
step5:检查上述功能包和工具是否安装成功
pip3 list
在输出的列表中查看step4所安装的功能包和工具是否与要求的版本对应上 。
step6:安装MPE环境(在刚才的终端中继续运行)
pip3 install -e .
step7:进入VScode进行代码编辑
cd maddpg_ws
cd multiagent-particle-envs
code .
step8:为VScode选择Python解释器
在VS Code中配置Python解释器:
-
按
Ctrl + Shift + P
,然后选择“Python: Select Interpreter”。 -
选择刚刚创建的虚拟环境中的Python解释器。
step9:配置json文件
launch.json
文件用于配置调试参数,以便在VS Code中轻松运行和调试Python脚本。
创建和配置launch.json
-
打开VS Code中的调试视图: 点击VS Code左侧栏的“调试”图标。
-
创建
launch.json
文件: 点击“创建一个launch.json文件”链接。VS Code会引导您创建一个配置文件。选择“Python”作为环境。 -
编辑
launch.json
: 创建好文件后,添加或编辑以下配置项:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python 调试程序: 当前文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
}
]
}
Step10:在multiagent-particle-envs文件夹下新建一个maddpg_torch.py文件来编辑代码
上述借鉴的maddpg算法实现的代码:GitHub - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients: A Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithmA Pytorch implementation of the multi agent deep deterministic policy gradients (MADDPG) algorithm - philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradientshttps://github.com/philtabor/Multi-Agent-Deep-Deterministic-Policy-Gradients
将代码切分为了不同部分,并且代码中并为包含结果可视化的代码,于是将修改后的代码直接给出,该代码在原代码的基础上进行了修改,并对结果进行了可视化,可直接复制使用,整体代码如下:
import os
import numpy as np
from sympy import evaluate
import torch as T
import torch.nn as nn
import torch.nn.functional as F # torch.nn.function已不再适用
import torch.optim as optim
from make_env import make_env
from multiagent import scenario
from collections import namedtuple
import matplotlib.pyplot as plt # 绘制奖励曲线的包
from matplotlib.animation import FuncAni