摘要

本文会讲清楚:
1)什么是CSP(约束满足问题)
2)约束传播与局部相容性
3)CSP形式化为一个搜索问题(回溯法)
4)如何提高搜索效率(变量/值的顺序,提前检查失败等)

一、CSP

使用要素化来描述状态:一组变量,每个变量有自己的值。当每个变量都有自己的赋值同时满足所有关于变量的约束时,问题就得到了解决。这类问题就叫做约束满足问题(CSP),全称Constraint Satisfaction Problem。

CSP利用了状态结构的优势,使用的是通用策略而不是问题专业启发式来求解复杂问题。

主要思想:通过识别违反约束的变量/值的组合迅速消除大规模的搜索空间。

1.2 定义CSP

CSP包含三个成分X,D,C:
X:变量集合 (variables)
D:值域集合,每个变量有自己的值域 (domain)
C:描述变量取值的约束集合 (constraint)

C的形式一般是:

1.3 CSP的优点


图1.3.1 CSP的优点

对比局部搜索(全分配,每次必须考虑整个状态),但是CSP,是部分分配,每次只需要考虑部分赋值。(一旦不是解,立即丢弃)

1.4 CSP的形式化

用约束语言来表示CSP的约束条件。
一元约束:只限制单个变量的取值
二元约束:与两个变量有关。

变量个数任意的约束称为全局约束。


图1.4.1 约束优化问题(COP)

二、约束传播

核心思想:局部相容性。

2.1 节点相容

单个变量(对应一个节点)值域中的所有取值满足它的一元约束,就是节点相容的。

2.2 弧相容

如果CSP中某变量值域中所有取值满足该变量所有二元约束,则此变量弧相容。

比如:对变量X1,X2,如果D1中每个数值在D2中都存在一些数值满足弧(X1,X2)的二元约束,那么X1相对X2是弧相容的。

如果每个变量相对其他变量都是弧相容的,则称该网络是弧相容的。


图2.2.1 弧相容算法AC-3

2.3 路径相容

弧相容可能缩小变量的值域,有时甚至还能找到解(每各变量值域大小都为1时),或者有时发现CSP无解(一些变量的值域大小=0)。

但是弧相容也会失败(比如澳大利亚地图着色问题,如果只有两种颜色,弧相容意义不大),所以才要用更强的相容概念。

路径相容:观察变量得到隐式约束,并以此来加强二元约束。


图2.3.1 路径相容的定义

2.4 k-相容

如果对于任何k-1个变量的相容赋值,第k个变量总能被赋予一个和前k-1个变量相容的值,那么这个CSP就是k相容的。

三、全局约束

1)Alldiff约束:表示所有相关变量必须取不同的值。
2)atmost约束(另一个重要的高阶约束):也叫资源约束。

如果对于每个变量X和它的取值上下界,每个变量Y都存在某个取值满足X和Y之间的约束,则称该CSP是边界相容(此边界传播广泛应用于实际CSP)。

四、CSP的回溯搜索

很多CSP只用推理是无法求解的,还需要通过搜索来求解。

部分赋值的回溯搜索算法:
可以用标准的深度优先搜索,状态可能是部分赋值,行动是将var=value加入到赋值中。

回溯搜索用于深度优先搜索中,每次为一个变量选一个赋值,没有合法的值的时候就回溯。


图4.1 CSP的简单回溯算法

五、有效解决CSP

5.1 变量和取值顺序

变量:
1)选择“合法”取值最少的变量——称为最少剩余值(MRV)启发式。(做一个强有力的引导,方便提早遇到失败,从而剪枝)
2)度启发式:通过选择与其他未赋值变量约束最多的变量来试图降低未来的分支因子。(用来打破僵局,如选择第一个着色区域)

值:
最少约束至:优先选择的赋值是给邻居变量留下更多的选择(为了找到一个解,所以没必要排序,二十要最少约束)

5.2 搜索与推理交错进行

前向检验:只要变量X被赋值,就对它进行弧相容检查,对每个通过约束与X相关的未赋值变量Y,从Y值域中删去与X不相容的值。

5.3 智能回溯:向后看

主要概念:前向检验;冲突集;回跳

六、CSP的局部搜索

局部搜索算法对求解许多CSP都是很有效的。它们使用完整状态的形式化:初始状态是给每个变量都赋一个值,搜索过程是一次改变一个变量的取值。

七、文末诗词

满恨游丝兼落絮。红杏开时,一霎(sha,四声)清明雨。浓睡觉来莺乱语。惊残好梦无寻处。
                  ——晏殊《蝶恋花·六曲阑干偎碧树》

