收藏 分享(赏)

第3章 搜索的基本策略.ppt

上传人:hwpkd79526 文档编号:10068892 上传时间:2019-10-04 格式:PPT 页数:52 大小:223KB
下载 相关 举报
第3章 搜索的基本策略.ppt_第1页
第1页 / 共52页
第3章 搜索的基本策略.ppt_第2页
第2页 / 共52页
第3章 搜索的基本策略.ppt_第3页
第3页 / 共52页
第3章 搜索的基本策略.ppt_第4页
第4页 / 共52页
第3章 搜索的基本策略.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、第3章 搜索的基本策略,按照问题的特征信息可分为:(1)盲目搜索(2)启发式搜索(3)随机搜索,3.1 盲目的搜索方法 (uninformed search),盲目搜索方法又叫非启发式搜索,是一种无信息搜索,一般只适用于求解比较简单的问题。下面我们要讨论的几个搜索方法,它们均属于盲目搜索方法。,3.1.1 宽度优先搜索 (Breath-first search),如果搜索是以同层邻近节点依次扩展节点的, 那么这种搜索就叫宽度优先搜索,这种搜索是逐层进行的, 在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。,3.1.1 宽度优先搜索,宽度优先搜索算法如下:1. 令N为一个由初始状态构

2、成的表;2. 若N为空退出,标志失败;3. 令n为N中第一个点,将n从N中删除;4. 若n是目标,则退出,标态成功;5. 若n不是目标,将n的后继点加入到N表的尾部,转2。,3.1.1 宽度优先搜索,宽度优先搜索的优点是:若问题有解,则可找出最优解;宽度优先搜索的缺点是:效率低,组合爆炸问题难以解决。,3.1.2 深度优先搜索 (depth-first search),在深度优先搜索中,我们首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。,3.1.2 深度优先搜索,深度优先搜索算法如下: 1. 令N为一个由初始状态构成的表; 2. 若N为空退出,标态失败; 3. 令n为N中第一

3、个点,将n从N中删除; 4. 若n是目标,则退出,标态成功; 5. 若n不是目标,将n的后继加入到N表的首部转2。,3.1.2 深度优先搜索,深度优先搜索的优点:节省大量时间和空间;深度优先搜索的缺点:不一定能找到解。因为在无限搜索树的情况下,最坏的情况可能是不停机。,3.1.3 分枝有界搜索 (Branch-and-Bound),分枝有界搜索也是一种深度优先搜索,但每个分支都规定了一个统一的搜索深度,搜索到这个深度后,如果没有找到目标便自动退回到上一层,继续搜索。,3.1.3 分枝有界搜索,1. 令N为一由初始状态构成的表; 2. 若N为空退出,标志失败; 3. 令n为N中第一个点,将n从N

4、中删除; 4. 若n是目标,则退出,标态成功; 5. 若n深度=预先定好的一个界dmax,则转2; 6. 若n不是目标,将n的后继加入到N表的首部转2;,3.1.4 迭代加深搜索 (Iterative deepening),迭代加深搜索是在分枝有界搜索的基础上,对dmax进行迭代,即逐步加深。这是一种同时兼顾深度和广度的搜索方法。在限定的深度内,保证了对广度节点的搜索,如果没有找到解,再加深深度。,3.2 启发式搜索方法,如果能够找到一种方法用于排列待扩展节点的顺序,即选择最有希望的节点加以扩展,那么,搜索效率将会大大提高。启发式搜索就是基于这种想法,它是深度优先的改进。搜索时不是任取一个分枝

5、,而是根据一些启发式信息,选择最佳一个分枝或几个分枝往下搜索。,3.2.1 启发式信息的表示,1启发式搜索的依据 (1)人们善于利用一些线索来帮助自己选择搜索方向,这些线索统称为启发式(Heuristics)信息。 (2)现实问题往往只需一个解,而不要求最优解或全部解。 (3)启发式信息可以避免某些领域里的组合爆炸问题。,3.2.1 启发式信息的表示,启发信息按其形式可分为下列2种: (1)表示为估计函数确定一个启发式函数f(n), n 为被搜索的节点,它把问题状态的描述映射成问题解决的程度,通常这种程度用数值来表示,就是启发式函数的值。这个值的大小用来决定最佳搜索路径。,3.2.1 启发式信

6、息的表示,(2)表示成规则 如AM的一条启发式规则为:如果存在一个有趣的二元函数f(x,y),那么看看两变元相同时会发生什么? 若f表示乘法:导致发现平方; 若f表示集合并运算:导致发现恒等函数; 若f表示思考:导致发现反省; 若f表示谋杀:导致发现自杀。,3.2.1 启发式信息的表示,2启发式函数的表示方法 启发式函数是一种映射函数,它把对问题状态的描述映射成一种希望的程度。 启发式函数设计得好,对有效引导搜索过程有着重要的作用。非常简单的启发式函数搜索路径能够作出非常令人满意的估计。,3.2.1 启发式信息的表示,如何构造启发式函数? (1)启发式函数能够根据问题的当前状态,确定用于继续求

