AI and strategic pricing

A research internship at GAEL, January to April 2025.

In repeated price competition, human players tend to converge on tacitly collusive prices rather than on the competitive equilibrium. Whether algorithms sustain that behaviour, break it, or intensify it is an open question in industrial economics, and one with direct consequences for competition policy. Supervised by Alexis Garapin (UGA) and Olivier Bonroy (INRAE) at the Grenoble Applied Economics Laboratory.

The internship did not settle the question. What it produced is below, with the numbers it actually reached.

Imitation as a weight update

Eighth of eight, behind a coin flip

The imitating agent finishes last of eight players
Seven opponents from the literature, and the imitator last.
The agent's reciprocity decays to zero while Tit-for-Tat holds at one
Its reciprocity is a transient. Tit-for-Tat's is not.

Mirror neurons fire both when you act and when you watch someone else act, which makes them a plausible substrate for imitation. The agent is that idea at its simplest: observing an action multiplies its weight and renormalises. Nothing tells it to reciprocate, and the report expects Tit-for-Tat to emerge from the update anyway.

It does not. Written in closed form the rule is wi ∝ wi(0)(1+η)ni, so the agent's whole state is a pair of counts and its next action cannot depend on the order it saw them in. Tit-for-Tat is a function of the last round alone, which this rule has no way to represent. What emerges instead is frequency matching: reciprocity of 0.123 against Tit-for-Tat's 1.000, decaying to exactly zero by turn 800 as the agent saturates into a constant player. Raising the learning rate does not buy it back.

How long a match runs decides the standing, so one length on its own is not the result. The agent is worst at 20 turns, scoring 2.000 against the coin flip's 2.211, and stays last through 100. By 500 it is sixth and the coin flip is last, not because it has learned anything but because it has stopped: in the closing turns of a long match it is frozen against six of the seven opponents, cooperating always with the cooperative ones and defecting always against the rest. A constant is worth more than a coin flip to a field full of reciprocators.

The tournament is a round robin: eight players, each meeting every other and itself over 100 turns, repeated 20 times because two of them draw their moves at random. Payoffs are the standard 3 for mutual cooperation, 1 for mutual defection, 5 for defecting on a cooperator and 0 for being defected on, and a player is ranked by its median score per turn across every match. That rewards doing well against the whole field: Defector wins the most individual matches, seven of them, and still places third.

On the question this page opens with, the mechanism sustains tacit cooperation and neither breaks nor intensifies it. Two imitators are a feedback loop with two absorbing states and nothing between them: over 700 runs they locked onto mutual defection or mutual cooperation according to where they started, and not once onto anything else. From a starting weight of 0.05 it is mutual defection every time, worth 1.00 a turn; from 0.8, the value the internship used, mutual cooperation every time, worth 2.995 against a ceiling of 3. This imitation rule is a ratchet on the initial condition rather than a route to collusion, which is what separates it from the Q-learners of Calvano et al. (2020) that do find collusion, and read payoffs to do it.

Two imitators settle on whichever regime they started in
Two imitators keep whatever they were dropped into.

Axelrod supplied the opponents, the match engine and the payoff bookkeeping, so none of that was written here. Every number above is a committed CSV, and a CI step regenerates them on each push and fails on any difference, so a figure cannot quietly drift from the code that drew it.

The language-model half

Three of four readable models cannot leave an imposed regime, and talking frees only one of them

llm/ is homo silicus. The report cites Horton, Filippas and Manning (2023) and names the method in its conclusion without running it. Five open-weight models, run locally and offline, play the games the report's own frame defines: the Prisoner's Dilemma iterated and sequential, the Ultimatum game, and the Dictator game. The iterated grid ran on 2026-08-17: 220 matches of 30 rounds, 210 of them readable.

Three of four readable models settle on mutual defection when handed a defective opening in silence
Handed a regime they did not choose, most models keep it, and a message helps only some of them.

Given a mutually defecting opening and no channel, qwen2.5, gemma3 and qwen3 defect in all 30 rounds, four matches out of four, a cooperation rate of exactly zero. That is the imitator's ratchet above, reproduced in a language model. A non-binding message then takes qwen2.5 from 0.00 to 1.00 and leaves gemma3 and qwen3 at 0.00, while mistral climbs out of the same opening without any message at all and qwen3 defects even from a neutral silent start. So the channel is neither necessary nor sufficient: which models can leave an imposed regime is a fact about the models, not about language models.

