摘要
用户提出按《英雄无敌三》AI 的几条简单准则写战斗 AI:近战打得到就打、打不到就等;远程直接射;挑反击小、血少的目标;总目标是我方少掉血、对方多掉血。还提出一个推进上的权衡:冲得快会挨一刀,冲得慢虽不挨刀,但对方射手每轮都在射。
我们写了两个候选,都只读公开信息和公开合法动作菜单:
- T(威胁圈推进):在默认公平 AI v59 上只替换近战单位“往哪走”的估值;
- H3(英雄无敌三式):在 T 的基础上加“只要能普通攻击,就排在移动、等待之前”。
第 3 次运行(前两次因引擎报错与规则版本变化中止或取消)在 600 个来源上:T +0.103 [0.055, 0.153],H3 +0.155 [0.105, 0.203],两者都优于 v59,也都优于同改选率的随机扰动对照,按冻结协议通过。
要回答的问题
这两个简单规则 AI 在足量排位中是否比 v59 更强,且强于“随机改掉同样比例的决策”?
方法
威胁圈规则:对近战单位的每个候选落点算两笔账——冲进去的代价(在我方下次行动前能走过来攻击这一格的敌人,预计伤害加反击),以及不冲的代价(对方射手每轮伤害 × 晚到轮数,减去“停在对方攻击范围外、对方主动过来我方可先手”的收益),取净损失最小的落点。伤害估计沿用 v59 的反击损失比例 0.45,没有新增可调参数。近似:只按距离、忽略障碍;一个敌人在我方再次行动前能行动两次也只计一次。
H3:菜单里有普通攻击时,移动、等待、防御、跳过都排在所有攻击之后;目标仍按 v59 的“伤害价值 − 反击损失”挑选;法术、技能、英雄行动不变。
设置(运行前冻结)
- 600 个新来源(种子 68000–68599)。来源指一个随机种子生成的镜像开局;候选执蓝、执红各一局对 v59。来源差 = 候选两局得分之和 − 1。
- 三组各 1200 局:T、H3、随机扰动 N(实验 0066 冻结的 σ = 0.002,用来衡量“只是随机改选”能得多少)。
- 区间:来源层面自助重抽 10,000 次(种子 0)的 95% 百分位区间;候选与随机组按来源配对相减。
- 通过:候选区间下界 > 0,且“候选 − 随机组”配对差下界 > 0。决策 p95 不超过 v59 的 2 倍。
结果
前两次运行:第 1 次 H3 在第 579 局因一次治疗账本核对的引擎报错中止,随机组被用户中途叫停(978/1200);之后规则升级为 Core452,第 2 次运行又因 Core452 自身的审阅修复改变事件内容而在 141 局后取消。第 3 次在修复后的 Core452 上三组全部重跑。
| 组 | 来源差 [95%] | 好/差来源 | 双输 | − 随机组配对差 [95%] | 判定 |
|---|---|---|---|---|---|
| T | +0.1033 [0.055, 0.1533] | 148/86 | 44 | +0.1383 [0.0767, 0.2] | 通过 |
| H3 | +0.155 [0.105, 0.2033] | 164/71 | 24 | +0.19 [0.1283, 0.25] | 通过 |
| 随机组 | −0.035 [−0.0733, 0.0033] | 62/83 | 37 | — | 负对照 |
3600 局全部逐局重放校验。决策 p95:T 0.066 秒、H3 0.071 秒、v59 约 0.065–0.070 秒。T 组 1200 局与第 1 次(Core451)逐局比较,得分和最后回合全部相同。
同 600 来源上 H3 − T = +0.0517 [−0.0017, 0.1033](描述,非门槛),不能说 H3 显著强于 T。
局限
- T 和 H3 是在同一批来源上看过结果才更受关注的候选,存在选择偏差,需要新来源独立验证。
- 镜像开局、对手只有 v59。
- 第 1 次随机组的 978 局部分结果只作方向参考,不代替冻结判读。
结论与下一步
在这 600 个来源上 T 与 H3 都显著优于 v59 和随机扰动。独立验证在本判定前已冻结:T 见实验 0070(结果未复现),H3 见实验 0071(通过)。
Comments