Files
SirStone 1ed7797cb6 feat(ModularBot): 6 guns, pattern matcher, melee modules, adversarial bots
- New guns: guess-factor (GF histogram), pattern-matcher (movement tape replay)
- New modules: minimum-risk melee movement, spinning melee radar
- New test bots: PatternMover, RandomMover, WaveSurfer
- Fixed: FeedbackEvent now carries actualX/actualY for proper GF learning
- Fixed: TM gun warmup gating + directional residuals
- Fixed: circular gun integrated formula + multi-bin omega cache
- Fixed: oscillator wall-bounce lockout
- Fixed: phantom meteor perpendicular body orientation
- 6/6 battle wins across all enemy types
2026-09-20 00:59:53 +02:00

94 lines
7.5 KiB
Plaintext

====================================================================================================
TSETLIN MACHINE HYPERPARAMETER SWEEP RESULTS
Data: 2500 rows | Pre-captured: 26 | Run: 31 | Zoom time: 151.7s
Baseline (linear extrapolation): MAE = 12.24
Note: 200/500-clause pre-captured (pure Python: ~15-40s/config). Zoom capped at clauses≤100.
====================================================================================================
# Clauses T s States W MAE(all) MAE(last⅓) Curve Mem(KB) vs baseline time
----------------------------------------------------------------------------------------------------
BASELINE 12.24 0.00
----------------------------------------------------------------------------------------------------
1 500 50 1.5 32 Y 2.84 0.27 +6.10 531.2 -9.40 *** (pre)
2 100 100 1.5 32 Y 3.28 0.20 +7.08 106.2 -8.96 *** 9.5s
3 100 100 1.5 64 Y 3.45 0.15 +7.50 106.2 -8.79 *** (pre)
4 100 200 1.5 64 Y 3.45 0.15 +7.53 106.2 -8.79 *** 9.6s
5 100 50 1.5 64 Y 3.45 0.15 +7.53 106.2 -8.79 *** 9.4s
6 200 25 1.5 128 Y 3.54 0.17 +7.70 212.5 -8.70 *** (pre)
7 200 50 3.0 64 Y 3.63 0.21 +8.00 212.5 -8.61 *** (pre)
8 200 25 1.5 256 Y 3.63 0.11 +8.00 212.5 -8.61 *** (pre)
9 100 100 1.5 128 Y 3.68 0.16 +8.03 106.2 -8.56 *** 9.4s
10 50 100 1.5 64 Y 3.70 0.20 +8.00 53.1 -8.54 *** 4.7s
11 50 50 1.5 64 Y 3.70 0.20 +8.00 53.1 -8.54 *** 4.7s
12 100 50 3.0 256 Y 3.73 0.12 +8.32 106.2 -8.51 *** 6.4s
13 100 50 3.0 32 Y 3.73 0.46 +7.77 106.2 -8.51 *** 6.8s
14 10 50 3.0 64 Y 3.74 0.13 +8.43 10.6 -8.50 *** 0.9s
15 100 50 3.0 128 Y 3.75 0.14 +8.26 106.2 -8.49 *** 6.5s
16 50 50 3.0 128 Y 3.77 0.19 +8.30 53.1 -8.47 *** 3.3s
17 20 50 3.0 64 Y 3.79 0.20 +8.24 21.2 -8.45 *** 1.6s
18 100 50 3.0 64 Y 3.82 0.21 +8.30 106.2 -8.42 *** (pre)
19 100 100 3.0 64 Y 3.82 0.21 +8.28 106.2 -8.42 *** 6.8s
20 100 25 3.0 64 Y 3.82 0.21 +8.28 106.2 -8.42 *** 6.8s
21 10 50 5.0 64 N 3.82 0.16 +8.45 10.6 -8.42 *** 0.8s
22 10 50 3.0 128 N 3.83 0.21 +8.32 10.6 -8.41 *** 0.9s
23 50 50 3.0 32 Y 3.83 0.36 +8.07 53.1 -8.41 *** 3.4s
24 50 50 5.0 64 Y 3.84 0.22 +8.49 53.1 -8.40 *** 2.6s
25 10 25 3.0 64 N 3.85 0.18 +8.36 10.6 -8.39 *** 0.9s
26 10 100 3.0 64 N 3.85 0.18 +8.36 10.6 -8.39 *** 0.9s
27 10 50 3.0 64 N 3.85 0.18 +8.40 10.6 -8.39 *** (pre)
28 100 50 5.0 64 Y 3.85 0.25 +8.49 106.2 -8.39 *** 5.1s
29 50 50 3.0 256 N 3.86 0.20 +8.39 53.1 -8.38 *** 3.4s
30 50 50 3.0 64 Y 3.88 0.23 +8.40 53.1 -8.36 *** (pre)
31 50 100 3.0 64 Y 3.88 0.23 +8.35 53.1 -8.36 *** 3.5s
32 50 25 3.0 64 Y 3.88 0.23 +8.35 53.1 -8.36 *** 3.5s
33 500 25 5.0 128 Y 3.93 0.21 +8.90 531.2 -8.31 *** (pre)
34 100 25 3.0 256 N 3.98 0.34 +8.42 106.2 -8.26 *** 6.7s
35 100 100 3.0 256 N 3.98 0.34 +8.42 106.2 -8.26 *** 6.6s
36 100 50 3.0 256 N 3.98 0.34 +8.40 106.2 -8.26 *** (pre)
37 100 50 5.0 256 N 3.99 0.48 +8.29 106.2 -8.25 *** 4.9s
38 10 50 1.5 64 N 4.03 0.52 +8.11 10.6 -8.21 *** 1.3s
39 20 50 3.0 64 N 4.04 0.29 +8.90 21.2 -8.20 *** (pre)
40 100 50 1.5 256 N 4.11 0.42 +8.37 106.2 -8.13 *** 9.7s
41 50 50 3.0 64 N 4.22 0.37 +8.90 53.1 -8.02 *** (pre)
42 100 50 3.0 128 N 4.30 0.47 +8.90 106.2 -7.94 *** (pre)
43 10 50 3.0 32 N 4.36 0.81 +8.27 10.6 -7.88 *** 1.0s
44 100 50 1.5 64 N 4.48 0.77 +8.50 106.2 -7.76 *** (pre)
45 100 100 1.5 64 N 4.48 0.77 +8.54 106.2 -7.76 *** 10.2s
46 100 50 3.0 64 N 4.50 0.62 +9.50 106.2 -7.74 *** (pre)
47 100 25 3.0 64 N 4.50 0.62 +9.50 106.2 -7.74 *** (pre)
48 100 100 3.0 64 N 4.50 0.62 +9.50 106.2 -7.74 *** (pre)
49 100 200 3.0 64 N 4.50 0.62 +9.50 106.2 -7.74 *** (pre)
50 100 50 5.0 64 N 4.57 0.45 +10.00 106.2 -7.67 *** (pre)
51 100 10 3.0 64 N 4.59 0.58 +9.50 106.2 -7.65 *** (pre)
52 200 50 3.0 64 N 4.72 0.69 +9.90 212.5 -7.52 *** (pre)
53 100 50 3.0 32 N 4.90 0.90 +10.10 106.2 -7.34 *** (pre)
54 100 50 10.0 64 N 5.07 1.22 +9.80 106.2 -7.17 *** (pre)
55 100 50 15.0 64 N 5.16 0.69 +10.80 106.2 -7.08 *** (pre)
56 500 50 3.0 64 N 7.68 0.74 +18.30 531.2 -4.56 *** (pre)
57 500 25 3.0 32 N 8.59 1.51 +18.70 531.2 -3.65 *** (pre)
*** = beats baseline by >0.5 ** = beats baseline
Curve = MAE(first⅓) - MAE(last⅓), positive = converging
Mem = logical TA storage for 2 RTMs at 1 byte/state (uint8)
(pre) = pre-captured from background run, not re-run this session
--- TOP-3 CONFIGS ---
#1: clauses=500 T=50 s=1.5 states=32 weighted=Y
MAE(all)=2.84 MAE(last⅓)=0.27 curve=+6.10 mem=531.2KB
#2: clauses=100 T=100 s=1.5 states=32 weighted=Y
MAE(all)=3.28 MAE(last⅓)=0.20 curve=+7.08 mem=106.2KB
#3: clauses=100 T=100 s=1.5 states=64 weighted=Y
MAE(all)=3.45 MAE(last⅓)=0.15 curve=+7.50 mem=106.2KB
--- KEY FINDINGS ---
1. ALL configs beat the linear baseline (MAE 12.24) — even 10 clauses.
2. Weighted clauses consistently outperform unweighted at same clause count.
3. Lower clause counts (10-50) often match 100-200 clause accuracy — cold-start dominates all-rows MAE.
4. Last-⅓ MAE (warm TM) is nearly 0 across all configs: TM memorises the
small dataset. In a real 1000-tick battle, last-⅓ is the relevant metric.
5. States: higher (256) helps — TAs move more slowly, more stable features.
6. s (specificity): 1.5-3.0 optimal. High s (10-15) = too sparse clauses.
7. T (threshold): nearly no effect — vote clamping is rarely active here.
8. 500-clause weighted s=1.5: best MAE(all)=2.84, but mem=531KB and slow.
Practical recommendation: clauses=100 T=100 s=1.5 weighted=Y (MAE=3.45, mem=106KB).