《人工智能原理》PPT课件.ppt
《《人工智能原理》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《人工智能原理》PPT课件.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、人工智能原理第三章搜索推理技术1从问题表示到问题的解决,有一个求解的从问题表示到问题的解决,有一个求解的过程。接下来要研究的是实现求解的过程,过程。接下来要研究的是实现求解的过程,采用的基本方法包括采用的基本方法包括搜索搜索和和推理推理。本章先介绍本章先介绍搜索技术搜索技术,将要讨论问题求解,将要讨论问题求解的搜索原理,包括一些早期的搜索技术或的搜索原理,包括一些早期的搜索技术或用于解决比较简单问题的搜索原理和一些用于解决比较简单问题的搜索原理和一些比较新的能够求解比较复杂问题的搜索原比较新的能够求解比较复杂问题的搜索原理,包括理,包括A*算法。算法。23.1 3.1 图搜索策略图搜索策略可把
2、图搜索策略看成一种在图中寻找路径可把图搜索策略看成一种在图中寻找路径的方法的方法图中的节点对应于状态,而连线对应于操图中的节点对应于状态,而连线对应于操作符。这些节点和连线作符。这些节点和连线(即状态与操作符即状态与操作符)又分别由产生式系统的数据库和规则来标又分别由产生式系统的数据库和规则来标记记初始节点和目标节点之间的路径。即求得初始节点和目标节点之间的路径。即求得把一个数据库变换为另一数据库的规则序把一个数据库变换为另一数据库的规则序列问题就等价于求得图中的一条路径问题列问题就等价于求得图中的一条路径问题3例子:从某王姓家族的四代中找王例子:从某王姓家族的四代中找王A的后代且其的后代且其
3、寿命为寿命为X的人。的人。王王A:寿命:寿命47,有儿子王,有儿子王B1、王、王B3、王、王B2王王B1:寿命:寿命77,有儿子王,有儿子王C1、王、王C2王王B3:寿命:寿命52,有儿子王,有儿子王D1王王B2:寿命:寿命65,有儿子王,有儿子王E1、王、王E2王王F1:寿命:寿命32 王王G1:寿命:寿命96王王C2:寿命:寿命87,有儿子王,有儿子王F1王王D1:寿命:寿命77,没有儿子,没有儿子王王E1:寿命:寿命57,有儿子王,有儿子王G14 王王E2:寿命:寿命92,有儿子王,有儿子王H1 王王C1:寿命:寿命27,没有儿子,没有儿子王王H1:寿命:寿命51若若X=57,下面讨论一
4、种可通用的图搜索策略求解,下面讨论一种可通用的图搜索策略求解此问题。此问题。如果是一个如果是一个N代的家族表中找其寿命为代的家族表中找其寿命为X的人,的人,我们最可能用的我们最可能用的手工方法手工方法是从家族表的开始往下,是从家族表的开始往下,例中还要求所找的人是某人的后代,就比较复杂例中还要求所找的人是某人的后代,就比较复杂了。如果用了。如果用图图来表示,就很容易了。图中把姓氏来表示,就很容易了。图中把姓氏省去,每个成员的后代按例子中给出名字的先后省去,每个成员的后代按例子中给出名字的先后顺序。图示为:顺序。图示为:56图搜索图搜索(GRAPHSEARCH)(GRAPHSEARCH)的一般过
5、程如下:的一般过程如下:(1)建立一个只含有建立一个只含有起始节点起始节点S的搜索图的搜索图G,把,把S放到一个叫做放到一个叫做OPEN的的未未扩展扩展节点表中(简称节点表中(简称OPEN表)。表)。(2)建立一个叫做建立一个叫做CLOSED的的已扩展已扩展节点表(简称节点表(简称CLOSED表),其初表),其初始为空表。始为空表。(3)LOOP:若:若OPEN表是空表,则失败退出。表是空表,则失败退出。(4)选择选择OPEN表上的第一个节点,把它从表上的第一个节点,把它从OPEN表移出并放进表移出并放进CLOSED表中。称此节点为节点表中。称此节点为节点n,它是,它是CLOSED表中节点的编
6、号。表中节点的编号。(5)若若n为一目标节点,则有解并成功为一目标节点,则有解并成功退出退出,此解是追踪图,此解是追踪图G中沿着指针中沿着指针从从n到到S这条路径而得到的这条路径而得到的(指针将在第指针将在第7步中设置步中设置)。(6)扩展节点扩展节点n,同时生成不是,同时生成不是n的祖先的那些后继节点的集合的祖先的那些后继节点的集合M。把。把M的的这些成员作为这些成员作为n的后继节点添入图的后继节点添入图G中。中。(7)对那些未曾在对那些未曾在G中出现过的中出现过的(既未曾在既未曾在OPEN表上或表上或CLOSED表上出表上出现过的现过的)M成员成员设置设置一个通向一个通向n的指针。把的指针
7、。把M的这些成员加进的这些成员加进OPEN表。表。对已经在对已经在OPEN或或CLOSED表上的每一个表上的每一个M成员,确定是否需要成员,确定是否需要更改更改通通到到n的指针方向。对已在的指针方向。对已在CLOSED表上的每个表上的每个M成员,确定是否需成员,确定是否需要更改图要更改图G中通向它的每个中通向它的每个后裔后裔节点的指针方向。节点的指针方向。(8)按某一任意方式或按某个探试值,按某一任意方式或按某个探试值,重排重排OPEN表。表。(9)GO LOOP。7图搜索算法中的几个重要名词图搜索算法中的几个重要名词 1 1OPENOPEN表表 2 2CLOSEDCLOSED表表 节点节点父
8、节点父节点编号编号节点节点父节点父节点83 3搜索图与搜索树搜索图与搜索树此过程生成一个明确的图此过程生成一个明确的图G(称为搜索图称为搜索图)和和一个一个G的子集的子集T(称为搜索树称为搜索树),树,树T上的每个节点上的每个节点也在图也在图G中。搜索树是由第中。搜索树是由第7步中设置的指针来确步中设置的指针来确定的。定的。G中的每个节点中的每个节点(除除S外外)都有一个只指向都有一个只指向G中一个父辈节点的指针,该父辈节点就定为树中中一个父辈节点的指针,该父辈节点就定为树中那个节点的唯一父辈节点。那个节点的唯一父辈节点。910图搜索方法的几点分析:图搜索方法的几点分析:图搜索过程的第图搜索过
9、程的第8步对步对OPEN表上的节点进行表上的节点进行排序排序,以便,以便能够从中选出一个能够从中选出一个“最好最好”的节点作为第的节点作为第4步扩展用。这步扩展用。这种排序可以是种排序可以是任意任意的即盲目的的即盲目的(属于盲目搜索属于盲目搜索),也可以用,也可以用以后要讨论的各种以后要讨论的各种启发启发思想或其它准则为依据思想或其它准则为依据(属于启发属于启发式搜索式搜索)。每当被选作扩展的节点为目标节点时,这一过。每当被选作扩展的节点为目标节点时,这一过程就宣告成功结束。这时,能够重现从起始节点到目标节程就宣告成功结束。这时,能够重现从起始节点到目标节点的这条成功路径,其办法是从目标节点按
10、指针向点的这条成功路径,其办法是从目标节点按指针向S返回返回追溯。当搜索树不再剩有未被扩展的端节点时,过程就以追溯。当搜索树不再剩有未被扩展的端节点时,过程就以失败告终失败告终(某些节点最终可能没有后继节点,所以某些节点最终可能没有后继节点,所以OPEN表可能最后变成空表表可能最后变成空表)。在失败终止的情况下,从起始节。在失败终止的情况下,从起始节点出发,一定达不到目标节点。点出发,一定达不到目标节点。113.2 3.2 盲目搜索盲目搜索盲目搜索:无需重新安排盲目搜索:无需重新安排OPEN表的搜索表的搜索盲目搜索又叫做无信息搜索,一般只适用盲目搜索又叫做无信息搜索,一般只适用于求解比较简单的
11、问题。于求解比较简单的问题。宽度优先搜索宽度优先搜索深度优先搜索深度优先搜索等代价搜索等代价搜索123.2.1 3.2.1 宽度优先搜索宽度优先搜索 回顾上一节的寻找寿命为回顾上一节的寻找寿命为X的人的例子,如果搜的人的例子,如果搜索时,从节点索时,从节点A开始,对他的三个儿子按从左至开始,对他的三个儿子按从左至右搜索,然后对他的所有孙子按从左至右搜索,右搜索,然后对他的所有孙子按从左至右搜索,依此下去。这种搜索方式就是宽度优先搜索。依此下去。这种搜索方式就是宽度优先搜索。宽度优先搜索宽度优先搜索(breadth-first search)的定义:的定义:如果搜索是以如果搜索是以接近接近起始节
12、点的程度依次扩展节点起始节点的程度依次扩展节点的,那么这种搜索就叫做宽度优先搜索的,那么这种搜索就叫做宽度优先搜索(breadth-first search),如图,如图3.3所示。所示。13从图可见,这从图可见,这种搜索是种搜索是逐层逐层进行的;在对进行的;在对下一层的任一下一层的任一节点进行搜索节点进行搜索之前,必须搜之前,必须搜索完本层的所索完本层的所有节点。有节点。1415宽度优先搜索算法如下:宽度优先搜索算法如下:(1)把起始节点放到把起始节点放到OPEN表中表中(如果该起始节点为一如果该起始节点为一目标节点,则求得一个解答目标节点,则求得一个解答)。(2)如果如果OPEN是个空表,
13、则没有解,失败退出;否是个空表,则没有解,失败退出;否则继续。则继续。(3)把第一个节点把第一个节点(节点节点n)从从OPEN表移出,并把它放表移出,并把它放入入CLOSED扩展节点表中。扩展节点表中。(4)扩展节点扩展节点n。如果没有后继节点,则转向上述第。如果没有后继节点,则转向上述第(2)步。步。(5)把把n的所有后继节点放到的所有后继节点放到OPEN表的表的末端末端,并提,并提供从这些后继节点回到供从这些后继节点回到n的指针。(队列模式)的指针。(队列模式)(6)如果如果n的任一个后继节点是个目标节点,则找到一的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第个解答,成
14、功退出;否则转向第(2)步。步。1617宽度优先搜索方法分析:宽度优先搜索方法分析:宽度优先搜索是图搜索一般过程的宽度优先搜索是图搜索一般过程的特殊特殊情况,将图搜情况,将图搜索一般过程中的第索一般过程中的第8步具体化为本算法中的第步具体化为本算法中的第6步,这步,这实际是将实际是将OPEN表作为表作为“先进先出先进先出”的队列进行操作。的队列进行操作。宽度优先搜索方法能够保证在搜索树中找到一条通向宽度优先搜索方法能够保证在搜索树中找到一条通向目标节点的目标节点的最短途径最短途径;这棵搜索树提供了所有存在的;这棵搜索树提供了所有存在的路径路径(如果没有路径存在,那么对有限图来说,我们就如果没有
15、路径存在,那么对有限图来说,我们就说该法失败退出;对于无限图来说,则永远不会终止说该法失败退出;对于无限图来说,则永远不会终止)。18例:把宽度优先搜索应用于八数码难题时所生成例:把宽度优先搜索应用于八数码难题时所生成的搜索树,这个问题就是要把初始棋局变为如下的搜索树,这个问题就是要把初始棋局变为如下目标棋局的问题:目标棋局的问题:搜索树上的所有节点都标记它们所对应的状态描搜索树上的所有节点都标记它们所对应的状态描述,每个节点旁边的数字表示节点扩展的顺序述,每个节点旁边的数字表示节点扩展的顺序(按顺时针方向移动空格按顺时针方向移动空格)。图中最后一个节点是。图中最后一个节点是目标节点。目标节点
16、。19图图 3.5 3.5 八数码难题的宽度优先搜索树八数码难题的宽度优先搜索树 203.2.2 3.2.2 深度优先搜索深度优先搜索另一种盲目另一种盲目(无信息无信息)搜索叫做深度优先搜索搜索叫做深度优先搜索(depth-first search)。首先扩展最新产生的节点。如下图首先扩展最新产生的节点。如下图21图图 3.6 3.6 深度优先搜索示意图深度优先搜索示意图 图3.6深度优先搜索示意图22分析深度优先搜索示意图可看出,在深度优先搜分析深度优先搜索示意图可看出,在深度优先搜索中,我们首先扩展最新产生的索中,我们首先扩展最新产生的(即最深的即最深的)节点。节点。深度相等的节点可以深度
17、相等的节点可以任意任意排列。排列。23我们定义节点的深度如下:我们定义节点的深度如下:(1)起始节点起始节点(即根节点即根节点)的深度为的深度为0。(2)任何其它节点的深度等于其父辈节点深任何其它节点的深度等于其父辈节点深度加上度加上1。首先,扩展最深的节点的结果使得搜索沿着首先,扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下状态空间某条单一的路径从起始节点向下进行下去;只有当搜索到达一个去;只有当搜索到达一个没有后裔没有后裔的状态时,它的状态时,它才考虑另一条替代的路径。替代路径与前面已经才考虑另一条替代的路径。替代路径与前面已经试过的路径不同之处仅仅在于改变最后
18、试过的路径不同之处仅仅在于改变最后n步,而步,而且保持且保持n尽可能小。尽可能小。24对于许多问题,其状态空间搜索树的深度可能为对于许多问题,其状态空间搜索树的深度可能为无限深,或者可能至少要比某个可接受的解答序无限深,或者可能至少要比某个可接受的解答序列的已知深度上限还要深。为了避免考虑太长的列的已知深度上限还要深。为了避免考虑太长的路径路径(防止搜索过程沿着无益的路径扩展下去防止搜索过程沿着无益的路径扩展下去),往往给出一个节点扩展的最大深度往往给出一个节点扩展的最大深度深度界限深度界限。任何节点如果达到了深度界限,那么都将把它们任何节点如果达到了深度界限,那么都将把它们作为没有后继节点处
19、理。值得说明的是,即使应作为没有后继节点处理。值得说明的是,即使应用了深度界限的规定,所求得的解答路径并不一用了深度界限的规定,所求得的解答路径并不一定就是最短的路径。定就是最短的路径。25含有深度界限的深度优先搜索算法如下:含有深度界限的深度优先搜索算法如下:(1)把起始节点把起始节点S放到未扩展节点放到未扩展节点OPEN表中。表中。如果此节点为一目标节点,则得到一个解。如果此节点为一目标节点,则得到一个解。(2)如果如果OPEN为一空表,则失败退出。为一空表,则失败退出。(3)把第一个节点把第一个节点(节点节点n)从从OPEN表移到表移到CLOSED表。表。(4)如果节点如果节点n的深度等
20、于最大深度,则转向的深度等于最大深度,则转向(2)。(5)扩展节点扩展节点n,产生其全部后裔,并把它们,产生其全部后裔,并把它们放入放入OPEN表的表的前头前头。如果没有后裔,则转向。如果没有后裔,则转向(2)。(6)如果后继节点中有任一个为目标节点,如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向则求得一个解,成功退出;否则,转向(2)。26算法演示图算法演示图 27例:按深度优先搜索生成的八数码难题搜索树,例:按深度优先搜索生成的八数码难题搜索树,我们设置深度界限为我们设置深度界限为5 5。图图3.83.8绘出了搜索树,粗线条的路径表明含绘出了搜索树,粗线条的路径表明含
21、有有5 5条应用规则的一个解。从图可见,深度优先条应用规则的一个解。从图可见,深度优先搜索过程是沿着一条路径进行下去,直到深度界搜索过程是沿着一条路径进行下去,直到深度界限为止,然后再考虑只有最后一步有差别的相同限为止,然后再考虑只有最后一步有差别的相同深度或较浅深度可供选择的路径,接着再考虑最深度或较浅深度可供选择的路径,接着再考虑最后两步有差别的那些路径,等等。后两步有差别的那些路径,等等。28图图 3.8 3.8 八数码难题的深度优先搜索树八数码难题的深度优先搜索树 293.2.3 3.2.3 等代价搜索等代价搜索有些问题并不要求有应用算符序列为最少的解,有些问题并不要求有应用算符序列为
22、最少的解,而是要求具有某些特性的解。搜索树中每条连接而是要求具有某些特性的解。搜索树中每条连接弧线上的有关代价以及随之而求得的具有最小代弧线上的有关代价以及随之而求得的具有最小代价的解答路径,与许多这样的广义准则相符合。价的解答路径,与许多这样的广义准则相符合。宽度优先搜索可被推广用来解决这种寻找从起始宽度优先搜索可被推广用来解决这种寻找从起始状态至目标状态的具有最小代价的路径问题,这状态至目标状态的具有最小代价的路径问题,这种推广了的宽度优先搜索算法叫做种推广了的宽度优先搜索算法叫做等代价搜索算等代价搜索算法。法。30有如下一些记号:有如下一些记号:起始节点记为起始节点记为S;从节点从节点i
23、到它的后继节点到它的后继节点j的连接弧线代价记的连接弧线代价记为为c(i,j);从起始节点从起始节点S到任一节点到任一节点i的路径代价记为的路径代价记为g(i)。在搜索树上,我们假设在搜索树上,我们假设g(i)也是从起始节点也是从起始节点S到节到节点点i的的最少代价最少代价路径上的代价,因为它是唯一的路路径上的代价,因为它是唯一的路径;径;31等代价搜索算法等代价搜索算法等代价搜索方法以等代价搜索方法以g(i)的递增顺序扩展其节点,其算法:的递增顺序扩展其节点,其算法:(1)把起始节点把起始节点S放到未扩展节点表放到未扩展节点表OPEN中。如果此中。如果此起始节点为一目标节点,则求得一个解起始
24、节点为一目标节点,则求得一个解;否则令否则令g(S)=0。(2)如果如果OPEN是个空表,则没有解而失败退出。是个空表,则没有解而失败退出。(3)从从OPEN表中选择一个节点表中选择一个节点i,使其,使其g(i)为最小。为最小。如果有几个节点都合格,那么就要选择一个目标节点作为如果有几个节点都合格,那么就要选择一个目标节点作为节点节点i(要是有目标节点的话要是有目标节点的话);否则,就从中选一个作为节;否则,就从中选一个作为节点点i。把节点。把节点i从从OPEN表移至扩展节点表表移至扩展节点表CLOSED中。中。(4)如果节点如果节点i为目标节点,则求得一个解。为目标节点,则求得一个解。(5)
25、扩展节点扩展节点i。如果没有后继节点,则转向第。如果没有后继节点,则转向第(2)步。步。(6)对于节点对于节点i的每个后继节点的每个后继节点j,计算,计算g(j)=g(i)+c(i,j),并把所有后继节点,并把所有后继节点j放进放进OPEN表。提供回到节点表。提供回到节点i的指的指针。针。(7)转向第转向第(2)步。步。32图图 3.9 3.9 等代价搜索算法框图等代价搜索算法框图 333.3 3.3 启发式搜索启发式搜索 盲目搜索的不足:效率低,耗费过多的计算空间盲目搜索的不足:效率低,耗费过多的计算空间与时间与时间 分析前面介绍的宽度优先、深度优先搜索,分析前面介绍的宽度优先、深度优先搜索
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能原理 人工智能 原理 PPT 课件
限制150内