无信息搜索

  • 问题定义:初始状态,可能行动,转移模型,目标测试,路径耗散
  • 参数
    • 分支因子 $d$:每个状态有 $d$ 个后继
    • 最优解代价 $C^*$
    • 每个行动代价至少为 $\epsilon$
    • 任一结点最大深度
  • 性能度量
    • 完备性:有解则一定能找到
    • 最优性:能找到最优解
    • 时间复杂度
    • 空间复杂度
标准 宽度优先 一致代价 深度优先 深度受限 迭代加深 双向
完备性 $b<\infty$ $b<\infty$ No No $b<\infty$ $b<\infty$
最优性 单步代价相同 Yes No No Yes 双向为宽度优先
时间复杂度 $O(b^d)$ $O(n^{1+\frac{C^*}{\epsilon}})$ $O(b^m)$ $O(b^l)$ $O(b^d)$ $O(b^{d/2})$
空间复杂度 $O(b^d)$ $O(n^{1+\frac{C^*}{\epsilon}})$ $O(bm)$ $O(bl)$ $O(bd)$ $O(b^{d/2})$

启发式搜索

  • a heuristic is a robust technique for the design of randomized algorithms for Optimziation Problems
    • not able to guarantee the efficiency and the qulity of the computed feasible solution
  • 评价函数: $f(n)$
  • 已花费的代价:$g(n)$
  • 启发函数:$h(n)=$结点$n$到目标结点最小代价的估计值

贪婪优先搜索

$f(n)=h(n)$

A$^*$ 搜索

$f(n)=g(n)+h(n)$

  • 最优性条件
    • 树搜索:可采纳启发式,$h(n)$ 小于实际代价
    • 图搜索:一致性,$h(n)\leq c(n,a,n’)+h(n’)$
      • 一致的启发式都是可采纳的
  • 内存占用大:保存所有结点
    • IDA$^*$ 搜索:截断值是 $f$
    • RBFS 递归最佳优先搜索:记录从当前结点的祖先可得到的最佳的可选路径的 $f$值,如果当前结点超过了这个限制,递归将回到可选路径上
    • SMA$^*$:内存耗尽时,删掉当前 $f$ 最差结点,将其值回填到父节点

Ant System

  • heuristic value $\eta(s_i,s_j)$
  • pheromone $\tau(s_i,s_j)$
    • update
      • for all edge: $\tau=(1-\rho)\tau$
      • then for edge path: $\tau += f(\text{cost})$
  • agent(ant)
  • path selection: $p_{ij}=\frac{\tau_{ij}^\delta\eta_{ij}^\beta}{\sum_k\tau_{ik}^\delta\eta_{ik}^\beta}$

局部搜索

爬山法(贪婪局部搜索)

  • 扩展该结点及其子节点,评估
  • 选择局部最优子节点
  • 缺点
    • 局部极大值
    • 山脊
    • 高原
  • 随机爬山法
  • 随机重启爬山
  • 连续空间
    • 梯度下降
    • Newton-Raphson 方法

模拟退火搜索

  • local search scheme
    • multistart local search
    • threshold local search
  • Difference with LSS: may accept a deterioration with $e^{-\frac{E(q)-E(s)}{k_B*T}}$
    • Boltzmann distribution
  • free variable
    • neighborhood choice
    • cooling schedule
      • initial temperature $T$
      • temperature reduction function $f(T,t)$
        • $T:=rT$
        • $T:=\frac{T}{\log_2(k+2)}$
      • termination condition
  • asymptotic convergence
    • $M(x)$ is reachable from $\forall x\in M(x)$
    • $T$ is at least as large as the depth of the deepest local, nonglobal minimum
  • Avoid following structural properties
    • spiky structure
    • deep trough
    • large plateau-like areas

局部束搜索

从整个后继列表中选择 $k$ 个最佳后继

  • 随机束搜索:依概率选择 $k$ 个后继

