Dynamics Don't Restore a Universal Rule
Motivation
Axelrod's tournaments [4] made Tit for Tat famous, but the strategies in them were whatever people happened to submit. Wolfram's June 2026 essay Games between Programs [1] took a different approach, listing every strategy a small finite-state machine can encode and playing them all against each other. Tit for Tat landed well down the ranking, behind Grim Trigger.
Taleb took this as an example of a broader point: simple, elegant rules that look best in toy settings can be outperformed once the full space of possibilities is explored. Strogatz asked a different question of the same computation. A ranking against a fixed field says which strategies do well against the starting population, which is full of easily exploited strategies. In evolution, successful strategies become more common, weak ones disappear, and everyone is then scored against a different field.
Wolfram's essay does include evolution, of a different kind. He adaptively evolves individual machines by random mutation against a fixed opponent or a fixed set of opponents, and co-evolves pairs of machines against each other. What it does not do is let the composition of the whole population change in response to success. That is the extension Strogatz proposed, and the one run here.
The goal here is to run Strogatz's proposed experiment while changing only one thing: the population is allowed to evolve. The question is whether that restores what the static tournament took away. If a simple rule like Tit for Tat fails to dominate a fixed, varied field, does it, or any other simple rule, come out on top once strategies are allowed to reshape the field?
Model
Strategies
A strategy is a finite-state machine. Each state outputs a move, cooperate ($C$) or defect ($D$), and has two outgoing transitions: one taken if the opponent's last move was $C$, one if it was $D$. Following Wolfram, two machines count as the same strategy if they respond identically to every non-empty opponent history, and every strategy opens with $C$. This reproduces his counts exactly: $n = 22$ distinct strategies with up to 2 states and $n = 956$ with up to 3.
The payoff matrix
Let $A_{ij}$ be the long-run average payoff to strategy $i$ when playing strategy $j$ in the iterated Prisoner's Dilemma. Payoffs follow Wolfram's prison-year convention (mutual cooperation $-1$, mutual defection $-2$, sucker $-3$, temptation $0$). Without errors, play between two machines is eventually periodic and $A_{ij}$ is the exact average over the cycle. With an error rate $\epsilon$, each intended move is flipped with probability $\epsilon$, and $A_{ij}$ is computed from the Markov chain over the two machines' joint states.
The static ranking as one point in population space
Let $p = (p_1,\dots,p_n)$ be the population shares, a point in the simplex of all possible populations. The fitness of strategy $i$ in population $p$ is its expected payoff against a randomly drawn opponent:
$$\boxed{ F_i(p) = \sum_{j=1}^{n} A_{ij}\, p_j }$$
Wolfram's ranking orders strategies by their average payoff against all strategies, which is exactly this fitness evaluated at the uniform population $u = (1/n,\dots,1/n)$:
$$F_i^{\text{Wolfram}} = \frac{1}{n}\sum_{j=1}^{n} A_{ij} = F_i(u).$$
The static ranking and the evolutionary outcome are therefore two views of the same fitness function: one at the starting point, the other at the points the population actually visits.
Population dynamics
Starting from $p(0) = u$, shares are updated by exponential replicator dynamics:
$$\boxed{ p_i(t+1) = \frac{p_i(t)\, e^{\beta F_i(p(t))}}{\sum_{k} p_k(t)\, e^{\beta F_k(p(t))}} }$$
where $\beta$ sets the strength of selection. The exponential form is unaffected by shifting all payoffs by a constant, so negative prison-year payoffs need no adjustment. Optionally, a fraction $\mu$ of each generation undergoes mutation, using Wolfram's own operators: flip one state's move or re-point one transition.
The feedback loop Strogatz identified is now explicit. Fitness depends on the population, and the population depends on fitness:
$$p(t) \;\longrightarrow\; F(p(t)) \;\longrightarrow\; p(t+1) \;\longrightarrow\; F(p(t+1)) \;\longrightarrow\; \cdots$$
As an independent check on the dynamics, the same question is also run as a Moran process: a finite population of $N = 200$ individuals where one reproduces and one dies each step, so chance matters.
Axelrod-style traits
Axelrod argued that successful strategies tend to be nice, retaliatory and forgiving. To ask whether such properties emerge under selection, each strategy is probed with fixed opponent sequences and classified as nice (never defects first), provocable (eventually hits back against repeated defection), forgiving (returns to cooperation after the opponent does) and tolerant (ignores a single defection). These are operational stand-ins for Axelrod's principles, not his exact definitions.
Reproducing the static tournament
As a starting point, the implementation reproduces the static tournament: Wolfram's raw machine counts (64 and 5,832), his distinct-strategy counts (22 and 956), Grim Trigger as the top 2-state strategy, and Tit for Tat well down the ranking (9th of 22). One number differs: Grim Trigger's average payoff is $-0.909$ here versus $-0.866$ in the essay. The likely source is a convention not recoverable from the text, such as the exact payoff table (shown only as an image) or a detail of the averaging.
Results
Two states: the static winner often holds, until noise and mutation arrive
Across 18 replicator conditions with 2-state strategies (error rate $\epsilon \in \{0, 0.01, 0.05\}$, mutation on or off, $\beta \in \{0.1, 0.3, 1\}$), the outcome depends strongly on the conditions:
| Conditions | Outcome |
|---|---|
| No errors | Grim Trigger dominates, as in the static ranking. |
| 1% errors, no mutation | Grim Trigger dominates. |
| 1% errors + mutation | The population never settles. A lasting cycle runs Tit for Tat → Always Cooperate → Always Defect → Tit for Tat, with a period of about 52 generations. Tit for Tat is the most common strategy on average but repeatedly collapses. The static top 10 hold only 25–38% of the population. Holds at all three selection strengths. |
| 5% errors + mutation | Always Defect takes over at weaker selection, Grim Trigger at stronger. |
The cycle is the classic ecology of cooperation. Tit for Tat suppresses defectors, which lets unconditional cooperators spread unpunished, which feeds exploiters, which hands the population to defectors, which Tit for Tat can then invade again.
This cycle is not new in itself. Imhof, Fudenberg and Nowak [2] found evolutionary cycles among Always Defect, Tit for Tat and Always Cooperate, and Toupo, Rand and Strogatz [3] showed that mutation sparks stable limit cycles among exactly these three strategies, rotating in the same direction seen here. In their models the cycle requires a small cost to playing Tit for Tat. Here the 1% error rate plays that role: errors send two Tit for Tat players into rounds of retaliation that Always Cooperate avoids. What is new is that the cycle emerges on its own from selection over all 22 strategies, rather than among three chosen in advance.
Three states: Wolfram's top 10 go extinct, and nothing replaces them
With all 956 strategies of up to 3 states (no errors, no mutation, $\beta = 1$, 5,000 generations), the static ranking stops predicting the outcome. Every one of Wolfram's top 10 strategies goes extinct. The survivors come from rank 20 down to about 640, and the rank correlation between static score and final share is $0.01$.
Tit for Tat does not take their place. It ends at $0.65\%$ of the population (up from $0.10\%$ at the start). No strategy dominates: the largest survivor holds $6.5\%$, and it takes 11 strategies to make up half the population. What does change sharply is behavior. At the start, 26% of strategies are nice. After evolution, every survivor is.
One caution applies to the exact mix. Once the population cooperates, nice strategies earn the same payoff against each other and become selectively near-neutral, so which of them is most common partly reflects the path taken rather than selection. The robust findings are the extinction of the static top 10, the absence of a dominant strategy, and the population-wide shift toward niceness.
Finite populations: the static winner takes over
In a Moran process with $N = 200$, 2-state strategies and 1% errors, the infinite-population cycle disappears. Always Defect takes over in all three random seeds, ending at 68–81% of the population (75% on average), with Tit for Tat at about 8% and only 14% of the population nice. Here the static ranking does predict the outcome: with 1% errors Always Defect ranks first statically, and the static top 10 end with 85% of the population.
This differs from Imhof, Fudenberg and Nowak [2], who found finite-population cycles that spend most of their time near Tit for Tat. Their model differs in payoffs, uses a complexity cost rather than errors, and covers three strategies rather than 22, and the strong selection used here ($\beta = 1$) may also matter. Which of these drives the difference is an open question.
Interpretation
Adding dynamics does not restore a simple universal rule. Tit for Tat never wins outright, and no other rule wins everywhere either. Grim Trigger dominates one set of conditions, a cycle with no winner appears in another, Always Defect takes over a finite population, and in the larger 3-state space nothing dominates at all. Each outcome is a fact about a strategy in a context, not about the strategy alone.
The reason is that fitness is not a fixed property of a strategy. It is a function of the strategy and of the population it currently faces, and that population is itself shaped by which strategies have been succeeding:
$$\boxed{ \text{fitness} = f\big(\text{strategy};\ \text{ecology}(t)\big), \qquad \text{ecology}(t+1) = g\big(\text{fitnesses at } t\big) }$$
In the notation above, this is simply $F_i(p(t))$, with $p(t)$ driven by $F$ itself. The strategies change the problem they are trying to solve. A strategy can top the tournament by exploiting the many pushovers in the uniform field, but exploiting them drives them out, and its edge disappears with them.
This is consistent with Taleb's caution against parsimony. If a parsimonious rule already fails to dominate a fixed, varied field, making the field endogenous gives no reason to expect a single rule to dominate everywhere. Simple rules can and do win locally, but their wins are tied to the context that produced them.
It is also consistent with Strogatz's point that the two experiments answer different questions. The static ranking is fitness at one point, $F_i(u)$, and evolution moves the population elsewhere. Nothing prevents a reversal of the form
$$\boxed{ F_i(u) > F_j(u) \quad\text{yet}\quad F_i(p^{*}) < F_j(p^{*}) }$$
where $p^{*}$ is a population the dynamics actually reach. Here the reversal happens in some conditions (the 3-state top 10 go extinct) and not in others (Always Defect, the static leader with errors, takes over a finite population). The ranking cannot tell you in advance which.
“Evolution doesn’t just rerank strategies. Success changes the population, which changes what success means next.”
Perhaps the mistake is looking for the best strategy at all. What exists instead is success in a context, and the context is partly made by the strategies themselves. This matches the conclusion of Wolfram's essay for static competition, framed there as computational irreducibility: there is "basically no choice but to run them and see what happens" [1]. The same holds once the population is allowed to evolve.
Limitations
- Single 3-state condition: the 3-state results above come from one condition (no errors, no mutation). A full sweep over error rate, mutation and selection strength is in progress, and the paper will be updated with it.
- Static baseline: Grim Trigger's static score differs slightly from the essay's ($-0.909$ vs $-0.866$), so the exact payoff and averaging conventions are not yet confirmed.
- Opening move: the assumption that every strategy opens with cooperation is inferred from Wolfram's strategy counts. An alternative ensemble without it (26 and 1,054 strategies) is included in the code.
- Trait definitions: the Axelrod-style traits are behavioral probes defined here, not Axelrod's own definitions.
References
- S. Wolfram (2026). Games between Programs: The Ruliology of Competition. Stephen Wolfram Writings.
- L. A. Imhof, D. Fudenberg and M. A. Nowak (2005). Evolutionary cycles of cooperation and defection. Proc. Natl. Acad. Sci. USA 102, 10797–10800.
- D. F. P. Toupo, D. G. Rand and S. H. Strogatz. Limit cycles sparked by mutation in the repeated Prisoner's Dilemma. arXiv:1501.05715.
- R. Axelrod (1984). The Evolution of Cooperation. Basic Books.
Code
All code, the parameter sweeps and the finite-population check are available at github.com/sean-mcclure/evolving-wolfram-ipd. A single run reproduces Figure 2 in a few seconds:
python3 evolve.py --states 2 --noise 0.01 --mu 0.001 --gens 20000
Permalink: https://sean-mcclure.com/micropapers/evolving_wolfram_ipd.html