diff --git a/PPO_Bot/weights/latest/actor_b1.npy b/PPO_Bot/weights/latest/actor_b1.npy index db38cb3..0f1ff04 100644 Binary files a/PPO_Bot/weights/latest/actor_b1.npy and b/PPO_Bot/weights/latest/actor_b1.npy differ diff --git a/PPO_Bot/weights/latest/actor_b2.npy b/PPO_Bot/weights/latest/actor_b2.npy index 4b2cc2f..642cbb4 100644 Binary files a/PPO_Bot/weights/latest/actor_b2.npy and b/PPO_Bot/weights/latest/actor_b2.npy differ diff --git a/PPO_Bot/weights/latest/actor_b3.npy b/PPO_Bot/weights/latest/actor_b3.npy index 6ac4cd3..081ac89 100644 Binary files a/PPO_Bot/weights/latest/actor_b3.npy and b/PPO_Bot/weights/latest/actor_b3.npy differ diff --git a/PPO_Bot/weights/latest/actor_w1.npy b/PPO_Bot/weights/latest/actor_w1.npy index 70e2cf7..0adf0db 100644 Binary files a/PPO_Bot/weights/latest/actor_w1.npy and b/PPO_Bot/weights/latest/actor_w1.npy differ diff --git a/PPO_Bot/weights/latest/actor_w2.npy b/PPO_Bot/weights/latest/actor_w2.npy index 955dd63..4745887 100644 Binary files a/PPO_Bot/weights/latest/actor_w2.npy and b/PPO_Bot/weights/latest/actor_w2.npy differ diff --git a/PPO_Bot/weights/latest/actor_w3.npy b/PPO_Bot/weights/latest/actor_w3.npy index ecc1836..d896a80 100644 Binary files a/PPO_Bot/weights/latest/actor_w3.npy and b/PPO_Bot/weights/latest/actor_w3.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab1_m.npy b/PPO_Bot/weights/latest/adam_ab1_m.npy index 8197a7b..0632288 100644 Binary files a/PPO_Bot/weights/latest/adam_ab1_m.npy and b/PPO_Bot/weights/latest/adam_ab1_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab1_v.npy b/PPO_Bot/weights/latest/adam_ab1_v.npy index b824118..a702e5e 100644 Binary files a/PPO_Bot/weights/latest/adam_ab1_v.npy and b/PPO_Bot/weights/latest/adam_ab1_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab2_m.npy b/PPO_Bot/weights/latest/adam_ab2_m.npy index f3f1a31..8fb833f 100644 Binary files a/PPO_Bot/weights/latest/adam_ab2_m.npy and b/PPO_Bot/weights/latest/adam_ab2_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab2_v.npy b/PPO_Bot/weights/latest/adam_ab2_v.npy index 61f0e20..c524727 100644 Binary files a/PPO_Bot/weights/latest/adam_ab2_v.npy and b/PPO_Bot/weights/latest/adam_ab2_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab3_m.npy b/PPO_Bot/weights/latest/adam_ab3_m.npy index dd7a867..876ae47 100644 Binary files a/PPO_Bot/weights/latest/adam_ab3_m.npy and b/PPO_Bot/weights/latest/adam_ab3_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_ab3_v.npy b/PPO_Bot/weights/latest/adam_ab3_v.npy index 4c2519f..68a7082 100644 Binary files a/PPO_Bot/weights/latest/adam_ab3_v.npy and b/PPO_Bot/weights/latest/adam_ab3_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw1_m.npy b/PPO_Bot/weights/latest/adam_aw1_m.npy index 66f365d..0412e14 100644 Binary files a/PPO_Bot/weights/latest/adam_aw1_m.npy and b/PPO_Bot/weights/latest/adam_aw1_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw1_v.npy b/PPO_Bot/weights/latest/adam_aw1_v.npy index a2943b3..1f8db76 100644 Binary files a/PPO_Bot/weights/latest/adam_aw1_v.npy and b/PPO_Bot/weights/latest/adam_aw1_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw2_m.npy b/PPO_Bot/weights/latest/adam_aw2_m.npy index 3ca74aa..202fb77 100644 Binary files a/PPO_Bot/weights/latest/adam_aw2_m.npy and b/PPO_Bot/weights/latest/adam_aw2_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw2_v.npy b/PPO_Bot/weights/latest/adam_aw2_v.npy index 6b8531a..ffbde4e 100644 Binary files a/PPO_Bot/weights/latest/adam_aw2_v.npy and b/PPO_Bot/weights/latest/adam_aw2_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw3_m.npy b/PPO_Bot/weights/latest/adam_aw3_m.npy index 6a6016f..1005c3b 100644 Binary files a/PPO_Bot/weights/latest/adam_aw3_m.npy and b/PPO_Bot/weights/latest/adam_aw3_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_aw3_v.npy b/PPO_Bot/weights/latest/adam_aw3_v.npy index 286bd52..56f47b5 100644 Binary files a/PPO_Bot/weights/latest/adam_aw3_v.npy and b/PPO_Bot/weights/latest/adam_aw3_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb1_m.npy b/PPO_Bot/weights/latest/adam_cb1_m.npy index a54c3d2..c47919a 100644 Binary files a/PPO_Bot/weights/latest/adam_cb1_m.npy and b/PPO_Bot/weights/latest/adam_cb1_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb1_v.npy b/PPO_Bot/weights/latest/adam_cb1_v.npy index f7e92b6..8c5491c 100644 Binary files a/PPO_Bot/weights/latest/adam_cb1_v.npy and b/PPO_Bot/weights/latest/adam_cb1_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb2_m.npy b/PPO_Bot/weights/latest/adam_cb2_m.npy index 3d56c2f..1ef3f45 100644 Binary files a/PPO_Bot/weights/latest/adam_cb2_m.npy and b/PPO_Bot/weights/latest/adam_cb2_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb2_v.npy b/PPO_Bot/weights/latest/adam_cb2_v.npy index 7f7f896..9f82130 100644 Binary files a/PPO_Bot/weights/latest/adam_cb2_v.npy and b/PPO_Bot/weights/latest/adam_cb2_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb3_m.npy b/PPO_Bot/weights/latest/adam_cb3_m.npy index 0b43ee7..61d83ce 100644 Binary files a/PPO_Bot/weights/latest/adam_cb3_m.npy and b/PPO_Bot/weights/latest/adam_cb3_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cb3_v.npy b/PPO_Bot/weights/latest/adam_cb3_v.npy index 7abb6d2..2218094 100644 Binary files a/PPO_Bot/weights/latest/adam_cb3_v.npy and b/PPO_Bot/weights/latest/adam_cb3_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw1_m.npy b/PPO_Bot/weights/latest/adam_cw1_m.npy index c6ac7b3..b493153 100644 Binary files a/PPO_Bot/weights/latest/adam_cw1_m.npy and b/PPO_Bot/weights/latest/adam_cw1_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw1_v.npy b/PPO_Bot/weights/latest/adam_cw1_v.npy index 36abf53..a1c0cf5 100644 Binary files a/PPO_Bot/weights/latest/adam_cw1_v.npy and b/PPO_Bot/weights/latest/adam_cw1_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw2_m.npy b/PPO_Bot/weights/latest/adam_cw2_m.npy index e117a85..fcd4f49 100644 Binary files a/PPO_Bot/weights/latest/adam_cw2_m.npy and b/PPO_Bot/weights/latest/adam_cw2_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw2_v.npy b/PPO_Bot/weights/latest/adam_cw2_v.npy index 53985ea..3a4759c 100644 Binary files a/PPO_Bot/weights/latest/adam_cw2_v.npy and b/PPO_Bot/weights/latest/adam_cw2_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw3_m.npy b/PPO_Bot/weights/latest/adam_cw3_m.npy index 72b8e27..c7c18e5 100644 Binary files a/PPO_Bot/weights/latest/adam_cw3_m.npy and b/PPO_Bot/weights/latest/adam_cw3_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_cw3_v.npy b/PPO_Bot/weights/latest/adam_cw3_v.npy index f8d0cd6..570e7e6 100644 Binary files a/PPO_Bot/weights/latest/adam_cw3_v.npy and b/PPO_Bot/weights/latest/adam_cw3_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_logstd_m.npy b/PPO_Bot/weights/latest/adam_logstd_m.npy index 20fc342..8b114a7 100644 Binary files a/PPO_Bot/weights/latest/adam_logstd_m.npy and b/PPO_Bot/weights/latest/adam_logstd_m.npy differ diff --git a/PPO_Bot/weights/latest/adam_logstd_v.npy b/PPO_Bot/weights/latest/adam_logstd_v.npy index 1c64542..1c89126 100644 Binary files a/PPO_Bot/weights/latest/adam_logstd_v.npy and b/PPO_Bot/weights/latest/adam_logstd_v.npy differ diff --git a/PPO_Bot/weights/latest/adam_t.txt b/PPO_Bot/weights/latest/adam_t.txt index dbe0475..d4d3852 100644 --- a/PPO_Bot/weights/latest/adam_t.txt +++ b/PPO_Bot/weights/latest/adam_t.txt @@ -1,13 +1,13 @@ -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 -200200 \ No newline at end of file +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 +324564 \ No newline at end of file diff --git a/PPO_Bot/weights/latest/critic_b1.npy b/PPO_Bot/weights/latest/critic_b1.npy index a98fda0..5efec0d 100644 Binary files a/PPO_Bot/weights/latest/critic_b1.npy and b/PPO_Bot/weights/latest/critic_b1.npy differ diff --git a/PPO_Bot/weights/latest/critic_b2.npy b/PPO_Bot/weights/latest/critic_b2.npy index 1b08ce0..16e9d64 100644 Binary files a/PPO_Bot/weights/latest/critic_b2.npy and b/PPO_Bot/weights/latest/critic_b2.npy differ diff --git a/PPO_Bot/weights/latest/critic_b3.npy b/PPO_Bot/weights/latest/critic_b3.npy index abb5a67..6d8215a 100644 Binary files a/PPO_Bot/weights/latest/critic_b3.npy and b/PPO_Bot/weights/latest/critic_b3.npy differ diff --git a/PPO_Bot/weights/latest/critic_w1.npy b/PPO_Bot/weights/latest/critic_w1.npy index c2e29b1..97fc2a9 100644 Binary files a/PPO_Bot/weights/latest/critic_w1.npy and b/PPO_Bot/weights/latest/critic_w1.npy differ diff --git a/PPO_Bot/weights/latest/critic_w2.npy b/PPO_Bot/weights/latest/critic_w2.npy index 13ef3b2..cf97f24 100644 Binary files a/PPO_Bot/weights/latest/critic_w2.npy and b/PPO_Bot/weights/latest/critic_w2.npy differ diff --git a/PPO_Bot/weights/latest/critic_w3.npy b/PPO_Bot/weights/latest/critic_w3.npy index ac0caf2..5e33b17 100644 Binary files a/PPO_Bot/weights/latest/critic_w3.npy and b/PPO_Bot/weights/latest/critic_w3.npy differ diff --git a/PPO_Bot/weights/latest/log_std.npy b/PPO_Bot/weights/latest/log_std.npy index 258cd88..cddf3d8 100644 Binary files a/PPO_Bot/weights/latest/log_std.npy and b/PPO_Bot/weights/latest/log_std.npy differ diff --git a/PPO_Bot/weights/round_counter.txt b/PPO_Bot/weights/round_counter.txt index 774f1d5..f3e3a6e 100644 --- a/PPO_Bot/weights/round_counter.txt +++ b/PPO_Bot/weights/round_counter.txt @@ -1 +1 @@ -5211 \ No newline at end of file +9500 \ No newline at end of file diff --git a/tools/training_runner/FIRE_CAMPAIGN_RESULTS.md b/tools/training_runner/FIRE_CAMPAIGN_RESULTS.md new file mode 100644 index 0000000..a304966 --- /dev/null +++ b/tools/training_runner/FIRE_CAMPAIGN_RESULTS.md @@ -0,0 +1,24 @@ +# Fire campaign — final results (2026-08-19) + +Policy: PPO_Bot, single 3789-round battle (global rounds 5212–9000), after the +bounded terminal-reward fix (db99153: computeRoundReward caps cumulative score +at 400/50 → bonus ∈ [0,8]). + +## Training battle (run.sh Fire 9000, counter 5211 → 9000) +- 3789 rounds: **3787 wins / 3789 = 99.95%** +- Only losses: round 1 (score 48, ticks 645) and round 2 (score 128, ticks 449) — cold start +- 100/100 wins in the last 100 rounds +- train:game:round = 3789:3789:3789 (1:1:1), zero NaN +- valueLoss avg 39.7, max 361.1, last (r9000) 32.5; gradNorm max 1151.3 — stable, no divergence +- Battle wall time ≈ 6.4 min (~0.1 s/round; round ticks ~440–510, no learning speedup) + +## Frozen-policy eval (PPOB_EVAL_ONLY=1, run.sh Fire 9500, counter 9000 → 9500) +- 500 rounds vs Fire: **500/500 = 100.0%** +- **0 train lines** during eval (no learning); weights/latest .npy mtimes and + content unchanged before/after eval — policy frozen +- Final weights committed at counter 9500 + +## Reproduce a 100% run +1. Weights: `PPO_Bot/weights/latest` at counter 9500 (this commit). +2. `PPOB_EVAL_ONLY=1 ./tools/training_runner/run.sh Fire ` + — one battle of N rounds vs Fire, frozen policy, no training. \ No newline at end of file