目录
引言
本篇要讨论的是如何更有效地求解更多种类的问题。使用成分表示来描述状态:即一组变量,每个变量有自己的值。当每个变量都有自己的赋值同时满足所有关于变量的约束时,问题就得到了解决。这类问题称为约束满足问题,简称CSP。
CSP搜索算法利用了状态结构的优势,使用的是通用策略而不是问题专用启发式来求解复杂问题。主要思想是通过识别违反约束的变量/值的组合迅速消除大规模的搜索空间。
6.1 定义约束满足问题
约束满足问题包含三个成分、
和
:
| 变量集合 |
|
| 值域集合 |
|
| 描述变量取值的约束集合,每个约束 |
关系可以显式地列出所有关系元组,也可以是支持如下两个操作的抽象关系:测试一个元组是否为一个关系的成员和枚举所有关系成员。
例如,如果、
的值域均为
,约束是二者不能取相同值,关系可如下描述:
或
。
为求解CSP,需要定义状态空间和解的概念。问题的状态由对部分或全部变量的一个赋值来定义,。一个不违反任何约束条件的赋值称作相容的或者合法的赋值。完整赋值是指每个变量都已赋值,而CSP的解是相容的、完整的赋值。部分赋值是指只有部分变量赋值。
6.1.1 实例:地图着色问题
现在来看澳大利亚地图,地图显示出每个州及边界。任务是对每个区域涂上红色、绿色或者蓝色,要求是相邻的区域颜色不能相同。将此任务形式化为CSP,把图中的区域定义为变量:


本文介绍了约束满足问题(CSP)的概念,通过地图着色和作业调度问题实例展示其定义与形式化。重点讲解了约束传播的原理,包括节点相容和弧相容,并介绍了AC-3算法的应用。CSP在优化问题中的优势以及处理连续值域和偏好约束的方法也被提及。
:约束满足问题(上)&spm=1001.2101.3001.5002&articleId=124389780&d=1&t=3&u=343d28d81a764086bd9f11f12804ecff)
2万+

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



