人工智能

约束传播与回溯:CSP 的工程解法

导读:Russell 与 Norvig 第 6 章把一大类问题(排课、排班、数独、调度)抽象为 CSP:变量、域、约束。解法骨架是回溯、传播加智能排序。

回溯搜索的三个增强

变量排序 MRV(剩余域最小优先)尽早失败;值排序 LCV(约束最少优先)给邻居留余地;度启发式处理平局。三者把指数搜索的常数压到工程可接受。

前向检查与弧相容(AC-3):赋值后即时删除邻居的非法值,把失败发现在搜索树浅层。数独的人肉解法就是人肉弧相容。

结构与分解

约束图是树时线性可解:树分解把一般图切成树的胶水(图分割),分解宽度决定难度——CSP 难度不取决于变量数而取决于约束图的环。

局部搜索(最小冲突)对大规模 CSP 惊人有效:随机重启加最少冲突移动,数百万皇后的 n 皇后可解——完备性与效率的另一条路线。

与现代优化的接口

CSP 是 SAT 与整数规划的近亲:编码成 SAT 用现代求解器(CDCL)往往强于手写搜索。运筹调度用整数规划与约束规划混合。工程判断:约束硬且结构清晰用 CSP 与 SAT,目标软且连续用数值优化。

常见误区

  • 变量排序固定导致在同一个坏分支反复深挖。
  • 忽略值对称性,重复搜索等价解。

吃透自检

  • 能实现 AC-3 并证明其复杂度
  • 能对给定 CSP 选择合适的启发式组合
  • 能解释树分解宽度与求解难度的关系

← 人工智能 书目精读列表 经典研读