高级人工智能—约束推理(学习)

原创 2013年12月05日 10:14:12

     约束满足问题(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


[人工智能]机器学习知识体系篇(初级篇,中级篇,高级篇)

[人工智能]机器学习知识体系篇(初级篇,中级篇,高级篇)
  • u012719556
  • u012719556
  • 2016年11月19日 12:32
  • 6481

干货 | 人工智能体系大纲图谱(初、中、高级篇)

可以用来开发机器学习主要有三门语言:Python Java C++,其中Python是主流。下面是Python具体的学习大纲,所以大家也可以参考来学习一下。...
  • chenjunji123456
  • chenjunji123456
  • 2016年11月08日 10:03
  • 660

Unity人工智能确定性AI算法之随机运动

所谓确定性算法是一些预先确定或者预先编程的操作,比如《星球大战》游戏中的小行星的AI都是非常简单的,都是以随机速率将其沿着随机的方向发射出去,这是一种最简单的智能,不过它们的智能都是相当确定和可预知的...
  • qq_26399665
  • qq_26399665
  • 2016年09月20日 19:54
  • 346

Unity人工智能学习—确定性AI算法之随机运动

Unity人工智能学习—确定性AI算法之随机运动
  • zhangxiao13627093203
  • zhangxiao13627093203
  • 2015年08月12日 16:00
  • 1462

人工智能学习方法

转自:https://www.zhihu.com/question/49909565 李嘉璇 《TensorFlow技术解析与实战》作者。深度学习研发 298 人赞...
  • lixiaowei16
  • lixiaowei16
  • 2017年05月26日 15:28
  • 4569

人工智能“六步走”学习路线

人工智能“六步走”学习路线 1、学习并掌握一些数学知识 高等数学是基础中的基础,一切理工科都需要这个打底,数据挖掘、人工智能、模式识别此类跟数据打交道的又尤其需要多元微积分运算基础 线性代数很重...
  • isuccess88
  • isuccess88
  • 2017年01月17日 22:08
  • 13502

人工智能之机器学习路线图

1. 引言 也许你和这个叫『机器学习』的家伙一点也不熟,但是你举起iphone手机拍照的时候,早已习惯它帮你框出人脸;也自然而然点开今日头条推给你的新闻;也习惯逛淘宝点了找相似之后货比三家;亦或喜...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2016年09月07日 23:21
  • 22511

人工智能工程师学习路线

人工智能工程师学习路线 转自http://edu.csdn.net/topic/ai1?utm_source=home4
  • sinat_41418945
  • sinat_41418945
  • 2017年12月16日 16:49
  • 393

人工智能相关学习资料

资料
  • SailingLT
  • SailingLT
  • 2017年06月06日 16:20
  • 1788

我的人工智能学习进程

笔者毕业四年,做了两年web,做了两年嵌入式软件,都不精通。突然想搞AI 搞深度学习,因为兴趣。谁都知道这是一个天大的大坑,可能一辈子都出不来。可我就想要出不来的,可以沉迷一辈子那种。所以列个进程表,...
  • aimaiti
  • aimaiti
  • 2017年06月28日 11:53
  • 517
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高级人工智能—约束推理(学习)
举报原因:
原因补充:

(最多只允许输入30个字)