============================================================================== RUNNING AXELROD'S TOURNAMENT AGAIN, WITH NOISE THIS TIME Science Journaling Club, Volume 2 Issue 1, Fall 2025 ============================================================================== python : 3.12.3 numpy : 2.4.2 master seed : 20250913 rounds/match : 200 tournament repetitions: 400 strategies : 15 unordered pairs incl. twin: 120 noise levels : 0.000, 0.001, 0.002, 0.005, 0.010, 0.020, 0.050, 0.100, 0.150, 0.200 generations : 4000 (discrete replicator, uniform start) matches in the main sweep: 480000 ============================================================================== VALIDATION 1. THE PAYOFF STRUCTURE IS A PRISONER'S DILEMMA ============================================================================== T = 5.0 R = 3.0 P = 1.0 S = 0.0 (Axelrod 1980 values) ordering T > R > P > S : 5.0 > 3.0 > 1.0 > 0.0 -> PASS no-alternation 2R > T+S : 6.0 > 5.0 -> PASS Without 2R > T+S, taking turns being exploited would beat mutual cooperation and the game would not be a prisoner's dilemma at all. ============================================================================== VALIDATION 2. ANALYTIC PAIRWISE PAYOFFS AT ZERO NOISE ============================================================================== Each pairing below has an exact per-round payoff over 200 rounds that can be worked out with a pencil. The club's simulated value is printed beside it. Any nonzero difference is a bug in our code. OK TFT vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs TFT club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK GRIM vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs GRIM club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK PAVLOV vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs PAVLOV club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK CTFT vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs CTFT club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK HTFT vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs HTFT club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK TF2T vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs TF2T club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK ALLC vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 OK ALLC vs ALLC club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK TFT vs TFT club 3.000000 accepted 3.000000 diff +0.000e+00 OK TFT vs TFT club 3.000000 accepted 3.000000 diff +0.000e+00 both cooperate on every round OK GRIM vs GRIM club 3.000000 accepted 3.000000 diff +0.000e+00 OK GRIM vs GRIM club 3.000000 accepted 3.000000 diff +0.000e+00 neither one ever triggers OK PAVLOV vs PAVLOV club 3.000000 accepted 3.000000 diff +0.000e+00 OK PAVLOV vs PAVLOV club 3.000000 accepted 3.000000 diff +0.000e+00 they agree every round, so win-stay OK CTFT vs CTFT club 3.000000 accepted 3.000000 diff +0.000e+00 OK CTFT vs CTFT club 3.000000 accepted 3.000000 diff +0.000e+00 both stay in good standing throughout OK HTFT vs HTFT club 3.000000 accepted 3.000000 diff +0.000e+00 OK HTFT vs HTFT club 3.000000 accepted 3.000000 diff +0.000e+00 no defection inside any three-round window OK ALLD vs ALLD club 1.000000 accepted 1.000000 diff +0.000e+00 OK ALLD vs ALLD club 1.000000 accepted 1.000000 diff +0.000e+00 mutual defection on every round OK STFT vs ALLD club 1.000000 accepted 1.000000 diff +0.000e+00 OK ALLD vs STFT club 1.000000 accepted 1.000000 diff +0.000e+00 a suspicious opening meets a defector OK TFT vs ALLD club 0.995000 accepted 0.995000 diff +0.000e+00 OK ALLD vs TFT club 1.020000 accepted 1.020000 diff +0.000e+00 cooperate once, then mutual defection OK GRIM vs ALLD club 0.995000 accepted 0.995000 diff +0.000e+00 OK ALLD vs GRIM club 1.020000 accepted 1.020000 diff +0.000e+00 cooperate once, then mutual defection OK HTFT vs ALLD club 0.995000 accepted 0.995000 diff +0.000e+00 OK ALLD vs HTFT club 1.020000 accepted 1.020000 diff +0.000e+00 cooperate once, then mutual defection OK CTFT vs ALLD club 0.995000 accepted 0.995000 diff +0.000e+00 OK ALLD vs CTFT club 1.020000 accepted 1.020000 diff +0.000e+00 cooperate once, then mutual defection OK ALLC vs ALLD club 0.000000 accepted 0.000000 diff +0.000e+00 OK ALLD vs ALLC club 5.000000 accepted 5.000000 diff +0.000e+00 cooperates into a defector on every round OK TF2T vs ALLD club 0.990000 accepted 0.990000 diff +0.000e+00 OK ALLD vs TF2T club 1.040000 accepted 1.040000 diff +0.000e+00 cooperates twice, then mutual defection OK ALT vs TFT club 2.515000 accepted 2.515000 diff +0.000e+00 OK TFT vs ALT club 2.490000 accepted 2.490000 diff +0.000e+00 R on round 1, then ALT takes T on even rounds and S on odd ones OK ALT vs GRIM club 0.535000 accepted 0.535000 diff +0.000e+00 OK GRIM vs ALT club 2.985000 accepted 2.985000 diff +0.000e+00 GRIM is burned on round 2 and takes T on every later ALT cooperation OK ALT vs ALLD club 0.500000 accepted 0.500000 diff +0.000e+00 OK ALLD vs ALT club 3.000000 accepted 3.000000 diff +0.000e+00 ALT cooperates on 100 rounds and defects on 100 OK STFT vs ALLC club 3.010000 accepted 3.010000 diff +0.000e+00 OK ALLC vs STFT club 2.985000 accepted 2.985000 diff +0.000e+00 one free defection, then STFT echoes cooperation forever OK PROBER vs ALLC club 4.980000 accepted 4.980000 diff +0.000e+00 OK ALLC vs PROBER club 0.030000 accepted 0.030000 diff +0.000e+00 probe, find a pushover, then exploit it for the rest of the match 50 of 50 analytic pairwise payoffs reproduced exactly. ============================================================================== THE NOISELESS ROUND ROBIN ============================================================================== 400 repetitions of the full round robin at noise 0 in 15.4 s FULL PAYOFF MATRIX AT NOISE 0. Mean per-round payoff to the ROW strategy against the COLUMN strategy, averaged over 400 repetitions. The diagonal is the twin match. SCORE is the row mean, which is the tournament score. ALLC ALLD RAND TFT GTFT TF2T STFT GRIM PAVLOV CTFT JOSS TESTER ALT HTFT PROBER SCORE ALLC 3.000 0.000 1.500 3.000 3.000 3.000 2.985 3.000 3.000 3.000 2.709 1.500 1.500 3.000 0.030 2.2816 ALLD 5.000 1.000 3.007 1.020 2.352 1.040 1.000 1.020 3.000 1.020 1.018 1.020 3.000 1.020 1.040 1.7705 RAND 4.000 0.498 2.248 2.257 2.843 3.126 2.242 0.538 2.257 2.256 2.087 2.249 2.251 0.964 1.876 2.1128 TFT 3.000 0.995 2.244 3.000 3.000 3.000 2.500 3.000 3.000 3.000 1.215 2.995 2.490 3.000 2.995 2.6289 GTFT 3.000 0.662 1.995 3.000 3.000 3.000 2.974 3.000 3.000 3.000 2.558 2.987 2.162 3.000 2.262 2.6400 TF2T 3.000 0.990 1.869 3.000 3.000 3.000 2.985 3.000 3.000 3.000 2.570 1.500 1.500 3.000 1.005 2.4279 STFT 3.010 1.000 2.255 2.500 2.999 3.010 1.000 1.015 2.005 2.500 1.140 2.505 2.500 1.015 3.000 2.0969 GRIM 3.000 0.995 2.974 3.000 3.000 3.000 1.015 3.000 3.000 3.000 1.102 1.035 2.985 3.000 1.035 2.3427 PAVLOV 3.000 0.500 2.250 3.000 3.000 3.000 2.005 3.000 3.000 3.000 1.946 2.005 2.250 3.000 2.005 2.4641 CTFT 3.000 0.995 2.243 3.000 3.000 3.000 2.500 3.000 3.000 3.000 1.222 2.995 2.490 3.000 2.995 2.6293 JOSS 3.194 0.996 2.327 1.240 2.962 3.018 1.140 1.105 2.120 1.247 1.118 1.254 2.541 1.107 1.269 1.7757 TESTER 4.000 0.995 2.246 2.995 3.001 4.000 2.480 1.010 2.005 2.995 1.229 2.990 2.490 1.010 1.015 2.2974 ALT 4.000 0.500 2.246 2.515 3.007 4.000 2.500 0.535 2.250 2.515 2.312 2.515 2.000 0.535 2.515 2.2629 HTFT 3.000 0.995 2.800 3.000 3.000 3.000 1.015 3.000 3.000 3.000 1.104 1.035 2.985 3.000 1.035 2.3313 PROBER 4.980 0.990 2.417 2.995 2.792 1.080 2.975 1.010 2.005 2.995 1.241 1.040 2.490 1.010 1.020 2.0693 NOISELESS LEADERBOARD rank key strategy score SE 1 GTFT generous tit for tat 2.63999 0.00360 2 CTFT contrite tit for tat 2.62932 0.00065 3 TFT tit for tat 2.62890 0.00061 4 PAVLOV Pavlov (win-stay lose-shift) 2.46409 0.00054 5 TF2T tit for two tats 2.42790 0.00128 6 GRIM grim trigger 2.34273 0.00054 7 HTFT hard tit for tat 2.33127 0.00050 8 TESTER Tester 2.29735 0.00064 9 ALLC always cooperate 2.28156 0.00041 10 ALT alternator 2.26294 0.00055 11 RAND random 2.11282 0.00260 12 STFT suspicious tit for tat 2.09693 0.00054 13 PROBER Prober 2.06933 0.00168 14 JOSS Joss (sneaky tit for tat) 1.77575 0.00219 15 ALLD always defect 1.77046 0.00067 winner at noise 0 : GTFT (generous tit for tat), score 2.63999 tit for tat : rank 3 of 15, score 2.62890 The repetitions are paired: in repetition r every strategy met the same field. So the sharp test of 'does tit for tat win or tie' is a paired difference, not two separate error bars. Top three against TFT: strategy gap/round paired SE t verdict GTFT 0.01109 0.00365 3.04 ahead of TFT CTFT 0.00042 0.00090 0.47 tied with TFT PAVLOV -0.16480 0.00083 -197.43 behind TFT DISAGREEMENT WITH THE PUBLISHED OUTCOME, REPORTED AS FOUND. Tit for tat does not take first place in this field. It trails GTFT by 0.01109 per round, which is 3.0 standard errors unpaired (SE 0.00365) and 3.0 standard errors paired (SE 0.00365). The disagreement is real and it survives more replication; it is not Monte Carlo scatter. A round robin score is a property of the field as much as of the strategy, and our field is not Axelrod's. The leave-one-out table below identifies exactly which entrant is responsible. ============================================================================== LEAVE ONE OUT: WHICH ENTRANT COSTS TIT FOR TAT THE CROWN? ============================================================================== Drop one strategy from the field, rerun the noiseless round robin over the remaining 14, and see who wins. 100 repetitions each. dropped winner TFT score win score TFT rank ALLC CTFT 2.60223 2.60406 2 ALLD GTFT 2.74702 2.78861 3 RAND GTFT 2.65642 2.67660 2 GTFT CTFT 2.60048 2.60389 2 TF2T TFT 2.60309 2.60309 1 STFT CTFT 2.63903 2.63997 2 GRIM GTFT 2.60289 2.61771 2 PAVLOV GTFT 2.60340 2.60569 2 CTFT TFT 2.60285 2.60285 1 JOSS CTFT 2.72977 2.73031 2 TESTER GTFT 2.60472 2.60687 2 ALT GTFT 2.63825 2.65516 3 HTFT GTFT 2.60437 2.60458 2 PROBER GTFT 2.60323 2.66538 3 Tit for tat takes first place as soon as any one of these is removed: TF2T, CTFT ============================================================================== VALIDATION 3. ZERO NOISE MUST BE DETERMINISTIC WHERE IT CAN BE ============================================================================== With noise off, a match between two deterministic strategies contains no randomness at all, so its payoff must be identical in every one of the 400 repetitions. Cells involving a coin (RAND, GTFT, JOSS) must not be. deterministic cells : 144, max spread 0.000e+00 -> PASS cells with a coin : 81, spread from 0.0000 to 2.4100 -> PASS ============================================================================== VALIDATION 4. REPLICATOR DYNAMICS CONSERVE TOTAL FREQUENCY ============================================================================== noise 0 run: 4000 generations, max |sum(x) - 1| = 4.441e-16 Frequencies are never renormalised, so this is the arithmetic of x_i <- x_i f_i / phi checking itself. Machine epsilon is 2.220e-16. ============================================================================== THE NOISE SWEEP: ROUND ROBIN AT EVERY NOISE LEVEL ============================================================================== Every level below is a fresh set of 400 full round robins with its own independent random stream spawned from the master seed. noise 0.000 ( 0.0 s) winner GTFT 2.63999 +/- 0.00360 top five : GTFT 2.6400, CTFT 2.6293, TFT 2.6289, PAVLOV 2.4641, TF2T 2.4279 ranks : TFT 3, CTFT 2, GTFT 1, PAVLOV 4, GRIM 6, TF2T 5 noise 0.001 ( 16.4 s) winner GTFT 2.59856 +/- 0.00439 top five : GTFT 2.5986, CTFT 2.5597, TFT 2.5395, PAVLOV 2.4139, TF2T 2.4014 ranks : TFT 3, CTFT 2, GTFT 1, PAVLOV 4, GRIM 9, TF2T 5 noise 0.002 ( 17.3 s) winner GTFT 2.56557 +/- 0.00465 top five : GTFT 2.5656, CTFT 2.5099, TFT 2.4839, PAVLOV 2.3736, TF2T 2.3691 ranks : TFT 3, CTFT 2, GTFT 1, PAVLOV 4, GRIM 9, TF2T 5 noise 0.005 ( 18.5 s) winner GTFT 2.48761 +/- 0.00497 top five : GTFT 2.4876, CTFT 2.4099, TFT 2.3543, TF2T 2.3267, PAVLOV 2.2876 ranks : TFT 3, CTFT 2, GTFT 1, PAVLOV 5, GRIM 11, TF2T 4 noise 0.010 ( 18.3 s) winner GTFT 2.41141 +/- 0.00431 top five : GTFT 2.4114, CTFT 2.3446, TF2T 2.2889, TFT 2.2634, ALT 2.2589 ranks : TFT 4, CTFT 2, GTFT 1, PAVLOV 6, GRIM 12, TF2T 3 noise 0.020 ( 18.9 s) winner GTFT 2.33255 +/- 0.00410 top five : GTFT 2.3326, CTFT 2.3021, ALT 2.2528, TF2T 2.2335, TFT 2.2180 ranks : TFT 5, CTFT 2, GTFT 1, PAVLOV 6, GRIM 13, TF2T 4 noise 0.050 ( 20.4 s) winner CTFT 2.26490 +/- 0.00242 top five : CTFT 2.2649, GTFT 2.2494, ALT 2.2412, TF2T 2.1876, TFT 2.1870 ranks : TFT 5, CTFT 1, GTFT 2, PAVLOV 7, GRIM 13, TF2T 4 noise 0.100 ( 21.3 s) winner CTFT 2.23757 +/- 0.00216 top five : CTFT 2.2376, ALT 2.2222, GTFT 2.1917, TFT 2.1910, STFT 2.1827 ranks : TFT 4, CTFT 1, GTFT 3, PAVLOV 8, GRIM 12, TF2T 7 noise 0.150 ( 18.4 s) winner CTFT 2.21574 +/- 0.00194 top five : CTFT 2.2157, ALT 2.2152, STFT 2.1952, TFT 2.1951, JOSS 2.1890 ranks : TFT 4, CTFT 1, GTFT 10, PAVLOV 11, GRIM 7, TF2T 14 noise 0.200 ( 15.1 s) winner ALLD 2.25965 +/- 0.00147 top five : ALLD 2.2596, GRIM 2.2539, HTFT 2.2159, ALT 2.2109, JOSS 2.2059 ranks : TFT 6, CTFT 9, GTFT 13, PAVLOV 12, GRIM 2, TF2T 14 ============================================================================== VALIDATION 5. TWO TIT-FOR-TATS AGAINST AN EXACT MARKOV CHAIN ============================================================================== The twin match between two tit-for-tats under noise can be solved exactly as a four-state Markov chain on the pair of moves actually played, with the same 200-round horizon and the same starting condition. That value is computed in tft_pair_exact() without simulating anything, and compared with the simulated diagonal cell. noise club exact diff sigmas 0.000 3.000000 3.000000 +0.000e+00 0.00 0.001 2.901950 2.901541 +4.095e-04 0.04 0.002 2.808050 2.812426 -4.376e-03 -0.31 0.005 2.592894 2.618221 -2.533e-02 -1.21 0.010 2.424363 2.460385 -3.602e-02 -1.84 0.020 2.367769 2.355272 +1.250e-02 0.83 0.050 2.288281 2.289671 -1.390e-03 -0.13 0.100 2.276762 2.267778 +8.985e-03 1.13 0.150 2.259525 2.260466 -9.407e-04 -0.16 0.200 2.261269 2.256797 +4.472e-03 0.91 largest disagreement: 1.84 standard errors. With 10 comparisons, the largest of that many standard normals is expected near 2.0, so this is the result we wanted. -> PASS ============================================================================== WHERE TIT FOR TAT LOSES THE CROWN ============================================================================== noise winner winner name win score TFT score TFT rank 0.000 GTFT generous tit for tat 2.63999 2.62890 3 0.001 GTFT generous tit for tat 2.59856 2.53945 3 0.002 GTFT generous tit for tat 2.56557 2.48394 3 0.005 GTFT generous tit for tat 2.48761 2.35432 3 0.010 GTFT generous tit for tat 2.41141 2.26342 4 0.020 GTFT generous tit for tat 2.33255 2.21804 5 0.050 CTFT contrite tit for tat 2.26490 2.18705 5 0.100 CTFT contrite tit for tat 2.23757 2.19102 4 0.150 CTFT contrite tit for tat 2.21574 2.19507 4 0.200 ALLD always defect 2.25965 2.20276 6 Tit for tat is not in first place at any noise level tested, zero included. Its best placing is rank 3. ============================================================================== SIGNIFICANCE OF THE HEADLINE UPSET ============================================================================== At noise 0.050 the leader is CTFT at 2.26490 +/- 0.00242. Tit for tat scores 2.18705 +/- 0.00219. Difference 0.07785, unpaired SE 0.00326, that is 23.9 standard errors. The repetitions are paired: leader and tit for tat met the same field in the same repetition. Paired difference 0.07785 +/- 0.00323, t = 24.1 on 399 df. ============================================================================== CONVERGENCE OF THE MONTE CARLO ESTIMATE ============================================================================== Running mean of the tournament score as repetitions accumulate, at noise 0.050, for the four strategies that finish highest. The standard error at each repetition count is printed beside it. reps CTFT mean+/-SE GTFT mean+/-SE ALT mean+/-SE TF2T mean+/-SE 1 2.2573+/-nan 2.3122+/-nan 2.2175+/-nan 2.2878+/-nan 2 2.2547+/-0.0027 2.2812+/-0.0309 2.2199+/-0.0024 2.2598+/-0.0281 5 2.2621+/-0.0104 2.2588+/-0.0244 2.2367+/-0.0103 2.2522+/-0.0327 10 2.2725+/-0.0091 2.2519+/-0.0200 2.2178+/-0.0177 2.2509+/-0.0181 20 2.2790+/-0.0063 2.2700+/-0.0137 2.2274+/-0.0113 2.2256+/-0.0130 50 2.2661+/-0.0062 2.2548+/-0.0091 2.2335+/-0.0055 2.1968+/-0.0072 100 2.2705+/-0.0045 2.2577+/-0.0062 2.2371+/-0.0033 2.1953+/-0.0050 150 2.2656+/-0.0039 2.2542+/-0.0053 2.2400+/-0.0025 2.1904+/-0.0040 400 2.2649+/-0.0024 2.2494+/-0.0033 2.2412+/-0.0015 2.1876+/-0.0023 Half-width of the leader's 95% interval at 400 repetitions: 0.00474 per round. The gap it has to resolve is 0.07785, larger by a factor of 16.4. ============================================================================== EVOLUTIONARY TOURNAMENT: REPLICATOR DYNAMICS AT EVERY NOISE LEVEL ============================================================================== Uniform start, 4000 generations, no mutation. A strategy is called extinct below frequency 1e-04. Average payoff is the population mean phi at the last generation. noise 0.000 dominant CTFT 0.2252 survivors 8 avg payoff 3.0000 CTFT 0.2252, TFT 0.2251, GTFT 0.2082, PAVLOV 0.1040, TF2T 0.0695, GRIM 0.0604 noise 0.001 dominant CTFT 0.7347 survivors 3 avg payoff 2.9970 CTFT 0.7347, GTFT 0.2649, TF2T 0.0003 noise 0.002 dominant CTFT 0.9623 survivors 3 avg payoff 2.9960 CTFT 0.9623, GTFT 0.0373, TF2T 0.0003 noise 0.005 dominant CTFT 1.0000 survivors 1 avg payoff 2.9900 CTFT 1.0000 noise 0.010 dominant CTFT 1.0000 survivors 1 avg payoff 2.9801 CTFT 1.0000 noise 0.020 dominant CTFT 1.0000 survivors 1 avg payoff 2.9602 CTFT 1.0000 noise 0.050 dominant CTFT 1.0000 survivors 1 avg payoff 2.9024 CTFT 1.0000 noise 0.100 dominant CTFT 1.0000 survivors 1 avg payoff 2.8085 CTFT 1.0000 noise 0.150 dominant CTFT 1.0000 survivors 1 avg payoff 2.7218 CTFT 1.0000 noise 0.200 dominant CTFT 1.0000 survivors 1 avg payoff 2.6421 CTFT 1.0000 VALIDATION 6: max |sum(x) - 1| over every generation of every noise level = 5.551e-16 -> PASS ============================================================================== EVOLUTIONARY FINAL COMPOSITION, FULL TABLE ============================================================================== noise ALLC ALLD RAND TFT GTFT TF2T STFT GRIM PAVLOV CTFT JOSS TESTER ALT HTFT PROBER phi 0.000 0.0493 0.0000 0.0000 0.2251 0.2082 0.0695 0.0000 0.0604 0.1040 0.2252 0.0000 0.0000 0.0000 0.0584 0.0000 3.0000 0.001 0.0001 0.0000 0.0000 0.0000 0.2649 0.0003 0.0000 0.0000 0.0000 0.7347 0.0000 0.0000 0.0000 0.0000 0.0000 2.9970 0.002 0.0001 0.0000 0.0000 0.0000 0.0373 0.0003 0.0000 0.0000 0.0000 0.9623 0.0000 0.0000 0.0000 0.0000 0.0000 2.9960 0.005 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.9900 0.010 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.9801 0.020 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.9602 0.050 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.9024 0.100 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.8085 0.150 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.7218 0.200 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 2.6421 ============================================================================== HOW LONG THE EVOLUTIONARY RUN TAKES TO SETTLE ============================================================================== Generation at which the eventual dominant strategy first passes 50 per cent and 90 per cent of the population. noise dominant gen>50% gen>90% 0.000 CTFT never never 0.001 CTFT 2373 never 0.002 CTFT 1371 3246 0.005 CTFT 565 1294 0.010 CTFT 219 601 0.020 CTFT 97 303 0.050 CTFT 62 147 0.100 CTFT 63 116 0.150 CTFT 79 129 0.200 CTFT 126 191 ============================================================================== SENSITIVITY 1. FIELD COMPOSITION ============================================================================== A round robin score depends entirely on who was entered. Four fields, each a defensible modelling choice, run at noise 0 and 0.05 with 100 repetitions. full field (15 strategies) noise 0.00 winner GTFT 2.63313 TFT rank 2/15 (2.63027) full field (15 strategies) noise 0.05 winner CTFT 2.27483 TFT rank 4/15 (2.19551) drop the exploiters: JOSS, TESTER, PROBER, STFT noise 0.00 winner GRIM 2.81323 TFT rank 4/11 (2.70260) drop the exploiters: JOSS, TESTER, PROBER, STFT noise 0.05 winner CTFT 2.24582 TFT rank 2/11 (2.20354) drop the free lunch: ALLC, ALT, RAND noise 0.00 winner GTFT 2.70165 TFT rank 2/12 (2.64316) drop the free lunch: ALLC, ALT, RAND noise 0.05 winner GTFT 2.22328 TFT rank 4/12 (2.08679) nice strategies only noise 0.00 winner ALLC 3.00000 TFT rank 2/8 (3.00000) EXACT 8-WAY TIE AT THE TOP nice strategies only noise 0.05 winner CTFT 2.37989 TFT rank 5/8 (2.31130) ============================================================================== SENSITIVITY 2. SCORING THE TWIN MATCH OR NOT ============================================================================== Axelrod scored every entrant against its own twin. Dropping the twin changes who wins, because the strategies that do best against themselves are exactly the nice ones. noise 0.00 with twin : winner GTFT, TFT rank 3 no twin : winner GTFT, TFT rank 3 noise 0.05 with twin : winner CTFT, TFT rank 4 no twin : winner ALT, TFT rank 4 ============================================================================== SENSITIVITY 3. HOW GENEROUS SHOULD GENEROUS TIT FOR TAT BE? ============================================================================== Molander (1985) derived an optimal forgiveness level for generous tit for tat under noise, q* = min{ 1 - (T-R)/(R-S), (R-P)/(T-P) } = min{ 1 - 2.0/3.0, 2.0/4.0 } = min{0.3333, 0.5000} = 0.3333 for this payoff matrix. That derivation concerns evolutionary stability in a two-strategy setting, not winning a fifteen-way round robin, so agreement here is suggestive rather than a strict test. Scan at noise 0.05, 100 reps. g = 0.0000 GTFT score 2.14656 +/- 0.00512 rank 5/15 g = 0.0500 GTFT score 2.20370 +/- 0.00479 rank 3/15 g = 0.1000 GTFT score 2.23587 +/- 0.00453 rank 2/15 g = 0.1500 GTFT score 2.25110 +/- 0.00538 rank 2/15 g = 0.2000 GTFT score 2.25562 +/- 0.00555 rank 2/15 g = 0.2500 GTFT score 2.25036 +/- 0.00600 rank 2/15 g = 0.3333 GTFT score 2.24630 +/- 0.00686 rank 2/15 g = 0.4000 GTFT score 2.23699 +/- 0.00713 rank 3/15 g = 0.5000 GTFT score 2.23634 +/- 0.00785 rank 3/15 g = 0.6000 GTFT score 2.23149 +/- 0.00816 rank 3/15 g = 0.8000 GTFT score 2.17409 +/- 0.00780 rank 8/15 g = 1.0000 GTFT score 2.06426 +/- 0.00643 rank 14/15 club's scan peaks at g = 0.2000, score 2.25562 +/- 0.00555 Molander's q* = 0.3333, score 2.24630 +/- 0.00686 difference in g = -0.1333 the two scores differ by 0.00933, which is 1.1 standard errors, so the scan cannot separate them. The curve is flat from about 0.15 to 0.5 and Molander's value sits inside that plateau. Full generosity is a disaster. ============================================================================== SENSITIVITY 4. MATCH LENGTH ============================================================================== Every strategy that exploits an opening does so once, so its advantage is spread over the match length. Shorter matches favour the exploiters. rounds 20 winner CTFT 2.69260 TFT rank 2 (2.68053) lead over TFT +0.01207, t = 2.10 rounds 50 winner TFT 2.65997 TFT rank 1 (2.65997) lead over TFT +0.00000, t = 0.00 rounds 200 winner GTFT 2.63287 TFT rank 2 (2.63029) lead over TFT +0.00258, t = 0.35 rounds 500 winner GTFT 2.63414 TFT rank 2 (2.62200) lead over TFT +0.01214, t = 1.59 ============================================================================== COMPARISON WITH THE PUBLISHED LITERATURE ============================================================================== Axelrod (1980) tournament 1: 14 entries plus RANDOM, 200 rounds, the same payoff numbers. TIT FOR TAT won with a reported average of 504.5 points per match, which on a 200-round match is 2.5225 per round. club's TFT at noise 0 : 2.6289 per round against our field difference : +0.1064 per round The two numbers are NOT measuring the same thing. Axelrod's average is over his entrants and ours is over ours. We print the comparison because it is the number readers will look for, and we say plainly that it is a different quantity and not a reproduction. Structural results that CAN be checked against published work: mutual cooperation among nice strategies at noise 0 pays exactly R = 3 club: TFT/TFT 3.000000, GRIM/GRIM 3.000000, CTFT/CTFT 3.000000, PAVLOV/PAVLOV 3.000000 Nowak and Sigmund (1992, 1993) and Wu and Axelrod (1995) report that under noise, forgiveness and contrition beat strict reciprocity: noise 0.00 TFT 2.6289 GTFT 2.6400 CTFT 2.6293 PAVLOV 2.4641 TF2T 2.4279 noise 0.01 TFT 2.2634 GTFT 2.4114 CTFT 2.3446 PAVLOV 2.2223 TF2T 2.2889 noise 0.05 TFT 2.1870 GTFT 2.2494 CTFT 2.2649 PAVLOV 2.1550 TF2T 2.1876 noise 0.20 TFT 2.2028 GTFT 2.1492 CTFT 2.1959 PAVLOV 2.1767 TF2T 2.1201 the cost of noise to a pair of tit-for-tats, from the exact chain: noise 0.000 exact twin payoff 3.0000, a loss of 0.0000 per round from R=3 noise 0.001 exact twin payoff 2.9015, a loss of 0.0985 per round from R=3 noise 0.002 exact twin payoff 2.8124, a loss of 0.1876 per round from R=3 noise 0.005 exact twin payoff 2.6182, a loss of 0.3818 per round from R=3 noise 0.010 exact twin payoff 2.4604, a loss of 0.5396 per round from R=3 noise 0.020 exact twin payoff 2.3553, a loss of 0.6447 per round from R=3 noise 0.050 exact twin payoff 2.2897, a loss of 0.7103 per round from R=3 noise 0.100 exact twin payoff 2.2678, a loss of 0.7322 per round from R=3 noise 0.150 exact twin payoff 2.2605, a loss of 0.7395 per round from R=3 noise 0.200 exact twin payoff 2.2568, a loss of 0.7432 per round from R=3 ============================================================================== SUMMARY ============================================================================== every validation passed : YES noiseless winner : GTFT (generous tit for tat), 2.63999 tit for tat at noise 0 : rank 3, 2.62890 winner at noise 0.05 : CTFT (contrite tit for tat), 2.26490 winner at noise 0.20 : ALLD (always defect), 2.25965 evolutionary dominant at noise 0.00 : CTFT 0.2252, avg payoff 3.0000 evolutionary dominant at noise 0.05 : CTFT 1.0000, avg payoff 2.9024 evolutionary dominant at noise 0.20 : CTFT 1.0000, avg payoff 2.6421 average payoff, noise 0 -> 0.20 : 3.0000 -> 2.6421 (11.9% of it lost) total runtime : 289.1 s figure data written to C:/Users/BCheng/AppData/Local/Temp/claude/C--Users-BCheng--vscode-projects-scijournal/7e0758c3-8bb4-41d6-bfb5-04cf072c34ca/scratchpad/ct2.json