人工智能-第五章 搜索策略.pdf
《人工智能-第五章 搜索策略.pdf》由会员分享,可在线阅读,更多相关《人工智能-第五章 搜索策略.pdf(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章搜索策略搜索是人工智能中的一个基本问题,是推理不可分割的一部分,它直接关 系到智能系统的性能与运行效率,因而尼尔逊把它列为人工智能研究中的四个 核心问题之一。5.1 基本概念1.什么是搜索 人工智能所要解决的大部分问题是结构不良或非结构化的问题,对这样的问题一般不存在成熟的求解算法可供利用,而只能是利用已有的知识一步步摸索着前进。在此过程中,存在着如何寻找可用知识的问题,即如何确定推理路线,使其付出的代价尽可能的少,而问题又能得到较好的解决。如:在正向推理中,1 对已知的初始事实,需要在知识库中寻找可使用的知识,这就 存在按何种线路进行寻找的问题。另外,可能存在多条线路都可实现对问题的求
2、解,这就又出现 按哪一条线路进行求解以获得较高的运行效率的问题。像这样根据问题的实际情况不断寻找可利用的知识,从而 构造一条代价较少的推理路线,使问题得到圆满解决的过程 称为搜索。搜索分为盲目搜索和启发式搜索。盲目搜索按预定的控制策略进行搜索,在搜索过程中获得的中间信 息不用来改进控制策略。这种搜索具有盲目性,效率不高,不便于复杂问题的求解。启发式搜索在搜索中加入了与问题有关的启发性信息,用以指导搜索朝着最有希望的方向前进,加速问题的求解过程并 找到最优解。5.2求解问题的表示方法用搜索策略求解问题,首先要解决的问题也是:用什么样的形式把问题表示出来.一般来说,有两种方法:状态空间表示法;与/
3、或树表示法;1.状态空间表示法I 状态空间表示法是用来表示问题及其搜索过程的一种方法,它是人工智能中最 基本的形式化方法。状态空间表示法是用“状态”和“算符”来表示问题的一种方法。其中,I“状态”用以描述问题求解过程中不同时刻的状况;“算符”表示对状态的操作,算符的每一次使用就使问题由一种状态变换 为另-种状态;.解当到达目标状态时,由初始状态到目标状态所用算符的序列就是问题 的一个解。I.状态状态是描述问题求解过程中任一时刻状况的数据结构,一般用一组变量的有序 组合表不:Q=(q,q2,)当给每一个分量以确定的值时,就得到了一个具体的状态。II.算符引起状态中某些分量发生变化,从而使问题由一
4、个状态变为另一个状态的操 作称为算符。在产生式系统中,每一条产生式规则就是一个算符。in.状态空间由问题的全部状态及一切可用算符所构成的集合称为问题的状态空间,一般 用一个四元组表示:(S,O,So,G)其中,S是问题的所有初始状态构成的集合;。是算符的集合;So是包含问题 的初始状态;G是目标状态的集合。状态空间的图示形式称为状态空间图。其中,节点表示状态;有向边(弧)表示 算符。4.1.2状态空间法2.状态空间问题求解状态空间法求解问题的基本过程:首先为问题选择适当的“状态”及“操作”的形式化 描述方法;然后从某个初始状态出发,每次使用一个“操作”,递增地建立起操作序列,直到达到目标状态为
5、止;此时,由初始状态到目标状态所使用的算符序列就是 该问题的一个解。例1:钱币翻转问题,如图所示。设有三个钱币,起初是状态为(反正反),允许每次翻转一个钱币(只反一个,也必反一个),连反三次,问是否可达到目标状态?(正正正)或(反反反)?设用Sk=(Si,S2,S3)表示问题的状态,=。表示钱币正面,S=1表示钱币反面。则钱币可能出现的状态有八种:So=(O,O,O)9 S1=(O,O,1),S2=(0,l,0)9 s3=(o,i9i)S4=(l,0,0)9 S5=(l,09l),S6=(l,l,o)9 s7=(l,l,l)s=s5目标状态集合:G=S09 S7算符:_把si翻-面;f2-把2
6、翻一面;fa-把S3翻一*面;上述问题的状态空间“四元组”为:(S,后2,3,S5,仁0g7)相应的状态空间图:SiS2从图中看出:从S5不可能经三次翻转到达So,从S5可经三次翻转到达S7,且有七种操作方式。S5-S-S5-S7S5一s7 S3 一S7S5f-S6-S7S5S4 f-S7G 跖 f2)任2,,3)任3,G,f 3)S5-S f-S7一 s7 s5 s7S5-S4 f f(G,G,h)(f 2?,2)任3,f3,f 2)3 状态空间的例子(1/11)例41二阶梵塔问题。设有三根钢针,它们的编号分别是 1号、2号和3号。在初始情况下,1号钢针上穿有A、B两个 金片,A比B小,A位
7、于B的上面。要求把这两个金片全部移 到另一根钢针上,而且规定每次只能移动一个金片,任何时 刻都不能使大的位于小的上面。解:设用3卜=岔如,3)表示问题的状态,其中,Sa表示金 片A所在的钢针号,S-表示金片B所在的钢针号。全部可能 的问题状态共有以下9种:So=(l,1)SKI,2)S2=(l,3)S3=(2,1)S4=(2,2)S5=(2,3)S6=(3,1)S7=(3,2)S8=(3,3)3.状态空间的例子(2/11)问题的初始状态集合为5=5。目标状态集合为6=伪力S8初始状态So和目标状态S4、S8如图所示 II Ibf尸1 2 3 1 2 3 1 2 3s0=(i,1)s4=(29
8、2)s8=(3,3)二阶梵塔问题的初始状态和目标状态472r3.状态空间的例子(3/11)I操作分别用A(i,j)和B(i,j)表示I A(i,j)表示把金片A从第i号钢针移到j号钢针上;B(i,j)表示把金片B从第i号钢针一到第j号钢针上。共有12种 操作,它们分别是:A(l,2)A(l,3)A(2,1)A(2,3)A(3,1)A(3,2)B(l,2)B(l,3)B(2,1)B(2,3)B(3,1)B(3,2)根据上述9种可能的状态和12种操作,可构成二阶梵塔问题的 状态空间图,如下图所示。二阶梵塔的状态空间图从初始节点(1,1)到目标节点(2,2)及(3,3)的任何一条路径都是问题的一 个
9、解。其中,最短的路径长度是3,它由3个操作组成。例如,从(1,1)开始,通过使用操作A(1,3)、B(1,2)及A(3,2),可到达(3,3)。3 状态空间的例子(5/11)例4.2修道士(Missio na ries)和野人(Ca nniba问题倘称 MC 问题)。(N=2,3)设在河的一岸有2个野人、2个修道士和一条船,修道士想用 这条船把所有的人运到河对岸,但受以下条件的约束:一是修道士和野人都会划船,但每次船上至多可载两个人;二是在河的任一岸,如果野人数目超过修道士数,修道士会 被野人吃掉。如果野人会服从任何一次过河安排,请规划一个确保修道士 和野人都能过河,且没有修道士被野人吃掉的安
10、全过河计划。3 状态空间的例子(6/11)解:首先选取描述问题状态的方法。在这个问题中,需要 考虑两岸的修道士人数和野人数,还需要考虑船在左岸还是在 右岸。从而可用一个三元组来表示状态S=(m,c,b)其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示 左岸的船数。右岸的状态可由下式确定:右岸修道士数nf=2m右岸野人数c,=2c右岸船数 bf=l-b在这种表示方式下,m和c都可取0、1、2中之一,b可取0和 1中之一。因此,共有3义3义2=18种状态。这18种状态并非全有意义,除去不合法状态和修道士被野人吃 掉的状态,有意义的状态只有10种:S=(2,2,1)S4=(0,2,0)S8=
11、(l,1,1)有了这些状态,*=(2,1,0)S2=(l,1,0)S3=(2,0,0)S5=(2,191)S6=(0,1,0)S7=(0,2,1)s9=(0,0,0)还需要考虑可进行的操作。操作是指用船把修道士或野人从河的左岸运到右岸,或从河的 右岸运到左岸。每个操作都应当满足如下条件:一是船至少有一个人(m或c)操作,离开岸边的m和c的减少数 目应该等于到达岸边的m和c的增加数目;二是每次操作船上人数不得超过2个;三是操作应保证不产生非法状态。因此,操作应由条件部分和动作部分:条件:只有当其条件具备时才能使用动作:刻划了应用此操作所产生的结果。操作的表示:用符号Pij表示从左岸到右岸的运人操
12、作用符号Qu表示从右岸到左岸的操作其中:i表示船上的修道士人数j表示船上的野人数操作集本问题有10种操作可供选择:F=P()1,P10,Pu,P02,P2O,Qo i,Qio,Qu,Q02,Q20下面以P01和Q01为例来说明这些操作的条件和动作。I操作符号条件 动作P01 b=l,m=0或39 cl b=0,c=c-lQ01 b=03m=0或3,c(1,2,2),(1,2,2)=(3,2,2),(3,2,2)n(3,2,l),(3,2,l)n(3,3,l),(3,3,l)n(3,3,3)它指出 了移动金片的次序。5.3状态空间搜索策略1.概述(1)搜索过程中要用到的两个数据结构OPEN 表:
13、用于存放刚生成的节点。对于不同的搜索策略,节点在OPEN表中的排列顺序是不同的。CLOSED 表:用于存放将要扩展或者已扩展的节点,所谓对节点进行“扩展”是指:用合适的算符对该节点进行操作,(2)状态空间法搜索策略 广度优先搜索 深度优先搜索 有界深度优先搜索 代价树的广度优先搜索 代价树的深度优先搜索(以上属于盲目搜索策略)局部择优搜索 全局择优搜索(以上搜索属于启发式搜索)OPEN 表1状态节点父节点rzqzntzzdCLOSED 表编号状态节点父节点(d)(1)基本思想从初始节点开始,按照某种生成规则(算符)逐步生成下一 级各子节点,顺序(先生成的子节点优先检查,优先扩展)地检 查是否出
14、现目标节点,在该级全部节点中沿广度进行“横向”扫 描,即:沿“广度”遍历所有节点,故称“广度优先搜索法”。(2)广度优先搜索法搜索过程I.把初始节点S。放人OPEN表,若S。为目标节点,则得到问题的退出;II.如果OPEN表为空,则问题无解,退出;III.把OPEN表的第一个节点(记为节点n)取出放入CLOSED表;W.考察节点n,若节点n不可扩展,则转第H步;V.扩展节点n,将其子节点放入OPEN表的尾部,并为每一个子 节点都配置指向父节点的指针;VI.如果n的任一个后继节点是目标节点,则找到问题的解,成 功退出,否则转向第H步。例:重排九宫问题。在3X3的方格棋盘上放置分别标有数字1,2,
15、3,4,5,6,7,8的八张牌,初始状态为SO,目标状态为S,如下图所示。可使用的算符有:空格左移,空格上移,空格右移,空格下移即,它们只允许把位于空格左,上,右,下边的牌移入空格。要求寻找从初始状态到目标状态的路径。应用广度优先搜索,可得到如图所示的搜索树。由图可以看出,解的路径是:Sof3-8 16 26(Sg)小结:缺点:广度优先搜索的盲目性较大,当目标节点距离初始节点较远时将会产生许 多无用节点,搜索效率低,这是它的缺点。优点:只要问题有解,用广度优先搜索总可以得到解,而且得到的是路径最短的 解,这是它的优点。3,深度优先搜索基本思想从初始节点So开始,按生成规则生成下一级各子节点,若
16、目标节点未出现,则按“最晚生成的子节点优先扩展”的原则,生成再下一级的子节点,如此下去,沿着最晚生成的子节点分支,逐级向“纵向”深入发展,故称为“深度优先搜索 法”。(2)深度优先搜索法搜索过程I该过程与广度优先搜索的唯一区别是:广度优先搜索是将节点n的子节点放入到OPEN表的尾部,而深度优先搜索是 把节点n的子节点放入到OPEN表的首部。仅此一点不同,就使得搜索的路线完全不一样。4CLOSED 表OPEN 表状态节点父节点8676543210Sg(8)编号状态节点父节点122y二 034y二 246,45例:对上节所示的重排九宫问题进行深度优先按索,可得如下图所示的搜索树。这只是搜索树的一部
17、分,尚未到达目标节点,仍可继续往下搜索。小结:在深度优先搜索中,搜索一旦进 入某个分支,就将沿着该分支一 直向下搜索。如果目标节点恰好 在此分支上,则可较快地得到解。但是,如果目标节点不在此分支 上,而该分支又是一个无穷分支,则就不可能得到解。所以深度优 先搜索是不完备的,即使问题有 解,它也不一定能求得解。另外,用深度优先搜索求得的 解,不一定是路径最短的解,其 道理是显然的。4.有界深度优先搜索(1)基本思想I 为了解决深度优先搜索不完备的问题,避免搜索过程陷入无穷分支的死循环,对深度优先搜索引入搜索深度的界限(设为dm),当搜索深度达到了深度界限,而尚未出现目标节点时,就换一个分支进行搜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能-第五章 搜索策略 人工智能 第五 搜索 策略
限制150内