人工智能搜索策略.ppt

上传人:wj 文档编号:239528 上传时间:2022-10-07 格式:PPT 页数:94 大小:3.81MB
下载 相关 举报
人工智能搜索策略.ppt_第1页
第1页 / 共94页
人工智能搜索策略.ppt_第2页
第2页 / 共94页
人工智能搜索策略.ppt_第3页
第3页 / 共94页
人工智能搜索策略.ppt_第4页
第4页 / 共94页
人工智能搜索策略.ppt_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

人工智能搜索策略.ppt

《人工智能搜索策略.ppt》由会员分享,可在线阅读,更多相关《人工智能搜索策略.ppt(94页珍藏版)》请在冰豆网上搜索。

人工智能搜索策略.ppt

搜索策略,搜索问题,人工智能的一个基本问题,在二十世纪五十年代人工智能概念的提出至今,人工智能界已对搜索技术开展了大量研究,取得了丰硕的成果。

搜索是人工智能的一个基本问题,是推理不可分割的一部分。

一个问题的求解过程其实就是搜索过程,所以搜索实际上就是求解问题的一种方法。

Nilsson把搜索列为人工智能研究中的四个核心问题之一。

本部分将讨论目标状态和最优路径的确定,以及如何从初始状态经过变换得到目标状态等,将在各节分别讨论一些通用的搜索策略,以及状态空间搜索和树搜索策略。

最后简要介绍智能搜索算法的效率和约束满足问题。

3.1基本概念(BasicConception),现实世界中的大多数问题都是非结构化问题,一般不存在现成的求解方法来求解这样的问题,而只能利用已有的知识一步一步地摸索着前进。

在这一过程中,所要解决的问题是如何寻找可利用的知识,即如何确定推理路线,才能使在付出尽量少的代价下把问题圆满解决。

如果存在多条路线可实现对问题的求解,那就又存在着这样的问题,即如何从这多条求解路线中,选出一条使它的求解代价最小,以提高求解程序的运行效率。

根据问题的实际情况,按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条解决问题的推理路线的过程,就称为搜索。

1.搜索包含两层含义找到从初始事实到问题最终答案的一条推理路线;找到的这条路线是时间和空间复杂度最小的求解路线。

举一个具体的例子实现一个能够中国象棋下棋的程序。

3.1基本概念(BasicConception)3.1.1什么是搜索(Whatssearch),2.搜索的种类(Thetypeofsearch)搜索分为盲目搜索和启发式搜索两种盲目搜索又称无信息搜索,也就是说,在搜索过程中,只按预先规定的搜索控制策略进行搜索,而没有任何中间信息来改变这些控制策略。

这就使得这样的搜索带有盲目性,效率不高。

盲目搜索只用于解决比较简单的问题。

启发式搜索又称有信息搜索,它是指在搜索求解过程中,根据问题本身的特性或搜索过程中产生的一些信息来不断地改变或调整搜索的方向,使搜索朝着最有希望的方向前进,加速问题的求解,并找到最优解。

3.1.1什么是搜索(Whatssearch),问题求解系统可在两种基本情况下运用启发式策略:

一个问题由于在问题陈述和数据获取方面固有的模糊性,可能会使它没有一个确定的解,即它是一个模糊系统。

虽然一个问题可能有确定解,但是求解过程中的搜索代价将令人难以接受,在很多问题中,其状态空间特别大,搜索中生成扩展的状态数会随着搜索的深度呈指数级增长。

在这种情况下,穷尽式搜索策略如宽度优先和深度优先搜索,在一个给定的较实际的时空内很可能得不到最终的解,而启发式策略则通过引导搜索向最有希望的方向进行来降低搜索复杂度。

通过仔细考虑,删除某些状态及其后裔,启发式策略可以消除组合爆炸,并得到令人能接受的解。

3.1.1什么是搜索(Whatssearch),3.1.1什么是搜索(Whatssearch),启发式策略的缺点:

极易出错。

在解决问题过程中启发仅仅是下一步将要采取措施的一个猜想,它常常根据经验和直觉来判断。

由于启发式搜索只利用特定问题的有限的信息,如当前open表中状态的描述及其之间的关系,要想准确地预测下一步在状态空间中采取的具体的搜索行为是很难办到的。

