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
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
====================================================================================================
|
||||
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).
|
||||
Reference in New Issue
Block a user