摘要
0222–0224 都在合成小课程(2v2、3v3、无英雄)上进行。本实验第一次把“选择整局战术”搬进完整竞技场环境:双方各有英雄、七个兵种、法术和宝物。设计是在开局时用一个小型线性选择器,从三套整局策略里挑一套:F(Fair,只用玩家可见信息的基线搜索 AI)、R(持续压制敌方可见射手)、P(持续保护己方射手附近)。
正式准入运行 18.188773 秒后中断:64 个准入任务只启动了 19 个——13 局自然终局,1 局策略代码真实异常,另 5 局被控制器随批终止,45 局未开始。零学习更新,P 和选择器都没有打过正式对局。这是一次工程故障关闭,不能当作“上下文学习失败”。
要回答的问题
在完整竞技场里,根据公开开局信息选择整局战术,能否比始终用基线 F、或始终用某个固定战术更好?准入阶段只回答前置问题:这些战术在完整环境中能否稳定跑完、并产生足够的胜负差异供学习?
方法
- 三套策略。 R 持续压制公开可见的敌方射手,P 持续保护己方射手附近;目标失效才重选,没有相关角色或位置信息时退回 F。所有法术、英雄动作、单位技能和原有零消耗保护都交给 F,不学习施法、不新增伤害公式。
- 选择器。 10 个公开数值特征 + 10 个“是否已知”标记 + 偏置,共 21 个输入 × 3 个选项 = 63 个参数。只用己方可见的英雄/法术和双方可见部队,未知不填真值。训练用 250 步全批 Adam、L2 = .1;非 F 选项分数严格高出 F .25 以上才选,开局只选一次。
- 学习信号。 在同一训练来源上让三种策略各自真正打完整局,只为终局得分不同的选项产生偏好。
设置(冻结的条件)
- 来源(一套固定的双方选秀构筑与开局随机种子):52 份新蓝图,32 训练 / 8 开发 / 12 保留。按“两侧英雄与七兵种族”去重后,与 323 份旧蓝图的 223 个族都不同。
- 事前兼容检查:只读旧实验 0204 前 8 个训练来源的 16 条轨迹,1762 个公开选择全部能恢复;306 次施法、62 次英雄动作、108 次单位能力选择一致(93.444 秒)。
- 准入:先用 32 个训练来源中的前 8 个,最多 96 个预定比赛槽(去重后 64 局实际对局)/ 15 分钟;要求 ≥ 95% 已知终局、0 故障、至少 3 个来源有非 F 正差、至少 2 个有负差、实际覆盖英雄与施法决策。
- 全训练最多 384 槽 / 50 分钟,开发 88 槽 / 15 分钟,保留 132 槽 / 25 分钟。20 完整回合未决或只剩临时生物双输。
结果
| 项目 | 数量 |
|---|---|
| 自然终局(第 4–10 回合) | 13 |
| 真实策略异常 | 1 |
| 随批中止 | 5 |
| 未开始 | 45 |
| 学习更新 | 0 |
已完成的只有 F/F 8 局、F/R 4 局、R/F 1 局,不是完整配对表,不能推断任何选项优劣。只构造了 8 个训练状态,其余 44 个(24 训练、8 开发、12 保留)未构造。6 局结果全部记为未知。
故障经过: 某训练局在第 96 次合法转移后进入第 7 回合,红方最后一支召唤幼虫到期消失,红方已无活体部队,但引擎仍把行动权交给蓝方。新写的策略包装假设“未终局就一定有敌人”,于是抛错。另 5 局是被控制器随这一批一起终止的。
故障后核验:8 个初态、1467 个公开输入/动作/事件/转移、记忆恢复、隐藏随机数,以及 13 局原终局全部一致。19 份记录全部导入回放界面,双方英雄的属性、技能、宝物、法术在开局、施法后、末尾都通过显示检查。77 项软件检查通过。
失败与负结果
- 两处独立问题:一是策略包装的错误前提(空目标),已修复——四种选项的空目标回归测试先失败、修后通过,仍由 F 从公开菜单选动作;二是 Simulator 在回合开始临时单位到期后没有立即结算胜负,这一缺口后来在实验 0344 修复,并验证了旧回放兼容。
- 修复不改写本批结果:原 6 局 unknown 保持,诊断性的单步转移(显示蓝方终局)不写回正式结果。
局限
- 这是工程故障,不是学习失败:63 参数选择器从未训练,P 从未正式对战。
- 最大公开选择 .205197 秒只是 8 并发下的观察,不含转移,不是网页端到端延迟。
- 修复 0344 不是商业游戏规则的认证。
结论与下一步
完整竞技场比小课程多了大量边界情况,本次就撞上了“临时单位到期后谁赢”的规则缺口。先修 Simulator(实验 0344),再在新规则下用同样的 52 份蓝图、同样的 F/R/P、63 参数和门槛另编号完整重跑(见实验 0226);本批 13 局终局不拼入新训练。
Comments