人工智能第五章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《人工智能第五章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 第五 课件
- 资源描述:
-
1、1第5章 搜索求解策略25.1 基本概念一、状态空间表示法状态空间表示法是用“状态”和“算符”(“操作”)来表示问题的一种方法。基于解答空间的问题表示和求解方法,它是以状态和算符为基础来表示和求解问题的(1)状态(state):表示问题解法中每一步问题状况的数据结构;Q=q0,q1,qnT Q表状态,qi为状态分量(2)算符(operator):把问题从一种状态变换为另一种状态的手段;称为操作符或算符。F:f1,f2,(3)状态空间:由状态变量和操作表示的符号体系,包含了问题求解时全部可能状态及其相互关系。三元组表示(S,F,G)3例 设有三枚钱币,其排列处在“正,正,反”状态,现允许每次可翻
2、动其中任意一个钱币,问只允许操作三次的情况下,如何翻动钱币使其变成“正,正,正”或“反,反,反”状态。状态:(q1,q2,q3)“正面”用“1”表示,“反面”用“0”表示 初始状态集合:(1,1,0)目标状态集合:(1,1,1),(0,0,0)操作:f1:翻q1,f2:翻q2,f3:翻q3 F=f1,f2,f34例:MC问题问题:3个传教士(Missionary),3个野人(Cannibal),一条船,可同时乘坐2个人,要求在任何时刻,在河的两岸,传教士人数不能少于野人的人数。问:如何过河?状态:用三元组(m,c,b)表示左岸的传教士、野人和船数。m=0,1,2,3,c=0,1,2,3,b=0
3、,1共44232种状态其中有16种可行,14种不可行(危险),2种达不到。初始状态:S=(3,3,1)或 S331 目标状态:G=(0,0,0)或 S000 操作符(规则)Pij(左右),qij(右左)左右:p01,p10,p11,p02,p20 条件:船在左岸 右左:q01,q10,q11,q02,q20 条件:船在右岸 F=p01,p10,p11,p02,p20,q01,q10,q11,q02,q205MC问题状态空间图状态空间图p passq quitq11q11q02 (2 1 0)不合法p11(0 0 0)(3 3 0)达不到6二、与/或树(图)表示法1、分解:大问题分解为若干个易解
4、子问题,子问题解决了,大问题也就解决了。ABC或图ABCD与图2、变换:大问题变成若干个易解子问题,只要有一个子问题解决了,大问题也就解决了。7一些关于与或图的术语HMBCDEFGAN父节点与节点弧线或节点子节点端节点8基本概念 本原问题:不能再分解或变换,而且直接可解的子问题。本原问题:不能再分解或变换,而且直接可解的子问题。终止节点:不能分解或变换,可直接求解终止节点:不能分解或变换,可直接求解 可解节点:可解节点:终止节点终止节点“或或”节点,其子节点至少有一个是可解节点节点,其子节点至少有一个是可解节点“与与”节点,其子节点均为可解节点节点,其子节点均为可解节点 不可解节点:不可解节点
5、:可解节点的三个条件都不满足的节点可解节点的三个条件都不满足的节点 解树:解树:由可解节点构成,并可推出初始节点为可解节点的由可解节点构成,并可推出初始节点为可解节点的子树子树9梵塔问题 可以分解为三个子问题:(1)最大盘以上由1至2(2)最大盘由1至3(3)其余盘由2至3 问题的形式化表示:三元组(I,j,k)I-C所在钢针号 j-B所在钢针号 k-A所在钢针号 问题:(1,1,1)(3,3,3)ABC123ABC12310三阶梵塔问题的与/或树(113)(123)(111)(113)(123)(122)(111)(333)(122)(322)(111)(122)(322)(333)(321
6、)(331)(322)(321)(331)(333)11三、搜索 根据问题的实际情况不断寻找可利用的知识,从而构造一条代价较少的推理路线,使问题得到圆满解决的过程。类型:1、问题表示方式:状态空间搜索 与/或树搜索2、是否使用启发式信息 盲目搜索:按预定的控制策略进行搜索,在搜索过程中获得的中间结果不用来改进控制策略。启发式搜索:搜索过程中加入与问题有关的启发性信息。(动态地确定操作规则排序)125.2 状态空间的搜索策略 基本思想:初态作为当前节点进行扩展生成子节点,检查目标状态是否出现,不出现则按策略选一个子节点进行扩展直到目标状态出现或没有可供扩展的子节点。一、一般的图搜索过程:OPEN
7、表:存放尚未被扩展的节点 CLOSED表:存放已被扩展的节点13图搜索算法:1.把初始节点S放入OPEN表,建立一个仅包含S的图G(搜索图)2.如果OPEN表空,则以失败退出。3.把OPEN表中的第一个节点取出放入CLOSED表,称此节点为n.4.如果n是目标节点,则成功地结束,解路径可通过回溯G中从n到S的指针获得。5.扩展节点n,产生一组子节点。把不是n的祖先的那些子节点记作集合M,把M的这些成员作为n的后继节点加入G中。6.对于M的那些未曾在G中出现的成员,建立到n的指针,并把这些成员加到OPEN表中。对于那些已在G中出现的成员,决定是否要修改它指向父节点的指针。对于那些已在G中出现且已
8、扩展的成员,决定是否要修改其后继节点指向父节点的指针。7.按某种搜索策略重排OPEN表中的节点8.转第2步14图图搜搜索索的的一一般般过过程程开始开始把把S放入放入OPEN表表OPEN表为空表?表为空表?把第一个节点把第一个节点(n)从从OPEN表移至表移至CLOSED表表n为目标节点吗?为目标节点吗?扩展节点扩展节点n,将其将其子节点处理后子节点处理后放入放入OPEN表,为每个子节点配置指向节点表,为每个子节点配置指向节点n的指针的指针重排重排OPEN表表失败失败成功成功是是是是否否否否节点节点n可扩展吗?可扩展吗?否否是是15 说明:说明:这个一般的图搜索过程,通过不断循环生成一个显这个一
9、般的图搜索过程,通过不断循环生成一个显式表示的图式表示的图G G(搜索图)和一个搜索图)和一个G G的子集的子集T T(搜索树)搜索树)树树T T是由(是由(6 6)中标记的指针决定的,除根节点)中标记的指针决定的,除根节点s s外,外,G G中每个节点只有一个指针指向中每个节点只有一个指针指向G G中的一个父节点中的一个父节点OPENOPEN表中的节点(未扩展节点)是搜索树的端节点,表中的节点(未扩展节点)是搜索树的端节点,即尚未被选作为扩展的节点;即尚未被选作为扩展的节点;CLOSEDCLOSED表中的节点(已表中的节点(已扩展节点),可以是已被扩展而不能生成后继节点的扩展节点),可以是已
10、被扩展而不能生成后继节点的那些端节点,也可以是树中的非端节点那些端节点,也可以是树中的非端节点(7 7)中对)中对OPENOPEN表上的节点进行排序是为了在(表上的节点进行排序是为了在(3 3)中能选出一个中能选出一个“最好最好”的节点优先扩展,不同的排序的节点优先扩展,不同的排序方法可构成形式多样的专门搜索算法方法可构成形式多样的专门搜索算法如果隐含图是一棵树,不会(如果隐含图是一棵树,不会(6 6)中讨论的特殊节点,)中讨论的特殊节点,否则可能这些节点否则可能这些节点*上述算法的关键一步是(上述算法的关键一步是(7 7),对),对OPENOPEN表的排序,表的排序,即决定节点的扩展顺序,典
11、型的有两种节点扩展顺序,即决定节点的扩展顺序,典型的有两种节点扩展顺序,得到两种搜索算法(广度优先搜索、深度优先搜索)得到两种搜索算法(广度优先搜索、深度优先搜索)16二、宽度优先(广度优先)基本思想是:从节点S0开始,逐层地对节点进行扩展,并考察它是否为目标节点,在第n层节点没有全部考察完之前,不对第n+1层的节点进行扩展。OPEN表:按“先进先出”排v特点:一种高代价搜索,但若有解存在,则必能找到它。17 例子八数码难题(8-puzzle problem)1238456712384567(目标状态)(初始状态)规定:将牌移入空格的顺序为:从空格左边开始顺时针旋转。不许斜向移动,也不返回先辈
12、节点。从图可见,要扩展26个节点,共生成46个节点之后才求得解(目标节点)。181238456712384123845674123856712 384123845671238456712384567678910111213123845675675671123845671238456712384567123845672345图 八数码难题的宽度优先搜索树13456123845671238456712384567123845671 238456723242526271236782212384567123845671 238456712 3845671238456712384567123845671
13、4151617181920211238456719三、深度优先搜索 首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。与宽度优先搜索算法最根本的不同在于:将扩展的后继节点放在OPEN表的前端。(先进后出)20问题 不一定能找到解 找到的解不一定是最佳解 为了对深度优先搜索作改进,要解决两个问题:回溯问题;有圈造成死循环问题。21四、有界深度优先搜索 如果问题有解且路径长度dm,则一定可求得解;否则得不到解。问题:dm不易确定 这种方法不一定能找到解路径(如果解路径的深度超出了限制深度)另外它得到的解也不一定是最优解 改进 先定一个较小的dm,若未找到解且closed中有待扩展的节
14、点,就将其送回open表。不断改进dm。最优解:增设一表R,每找到一个解就将其放入R的前面。最后求得的解一定最优22五、代价树的广度优先搜索分枝界限法 有些问题并不要求有应用算符序列为最少的解,而是要求具有某些特性的解。搜索树中每条连接弧线上的有关代价以及随之而求得的具有最小代价的解答路径。代价树:各边标有代价值的树-一种加权树 代价计算g(x)-sx 代价g(x2)=g(x1)+c(x1,x2)基本思想:OPEN表中的全部节点按代价从小到大排23代代价价树树的的广广度度优优先先搜搜索索开始开始把把S放入放入OPEN表表OPEN表为空表?表为空表?把第一个节点把第一个节点(n)从从OPEN表移
15、至表移至CLOSED表表n为目标节点吗?为目标节点吗?扩展节点扩展节点n,将其将其子节点处理后子节点处理后放入放入OPEN表,为每个子节点表,为每个子节点配置指向节点配置指向节点n的指针,的指针,计算各节点代价计算各节点代价。把把OPEN表中的全部节点按代价从小到大排表中的全部节点按代价从小到大排失败失败成功成功是是是是否否否否节点节点n可扩展吗?可扩展吗?否否是是24例 下图是一个交通图,设A城市是出发地,E城市是目的地,边上的数字代表两城市之间的交通费。试求从A到E最小费用的旅行路线。Ac1d1e2 825六、代价树的深度优先搜索-爬山法 基本思想:将扩展的后继节点按边代价从小到大的顺序放
16、在OPEN表的前端。代价树的广度优先搜索法是完备的且找到的解一定是最优解 代价树的深度优先搜索法是不完备的且找到的解不一定是最优解26七、启发式搜索 问题提出:从理论上讲穷举式搜索能解决任何状态空间问题,但很显然穷举搜索只能解决状态空间很小的简单问题,对于复杂问题会出现“组合爆炸”n阶Hanoi塔问题的状态空间图中有2的n次方减1个结点;博弈问题中,为了取胜可以将所有的算法都试一下,然后选择最佳走步。就所有可能的棋局数来讲,一字棋是9!=3.6*109,国际象棋是10120,围棋是10761。假设每步可以选择一种棋局,用极限并行速度(10-104秒/步)计算,国际象棋的算法得用1016年即1亿
17、亿年才可以算完。解决:利用问题的启发性信息来引导搜索 减少搜索范围 降低问题复杂度 启发信息:进行搜索技术一般需要某些有关具体问题领域的特性的信息,把此种信息叫做启发信息。把利用启发信息的搜索方法叫做启发性搜索方法。27启发性信息类型启发性信息类型1)用于扩展节点的选择扩展节点的选择即决定下一个扩展节点,以免象在广度优先和深度优先搜索中那样盲目地扩展2)用于生成节点的选择即用于决定生成哪个或哪几个后继节点,而不是生成所有的节点3)用于删除节点的选择即决定用于从搜索树中抛弃或修剪的节点我们讨论的主要是基于“扩展节点的选择”的启发式搜索,这种搜索总是选择“最有希望”的节点作为下一个被扩展的节点。这
18、种搜索叫做有序搜索(ordered search)。1、估价函数-评估节点的方法用来估算节点希望程度的量度,叫做估价函数 28f(x)=g(x)+h(x)其中:f(x):从初始节点S0到目标节点Sg的最优路径的代价估计值 g(x)为从初始节点S0到节点x的实际代价值。h(x)为启发函数,是从节点x到目标节点Sg的最优路径的代价h*(n)的估计值。g(x)、h(x)作用分析 一般地,在f(n)中,g(n)的比重越大,越倾向于宽度优先搜索方式;h(n)的比重越大,越倾向于深度优先搜索方式。保持g(n)项就保持了搜索的宽度优先趋势,这有利于搜索的完备性,但影响搜索的效率。在特殊情况下,如果只希望找到
19、达到目标结点的路径而不关心已付出的代价,则g(n)的作用可以忽略。h(n)g(n)时,也可以忽略g(n),这时有f(n)=h(n),这有利于搜索的效率,但影响搜索的完备性。29 定义h(x)的原则:节点x处在最佳路径上的摡率 节点x与目标节点集之间的距离度量或差异度量 根据格局或状态的特点来打分 一般来说,评价一个结点的价值,必须综合考虑两方面的因素:已经付出的代价和将要付出的代价。启发式算法通常由两部分组成:启发方法 使用该方法搜索状态空间的算法。启发式搜索基本思想:以一般的图搜索算法为基础 定义启发函数h(x)计算每个待扩展节点的启发函数值 每次扩展节点后以节点的启发函数值为依据对待扩展节
20、点排序每次扩展节点后以节点的启发函数值为依据对待扩展节点排序 实质:选择OPEN表上具有最小f值的节点作为下一个要扩展的节点。30开始开始把把S放入放入OPEN表,表,计算估价函数计算估价函数 f(s)OPEN表为空表?表为空表?选取选取OPEN表中表中f值最小的节点值最小的节点i放入放入CLOSED表表i为目标节点吗?为目标节点吗?扩展扩展i,得后继节点得后继节点j,计算计算f(j),提供返回提供返回节点节点i的指针,利用的指针,利用f(j)对对OPEN表重新排表重新排序,调整亲子关系及指针序,调整亲子关系及指针失败失败成功成功图图 有序搜索算法框图有序搜索算法框图是是否否是是否否v算法31
21、例:八数码难题(8-puzzle problem)f(n)=h(n)+g(n)=w(n)+d(n)h(n)=w(n),w(n)是将牌不在位个数,例如,与目标状态相比,初始状态w(n)=4,即有4个将牌(1,2,6,8)不在位。g(n)=d(n),d(n)是搜索的深度。一般根节点(初始状态)的深度是为0,其他子节点深度为父结点深度加1。规定规则为空格移动(走步规则),规则选取顺序为:左、上、右、下。控制策略为:选取评价函数值最小者进行扩展(往下搜索)。12384567(目标状态)12384567(初始状态)325714563123845671238456712384567(4)(6)(6)212
22、3845671238456712384567(6)(5)(5)1238456712 384567(5)(7)1238456712384567(6)(7)12384567(5)813245671 2384567(5)(7)图 八数码难题的有序搜索树123846(4)73334A算法算法 利用评价函数f(n)=g(n)+h(n)来排列OPEN表节点顺序的图搜索算法称为A算法算法。实现类型:局部择优搜索、全局择优搜索2、局部择优搜索-类似深度优先 基本思想:在当前扩展的子节点中选f(x)值最小的子节点为下一个考察的节点 实现:节点n扩展后的各子节点计算出估价值后,按由小到大次序放到OPEN表的首部
展开阅读全文