Files
SirStone da4a971ca9 MELEE A/B: BitBrain vs shipped Pattern rack — repo's first melee measurement (null)
Adds common_libs/tests/measure_melee_bitbrain_ab.nim (+ .sh driver, .py analyzer,
committed per-run fixtures) and docs/melee_bitbrain_ab.md.

Experiment: 4-bot Free-For-All (ModularBot + WaveSurfer + PatternMover +
RandomMover), 4 arms x 16 runs x 7 rounds, frozen ModularBot from git archive
HEAD (commit 0f5cfe3, binary 11bba27), shipped tfil movement in every run.
Arms differ only in the gun rack: pattern (shipped), bb_round, bb_ret, bb_learn.

Result: NOT DETECTABLE. Score (server round score = damage + survival bonus)
differs by -63..+33 pts (perm p=0.16-0.71) against an MDE of 151 (~5.1%).
Every arm finishes rank 1. Round wins hint BitBrain's way (112/112 and 111/112
vs 109/112) but p=0.225 (MW 0.080), half the 0.40-win MDE.

Liveness proven: rack boot lines flip (rack active melee = PATTERN / BITBRAIN),
every run faced 3 distinct targets and ~66-69 target changes, and the bb arms
logged one [bb-reset] reason=target_change per switch. The melee premise was
exercised; the fast adaptation bought no measurable score edge at this sample.
2026-09-26 00:35:44 +02:00

665 lines
6.1 KiB
JSON

{
"reference": "pattern",
"arms": {
"bb_learn": {
"n": 16,
"wins": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"rounds": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"score": [
2883,
2757,
2906,
3145,
2911,
3068,
2758,
2715,
3107,
2848,
3190,
2912,
2859,
3092,
2907,
3066
],
"survival": [
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050
],
"mean_rank": [
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0
],
"rack_melee": [
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN"
],
"target_changes": [
63,
68,
68,
72,
80,
55,
58,
77,
78,
72,
66,
62,
62,
64,
60,
63
],
"distinct_targets": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3
],
"bb_reset": [
63,
68,
68,
72,
80,
55,
58,
77,
78,
72,
66,
62,
62,
64,
60,
63
]
},
"bb_ret": {
"n": 16,
"wins": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"rounds": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"score": [
2891,
2770,
2792,
2934,
2943,
2890,
2817,
2999,
2994,
2913,
2920,
2890,
3011,
2945,
2943,
2802
],
"survival": [
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1000,
1050,
1050,
1050,
1050
],
"mean_rank": [
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0
],
"rack_melee": [
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN"
],
"target_changes": [
60,
67,
73,
54,
63,
70,
83,
65,
73,
71,
55,
82,
74,
84,
56,
59
],
"distinct_targets": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3
],
"bb_reset": [
62,
67,
73,
54,
63,
70,
83,
65,
73,
71,
55,
82,
74,
84,
56,
59
]
},
"bb_round": {
"n": 16,
"wins": [
7,
6,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"rounds": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"score": [
3040,
2944,
3125,
3110,
3037,
2993,
2985,
2842,
2835,
3045,
3180,
2952,
3126,
2927,
3021,
2804
],
"survival": [
1050,
900,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
1050,
950
],
"mean_rank": [
1.0,
1.1429,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0
],
"rack_melee": [
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN",
"BITBRAIN"
],
"target_changes": [
62,
60,
81,
62,
69,
61,
73,
70,
67,
63,
66,
70,
71,
75,
83,
67
],
"distinct_targets": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3
],
"bb_reset": [
62,
60,
81,
62,
69,
61,
73,
70,
67,
63,
66,
70,
71,
75,
83,
67
]
},
"pattern": {
"n": 16,
"wins": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
6,
7,
6,
7,
6,
7,
7
],
"rounds": [
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7,
7
],
"score": [
3082,
2795,
2897,
2915,
3176,
2922,
2860,
2878,
3261,
2957,
3106,
2869,
3194,
2728,
2869,
2931
],
"survival": [
1050,
1050,
1050,
1050,
1050,
950,
1050,
1050,
1050,
1000,
1050,
1050,
1050,
900,
1050,
1050
],
"mean_rank": [
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0
],
"rack_melee": [
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN",
"PATTERN"
],
"target_changes": [
66,
56,
73,
77,
53,
67,
67,
69,
79,
67,
51,
51,
67,
64,
81,
75
],
"distinct_targets": [
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3
],
"bb_reset": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
}
}
}