feat: ISMCTS q-value as training label

C#: TrainingCollector新增q_value列, IsmctsBot传入winRate
CSV: reward→q_value, ISMCTS状态带真实评估值, Neural填0
Python: 优先取ISMCTS状态+评估值训练, 无q_value的Neural状态跳过
旧CSV格式(reward)自动fallback到Neural-only过滤

信号从'这局谁赢'改为'ISMCTS评估这步有多好'
This commit is contained in:
2026-07-13 11:38:42 +08:00
parent dc17c0f464
commit f66f56d0f8
3 changed files with 34 additions and 18 deletions

View File

@ -392,7 +392,7 @@ namespace PdkFriendServer.Logic
int totalSims = allCandidates.Count * fastSims
+ scoredCandidates.Count(c => c.winRate > 0.3) * (simsPerCandidate - fastSims);
Console.WriteLine($"[ISMCTS pos{view.MyPos}] {totalSims}sims => {desc}");
TrainingCollector.Record(view, _tracker, TrainingCollector.ActionToIdx(best.play), view.MyPos-1);
TrainingCollector.Record(view, _tracker, TrainingCollector.ActionToIdx(best.play), view.MyPos-1, (float)best.winRate);
return best.play;
}