Manan Arora
← All projectsResearch · multi-agent reinforcement learning

Adaptive MAPPO

When a team of agents learns together, should each one judge its moves by what the whole team sees, or by what it sees alone? We let a small network decide, state by state.

Role
Designed the adaptive critic, led the method
Team
Course project, ECE 567 · UMich
When
Winter 2026
Stack
PyTorch · TorchRL · BenchMARL
Scale
4 tasks × 6 methods × 3 seeds = 72 runs
MAPPO
Adaptive MAPPO
Real outputMultiwalker: three bipedal walkers must carry a package together without dropping it. Each clip is that method’s best checkpoint.
01

One critic for the team, or one for each agent?

In PPO, a critic estimates how good the current situation is, so the policy can tell whether an action helped. With several agents there’s a choice to make.

MAPPO gives the critic the whole team’s state. It understands teamwork, but its signal is noisy for any single agent: did we win because of me? IPPO gives each agent a critic over its own view. It’s steadier, but blind to teammates. In our baselines neither wins everywhere; they trade places from task to task and even within one training run.

So instead of choosing, blend them. Drag α to see what the policy would learn from:

Team criticsees every agent0.80Own criticsees only me0.30Value PPO usesthe blend0.55
0 · IPPO (own only)1 · MAPPO (team only)
v = 0.50 × 0.8 + 0.50 × 0.3 = 0.55
IllustrativeThe two critic values are made up to show the mechanism; the blend formula is the real one.
102030405060100200300training iterationepisode rewardMAPPO (team critic)IPPO (own critic)
MAPPO (team critic)IPPO (own critic)
Re-plotted from logsVMAS Balance, mean of 3 seeds with min–max band. The two critics trade the lead several times during training.
02

Let a small network choose α for every state

  1. 01Both critics score the stateThe team critic V_global and each agent’s own critic V_local.
  2. 02Six featuresBoth values (normalized), their disagreement, team variance, each agent’s deviation from the team, and their log-ratio.
  3. 03Tiny MLP → α6 → 16 → 1 with LayerNorm and a sigmoid, trained end-to-end with the PPO loss.learned per state
  4. 04Blend and trainv = α·V_global + (1−α)·V_local feeds GAE advantages for clipped PPO.
The adaptive critic. Everything else is standard clipped PPO with GAE.
# features from both critics (normalized on the team critic's scale)
v_g = (v_global - mean) / std
v_l = (v_local  - mean) / std
features = cat([v_g, v_l,
                |v_g - v_l|,             # disagreement
                var_team(v_l),           # how split the team is
                v_l - mean_team(v_l),    # this agent vs the team
                log(|v_global| / |v_local|)])

alpha = sigmoid(mlp(features))           # 6 -> 16 -> 1
v_mix = alpha * v_global + (1 - alpha) * v_local   # raw scale for the PPO target

We compared against pure MAPPO (α = 1), pure IPPO (α = 0), and three fixed blends (α = 0.25, 0.5, 0.75), on two PettingZoo tasks (Multiwalker, Simple World Comm) and two VMAS tasks (Navigation, Balance), three seeds each, 3M frames per run on the Great Lakes cluster.

03

α lands somewhere different on every task

00.20.40.60.810100200300training iterationlearned αMultiwalkerNavigationBalanceWorld Comm
MultiwalkerNavigationBalanceWorld Comm
Re-plotted from logsMean learned α across 3 seeds (bands: min–max). Nobody told it where to go: on Multiwalker it settles near the team critic, on Navigation near each agent’s own.
21.2%drop from peak reward on Multiwalkervs 49.4% for MAPPO and 141.3% for IPPO
1stmost stable on Multiwalker and Navigationof 6 methods, ranked by drop from peak
0.94 / 0.24final α on Multiwalker / Navigationsame algorithm, opposite choices
0%50%100%150%Adaptive (ours): 21.2%Adaptive (ours)21.2%MAPPO: 49.4%MAPPO49.4%Fixed α = 0.25: 53.3%Fixed α = 0.2553.3%Fixed α = 0.75: 78.4%Fixed α = 0.7578.4%Fixed α = 0.50: 110.2%Fixed α = 0.50110.2%IPPO: 141.3%IPPO141.3%
Real outputMultiwalker: how much reward each method lost between its best checkpoint and the end of training (lower is more stable). Mean of 3 seeds.
All four tasks, all six methods

Adaptive MAPPO ranks first on Multiwalker and Navigation, third on Balance (where α simply converges to pure MAPPO), and last on Simple World Comm, a task built around communication where α wandered and a low fixed α did best.

MultiwalkerNavigationBalanceWorld CommAdaptive (ours)Adaptive (ours) · Multiwalker: 11Adaptive (ours) · Navigation: 11Adaptive (ours) · Balance: 33Adaptive (ours) · World Comm: 66MAPPOMAPPO · Multiwalker: 22MAPPO · Navigation: 33MAPPO · Balance: 22MAPPO · World Comm: 33IPPOIPPO · Multiwalker: 66IPPO · Navigation: 66IPPO · Balance: 44IPPO · World Comm: 22Fixed α = 0.25Fixed α = 0.25 · Multiwalker: 33Fixed α = 0.25 · Navigation: 55Fixed α = 0.25 · Balance: 11Fixed α = 0.25 · World Comm: 11Fixed α = 0.50Fixed α = 0.50 · Multiwalker: 55Fixed α = 0.50 · Navigation: 22Fixed α = 0.50 · Balance: 66Fixed α = 0.50 · World Comm: 55Fixed α = 0.75Fixed α = 0.75 · Multiwalker: 44Fixed α = 0.75 · Navigation: 44Fixed α = 0.75 · Balance: 55Fixed α = 0.75 · World Comm: 44
Rank by drop from peak reward (1 = most stable).
Source: aggregate of 72 runs (mean over 3 seeds).
TaskMethodRankDrop from peakBest rewardFinal reward
MultiwalkerAdaptive (ours)121.2%12.489.83
MultiwalkerMAPPO249.4%5.983.03
MultiwalkerIPPO6141.3%9.74-4.02
MultiwalkerFixed α = 0.25353.3%34.1915.98
MultiwalkerFixed α = 0.505110.2%16.48-1.68
MultiwalkerFixed α = 0.75478.4%24.345.27
NavigationAdaptive (ours)115.2%1.120.95
NavigationMAPPO316.8%1.170.97
NavigationIPPO623.7%1.140.87
NavigationFixed α = 0.25520.3%1.130.90
NavigationFixed α = 0.50216.5%1.120.94
NavigationFixed α = 0.75417%1.160.96
BalanceAdaptive (ours)317.2%53.8544.56
BalanceMAPPO216.1%54.0645.37
BalanceIPPO425.8%52.0838.65
BalanceFixed α = 0.25113.9%55.3947.71
BalanceFixed α = 0.50627.3%54.7839.81
BalanceFixed α = 0.75527.1%53.6139.06
World CommAdaptive (ours)643%30.6817.48
World CommMAPPO324.5%39.9230.16
World CommIPPO216.4%38.3832.08
World CommFixed α = 0.2512.6%41.1340.07
World CommFixed α = 0.50535.3%39.9125.82
World CommFixed α = 0.75433.3%38.1325.42
04

What I’d try next

  • Give α the agents’ observations, not just the two values, so it can react to what’s happening on screen.
  • Understand the communication task: does α need to differ for speakers and listeners?
  • Harder coordination benchmarks with more agents, where a team critic gets noisier.

Want to see agents learning live? The football simulation on my homepage is a separate, illustrative demo of multi-agent RL.

Building agents that have to cooperate? I’d like to hear what you’re working on.