搜索基本概念

状态:对搜索算法和搜索环境当前所处情形的描述信息;搜索算法刚开始所在状态称为初始状态,完成任务时所在状态称为终止状态。

动作:算法从一个状态转移到另外一个状态所采取的行为称为动作

状态转移:算法选择了一个动作之后,其所处状态也会发生相 应变化,这个过程称为状态转移

路径和代价:将过程中经历的状态记录下来,可以得到一个状态序列,这个状态序列称为一条路径;条路径对应一个代价

目标测试:判断状态是否为目标状态

搜索过程可视为搜索树的构建

搜索树:可以用一棵树来记录算法所搜索的路径

评价指标:

  • 完备性:当问题存在解时,算法是否能保证找到一个解,虽然这个解可能不是最优解
  • 最优性:搜索算法是否能保证找到的第一个解是最优解
  • 时间复杂度:找到一个搜索路径所需的时间
  • 空间复杂度:算法运行时所需的内存空间

复杂度相关变量:

  • b:分支因子,即搜索树中每个结点最大的分支数目
  • d:根结点到最浅的目标结点的路径长度
  • m:搜索树中路径的最大可能长度
  • n:状态空间中状态的数量

搜索框架:

TreeSearch
    F ← {根节点}
    while F ≠ Φ do
    n ← pick_from(F)
    F ← F - {n}
    if goal_test(n) then
        return n.path
    end
    F ← F ∪ successor_nodes(n)
end