一文看懂 ma-gym 七大经典环境:Switch、Checkers、PredatorPrey 等场景规则全解析

📅 2026/8/26 14:52:42
一文看懂 ma-gym 七大经典环境:Switch、Checkers、PredatorPrey 等场景规则全解析
一文看懂 ma-gym 七大经典环境Switch、Checkers、PredatorPrey 等场景规则全解析【免费下载链接】ma-gymA collection of multi agent environments based on OpenAI gym.项目地址: https://gitcode.com/gh_mirrors/ma/ma-gymma-gym是一个基于 OpenAI Gym 构建的多智能体强化学习环境集合包含 Switch、Checkers、PredatorPrey、Combat、Lumberjacks、PongDuel、TrafficJunction 七大经典场景。如果你正在学习多智能体强化学习MARL又觉得单个环境太简单、真实场景太难ma-gym 就是理想的入门训练场规则清晰、代码可读、每个环境都对应一篇经典论文的实验设置非常适合新手用来理解协作与对抗两类核心问题。上面动图来自仓库自带的演示资源目录static/gif/其中收录了全部 9 个环境版本的运行动图例如Switch2-v0.gif、Combat-v0.gif、PredatorPrey7x7-v0.gif等方便你边读边看。快速上手两步安装 三行代码跑通ma-gym 以标准 Python 包发布安装非常简单pip install ma-gym跑通一个环境只需要几行代码import gym env gym.make(ma_gym:Switch2-v0) obs_n env.reset() while not all(env.agent_dones): obs_n, reward_n, env.agent_dones, info env.step(env.action_space.sample()) env.close()关键约定贯穿所有环境reset()/step()返回的都是列表每个智能体一份观测、奖励、结束标记调用env.render()可以打开可视化窗口观察智能体行为env.n_agents表示当前环境的智能体数量。官方示例脚本examples/interactive_agent.py 和 examples/random_agent.py。七大环境速览表环境智能体数类型一句话玩法源码位置Switch2~4合作每个智能体走到自己的终点格ma_gym/envs/switch/Checkers2合作非对称奖励一个吃苹果、一个清柠檬ma_gym/envs/checkers/PredatorPrey2 / 4合作多个捕食者同时合围猎物ma_gym/envs/predator_prey/Combat5对抗5v5 团队战斗消灭对方ma_gym/envs/combat/Lumberjacks可配置合作集齐数量砍倒所有树ma_gym/envs/lumberjacks/PongDuel2对抗双人对打乒乓抢球ma_gym/envs/pong_duel/TrafficJunction1~10协作避撞路口车辆通过且不碰撞ma_gym/envs/traffic_junction/接下来逐个拆解每个环境的规则与奖励设计。Switch多智能体协作的入门经典环境 IDSwitch2-v02 个智能体、Switch4-v04 个智能体这是新手最推荐第一个跑通的环境规则极简但信息完整场景是一个 3×7 的网格中间是一条横向走廊两端各有竖直通道每个智能体从一侧通道出发目标是走到对侧的终点格渲染图上用彩色方框标出行动空间为 5 个离散动作上、下、左、右、原地不动到达终点即获得5奖励并结束超过 50 步未到达则失败。为什么值得学智能体之间存在物理竞争——同一条走廊只能排队通过。谁先让行、谁先抢位都会影响队友收益天然构成最简单的协作/让行博弈。核心实现可参考 ma_gym/envs/switch/switch_one_corridor.py。 建议先用Switch2-v0验证训练流程再升级到Switch4-v0增加复杂度。Checkers非对称奖励下的协作陷阱环境 IDCheckers-v0Checkers 的名字容易让人误解成国际跳棋实际它是VDNValue-Decomposition Networks论文的 4.2 节实验场景核心考验差异化分工3×8 网格上有苹果绿色和柠檬黄色中间有一堵柠檬墙把两个智能体与苹果隔开红色智能体1 号过敏吃苹果 10吃柠檬−10蓝色智能体2 号不敏感吃苹果 1吃柠檬−1所有苹果被吃光后回合结束。最优策略是2 号智能体先吃掉柠檬墙开路自己损失小把苹果留给收益高 10 倍的 1 号智能体。如果两个智能体都只顾自己团队总收益远不如分工协作——这正是研究奖励分解的经典案例。规则细节见 ma_gym/envs/checkers/checkers.py 顶部的类注释。PredatorPrey合作抓捕的追逐博弈环境 IDPredatorPrey5x5-v02 捕食者 vs 1 猎物、PredatorPrey7x7-v04 捕食者 vs 2 猎物这是研究合作必要性的标杆环境规则要点捕食者各自可选 5 个动作上下左右停止拥有 5×5 视野猎物每一步按概率随机移动关键设定只有当同一时刻至少 2 个捕食者同时夹住猎物时才算抓获团队获得奖励单个捕食者靠近反而会被惩罚默认 −0.5所有猎物都被成功合围时回合结束最多 100 步。这个惩罚设计逼出了真正的分工单独追击不但不赚钱还会倒扣——智能体必须学会包抄。参数化的视野掩码agent_view_mask让你能自由调节信息量难度。实现位于 ma_gym/envs/predator_prey/predator_prey.py。Combat5v5 团队对抗策略训练场环境 IDCombat-v0想要体验对抗性多智能体场景Combat 是标准选择源自《Learning Multiagent Communication with Backpropagation》一文的实验设置15×15 网格两方各 5 个智能体随机在己方区域附近出生每个智能体有3 点生命值行动 4 个方向移动 攻击敌方 5 个 ID 空动作攻击只能打中 3×3 射程内的目标命中扣 1 血攻击后需冷却 1 步一方全灭即获胜40 步内未分胜负算平局对手是内置机器人优先攻击射程内最近敌人否则逼近可见的最近敌人——注意机器人团队共享视野这一点比你的智能体更强。奖励设计为终局导向输或平局 −1并按敌方剩余总血量额外扣 −0.1×血量鼓励持续进攻而非消极防御。完整规则见 ma_gym/envs/combat/combat.py。Lumberjacks数量决定胜负的伐木协作环境 IDLumberjacks-v0规则非常直觉适合用来调试多智能体算法网格中随机分布若干棵树每棵树有 1~3 的强度伐木工的动作空间同样为 5上下左右停止同一格内的伐木工人数 ≥ 树的强度时树自动被砍倒只有参与砍倒该树的智能体获得奖励砍倒全部树木或达到最大步数默认 100 步后结束。它比 Switch 多了目标难度这一维强度 3 的树需要三人合力会自然催生资源调度行为。源码见 ma_gym/envs/lumberjacks/lumberjacks.py。PongDuel双人对打的乒乓竞技环境 IDPongDuel-v0经典街机《Pong》的多智能体改造版是零和对抗的最小样本40×30 网格中两个智能体各控制一侧挡板只能垂直移动3 个动作上、停、下球按方向反弹球越过挡板即失分一方先赢满 10 分max_rounds可配置结束对局。观测包含双方挡板位置和球的 6 方向 one-hot维度很小非常适合做对抗算法如自对弈、镜像策略的回归测试。实现参考 ma_gym/envs/pong_duel/pong_duel.py。TrafficJunction智能交通路口避撞模拟环境 IDTrafficJunction4-v0最多 4 辆车、TrafficJunction10-v0最多 10 辆车这是模拟真实交通场景的压力测试环境14×14 网格中心是一个四岔路口车辆从四个方向以概率p_arrive默认 0.5随机驶入总数受n_max限制每辆车只有两个动作油门前进一格和刹车保持不动两车同格即碰撞本次碰撞扣−10奖励堵车也有代价每辆车每步扣−0.01 × 已等待步数越久越疼默认 40 步结束后只要发生过碰撞即判定失败。TrafficJunction4适合入门TrafficJunction10车多路窄、冲突密集是检验策略鲁棒性的进阶关卡。规则全文写在 ma_gym/envs/traffic_junction/traffic_junction.py 的类注释里。彩蛋用 ma_ 前缀包装 OpenAI 经典环境调试多智能体算法时经常需要一个已知最优的对照环境。ma-gym 提供了ma_前缀的包装器env gym.make(ma_gym:ma_CartPole-v0)它把 OpenAI Gym 的单智能体环境如 CartPole包成单智能体的多智能体接口方便验证你的 MARL 代码管线在简单场景下是否正确。包装器实现位于 ma_gym/envs/openai/init.py。新手选型建议与常见问题不知道从哪个环境开始按这个顺序来Switch2-v0→ 验证代码管线理解多智能体 APILumberjacks-v0→ 学习人数阈值式的硬协作PredatorPrey5x5-v0→ 理解惩罚如何驱动分工Checkers-v0→ 挑战非对称奖励的深层协作TrafficJunction4-v0 / PongDuel-v0→ 转向避撞与零和对抗Combat-v0 / PredatorPrey7x7-v0 / TrafficJunction10-v0→ 多智能体、大地图的进阶关。❓常见问题为什么我的奖励一直是 0先确认reset()后再step()并观察env.agent_dones大多数环境的默认step_cost0奖励只在达成目标时发放。如何控制智能体看到的信息几乎每个环境都支持full_observable参数False默认为局部观测True时所有智能体共享全局观测可用于区分算法是真的会协作还是开了全图。如何写回归测试仓库自带 pytest 用例每个环境一个测试文件位于tests/envs/目录如 tests/envs/test_switch2.py运行pytest即可自检。总结ma-gym 用七个规则透明、难度递进的环境完整覆盖了多智能体强化学习的两大主题合作Switch、Checkers、PredatorPrey、Lumberjacks、TrafficJunction与对抗Combat、PongDuel。每个环境都有对应的运行动图static/gif/、单元测试和清晰的源码注释配合pip install ma-gym即可开箱即用。建议从 Switch 开始逐步解锁 PredatorPrey 和 TrafficJunction你会对多智能体到底难在哪建立起非常具体的直觉。【免费下载链接】ma-gymA collection of multi agent environments based on OpenAI gym.项目地址: https://gitcode.com/gh_mirrors/ma/ma-gym创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考