人工智能课件-搜索技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

状态空间法
• 状态(State): 是表示问题求解过程中每一步问题状况的数据结构,它可 形式地表示为: Sk={Sk0, Sk1, …} 当对每一个分量都给以确定的值时,就得到了一个具体的 状态。 • 操作(Operator) 也称为算符,它是把问题从一种状态变换为另一种状态的 手段。操作可以是一个机械步骤,一个运算,一条规则或一 个过程。操作可理解为状态集合上的一个函数,它描述了状 态之间的关系。
states 数字的位置 ,共有9!/2=181440 actions 空格的上下左右移动 goal test 给定的目标状态 path cost 每一步消耗为1
二阶梵塔问题
二阶梵塔问题。设有三根钢针,它们的编号分别是 1号、 2 号 和3号。在初始情况下,1号钢针上穿有 A、B两个金片,A比 B小, A位于B的上面。要求把这两个金片全部移到另一根钢 针上,而且规定每次只能移动一个金片,任何时刻都不能使 大的位于小的上面。
状态空间(State space)
用来描述一个问题的全部状态以及这些状态之间的相互 关系。常用一个三元组表示为:
(S, F, G)
其中,S为问题的所有初始状态的集合;F为操作的集合;G 为目标状态的集合。
状态空间也可用一个赋值的有向图来表示,该有向图称为 状态空间图。在状态空间图中,节点表示问题的状态,有向 边表示操作。
初始状态集合和操作符集合定义了问题的搜索空间
状态空间法求解问题的基本过程:
首先为问题选择适当的“状态”及“操作”的形式化描述方法 ;
然后从某个初始状态出发,每次使用一个“操作”,递增地 建立起操作序列,直到达到目标状态为止; 此时,由初始状态到目标状态所使用的算符序列就是该问 题的一个解。
八数码问题
S10=(3, 0, 0) S11=(2, 2, 0)
S13=(0, 2, 0) S14=(0, 1, 0) S15=(0, 0, 0)
操作是指用船把修道士或野人从河的左岸运到右岸,或从河的
右岸运到左岸。
每个操作都应当满足如下条件: 一是船至少有一个人(m或c)操作,离开岸边的m和c的减少 数目应该等于到达岸边的m和c的增加数目; 二是每次操作船上人数不得超过2个;
右岸船数
b'=1-b
在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中 之一。因此,共有4×4×2=32种状态。
这32种状态并非全有意义,除去不合法状态和修道士被野人吃
掉的状态,有意义的状态只有16种:
S0=(3, 3, 1) S4=(1, 1, 1) S8=(3, 2, 0) S12=(1, 1,0) S1=(3, 2, 1) S5=(0, 3, 1) S9=(3, 1, 0) S2=(3, 1, 1) S6=(0, 2, 1) S3=(2, 2, 1) S7=(0, 1, 1)
B(i, j)表示把金片B从第i号钢针一到第j号钢针上。共有12 种操作,它们分别是:
A(1, 2) A(1, 3) A(2, 1) A(2, 3) A(3, 1) A(3, 2)
B(1, 2) B(1, 3) B(2, 1) B(2, 3) B(3, 1) B(3, 2)
根据上述9种可能的状态和12种操作,可构成二阶梵塔问 题的状态空间图,如下图所示。
搜索的基本概念
• 搜索的含义
• 状态空间法
• 适用情况:
不良结构或非结构化问题;难以获得求解所需的全部信息; 更没有现成的算法可供求解使用。
概念:
依靠经验,利用已有知识,根据问题的实际情况,不断寻找 可利用知识,从而构造一条代价最小的推理路线,使问题得 以解决的过程称为搜索
搜索的类型 按是否使用启发式信息: • 盲目搜索:按预定的控制策略进行搜索,在搜索过程中获得 的中间信息并不改变控制策略。 • 启发式搜索:在搜索中加入了与问题有关的启发性信息,用 于指导搜索朝着最有希望的方向前进,加速问题的求解过程 并找到最优解。 按问题的表示方式: • 状态空间搜索:用状态空间法来求解问题所进行的搜索 • 与或树搜索:用问题归约法来求解问题时所进行的搜索
状态空间搜索过程要点
搜索过程扩展后继节点的次序
• 如果搜索是以接近起始节点的程度(由节点之间连结 弧线的数目来衡量)依次扩展节点,称为广(宽)度优先 搜索 • 如果搜索时首先扩展最新产生的节点,称为深度优先 搜索
状态空间搜索过程要点 • 调整指针