The two models a message does not free are the two whose messages never name an action
Reading the messages gives the mechanism: the models a message does not free are the models that never use it to propose anything.

That is the part worth carrying away. The channel does not fail because a proposal is made and ignored. gemma3 sends phatic fragments averaging 21 characters, "Interesting." and "Keep going.", and qwen3 sends fluent collaborative prose, "Let's keep the pressure on and make every round count.", while defecting in all thirty rounds. A model can produce text that reads as cooperation talk while its behaviour is untouched by it. The full argument, with the literature it sits in, is in the article.

Cooperation in the first round each pair controls, by what the model had to reason from
Round 0 decides the match. Each column is a different thing to reason from.

Almost every match settles in the first round a pair controls, so the whole result is a claim about one decision, and it is the only one where what a model holds is known exactly: the payoff matrix, a fabricated round if the cell imposes one, a message if the cell has a channel. qwen3 behaves three ways across that row. On the payoff matrix alone it defects. With a message and nothing else it cooperates, four times out of four. With a message and an imposed defective round it defects again, and its stated reason cites the imposed round without mentioning the message: "especially since both players have already chosen to defect in the first round." So a planted history outranks a live signal arriving at the same moment, and which of the two wins is a property of the model: qwen2.5 ranks them the other way on the identical treatment.

What a model gives when it cannot be refused

What each model gives in the Dictator game, in the Ultimatum game, and the least it says it would accept
The Dictator game removes the refusal, so the gap between the two offers is what a model pays not to be refused.

The report's frame defines two more games, and neither number means much alone. Removing the rejection leaves disposition; adding it back leaves strategy. qwen3 gives half when refusal is impossible and 99 of 100 when it is not, a premium of 49 points against a risk that an offer of 60 would have removed. gemma3 and qwen2.5 each offer exactly 50 and each demand 51, so both would reject the split they had just called fair.

That last case is the one that ties the study together. qwen3 looks ruthless in one game and absurdly generous in the other, and its own reasons show one rule doing both: defecting "guarantees at least 1 point compared to potentially 0", and offering 99 is "to avoid getting nothing". Worst-case avoidance recommends opposite behaviour in the two games, which is a caution against reading a single game as a personality.

Two things we checked rather than assumed

phi3:mini lost 10 of its 44 matches to replies that named no action, and it was also the only model at a coarser quantisation. Re-running its whole stage on a finer build of the same weights, same context length and same seeds, cut the losses to 4 of 44 without removing them: the packing was much of the problem and not all of it, and its cells stay uninterpreted.

The grid runs every model with reasoning switched off, because turning it on costs qwen3 34 seconds a call instead of 1.9. Turned on in the cell that traps it, it moves off an exact zero to 0.09 and starts probing, saying plainly that it is trying to break the cycle, but only where a channel exists. Silent, it stays exactly locked.

The two are siblings on purpose, and the point of the pairing is narrow: this report proposed this mechanism and claimed Tit-for-Tat emerges from it, so both halves test that claim on shared opponents with one measure. Seating language models beside classical strategies is not itself new, and Payne and Alloui-Cros (2025) claim the first such tournament. Both players expose the same two calls, so one harness can seat either, and the comparison is between a mechanism that can only imitate and one that can also talk and explain itself. Cheap talk and explainability are two of the eight terms the report defines, and the two the Hebbian agent has no way to reach.

How the repository is arranged

Two layers. Everything the internship submitted in May 2025 is preserved in original/ byte for byte, including what is wrong with it, which that folder records rather than quietly repairing.

The internship ended in April 2025. The piece above was redone afterwards, in my own time, because it was not finished: the simulation could not be run from top to bottom. It sits beside original/ rather than over it, and does not overturn what the internship concluded. What changed is that the claims the code does not support are named, and the figures carry the labels they were computing and throwing away.

An equilibrium analysis used to sit here too. It went with the Prolog course project whose game it is about, in University-Coursework. That game does not appear in the internship report.