English

An Exact Cooperation Formula for Introspection Dynamics in the Heterogeneous Public Goods Game

Computer Science and Game Theory 2026-05-25 v1

Abstract

Cooperation in heterogeneous groups, where individuals differ in resources, productivity, and behavioural responsiveness, underpins collective action across many social and biological systems. Introspection dynamics, in which each player compares their payoff to what they would have received under the alternative action, provides a natural learning rule for such asymmetric settings. We study introspection dynamics on multiplayer games in which the payoff difference Δfi\Delta f_i evaluated by a player when considering a strategy switch is independent of all other players' current actions, a property we call state-independence. Under this condition the introspection Markov chain decomposes as a random-scan product of NN independent two-state chains, one per player, and the stationary distribution is a product measure. As our main application we consider the heterogeneous public goods game, where NN players may differ in their contributions αi\alpha_i, public goods multipliers rir_i, and selection intensities βi\beta_i. We prove that the linear payoff structure implies state-independence, and the long-run cooperation probability admits the exact closed form pC=1Ni=1N[1μi0μi11+eβiαi(1ri/N)+μi0], p_C = \frac{1}{N}\sum_{i=1}^{N} \left[\frac{1-\mu_{i0}-\mu_{i1}}{1+e^{\,\beta_i\alpha_i(1-r_i/N)}}+\mu_{i0}\right], with no asymptotic approximation. Several structural consequences follow immediately: a player-specific cooperation threshold at ri=Nr_i = N (under symmetric mutation), payoff-neutrality under zero selection intensity, and the sign of each player's sensitivity to their own parameters.

Keywords

Cite

@article{arxiv.2605.23513,
  title  = {An Exact Cooperation Formula for Introspection Dynamics in the Heterogeneous Public Goods Game},
  author = {Harry Foster and Vincent A. Knight and Sebastian Krapohl},
  journal= {arXiv preprint arXiv:2605.23513},
  year   = {2026}
}