扩展一个节点
– 生成出该节点的所有后继节点。 弧的费用

– 有一条弧连接ni和nj两个节点, 用C(ni, nj)表示从ni到nj 的费用(耗散值)。 路径的耗散值 – 一条路径的耗散值等于连接这条路径各节点间所有耗 散值的总和。用C(ni, nj)表示从ni到nj的路径的耗散值 。
例 修道士(Missionaries)和野人(Cannibals)问题(简称M-C问题)
设在河的一岸有三个野人、三个修道士和一条船,修道士想用
这条船把所有的人运到河对岸,但受以下条件的约束: 一是修道士和野人都会划船,但每次船上至多可载两个人; 二是在河的任一岸,如果野人数目超过修道士数,修道士会被 野人吃掉。
算法的数据结构和符号约定
Open表:用于存放刚生成的节点
Closed表:用于存放已经扩展或将要扩展的节点 S0:用表示问题的初始状态 G:表示搜索过程所得到的搜索图 M:表示当前扩展节点新生成的且不为自己先辈的子节点集。
如何度量问题求解的性能 一般搜索策略可以通过下面四个准则来评价: – 完备性:如果存在一个解答,该策略是否保证能够找到 ? – 时间复杂性:需要多长时间可以找到解答? – 空间复杂性:执行搜索需要多少存储空间? – 最优性:如果存在不同的几个解答,该策略是否可以发 现最高质量的解答?
搜索策略
搜索是人工智能中的一个基本问题,并与推理密切相关, 搜索策略的优劣,将直接影响到智能系统的性能与推理效率。
主要内容
• 状态空间的表示 • 搜索的基本概念 • 状态空间的搜索 状态空间的一般搜索过程 盲目搜索 启发式搜索
概述
问题求解 AI中每个研究领域都有其各自的特点和规律,但就求解问题的过程看,都 可抽象为一个问题求解过程. 问题求解过程实际上是一个搜索,广义地说,它包含了全部计算机科学 1974年,Nilsson归纳出的AI研究的基本问题 – 知识的模型化和表示 – 常识性推理、演绎和问题解决 – 启发式搜索 – 人工智能系统和语言 本章讨论的表示主要包括: 状态空间表示 问题空间表示
如果野人会服从任何一次过河安排,请规划一个确保修道士和
野人都能过河,且没有修道士被野人吃掉的安全过河计划。
解:首先选取描述问题状态的方法。在这个问题中,需要考虑两岸的修道士 人数和野人数,还需要考虑船在左岸还是在右岸。从而可用一个三元组来表 示状态 S=(m, c, b) 其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。 右岸的状态可由下式确定: 右岸修道士数 m'=3-m 右岸野人数 c'=3-c
什么是搜索 根据问题的实际情况不断寻找可利用的知识,构造出一条代价较少的推 理路线,使问题得到圆满解决的过程称为搜索 包括两个方面: --- 找到从初始事实到问题最终答案的一条推理路径 --- 找到的这条路径在时间和空间上复杂度最小
搜索分两大类:
盲目搜索:也称为无信息搜索,即只按预定的控制策略进行 搜索,在搜索过程中获得的中间信息不用来改进控制策略 启发式搜索: 在搜索中加入了与问题有关的启发性信息,用 于指导搜索朝着最有希望的方向进行,加速问题的求解过程 并找到最优解
问题的初始状态集合为S={S0}
目标状态集合为G={S4, S5}
初始状态S0和目标状态S4、S8如图所示 A B 1 2 3 1
S0=(1, 1)
A B 2
S4=(2, 2)
A B 3 1 2
S8=(3, 3)
3
二阶梵塔问题的初始状态和目标状态
操作分别用A(i, j)和B(i, j)表示
A(i, j)表示把金片A从第i号钢针移到j号钢针上;
• 算符的一次使用,就使问题由一种状态转变为另一种状态.可能 有多个算符序列都可使问题从初始状态变到目标状态,这就得 到了多个解. • 对任何一个状态,可使用的算符可能不止一个,这样由一个状态 所生成的后继状态可能有多个.如何选择下一步的操作,由搜索 策略决定.
搜索策略
• 搜索的基本概念
• 状态空间的盲目搜索

