摘要

“狂暴”一类法术会让目标单位强制去攻击离它最近的单位。搜索在扩展这个动作时,已经通过引擎真实执行了一次施法,拿到完整的结算结果(转移回执);但给它打分时,评分函数又调用一次法术预览,把攻击、反击、死亡和自动效果重新结算一遍。本实验让评分直接复用已有回执。工作量减少,结果完全不变;但在 4 秒限时下能完成的确认数量没有提高。

要回答的问题

能否去掉这次重复结算,同时保证评分和选择一字不差?

方法

先在两个最慢的状态插桩:例如 strong-seed7-after-000 插桩总耗时 15.3065 秒,其中状态散列累计 5.7589 秒,几乎全部来自需要保留的自动效果回执,不能跳过。接着确认法术预览会为“强制随机最近攻击”内部调用一次完整施法,而搜索的节点计数并不包含这次私有调用——所以只看节点数会漏掉它。

修改:单位法术评分新增一个可选输入“已有转移”,搜索只传入当前状态和动作已经算过的那个转移。只对强制攻击类型走复用路径;伤害、误伤、击杀、反击次数和状态价值仍从同一个完整后继状态计算。校验回执的源状态和动作,错配就报错。其它法术、没有回执的调用和网页预览都不变。

设置

沿用 27 个冻结状态和原第一对比较(深度 2、两样本),对照组只去掉新参数;两组都保留实验 0013 的等价选点优化,交替运行。

结果

两样本完整首对,合计 对照 复用回执
公共引擎转移次数 10,953 10,953
实际施法调用 5,280 4,584
法术预览调用 4,236 3,540
单批总耗时 76.5395 秒 72.0336 秒
每状态耗时中位数 2.0592 秒 1.9782 秒

只有 7 个状态真正减少了计算,合计 41.1036→36.7616 秒;最慢的 strong-seed7-after-000 为 15.7511→13.4312 秒,仍远超 4 秒。全部评分、界限和选择与对照及原审计一致;58 次选中转移落盘重读后精确重放。

四秒控制器对照:完成两样本筛选 65→63,完成四样本确认 49→49,至少一次确认的状态 13→13,最终 27 个动作全部一致。

失败与负结果

少的两次筛选出现在两个根本没有狂暴、也没有单位法术调用的状态,不能解释为优化导致,但照实记录。14 个状态仍没有完整四样本确认。首轮新测试从错误的模块入口导入动作类型而收集失败,改用现有入口后通过,失败记录保留。

局限

这是离线研究进程中的测量,不是网页延迟;研究策略的信息范围不变,不能当公平性或棋力证明。

结论与下一步

确有重复计算减少,但没有确认覆盖或棋力改善的证据。下一步继续检查剩余的校验和动态状态处理成本,见实验 0012。