跳到主要内容

States-based models

搜索优化

Tree search
树搜索

Backtracking search
回溯搜索
Breadth-first search (BFS)
广度优先搜索
Depth-first search (DFS)
深度优先搜索
Iterative deepening
迭代加深
AlgorithmAction costsSpaceTime
Backtracking searchanyO(D)\mathcal{O}(D)O(bD)\mathcal{O}(b^D)
BFSc0c\geqslant0O(bd)\mathcal{O}(b^d)O(bd)\mathcal{O}(b^d)
DFS0O(D)\mathcal{O}(D)O(bD)\mathcal{O}(b^D)
DFS-Iterative deepeningc0c\geqslant0O(d)\mathcal{O}(d)O(bd)\mathcal{O}(b^d)
  • bb - 每个状态的操作数量
  • dd - solution depth - 解的深度
  • DD - 最大深度
Dynamic programming - DP
动态规划
backtracking search + memoization
FutureCost(s)={0if IsEnd(s)minaActions(s)[Cost(s,a)+FutureCost(Succ(s,a))]otherwise\textrm{FutureCost}(s)=\left\{\begin{array}{lc}0 & \textrm{if IsEnd}(s)\\\underset{a\in\textrm{Actions}(s)}{\textrm{min}}\big[\textrm{Cost}(s,a)+\textrm{FutureCost(Succ}(s,a))\big] & \textrm{otherwise}\end{array}\right.

  • Explored E\mathcal{E}
  • Frontier F\mathcal{F}
  • Unexplored U\mathcal{U}
Uniform cost search - UCS
统一代价搜索
Dijkstra's algorithm
不支持 negative action costs

AlgorithmAcyclicityCostsTime/space
Dynamic programmingyesanyO(N)\mathcal{O}(N)
Uniform cost searchnoc0c\geqslant0O(nlog(n))\mathcal{O}(n\log(n))

Learning costs

Structured perceptron
结构感知机
A\mathbf A ^ * search
A\mathbf A ^ * 搜索