黑棋在棋盘中腹落下一子,白棋眼前没有必须堵住的四连,却看见两条逐渐靠近的斜线。引擎把一个远离交叉点的防守点排在前面;只看眼前的棋型,你可能想知道它究竟看见了什么。
搜索停下时,谁来给局面打分
引擎会沿着候选着法向前搜索,尝试双方的应对。以alpha-beta 搜索为例,它会剪去一些已无须继续检查的分支,但仍不可能在每个分支都走到终局。
搜索在某个局面停下时,评估函数要给这个叶节点一个分数,供上层比较走法。比如黑棋的一条斜线尚未构成直接威胁,评分仍可能认为白棋此后更难兼顾两侧;搜索据此决定要不要继续追这条变化。
这个分数是对当前局面的估计,胜负还要看接下来的着法。叶节点停得越早,评估越需要辨认那些尚未成形、却会影响后续选择的联系。
手写棋型表能看见什么
传统做法会识别活三、冲四等形状,再按预设权重合计。这样写很清楚:一处冲四通常比一处还要准备才能进攻的棋型紧急,引擎可以据此先检查防守着法。
以 15×15 自由规则下轮到白棋行棋的局面为例:黑棋左上方的斜向棋形与右侧的横向棋形都朝空着的天元延伸,白棋落在天元就能同时挡住两边。若手写表分别给两处棋形加分,却默认每处都要单独防守,就会重复计算防守代价,抬高黑棋的估值。手写表还受限于编写者预先列出的形状。搜索能发现部分遗漏,却得先把相关分支展开;如果评估较早排除了关键候选,算力未必会花在那条线上。
从手写规则走向训练型评估
NNUE是“可高效更新的神经网络”的缩写。据关于将棋引擎 YaneuraOu 与 NNUE 起源的公开资料,它由 Yu Nasu 在 2018 年发明,最先用于将棋引擎 YaneuraOu;名称也借用了日本传说中“鵺”的读音。它让训练得到的判断能在落子后较快更新,适合放进反复评估局面的搜索过程。
一个有用的参照来自国际象棋。据Stockfish NNUE 的公开引擎记录,到 2020 年 8 月,其搜索速度约降了一半,棋力却比使用传统评估时至少高 80 Elo,随后进入官方引擎。这说明更慢的搜索有时仍能从更好的叶节点判断中获益。
评估换了方法,搜索仍要验证变化
学到的判断,仍须逐手检验
训练型评估可以从大量局面中学习棋形的组合关系,但它给出的仍是估计。白棋若有一步必须应对的冲四,黑棋看似宽裕的位置优势就可能迅速失效;引擎还得把这条强制变化走出来。
搜索方法也各有分工。PVS会先完整搜索首选着法,再用很窄的窗口检验其余着法,必要时回头重算;蒙特卡洛树搜索则把更多模拟分配给值得追的分支;遇到VCT一类连续威胁,有的引擎另用证明数搜索检查是否存在必然的进攻路线。
因此,同一手棋可以先凭评估进入候选,再因具体应对被否定。看到引擎改主意时,值得先找双方哪一步改变了威胁关系,而不要只比较前后两个分数。
2026 年赛场上的不同搭配
据Gomocup 2026 官方赛事页面的引擎更新说明,参赛引擎展示了几种搭配:Figrid 用 alpha-beta 搜索配合 NNUE 评估,还用威胁缓存和延续历史安排着法顺序;Chloris 的自制 NNUE 约用 300 万个 Standard-15 局面训练,搜索之外另设强制着法检查和紧急防守层。
同一Gomocup 2026 官方赛事页面记载,TKGomoku 保留手写棋型评估,同时使用轻量 NNUE、策略文件和开局库;DDQK-Conquer 也采用了类似 NNUE 的算法。页面还写到,Starpoint 以蒙特卡洛树搜索配合 transformer 评估,并在内部用证明数搜索处理 VCT。训练型判断进入了多种架构,具体用法并不相同。
赛果也不宜直接归给某一种评估。据Gomocup 2026 官方赛事页面的赛果,RAPFI 在 2026 年保住 20×20 自由规则冠军,又赢得 15×15 自由规则与快棋;新参赛的 KATAGOMO 在两个自由规则组别均列第二,其中 15×15 组只差 9 Elo。评估、搜索和时间分配一起决定一台引擎怎样下棋。
读懂一个出乎意料的推荐
引擎把安静的一手排在直接成三之前,可能看重它同时限制了两条后续路线。手写棋型表在落子当下看不到明确的高分形状,训练型评估却可能给这种局面关系更高的权重;是否站得住,还要看搜索找到的应对。
读分数时要记住它的条件:规则、搜索深度、用时和评估方式都会影响结果。同一局面换一个引擎,数值刻度和着法排序可能不同;先看推荐着法之后双方怎样走,再看分差是否稳定。
让分数回到棋盘
复盘时,可以先找必须回应的威胁,再观察引擎怎样处理较远的联系。若一手棋暂时没有造出冲四,却让对方下一回合只能守一侧,就记录那条限制是从哪一步开始出现的。
评估函数改变了引擎挑选和衡量局面的方式,搜索继续负责检验具体变化。把两者分开看,遇到陌生的推荐着法时,你就能问得更细:它看中了什么,又算到了哪里?
先核对强制变化,再读局面分数