遗传算法 (genetic algorithm)

  • 算法
    • 评估种群 $P(t)$ 中每个染色体的适应度
    • 根据适应度函数选择部分染色体
    • 产生后代并替换
  • 染色体设计
    • 01 串
  • 适应函数设计 (fitness):$f(h)$
    • 值越高,解越优
  • 基于适应度函数的选择
    • 轮盘赌选择:与适应度成比例
    • 锦标赛选择:按预定义概率 $p$ 选择较大适应度假设
    • 排序选择
  • 遗传算子 (GA operator):对从当前群体中选择的染色体进行重组
    • 交叉:选择两个候选个体,分解一个个体,然后交换分量形成候选个体
    • 变异:选择一个候选个体,随机选择一位取反
  • 模式定理(John Holland 1970s):Short schemata with large fitness will increase their representation in the population during the evolution
    • 模式:0,1,#组成的任意串,代表一个 01 串集合
    • 轮盘赌选择:$P(h)=\frac{f(h)}{n\overline{f}(t)}$
    • $P(h\in s)=\frac{\hat u(s,t)}{n\overline{f}(t)}m(s,t)$
      • $m(s,t)$: 第 $t$ 代种群中模式 $s$ 的实例数量
      • $\hat u(s,t)$: 第 $t$ 代中模式 $s$ 的染色体平均适应度
    • 模式定理 $E(m(s,t+1))\geq\frac{\hat u(s,t)}{\overline{f}(t)}m(s,t)(1-p_c\frac{d(s)}{l-1})(1-p_m)^{o(s)}$
      • $p_c$:单点交叉概率
      • $p_m$:变异概率
      • $o(H)$:阶,模式中确定位置的个数
      • $d(H)$: 长度,模式中第一个确定位置到最后一个确定位置的距离
      • $l$: 染色体长度
  • forbid any feasible solution in the last k steps
  • or require local transformations do not always change the same parts of the representation
  • or modify the cost function

不确定/部分观测搜索

解为应急规划(策略),即包含条件语句

  • 不确定动作搜索
    • 转移模型输出具有不确定性
    • 与或搜索树
      • 确定条件下:或结点
      • 与结点:包含所有可能结果
      • 如果状态在路径中出现,则此路径无非循环解
  • 无传感问题(相容问题)
    • 信念转态空间搜索
  • 部分可感知问题
    • 与或树搜索
  • 联机搜索
    • 竞争比:实际开销与最优解开销
    • 存在不可逆情况
    • 无法在状态间随意传送
    • ONLINE-DFS-Agent
    • Learning Real-time A$^$ (LRTA$^$)
      • 选择 $\min c(s,a,s’)+H(s’)$
      • 更新 $H(s)$

对抗搜索(零和博弈)

极小极大算法

$$ \text{MINIMAX}(s)= \begin{cases} \text{UTILITY}(s) & s\text{ Terminated}\newline \max_{a\in A(s)} \text{MINIMAX}(\text{RESULT}(s,a)) & s\text{ is MAX}\newline \min_{a\in A(s)} \text{MINIMAX}(\text{RESULT}(s,a)) & s\text{ is MIN} \end{cases} $$

  • $\alpha-\beta$ 剪枝
    • $\alpha$= 到目前为止路径上发现的 MAX 的最佳最大选择
    • $\beta$= 到目前为止路径上发现的 MIN 的最佳最小选择
    • MAX 结点中,$v\geq\beta$ 则剪枝
    • MIN 结点中,$v\leq\alpha$ 则剪枝
    • $\beta\leq v\leq\alpha$
  • 行棋排序
    • 使用较好的行棋
    • 绝招:最好行棋,绝招启发式
    • 换位:不同棋序相同状态
    • 换位表:棋局的哈希表
  • 前向剪枝:在某个结点上直接剪枝一些子节点
    • 柱剪枝:只考虑最好的前几种方案
    • PROBCUT 算法
  • 查表优化
  • 实时决策
    • 计算性局限
    • 评估函数:适用于静态棋局
    • 静态搜索:扩展非静态棋局到静态棋局
    • 地平线效应:对手招数使我方严重损失且无法避免
    • 单步延伸:对于某些招无视深度限制延伸
  • 随机博弈