7、解问题的信息。这样的启发式函数能够有效地帮助决定那些后继节点应被产生。,3.2.1 启发式信息的表示,2 8 31 6 4 7 5,例2.7 八数码问题。,1 2 38 4 7 6 5,a11 a12 a13a21 a22 a23 a31 a32 a33,问题空间为:,S0,Sg,3.2.1 启发式信息的表示,各状态间的转换规则为:Pr1: 空格上移 If i,j and i1 then ai-1,j i,j Pr2: 空格下移 If i,j and i3 then aI+1,j i,j,3.2.1 启发式信息的表示,Pr3: 空格左移 If i,j and j1 then ai,j-1 i,

8、j Pr4: 空格右移 If i,j and j3 then ai,j+1 i,j,启发式函数f1= 数字错放位置的个数,f1=0,则达到目标。,3.2.1 启发式信息的表示,当f1值相同时如何决定走步?现在定义:f2 = 所有数字当前位置以最短路径走到正确位置的步数之和。在这个定义之下,各状态的启发式函数值为:数码 1 2 3 4 5 6 7 8F2(S0)= 1 + 1 +0 +0 + 0 + 1 +0 + 2 =5F2(S1)= 1 + 1 +0 +0 + 0 + 0 +0 + 2 =4,3.2.1 启发式信息的表示,数码 1 2 3 4 5 6 7 8F2(S2)= 1 + 1 +0

9、+0 + 0 + 1 +1 + 2 =6F2(S3)= 1 + 1 +0 +0 + 1 + 1 +0 + 2 =6 F2(S4)= 1 + 1 +0 +0 + 0 + 0 +0 + 1 =3 F2(S5)= 1 + 1 +0 +0 + 0 + 1 +0 + 2 =5F2(S6)= 1 + 2 +0 +0 + 0 + 0 +0 + 2 =5,3.2.1 启发式信息的表示,(2) 启发式函数应能够估计出可能加速达到目标的程度这可以帮助确定当扩展一个节点时,那些节点应从搜索树中删除。启发式函数对搜索树(图)的每一节点的真正优点估计得愈精确,解题过程就愈少走弯路。,3.2.1 启发式信息的表示,例2.

10、8 八皇后问题(8-Queens problem)在8*8棋盘要求放下8个皇后,要求没有一个皇后能够攻击其它皇后,即要使得在任何一行、一列或对角线上都不存在两个或两个以上的皇后。,3.2.1 启发式信息的表示,求解这个问题的过程为:(a)定义状态空间。设状态空间的一点为:8*8矩阵。(b)定义操作规则。按如下规则放置皇后:,3.2.1 启发式信息的表示,第一个皇后放第一行。第二个皇后放在第二行且不与第一个皇后在同一列或对角线的空格上。第i个皇后放在第i行且不与前面i 1个皇后在同一列或对角线的空格上。,3.2.1 启发式信息的表示,可使用如下启发式函数: 设x为当前要放置Queen的空格 f(

11、x)= 剩下未放行中能够用来放Queen的空格数 不难看出,f(x)愈大愈好,应选择f(x)最大的空格来放置皇后。,例如,在放置了三个Q后,第4个Q可放在第4行的A,B,C三个位置。,3.2.1 启发式信息的表示,a为第4行A处放了皇后剩下可放Q的位置;b为第4行B处放了皇后剩下可放Q的位置; c为第4行C处放了皇后剩下可放Q的位置。按照以上定义,可求得:f(A)=8, f(B)=9, f(C)=10。 所以搜索可以从C对应的空格放置一个皇后开始,其余的空格对应的搜索树可以删除。,3.2.1 启发式信息的表示,(c)定义搜索策略。 第i个皇后放到第i行中的那个与前面i-l个皇后不在同一列或对角

12、线上且f(x)值最大的空格中。 启发式信息是某些领域里的知识信息,它能使计算机系统在这些知识信息提示以后可能采取的某些可能的动作或避免某些不可能的动作。,搜索方向的选择,搜索过程:在问题空间中找出从开始状态到目标状态的一条最好的或较好的路径。这种搜索可按两个方向进行:正向搜索:从初始状态朝着目标状态方向搜索;逆向搜索:从目标状态朝着初始状态方向搜索。将以上两种搜索方法结合起来,就产生了双向搜索,搜索方向的选择,正向搜索 和 逆向搜索,S0,S0,Sg,Sg,搜索方向的选择,(1) 朝分枝因子低的方向更有效。分子因子指从一点出发可以直接到达的平均结点数。朝着分枝因子低的方向搜索意味着朝着“收敛”

13、的方向搜索,例如定理证明, 一般是从公理或定理出发,推出新的定理。公理是有限的,而定理是大量的。,搜索方向的选择,(2) 由状态少的一方出发,朝着大量的可识别的状态的方向搜索例如符号积分问题, 正向搜索意味着从被积函数出发,按照积分规则,寻找原函数。而逆向搜索,则要从大量的原函数的任意组合出发,通过积分规则,找出被积函数,这显然要困难得多,我们在人工演算积分问题时决不会这么去做。,搜索方向的选择,(3) 依据用户可接受的方向特别是需要向用户解释推理过程时,顺应用户的心理,选择搜索方向会使系统显得更自然一些。在建造专家系统时,向用户解释为什么系统会得出某个结论, 这一步骤是必不可少的,所以尤其要