解:设用Sk=(Sk0, Sk1)表示问题的状态,其中,Sk0表示金 片A所在的钢针号,Sk1表示金片B所在的钢针号。全部可能 的问题状态共有以下9种: S0=(1, 1) S1=(1, 2) S2=(1, 3) S3=(2, 1) S4=(2, 2) S5=(2, 3) S6=(3, 1) S7=(3, 2) S8=(3, 3)
状态空间表示法
状态空间表示法是用来表示问题及其搜索过程的一种方法
状态
状态是描述问题求解过程中任一时刻状况的数据结构.
2 3 5 4 8 7 1 6
{A,B,C,D}
(2, 3,7 ,0 , 5, 2, 4, 8, 6)
状态空间表示法
一般一个搜索问题由四个部分组成:
– 初始状态集合:定义了agent所处的环境; – 操作符集合:把一个问题从一个状态变换为另一个状态 的动作; – 目标检测函数:agent用来确定一个状态是不是目标; – 路径费用函数:对每条路径赋予一定费用的函数。
• 状态空间的启发式搜索
状态空间的盲目搜索
一般图搜索过程
广度优先和深度优先搜索
代价树搜索
状态空间搜索的基本思想
先把问题的初始状态作为当前扩展节点对其进行扩展, 生成一组子节点,然后检查问题的目标状态是否出现在这些 子节点中。
若出现,则搜索成功,找到了问题的解;若没出现,则 再按照某种搜索策略从已生成的子节点中选择一个节点作为 当前扩展节点。 重复上述过程,直到目标状态出现在子节点中或者没有 可供操作的节点为止。所谓对一个节点进行“扩展”是指对 该节点用某个可用操作进行作用,生成该节点的一组子节点 。
如何度量问题求解的性能
搜索策略反映了状态空间或问题空间扩展的方法,也决定了
状态或问题的访问顺序。 在AI领域,状态空间图由初始状态和算子隐含地表示,经常是 无限的,它的复杂度根据下面三个值来表达: 分支因子b:任何节点的后继的最大个数
最浅的目标节点的深度d 状态空间中任何路径的最大长度m
状态空间搜索过程要点 求解一个能够满足目标条件的问题可以表达为搜索一个图 以找到一个满足目标状态描述的节点问题。 搜索过程的要点如下: – 起始节点:对应于初始状态描述 – 后继节点:把适用于某个节点状态描述的一些算符用来 推算该节点而得到的新节点,称为该节点的后继节点 – 指针:从每个后继节点返回指向其父辈节点 – 检查各后继节点看是否为目标节点.
三是操作应保证不产生非法状态。
操作的表示: 用符号Pij表示从左岸到右岸的运人操作 用符号Qij表示从右岸到左岸的操作 其中:
i表示船上的修道士人数
j表示船上的野人数 操作集 本问题有10种操作可供选择: F={P01, P10, P11, P02, P20,Q01, Q10, Q11, Q02, Q20}
(1,1)
百度文库A(1,2)
(2,1) B(1,3) (2,3) A(2,3)
A(1,3) (3,1) B(1,2) (3,2) A(3,2)
(3,3)
(1,3)
(1,2)
(2,2)
二阶梵塔的状态空间图
从初始节点(1, 1)到目标节点(2, 2)及(3, 3)的任何一条路径都是问题的一 个解。其中,最短的路径长度是3,它由3个操作组成。例如,从 (1, 1)开始, 通过使用操作A(1, 3)、B(1, 2)及A(3, 2),可到达 (3, 3)。
至此,该问题的状态空间(S,F,G)构造完成,这就完成了对
问题的状态空间表示。
为了求解该问题,根据该状态空间的16种可能达到的合法 状态和10种算符,构造状态转换图。
• 用状态空间表示,首先必须定义状态的描述形式,把问题的一 切状态都表示出来,其次定义算符,完成状态的转换 • 问题的求解过程就是一个把算符不断地作用于状态的过程. 如果在使用某个算符后得到的状态就是目标状态,就得到了 问题的解.这个解就是从初始状态到目标状态所用算符构成 的序列.
相关文档
最新文档