$$ \text{ExpectedMINIMAX}(s)=\begin{cases} \text{UTILITY}(s) & s\text{ is Terminated}\newline \max_a\text{ExpectedMINIMAX}(\text{Result}(s,a)) & s\text{ is MAX}\newline \min_a\text{\text{ExpectedMINIMAX}}(\text{Result}(s,a)) & s\text{ is MIN}\newline \sum_rP(r)\text{ExpectedMINIMAX}(\text{Result}(s,r)) & s\text{ is CHANCE} \end{cases} $$

  • 部分可观测博弈

Monte Caro 树搜索

  • 随机抽样+假设检验+树搜索
  • 解决数空间太大的问题
  • 预测值:节点上有两个数字
    • 该子树上获胜次数
    • 该子树上模拟次数
  • UCT 策略:平衡 Exploration 和 Exploitation
    • UCT(node)=$\frac{W(n)}{N(n)}+(\frac{\ln(N(\text{parent node})}{N(n)})^{\frac{1}{c}}$
    • $N(n)$: 结点被访问次数
    • $W(n)$: 仿真获胜次数
  • 算法
    • SELECTION:利用树策略选择节点
    • EXPANSION: 添加一个 ? 节点
    • SIMULATION(playout/rollout): 执行操作到结束状态或到阈值,基于模拟结果建立新节点值
    • BACKPROPAGATION: 利用新节点值更新之前的树

约束满足问题(CSP)

  • 定义
    • $X$: 变量集合
    • $D$: 值域集合,离散/连续
    • $C$: 约束集合,单元/多元/全局约束
    • 解:$X$的赋值
      • 相容性:不违反约束
      • 完整赋值:每个变量都赋值
  • 约束传播:使用约束缩小一个变量的合法取值范围
  • 局部相容性
    • 结点相容:满足所有一元约束
    • 弧相容:满足所有二元约束
      • AC-3 算法
    • 路径相容:两个变量对另一个变量相容,则每个相容赋值,另一变量可以使其与两个中任一都相容
      • PC-2 算法(1977)
    • $k$-相容:对于任何 $k-1$ 个变量的相容赋值,第 $k$ 个变量总能被赋予一个和前 $k-1$ 个变量相容的值
      • 建立 $k$ 相容的算法最坏情况需要 $n$ 的指数级时间
    • 全局约束
      • Alldiff
      • Atmost
  • CSP 回溯搜索:搜索中若不相容则回溯
    • 变量取值
      • 最少剩余值启发式(MRV)
      • 度启发式
      • 最少约束启发式
    • 运用推理
      • 前向检验:对每个与刚赋值的变量相连的变量,删去与破坏弧相容的值
      • 维护弧相容(MAC):从相连变量调用 AC-3
    • 回溯策略
      • 时序回溯
      • 冲突集回溯
      • 冲突指导的回跳
        • 约束学习
  • CSP 局部搜索
    • 最少冲突启发

规划

设计一个动作规划以达成目的

  • PDDL(planning domain definition language)
    • 流:基元的(无变量的),无函数的原子
    • 状态:流的合取
    • 初始状态:Init
    • 目标状态:Goal
    • 动作:Action(Name(x,y),PRECOND:,EFFECT:)
      • $a\in\text{Action}(s)\iff s\vDash\text{Precond}(a)$
  • 规划搜索算法
    • 前向状态空间搜索
    • 后向相关状态搜索
    • 启发式
      • 规划图算法
  • 资源约束:Resources, Use
  • 时间约束:偏序关系,持续时间
    • 关键路径