人工智能 一种现代方法 第6章 用搜索树对问题求解
6.1定义约束满足问题(CSP)
变量的集合: X={X1, X2,...Xn}
值域:D={D1, D2...Dn}
约束关系:C
6.1.1地图着色问题
要求相邻区域颜色不同,可把问题形式化为CSP问题。
常规搜索只能问:这个解是目标吗?
CSP一旦发现某部分赋值不满足约束,便可立即剪枝,不再进一步求精。
6.1.2作业调度问题
过程约束:某部分工作需要在其他工作之前完成
洗去约束:几个工作之间不能有时间上的重合
6.1.3CSP的形式化
离散的、连续的、有限值域的、无限值域的
一元约束、二元约束、全局约束
任意有限值域的约束都可以引入约束变量而转换为二元约束
6.2约束传播:CSP中的推理
约束传播可以减小变量的合法取值范围,可以与搜索交替进行,也可以作为搜索前的预处理步骤。
核心思想为局部相容性。
6.2.1结点相容
如果对于单个变量(一个结点),值域(该结点的值域)中的所有取值满足他的一元约束,就称此变量是结点相容的。
运行结点相容可消除一元约束,可将n元约束转换为二元约束。
6.2.2弧相容
如果CSP中某变量值域中的所有取值满足该变量的所有二元约束,则称为弧相容。
AC-3算法:
先把所有弧装入队列
当弧队列不为空时,循环弹出一个弧
如果弧两端的节点满足弧相容,则继续
如果不满足弧相容,即一个结点的值域要变小
保存变小后的值域
把指向该结点的所有弧重新插入队列
6.2.3路径相容
对于{Xi, Xj}的每一个相容赋值,Xm都有合适的取值同时使得{Xi, Xm}和{Xm, Xj}是相容的。
6.2.4 k-相容
对于任一个k-1个变量的相容赋值,第k个变量总能被赋予和前k-1个变量相容的值
1-相容:结点相容
2-相容:弧相容
3-相容:路径相容
6.2.5全局约束
Alldiff约束:每一个变量都不能相同
atmost约束:资源总和受限
6.2.6 数独游戏9*9
一共有27个Alldiff约束,行9列9方框9
6.3 CSP的回溯搜索
可交换性:对于行动的先后顺序对结果没有影响的问题,可以交换行动顺序。从排列变为组合。
回溯搜索:每次为一个变量赋值,当没有合法值时就回溯到上一个有合法值的变量。
6.3.1变量的取值顺序
var <- SELECT-UNASSIGNED-VARIABLE(csp)
选择下一个未安排的节点的顺序对效率有很大影响
最少剩余价值(MRV)启发式:选择合法取值最少的变量。----强有力的指引
也就是选择最少剩余值的变量,通过早期有效剪枝,降低搜索树结点数。
度启发式:选择与其他未赋值变量约束最多的变量来试图降低未来的分支引子。----打破僵局
最少约束值启发式:给邻居变量留下更多的选择。对于只需要找到一个解的问题有效。
6.3.2搜索与推理交错进行
向前检验:只要某个X赋值了,对于动过约束与X相关的未赋值的变量Y,从Y的值域中删除与X不相容的值。
维护弧相容(MAC):能够检测所有的不相容,当变量Xi被赋值后,INFERENCE调用AC-3。
6.3.3智能回溯:向后看
BACKTRACKING-SEARCH
时序回溯:当一个分支上的搜索失败时,退回前一个变量并尝试另一值。
回跳:回溯到冲突集中时间最近的赋值,跳过与当前节点没有冲突的节点。
冲突指导的回跳:先找出当前变量的冲突集,回跳到冲突集中最近的元素,并将新元素的冲突集与原冲突集取并集,在减去新元素,检验是否还有冲突,循环。可以知道要退回多远
本文介绍了《人工智能:一种现代方法》第6章内容,主要探讨了约束满足问题(CSP)及其在地图着色、作业调度等问题中的应用。讲解了CSP的定义、约束传播、回溯搜索策略,如结点相容、弧相容、全局约束以及数独游戏的CSP解决方案。此外,还讨论了变量赋值顺序对搜索效率的影响以及智能回溯方法。

2110

被折叠的 条评论
为什么被折叠?