人工智能第六章——约束满足问题(CSP)相关推荐

  1. 人工智能第6章 约束满足问题

    定义约束满足问题 约束满足问题: 环境:单agent.延续.静态.完全可观察 一种特殊的搜索问题,通过识别违反约束的变量/值的组合迅速消除大规模的搜索空间,利用结构状态的优势. 约束满足问题包含变量X ...

  2. 人工智能:第六章 专家系统

    第六章专家系统 教学内容:本章主要介绍专家系统的定义.结构.特点和类型,分析了基于规则的专家系统.基于框架的专家系统和基于模型的专家系统,归纳了协同式和分布式等新型专家系统,并结合实例介绍了专家系统的 ...

  3. 第二十六章 使用 CSP 进行基于标签的开发

    文章目录 第二十六章 使用 CSP 进行基于标签的开发 CSP 编译器 自动和手动页面编译 第二十六章 使用 CSP 进行基于标签的开发 CSP 允许使用标准 HTML 文件开发 CSP 应用程序. ...

  4. 人工智能导论测试题——第六章 进化智能与群体智能(1)

    人工智能导论测试题--第六章 进化智能与群体智能(1) 1单选 以下关于遗传算法中"繁殖"的说法,错误的是:(C) A.交叉基因的概率是遗传算法中的"交叉算子" ...

  5. 《TensorFlow+Keras深度学习人工智能实践应用》林大贵著第六章第七章代码

    书本上提供的代码下载地址失效了 第六章 kerasMNIST手写数字识别数据集和第七章Keras多层感知器识别手写数字的代码 单纯的按书上的顺序copy下来的,自己加了点注释 jupyter note ...

  6. 数字图像处理:第六章 几何运算

    第六章 几何运算 目录 引言 灰度级插值 空间变换 3.1 仿射变换 3.2 透视变换 几何校正 图象卷绕(Image Warping) 图象变形(Image Morphing) 作业 1.引言 几何 ...

  7. zabbix专题:第六章 动作Actions、告警方式Medias

    第六章 动作Actions.告警方式Medias 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 本节目录大 ...

  8. Python中的图像处理(第六章)Python图像量化及采样处理(2)

    Python中的图像处理(第六章)Python图像量化及采样处理(2) 前言 一. Python准备 二. Python仿真 三. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上 ...

  9. 游戏设计的艺术:一本透镜的书——第十六章 故事和游戏结构能用间接控制巧妙地联合起来

    这是一本游戏设计方面的好书 转自天之虹的博客:http://blog.sina.com.cn/jackiechueng 感谢天之虹的无私奉献 Word版可到本人的资源中下载 第十六章 故事和游戏结构能 ...

  10. 软件工程技术--第六章 软件实现

    第六章 软件实现 本章要点 理解编码的目的与要求: 了解程序设计语言的发展与分类: 了解常见的程序设计语言: 了解程序设计语言的选择原则: 掌握良好的编码风格: 理解结构化程序设计方法: 编码的目的与 ...

最新文章

  1. lnmp php编译参数,LAMP、LNMP环境编译参数查询
  2. ITK:计算图像中的局部噪声
  3. 《DSP using MATLAB》Problem 6.20
  4. 自然语言处理的一些链接
  5. FCPX插件Titles Set for Mac - 三合一黑白文本标题模板
  6. spark与storm的对比
  7. Vue框架里使用Swiper - 安装篇
  8. linux之RAID知识总结
  9. [导入]Myeclipse中XML不出智能提示
  10. iis6 无法访问网站_IIS重启无效
  11. 人工智能TensorFlow工作笔记006---计算图的基本应用_认识计算图_02_以及使用GPU运算
  12. jQuery-JS在iframe中获取父页面的值
  13. H5商城,纯前端静态页面
  14. 常见的Wi-Fi协议------802a/b/g/n/ac系列
  15. 必须了解的EXCEL常用函数都有哪些?【附动图详解】数据分析
  16. 诺基亚pc远程服务器,用远程桌面把win10装进iphone —-40核256G内存的生产力工具随身带...
  17. python 拼音性命按照姓出现的次数排序_Python按姓氏排序字典列表
  18. 简单自定义MVC优化
  19. python图像识别植物识别_python 植物识别 error_code
  20. Window 10将内置眼球追踪技术

热门文章

  1. 开发Web版一对一远程直播教室只需30分钟 - 使用face2face网络教室
  2. HDCP认证过程-收集网上的,作为记录
  3. 用PS快速制作水彩效果人物照片
  4. Tableau安装详解及密钥申请
  5. Salesforce基础名词
  6. 特征点的匹配正确衡量标准与量化
  7. 终端应用安全之网络流量分析
  8. 第四周作业-多线程编程
  9. SSM项目之短信验证码登录
  10. 华为mate xs拍照怎么用?镜像智拍助你告别大饼脸