一个启发式搜索可能得到一个次最佳解,也可能一无所获,这是启发式搜索固有的局限性,而这种局限性不可能由所谓更好的启发式策略或更有效的搜索算法来彻底消除。

3.1.2适合于搜索的知识表示方法,状态空间表示法:

算符、状态、状态空间与或树表示法:

分解、等价变化;本原问题、端节点与终止节点、可解节点、不可解节点、解树,状态空间搜索策略分类:

盲目搜索按事先规定好的路线进行搜索,不使用与问题有关的启发性信息;适用于其状态空间图是树状结构的一类问题。

它包括广度优先搜索、深度优先搜索、有界深度优先搜索、代价树的广度优先搜索以及代价树的深度优先搜索。

启发式搜索搜索过程中使用与问题有关的启发性信息,并以启发性信息指导搜索过程;可以高效地求解结构复杂的问题。

它包括局部择优搜索、全局择优搜索和A*算法。

3.2状态空间的搜索策略,3.2.1状态空间的一般搜索过程,1.状态空间图状态空间图是一个有向图,当把一个待求解的问题表示为状态空间以后,就可以通过对状态空间的搜索,实现对问题的求解。

如果从状态空间图的角度来看,则对问题的求解就相当于在有向图上寻找一条从某一节点(初始状态节点)到另一节点(目标状态节点)的路径。

3.2.1状态空间的一般搜索过程,2.状态空间搜索法求解问题的基本思想首先将问题的初始状态(即状态空间图中的初始节点)当作当前状态,选择适当的算符作用于当前状态,生成一组后继状态(或称后继节点),然后检查这组后继状态中有没有目标状态。

如果有,则说明搜索成功,从初始状态到目标状态的一系列算符即是问题的解;若没有,则按照某种控制策略从已生成的状态中再选一个状态作为当前状态,重复上述过程,直到目标状态出现或不再有可供操作的状态及算符时为止。

3.状态空间的搜索过程需要的两个数据结构OPEN表:

用于存放刚生成的节点,这些节点也是待扩展的,所以OPEN表也称为未扩展节点表;CLOSED表:

CLOSED表则是用来存放将要扩展或已经扩展的节点,所以它被称为已扩展节点表。

4.状态空间的一般搜索过程描述如下:

把初始节点S0放入OPEN表,并建立目前只包含S0的图,记为G;检查OPEN表是否为空,若为空则问题无解,退出。

把OPEN表的第一个节点取出并放入CLOSED表,并记该节点为节点n;检查节点n是否是目标节点,如果是目标节点,则说明得到了问题的解,过程成功退出,并返回从节点n逆向回溯到S0得出的路径;,3.2.1状态空间的一般搜索过程,扩展节点n,生成一组子节点。

把其中不是节点n先辈的那些子节点记做集合M,并把这些子节点作为节点n的子节点加入G中。

针对M中子节点的不同情况,分别进行如下处理:

对于那些未曾在G图中出现过的M成员设置一个指向父节点(即节点n)的指针,并把它们加入OPEN表对于那些先前已在G图中出现过的M成员,确定是否需要修改它指向父节点的指针。

对于那些先前已在G中出现并且已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针。

按某种搜索策略对OPEN表中的节点进行排序。

转第2)步。

3.2.1状态空间的一般搜索过程,S9扩展之后生成的子节点有S1,S6,S12,S13。

但是,S1是S9的祖先节点,所以S9的子集M=S6,S12,S13其中,S13满足第1种情况;S12满第2种情况;S6满足第3种情况。

下面对上述过程作一些说明:

1)上述过程是状态空间的一般搜索过程,具有通用性,在此之后讨论的各种搜索策略都可看作是它的一个特例。

各种搜索策略的主要区别是对OPEN表中节点排序的准则不同。

例如广度优先搜索把先生成的子节点排在前面,而深度优先搜索则把后生成的子节点排在前面。

2)一个节点经一个算符操作后一般只生成一个子节点,但适用于一个节点的算符可能有多个,此时就会生成一组子节点。

在这些子节点中可能有些是当前扩展节点(即节点n)的父节点,祖父节点等,此时不能把这些先辈节点作为当前扩展节点的子节点。

余下的子节点记作集合M,并加入图G中。

这就是第5)步要说明的意思。

3)一个新生成的节点,它可能是第一次被生成的节点,也可能是先前已作为其它节点的后继节点被生成过,当前又作为另一个节点的后继节点被再次生成。

