← 返回概念解读

Concept Fable精修版

树搜索

Tree Search · Inference

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

棋手在岔路前放小旗

少年棋手第一次参加大赛时,每一步都凭感觉下。师父问他:如果你走这一步,对手可能怎么回?再下一步又会怎样?少年摇头,他只看见眼前一格,也只记得刚刚被吃掉的子。

师父在桌上画了一棵倒着长的树。树根是当前棋局,每根枝条是一种可走的棋。走到一个新节点,对手又有几根枝条。再往下,局面越来越多,像一片森林。

少年尝试把所有枝条都走到底,很快崩溃。三步之后已经有上千种局面,算到天黑也算不完。他先以为高手就是能看完所有路,师父却说,聪明不等于穷尽一切。

他们给每个节点插小旗:这一局面大概有利还是不利;这条路还值得往下看吗;如果已经输了,就不用再展开;如果几条路都差不多,就先探索不确定但可能更好的那条。

第一次修补并不稳。少年只挑看起来最好的枝,结果错过了对手隐藏的反击;后来他又每条都看一点,深度不够,仍然被埋伏。师父教他在展开、估计、剪掉和回退之间来回调整。

真正让少年服气的是一盘残局。他凭感觉吃掉眼前一子,却三步后被将死;若先放过那子,反而能逼对手走进死角。眼前收益和后面局面第一次在他脑中分开。

后来少年下棋慢了半拍,却稳了很多。他每一步不再只是一个动作,而是在脑中走过一棵有限展开的树:试探、评估、剪枝、回退,再选当前看来最好的枝条。

后来少年也没有每步都想成一整片森林。局面简单时,他快下;局面危险时,他多展开几层。师父说,小旗不是为了拖慢你,而是让你在关键岔路前少被眼前一颗子骗走。后来他复盘每盘棋时,也会标出哪条枝看早了、哪条枝剪错了,让下一次展开更准。

揭示

这个故事讲的是:树搜索

它把一个决策问题展开成树状结构:当前状态是根节点,每个动作产生子节点,再继续展开未来可能状态,最后通过评估选择更好的路径。

树搜索常用于棋类、规划、推理和决策。难点是分支数量会爆炸,所以需要评估函数、剪枝、回溯、启发式搜索或蒙特卡洛方法,在有限计算成本内找到足够好的选择。

隐喻映射

  • 当前棋局:搜索树的根节点
  • 每种可走的棋:动作分支
  • 对手回应后的局面:下一层状态节点
  • 插小旗:局面评估函数
  • 剪掉没希望的路:剪枝,降低计算成本

Soloharness 判断

树搜索提醒我们,Agent 规划不是一次灵感,而是在有限计算下探索可能路径。产品里要控制展开深度、评估标准和失败回退。

MCTStest-time computereasoningplanning