fix(SNNBot): fix reservoir threshold, remove decay, stop re-forward in EVALUATE

- Threshold 4→1: neurons now fire (~50% rate) instead of never firing
- Remove aggressive decay that erased learning signal immediately
- Remove EVALUATE re-forward that corrupted reservoir state before learn()
This commit is contained in:
2026-09-14 23:04:45 +02:00
parent dbfb58ca1e
commit 45b167f2b3
2 changed files with 9 additions and 20 deletions
+6 -3
View File
@@ -460,9 +460,12 @@ method run*(bot: SNNBot) =
let absBearing = directionTo(myX, myY, futureX, futureY)
let targetRel = normalizeRelativeAngle(absBearing - bot.lastDecideGunDir)
when USE_RESERVOIR:
let winBin = bot.res.forward(toBitVec80(encodeInputFull(
normalizeRelativeAngle(bot.enemyBearing - bot.lastDecideGunDir),
bot.velDirDeg, bot.velSpeed, bot.hasLastPos)))
# state/scores already set by DECIDE's forward(); re-forwarding would corrupt them
let winBin = block:
var best = 0; var bestS = -1
for k in 0 ..< N_BINS:
if bot.res.scores[k] > bestS: bestS = bot.res.scores[k]; best = k
best
let aimAngle = bot.res.interpolatedAngle(winBin)
bot.res.learn(targetRel)
echo "RES tick=" & $bot.tick & " bin=" & $winBin &