此时,它究竟应作为哪个节点的后继节点呢?

一般由原始节点到该节点路径上所付出的代价来决定,哪条路径付出的代价小,相应的节点就作为它的父节点。

4)通过搜索所得到的图称为搜索图,由搜索图中的所有节点及反向指针(在第6)步形成的指向父节点的指针)所构成的集合是一棵树,称为搜索树。

5)在搜索过程中,一旦某个被考察的节点是目标节点(第5)步)就得到了一个解。

该解是由从初始节点到该目标节点路径上的算符构成的,而路径由第7)步形成的反向指针指定。

6)如果在搜索中一直找不到目标节点,而且OPEN表中不再有可供扩展的节点,则搜索失败,在第3)步退出。

7)由于盲目搜索仅适用于其状态空间是树状结构的问题,因此对盲目搜索而言,不会出现一般搜索过程第6)步中,两点的问题,每个节点经扩展后生成的子节点都是第一次出现的节点,不必检查并修改指针方向。

5.搜索过程举例:

3.2.1状态空间的一般搜索过程,实心黑点代表已扩展了节点,它们位于CLOSED表上;空心圆圈代表未扩展的节点,它们位于OPEN表上;有向边旁边的箭头是指向父节点的指针,它们是在第6)步形成的。

假设现在要扩展节点1,并且只生成单一的后继节点2。

但是目前节点2已有父节点3,即节点2在先前扩节点3时已被生成了,现在又作为节点1的后继节点被再次生成。

一.广度优先搜索,广度优先搜索又称为宽度优先搜索。

基本思想是:

从初始节点S0开始,逐层地对节点进行扩展并考察它是否为目标节点,在第n层的节点没有全部扩展并考察之前,不对第n+1层的节点进行扩展。

OPEN表中的节点总是按进入的先后顺序排列,先进入的节点排在前面,后进入的排在后面。

3.2.2状态空间的盲目搜索,广度优先搜索过程:

1)把起始节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答);2)如果OPEN是个空表,则没有解,失败退出;否则继续;3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED扩展节点表中;4)扩展节点n。

如果没有后继节点,则转向上述第2)步;5)把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针;6)如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第2)步。

一.广度优先搜索,广度优先搜索示意图:

一.广度优先搜索,一.广度优先搜索,广度优先搜索举例:

重排九宫问题。

在33的方格棋盘上放置分别标有数字1,2,3,4,5,6,7,8的八张牌,初始状态为S0,目标状态为Sg,如图所示。

可用的算符有四种。

按照左上右下的顺序遍历,初始状态,目标状态,解路径:

S0-3-8-16-26,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,缺点:

盲目性大,当目标节点距离初始节点较远时将会产生许多无用节点;搜索效率低。

优点:

是完备的。

深度优先搜索在深度优先搜索中,我们首先扩展最新产生的(即最深的)节点。

深度相等的节点可以任意排列。

对于许多问题,其状态空间搜索树的深度可能为无限深,或者可能至少要比某个可接受的解答序列的已知深度上限还要深。

为了避免考虑太长的路径(防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度深度界限。

任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处理。

二、深度优先搜索,示意图,例:

按深度优先搜索生成的八数码难题搜索树其算法的基本思想与广度优先搜索类似,唯一不同就在第5)步中:

把n的所有后继节点放到OPEN表的首部,并提供从这些后继节点回到n的指针。

缺点:

有可能陷入无穷分支。

算法是不完备的。

基本思想:

对深度优先搜索引入搜索深度的界限(设为dm)当搜索深度达到了深度界限,而尚未出现目标节点时,就换一个分支进行搜索。

三、有界深度优先搜索,有界深度优先搜索算法如下:

把起始节点S0放到未扩展节点OPEN表中,置S0的深度为d(S0)=0;如果OPEN为一空表,则失败退出;OPEN表的第一个节点(节点n)从OPEN表移到CLOSED表;考查结点n是否为目标节点。

若是,则求得了问题的解,退出;如果节点n的深度d(节点n)等于最大深度(dm),则转2);若节点n不可扩展,则转第2)步;扩展节点n,将其子节点放入OPEN表的首部,并为其配置指向父节点的指针。

然后转第2)步。

三、有界深度优先搜索,设深度界限dm4,用有界深度优先搜索方法求解

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1