高级人工智能—约束推理(学习)
约束满足问题(Constraint Satisfaction Problem, 简称CSP) 包含一组变量与一组变量间的约束。变量表示领域参数,每个变量都有一个固定的值域。变量的值域可能是有限的,例如一个布尔变量的值域包含两个值;也可能是离散无限的,如整数域;也可能是连续的,如实数域。
现实生活中的CSP
赋值问题: e.g., who teaches what class
时间安排: e.g., which class is offered when and where?
(1)约束可用于描述领域对象的性质、相互关系、任务要求、目标等。
(2)约束满足问题的目标就是找到所有变量的一个(或多个)赋值,使所有约束都得到满足。
(3)目前约束推理的研究主要集中在两个方面:
约束搜索:约束搜索主要研究有限域上的约束满足。对有限域而言,约束满足问题一般情况下是 一个 NP问题。现有方法:
回溯法
约束传播
智能回溯与真值维护
可变次序例示
局部修正法
约束语言:
CONSTRAINTS: 一种面向电路描述的约束表示语言。
CHIP:是简便、灵活而有效地解决一大类组合问题
COPS:利用面向对象技术,将说明性约束表达与类型层次结合起来。
在实际应用中,算法的表现形式千变万化,但是算法的情况也和数据结构类似。常用的算法大致有如下一些: 贪心法、分治法(如二分法检索)、回溯法、动态规划法、局部搜索法、分支限界法
穷尽搜索方法:产生所有可能的树,然后根据评价标准选择一棵最优的树。
Exhaustive-Search-Top(P) {where P is a CSP of the form(V,D,C)}
1. f:= the null assignment
2. return Exhaustive-Search(f, P)
Exhaustive-Search(f,P)
1. if f is a total assignment of the variables in P
2. if f satisfies the constraints in P
3. answer := f
4. else
5. answer := Unsat
6. else
7. v := some variable in P that is not yet assigned a value by f
8. answer := Unsat
9. for each value x while answer = Unsat
10. f(v) := x
11. answer := Exhaustive-Search(f, P)
12. return answer
贪心法:① 构造可行解的工作分阶段来完成;② 在各个阶段,选择那些在某些意义下是局部最优的方案,期望各阶段的局部最优的选择带来整体最优。
例:Dijkstra的最短路径算法、Kruskal的求最小生成树算法、信号灯问题
回溯算法:回溯法可以去掉一些不存在解的分支,从而大大减少搜索的次数。如八皇后问题、迷宫问题、深度优先周游树或图
Backtracking-Top(P)
1 f := the null assignment
2 return Backtracking(f,P)
Backtracking(f,P)
1 if f is a total assignment of the variables in P
2 answer := f
3 else
4 v := some variable in P that is not yet assigned a value by f
5 answer := Unsat
6 for each value x while answer = Unsat
7 f(v) := x
8 if f satisfies the constraints in P
9 answer := Backtracking(f,P)
10 return answer
高级人工智能—约束推理(学习)相关推荐
- 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(1-5章)
关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...
- 【课程学习】(中国大学MOOC)武汉理工大学高级人工智能原理与技术课后习题笔记(6-9章)
关于 拾年之璐 微信公众号:知行校园汇,点击查看,欢迎关注 其他平台(点击蓝字可访问): GitHub | Gitee | 哔哩哔哩 | 语雀 | 简书 | 微信小程序 | 知行达摩院 本文专栏:研究 ...
- 高级人工智能 读书笔记
高级人工智能 史忠植 3ed 教学园地 有该书 ppt 值得阅读,写得不错 参考书: Artificial Intelligence: Foundations of Computational Ag ...
- python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?
原标题:人工智能需要学习哪些专业课程知识? 谈到人工智能,相信大家已经不陌生了,人工智能技术在近两年已经火得人尽皆知,跟互联网技术火的时候一样,那时行业和产品只要跟互联网相结合,就能在这个风口分得一杯 ...
- 人工智能不是计算机领域能学么,华南理工大学《高级人工智能》考试真题1
华南理工大学<高级人工智能>复习资料 第1部分绪论 1-1.什么是人工智能?试从学科和能力两方面加以说明. 人工智能是用计算机来表示和执行人类的智能活动, 人工智能(学科):是计算机科学中 ...
- AI前沿 | Gartner曲线5大趋势:传感和移动、超能人类、自动机器人、高级人工智能…...
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟 报道 | 公众号 CVLianMeng 转载于 :新智元 [人工智能资源(书 ...
- 人工智能需要学习哪些编程语言?学人工智能要学python吗?
人工智能(Artificial Intelligence,AI)需要学习的编程语言与其他领域相比略有不同,主要需要掌握以下几种编程语言: 人工智能需要学习哪些编程语言? Python:Python是人 ...
- [人工智能-深度学习-5]:神经网络基础 - 生物神经系统与神经元细胞简介
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[人工智能-深度学习-4]:生物神经系统与神经元细胞简介_文火冰糖(王文兵)的博客-CSDN博客 ...
- [人工智能-综述-5]:人工智能课程学习的10大基本问题与学习方法的建议
作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...
最新文章
- BlockChain:《区块链世界简明生存指南(一块听听)》2017-06-06 李笑来—听课笔记分享(2)
- leetcode214. 最短回文串
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
- Node.js log4js日志记录
- 用C语言解“计算圆周率”题
- Franka Emika机械臂快速入门教程
- Kali 2020.4下载安装详细教程
- 360董事长周鸿祎:网络攻击损害不亚于杀伤性武器
- WEB测试和App测试、Android和IOS测试区别
- 系统集成项目管理工程师计算题(沟通渠道)
- HTML网页下,在div标签中嵌套其他html页面
- 嵌入式linux 网络唤醒,GotoHTTP
- [特别篇] 评中国药学家距诺贝尔奖一步之遥
- python操作无界面的chrome浏览器(转)
- 企业信息安全注意事项
- 把圆形放入矩形的Packing问题
- 阿里云服务器在哪?阿里云服务器最新可选地域分享
- 不用root卸载手机系统软件
- JavaWeb_script
- 计算机管理器用户怎么打开,电脑设备管理器在哪里打开【图文】