Licence MIASHS · Prolog · pair project

Strategy tournament

Two strategies derived on paper, written as Prolog agents, and entered against the rest of the year. They finished 7th and 8th of 16. Read the log match by match and the ranking inverts.

Source The agents Code.pl, four strategies behind a single joue/3. PDF The game and the strategy Payoff matrices derived from the rule, and the equilibrium proposed. Log The tournament 636 pages of rounds. The standings are on page 1.

What the standings measure

Matches won out of 15, in final tournament order from 1st at the top. The champion won 6. The agent that won 13 finished 14th. Source: results/head_to_head.csv.
The same sixteen agents by cumulative score, as powers of ten, which is the quantity the tournament actually ranked. Source: results/leaderboard.csv.

Put the two together and finishing lower correlates with winning more matches, Spearman +0.62 against final rank, p = 0.011. Both entered agents beat the eventual champion in their direct match, 782 to 435 and 490,335 to 4,772. The tournament did not rank agents by how often they won. It ranked them by how much they scored, and those are different objectives.

Why the scores reach 1062

This version of the game pays a repeated number its own value as a multiplier: play 5 again and the round pays five times what the last one did, verified on 5,050 of 5,216 consecutive repeats in the log. One stretch of best_duo repeating 5 pays 540, which is 9 × 1027 from a single round.

Both entered agents are stateless: they sample from a fixed distribution and never read the history. Their longest runs are 10 and 9, and they repeat 32.9% and 35.4% of the time, which is exactly what independent sampling gives by chance. Every agent placed above them reached runs of 37 to 100. A fixed mixed strategy cannot exploit a rule that rewards deliberate repetition, and that is the whole of the gap between 7th and 1st.

The equilibrium the agents were built on

Both entered agents sample a fixed mixture over the five picks, and the shipped Prolog plays what the analysis says it plays. Calling joue/3 2,000,000 times per agent puts every observed share within 0.0009 of its declared weight, and the picks a mixture gives no weight never came up once in either agent. So the numbers below describe the agents that actually ran, not just the vectors on paper.

The game. Payoff to the row player for its pick against the column player's, taken from the pure-against-pure rows of equilibrium/strategy_payoffs.csv. Undercutting by one takes the sum, which is the 5, 7 and 9 just above the diagonal.
What each pick earns against a Nash opponent. Picks 3, 4 and 5 all pay exactly 35/9 = 3.8889, which is why the equilibrium mixes over those three and gives 1 and 2 no weight at all. Source: equilibrium/strategy_payoffs.csv.

That flat top is the whole of the equilibrium condition. A mixture is a best reply exactly when every pick it uses pays the same and nothing unused pays more, so [0, 0, 4/9, 2/9, 1/3] has regret 0 while stage_test carries 0.3337 against that opponent and 0.5684 against itself. The best reply to stage_test is pick 5, the one pick stage_test never plays.

How much more the Nash mixture earns than stage_test does, against the same opponent. Every bar is positive, and the shortest is 0.1402. The absolute figures behind it are tabulated in the folder's own write-up. Source: equilibrium/strategy_payoffs.csv.

stage_test does beat Nash head to head, 3.5552 to 3.1521, which is what the original analysis claimed. It also earns less than Nash would have earned against every one of those opponents, by at least 0.1402. Payoff is linear in the opponent's mixture, so beating stage_test against all five pure picks settles it for every mixture too: the Nash strategy strictly dominates it. It wins the match by taking 0.7368 off the opponent while giving up 0.3337 itself, which is the same distinction the tournament standings turned on.

How to read these numbers