摘要
公平 AI v59 是项目里只用公开信息的规则型对战 AI。在 36 道精确战术题(见实验 0044)上它答对 24 道,错的 12 道里全部选了攻击,其中 10 道最优是等待、移动或跳过。本实验逐题拆开 v59 的评分分项,判断错误来源。事前冻结的 go 线是:12 道中至少 8 道能明确归因于“公开信息下的估值缺陷”。结果 12/12 都能归因,其中 5 道由“只改反击项”的反事实重排直接证实,另 7 道由分项与参考线对照归因。实验达到 go 线,可以进入估值修改原型(实验 0064)。
要回答的问题
12 道错题里,有多少能仅靠现有公开信息和更合理的动作估值改对?主要错在哪个评分分项?
方法
- 跨版本基线:12 道错题(实际对全部 36 道)分别在规则版本 Core449 和 Core450 下构建,比较公开观察、合法菜单、逐动作分数和最终选择,应完全一致。
- 分项记录:用只读包装器记录 v59 每个候选动作的评分分项(每个钩子调用原方法、原样返回),并让引擎实际执行所选攻击,得到真实伤害与反击;参考答案用题库同一参考求解器重算。
- 反事实重排:只改攻击的反击项、其他分数沿用 v59 原值,看能改对多少题、回归多少题。这是纯分析,不是策略。
设置
只用 36 道开发题,68 道留出题未打开;不改默认 AI、不改规则、不训练、不跑新比赛。预算 90 分钟,实际约 6 分钟。
结果
跨版本:36/36 道题在两个版本下完全一致,v59 答对 24/36。
12 道错题(反击惩罚与损失都是 v59 自己的评分数值,“引擎实际反击”是执行后的真实反击伤害):
| 题 | 最优类别 | v59 所选 | 正确动作排名 | v59 反击惩罚 | v59 估计反击损失 | 引擎实际反击 | 原因 |
|---|---|---|---|---|---|---|---|
| p0003 | 移动/跳过/等待 | 攻击巨蛙 | 2/16 | 0 | 16.2 | 47 | A(反事实已证) |
| p0013 | 移动/跳过/等待 | 攻击巨蛙 | 2/16 | 11.3 | 24.3 | 81 | B(反事实已证) |
| p0019 | 等待 | 攻击神射手 | 3/17 | 14.3 | 32.4 | 38 | C 次序 |
| p0030 | 等待 | 攻击牛头人 | 2/16 | 8.1 | 16.2 | 37 | B(反事实已证) |
| p0036 | 移动 | 攻击羊人射手 | 7/17 | 0 | 62.1 | 114 | A + C 站位 |
| p0043 | 换目标攻击 | 攻击渗透者 | 2/17 | 0 | 33.8 | 38 | A + D 目标 |
| p0046 | 等待 | 攻击穴居人 | 9/16 | 0 | 22.1 | 36 | A + C 次序 |
| p0050 | 换目标攻击 | 射击牛头人 | 2/15 | 0(远程) | — | 0 | D 目标 |
| p0056 | 移动/跳过/等待 | 攻击巨蛙 | 2/16 | 0 | 32.4 | 108 | A(反事实已证) |
| p0060 | 移动 | 攻击羊人射手 | 8/17 | 0 | 62.1 | 96 | A + C 站位 |
| p0062 | 移动 | 攻击羊人射手 | 7/10 | 0 | 41.9 | 91 | A + C 站位 |
| p0077 | 等待 | 攻击小跳兵 | 2/16 | 24.4 | 52.2 | 104 | B(反事实已证) |
四类原因(都只依赖公开信息;正确动作都在候选里,排名 2–9):
- A 反击暴露按攻击前位置判定:v59 只在攻击者“当前位置”与目标相邻时算反击惩罚。需要先移动再近战的 7 道题惩罚全是 0,而引擎实际反击 36–114。
- B 反击损失低估:估计 = 目标数量 × 平均伤害 × 0.45,不含攻防差;比引擎实际低 1.1–3.3 倍,有反击的 11 道题全部偏低。
- C 不攻击的动作没有机会价值:等待固定 0.1、跳过 0、移动只看接近距离和很小的邻接危险;看不到“让对方先打进来吃我方反击”(站位)和“让别人先行动削弱反击”(次序)的价值。
- D 选目标只看本次扣血,不考虑削弱下一个行动的敌人。
反事实重排:
| 变体 | 错题改对 | 原对题变错 | 36 道合计 |
|---|---|---|---|
| v59 | — | — | 24 |
| V1:暴露按攻击落点判定 | 2(p0003、p0056) | 0 | 26 |
| V2:V1 + 用引擎实际反击作损失(精确估计的上界) | 5(另加 p0013、p0030、p0077) | 3(p0048、p0071、p0078) | 26 |
V2 的回归说明:只把攻击一侧的反击代价算准、却不算“不攻击时对方打过来”的代价,会推翻余量很小的正确攻击(例如 p0048 惩罚从 7.1 变为 9.3 即翻转)。A 可以单独修;B 必须与 C 一起修。
失败与负结果
没有发现 Simulator 规则错误或标签争议。V2 的 3 道回归是有价值的负结果,提示单边修正的风险。
局限
- 只有 12 道小题、一回合视野;开发题已暴露,不能作为棋力证据。
- 只有 5 道由反事实证实,另 7 道是分项归因。
- V2 用了引擎真值,不是可上线的估计。
结论与下一步
达到 go 线(12 ≥ 8)。建议的最小原型:A 反击暴露按实际攻击位置判定;B 用公开攻防的反击估计替代 ×0.45;C 给等待和移动加上对称的“对方下一个行动打我、我方反击”机会项。原型须保证开发题不回归(p0048/p0071/p0078 作为哨兵)、留出题只开一次、排位不降,见实验 0064。
Comments