{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2607-17924","title":"Aggregate in the Advantage, Not the Ratio: A Canonical-Form Analysis of Cooperative Multi-Agent Policy Optimization","arxiv_id":"2607.17924","date":"2026-07-20","proceeding":null,"authors":["Zijian Zhao","Sen Li"],"abstract":"Multi-agent policy optimization, exemplified by PPO-based methods, is a key branch of cooperative Multi-Agent Reinforcement Learning (MARL). A central design question is how many neighboring agents\\footnote{In this paper, \"neighbors\" refer not only to physical proximity but also to agents whose actions influence one another.} to aggregate in order to effectively utilize global information for cooperation. This decision must be made along two dimensions: in the advantage (which agents' rewards contribute to the credit signal) and in the ratio (which agents' likelihood ratios form the clipped importance weight). Existing methods occupy scattered, underexplored points on these two axes: IPPO treats both separately; MAPPO pairs a team-level advantage with per-agent ratios; HAPPO employs sequential ratios with per-agent advantages; and single-agent reductions operating on factorized joint policies aggregate both into fully joint products. We formalize these two design choices as support matrices $\\SA$ and $\\SR$, and prove a canonical structure: the expected multi-agent policy optimization objective depends on the pair $(\\SA,\\SR)$ only through their matrix product $\\tS=\\SR\\SA$. This yields two key consequences: (i) Redundancy: the two support matrices are interchangeable with respect to the signal, meaning neither aggregation pattern is inherently superior.(ii) Variance Ordering: the advantage aggregates rewards as a sum (additive variance with an interior bias-variance optimum at the coupling neighborhood), whereas the ratio aggregates likelihood ratios as a product (multiplicative variance that grows exponentially with support size, with no accompanying bias reduction). The resulting design principle is unambiguous: aggregate neighbors in the advantage, sized to the coupling neighborhood, and keep the ratio per-agent.","url_abs":"https://arxiv.org/abs/2607.17924","url_pdf":"https://arxiv.org/pdf/2607.17924","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2607.17924"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/RS2002/MAPO","reach":null}],"summary":{"ran":9,"unverified":4},"by_repo_kind":{"found_in_text":{"samples":13,"ran":9,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":13,"samples":[{"code_sha256_prefix":"0fda04845329561e","entry":"build_support","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/support_mappo.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/support_mappo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0fda04845329561e"}},{"code_sha256_prefix":"6092840b3f704aa5","entry":"infer_grid_from_ids","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/probe_env.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/probe_env.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6092840b3f704aa5"}},{"code_sha256_prefix":"e5131b7f29eef7c4","entry":"khop_support","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/support_mappo.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/support_mappo.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e5131b7f29eef7c4"}},{"code_sha256_prefix":"02f8d51f878021f9","entry":"load","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/plot_traffic_advantage.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/plot_traffic_advantage.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"02f8d51f878021f9"}},{"code_sha256_prefix":"1e734c2211cdb6d5","entry":"load","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/plot_traffic_ratio.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/plot_traffic_ratio.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1e734c2211cdb6d5"}},{"code_sha256_prefix":"ff1d24241368cf21","entry":"local_reward","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/reward_fns.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/reward_fns.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ff1d24241368cf21"}},{"code_sha256_prefix":"3073f7f9b3a2fee6","entry":"ratio_err","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"toy/plots/plot_scaling.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/toy/plots/plot_scaling.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3073f7f9b3a2fee6"}},{"code_sha256_prefix":"7cde4fce89242eea","entry":"ring_adj","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"toy/single_step/envs.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/toy/single_step/envs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7cde4fce89242eea"}},{"code_sha256_prefix":"4f5492e2242733ec","entry":"rowvals","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/plot_traffic_ratio.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/plot_traffic_ratio.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4f5492e2242733ec"}},{"code_sha256_prefix":"ebf48cfa25a0e8c4","entry":"infer_topology_via_traci","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"traffic/probe_env.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/traffic/probe_env.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ebf48cfa25a0e8c4"}},{"code_sha256_prefix":"977a04dd3a046230","entry":"load_np","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"toy/plots/plot_scaling.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/toy/plots/plot_scaling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"977a04dd3a046230"}},{"code_sha256_prefix":"1c35c7247d918f9e","entry":"load_server","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"toy/plots/plot_scaling.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/toy/plots/plot_scaling.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1c35c7247d918f9e"}},{"code_sha256_prefix":"06ef383bb5533302","entry":"logp","repo":"RS2002/MAPO","repo_kind":"found_in_text","path":"toy/single_step/make_biasvar2x2.py","file_url":"https://github.com/RS2002/MAPO/blob/HEAD/toy/single_step/make_biasvar2x2.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"06ef383bb5533302"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":{"kind":"leaderboard_placements","source":"Syntology's leaderboard-shaped extractor over the paper's own arXiv-HTML tables: a model pointed at a cell, the number was read from that cell and checked against the board's metric, dataset, split and scale, and an independent check accepted the entry; not reviewed by the paper's authors or the archive's editors","extractor_model":"global.anthropic.claude-sonnet-4-5-20250929-v1:0","verifier_model":null,"prompt_sha":"fa63d4bb9d755694","coverage":{"sentence":"Syntology has checked 6,264 of the 9,581 papers on this site that are newer than the archive; results from the others appear after they are checked.","papers_newer_than_archive":9581,"papers_checked":6264},"entries":[],"not_placed":{"boards":0,"rejected_by_independent_check":0,"refused_by_a_rule":0,"check_did_not_answer":0,"proposed_without_a_cell":0,"declined_by_site":0}}}