67 lines
4.4 KiB
Plaintext
67 lines
4.4 KiB
Plaintext
# ─────────────────────────────────────────────────────────────────────────────
|
|
# arms_gun_b1.txt — BATCH 1 of the GUN campaign: does ANY rack gun or gun
|
|
# configuration beat the shipped `Pattern` across the frozen panel?
|
|
#
|
|
# Format: name | ENV=value ENV=value | label
|
|
#
|
|
# ONE frozen binary (tournament_run.sh builds it from `git archive HEAD`); every
|
|
# arm below differs ONLY by its env dict. No per-arm rebuild.
|
|
#
|
|
# MOVEMENT IS PINNED IN EVERY ARM (`TR_MOVEMENT=strafe`). Reason (hard rule):
|
|
# a parallel job (j120) is shipping a movement-default flip during this run, so
|
|
# the default engine may change underneath us. Pinning the engine in EVERY arm
|
|
# removes movement as a confound, makes all arms share one movement, and keeps
|
|
# the comparison a pure GUN comparison. Because every arm declares TR_MOVEMENT,
|
|
# the analyzer's liveness rule (a token must appear verbatim in the bot's own
|
|
# raw-env report) is also satisfied for every arm.
|
|
#
|
|
# Prior data this batch is built on (taken as given; NOT re-derived):
|
|
# * shipped rack = `onlyPattern` (Pattern id 5, all others off); chosen
|
|
# because the selector measured NEGATIVE value at every rack size tested
|
|
# (docs/selector_negative_value.md, docs/gun_rack_analysis.md).
|
|
# * per-gun single-gun hit rate vs DrussGT: Pattern ~10.8%, KNN 5.6%,
|
|
# Linear 3.0%, Circular 2.9%, WallBounce 2.7%, GF 2.1%.
|
|
# * BitBrain == Pattern when idle (30 runs/arm 97/210 vs 97/210 wins) and is
|
|
# NEUTRAL across 32 legacy opponents (-3.6 dmg/run, docs/gauntlet_bitbrain_vs_pattern.md).
|
|
# Its learned-gain config was worse on DrussGT ONLY.
|
|
# * lead AMPLITUDE is a dead axis (full gain sweep run, nothing beats Pattern);
|
|
# lead INFORMATION is the open one.
|
|
#
|
|
# The question this batch answers: is `onlyPattern` CONFIRMED across 15 opponents
|
|
# (rather than merely assumed from a DrussGT-heavy history), or does some gun /
|
|
# small rack beat it on damage-per-run AND round wins?
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
|
|
# 1. REFERENCE. The shipped `onlyPattern` rack, movement pinned. No gun env at
|
|
# all, so this is what the shipped bot's gun does.
|
|
pattern | TR_MOVEMENT=strafe | shipped onlyPattern rack (REFERENCE)
|
|
|
|
# 2. BitBrain-only rack: the learned-gain corrector on Pattern's lead. This is
|
|
# the exact config the owner most likely ran (gains 1.0..2.0, decay memory);
|
|
# the 32-opponent gauntlet had it as a wash, so this is a PANEL replication at
|
|
# the new (movement-pinned) standard. BitBrain computes Pattern's prediction
|
|
# internally, so Pattern does not need to be in the rack.
|
|
bitbrain | TR_MOVEMENT=strafe TR_RACK_PATTERN=off TR_RACK_BITBRAIN=both TR_BITBRAIN_GAINS=1.0,1.25,1.5,2.0 TR_BITBRAIN_MEM=decay | BitBrain-only, learned gain (gains 1.0..2.0, decay)
|
|
|
|
# 3. TMHorizon-only rack: the horizon Tsetlin corrector on Pattern's lead. Its
|
|
# own design docs PREDICT it loses (needs ~80% side accuracy to break even;
|
|
# achievable ~60%). Never measured across the panel. This arm closes that.
|
|
tmhorizon | TR_MOVEMENT=strafe TR_RACK_PATTERN=off TR_RACK_TMHORIZON=both | TMHorizon-only rack
|
|
|
|
# 4. KNN-only rack: the best non-Pattern single gun by the old DrussGT hit-rate
|
|
# table (5.6% vs Pattern 10.8%) and NEVER measured across the panel. Included
|
|
# to close "the second-best single gun was never panel-tested".
|
|
knn | TR_MOVEMENT=strafe TR_RACK_PATTERN=off TR_RACK_KNN=both | KNN-only rack
|
|
|
|
# 5. TWO-GUN RACK, SELECTOR ON: Pattern (default both) + KNN. The selector was
|
|
# measured NEGATIVE with 16 guns and a rolling hit-rate; this re-tests it at
|
|
# a SMALL rack under the new panel standard, because the movement campaign
|
|
# overturned two earlier single-opponent conclusions. If KNN ever wins a
|
|
# matchup, the selector can hedge into it.
|
|
rack_pk | TR_MOVEMENT=strafe TR_RACK_KNN=both | Pattern + KNN, selector ON
|
|
|
|
# 6. TWO-GUN RACK, SELECTOR ON: Pattern (default both) + TMHorizon. Same
|
|
# selector question against a CORRECTOR family (TMHorizon = Pattern +/- a
|
|
# learned few-degree shift) instead of a different-family gun (KNN).
|
|
rack_pt | TR_MOVEMENT=strafe TR_RACK_TMHORIZON=both | Pattern + TMHorizon, selector ON
|