14、考虑这个问题。,3.2.2 几种最基本的搜索策略,下面主要基本搜索策略的几个基本方法,这些方法构成了许多数AI系统的构架,其效率取决于问题所在领域知识的利用与开发。由于这些方法的通用性,并且难于克服搜索过程的组合爆炸问题,所以又称为弱法(Weak method)。,3.2.2 几种最基本的搜索策略,弱法主要包括:最佳优先法 生成测试法爬山法 广度优先法问题归约法 约束满足法手段目的分析法。,1生成测试法 (Generate-and-test),生成测试法的基本步骤为:1. 生成一个可能的解,此解是状态空间一个点,或一条始于S0的路径。2. 用生成的“解”与目标比较。3. 达到目标则停止,否则转

15、第一步。,1生成测试法 (Generate-and-test),此方法属于深度优先搜索(depth-first-search), 因为要产生一个完全的解后再判断,若不是目标又要生成下一个“解”。这种方法几乎接近耗尽式搜索,因而效率低。 于是人们考虑能否利用反馈信息以帮助决定生成什么样的解,这种改进就是下面要讲的爬山法。,2爬山法(Hill-climbing),1 生成第一个可能的解。若是目标,则停止;否则转下一步。 2 从当前可能的解出发,生成新的可能解集。 2.1 用测试函数测试新的可能解集中的元素,若是解,则停止;否则转2.2。2.2若不是解,则将它与至今已测试过的“解”比较。若它最接近解

16、,则保留作为最佳元素;若它不最接近解,则舍弃。3 以当前最佳元素为起点,转()。,2爬山法(Hill-climbing),爬山法在生成的元素中寻找最优解,这种最优是局部最优。爬山法会产生下述问题:(1)找到的是局部最大值。(如左图)(2)碰到平顶时无法处理。(如右图),2爬山法(Hill-climbing),(3)碰到山脊时无法处理。碰到山脊的克服办法是:(1) 退回较大一步,即允许回朔。(2) 向前跨一大步。(3) 多设几个初始点,从几个初始点同时或先后进行搜索。,3最佳优先搜索 (Best-first search),1 生成第一个可能的解。若是目标,则停止;否则转下一步。2 从该可能的解

17、出发,生成新的可能解集。2.1 用测试函数测试新的可能解集中的元素,若是解,则停止;否则转a。2.2 若不是解,则将新生成的“解”集加入到原可能“解”集中。 3 从解集中挑选最好的元素作为起点,再转,4. 模拟退火法 (simulated Annealing),退火是冶金专家为了达到某些特种晶体结构重复将金属加热或冷却的过程, 该过程的控制参数为温度T。这种思想应用于许多优化问题就产生了模拟退火算法, 模拟退火法的基本思想是, 在系统朝着能量减小的趋势这样一个变化过程中, 偶尔允许系统跳到能量较高的状态,以避开局部极小点, 最终稳定到全局最小点。,4. 模拟退火法 (simulated Ann

18、ealing),如图所示,若使能量在C点突然增加h,就能跳过局部极小点B, 而找到全局最小点A 。 现在的问题是何时增加能量?应该增加多少能量?为此,柯克帕特里克(S.Kirkpatrick)提出了模拟退火算法。,B,A,C,3.3.1 模拟退火法 (simulated Annealing),模拟退火算法: 1随机挑选一单元k,并给它一个随机的位移,求出系统因此而产生的能量变化EK; 2若EK0,该位移可采纳,而变化后的系统状态可作为下次变化的起点;若EK 0,位移后的状态可采纳的概率为:PK = 1/(1+e-EK/T ),3.3.1 模拟退火法 (simulated Annealing),

19、式中T为温度, 然后从(0,1)区间均匀分布的随机数中挑选一个数R。若RPK,则将变化后的状态作为下次的起点,否则, 将变化前的状态作为下次的起点。3. 转1继续执行,直至达到平衡状态为止。,3.3.1 模拟退火法 (simulated Annealing),对于搜索问题中的爬山法, 利用模拟退火算法,可以不但变化的随机选择一些大的步长,以跨过局部极小点.通常的作法是:最初阶段倾向于取大步;后阶段倾向于取小步。,3.3.1 模拟退火法 (simulated Annealing),如果希望小球离开A点然后停在B点,使用能量减小的的方法来摇动系统, 这小球只能停在A点。若开始以较大的速度摇动, 后来慢慢地减轻,则小球很可能就会落在B点,且小球到B点之后,就不易再从B点摇到A点。A B,3.3.2 其他典型的随机搜索算法,1.遗传算法 2.人工免疫算法 3.蚁群算法 4.粒子群算法 5.混合随机算法,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报