- 1、本文档共88页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 图搜索技术 4.1 状态图搜索 4.2 状态图问题求解4.3 与或图搜索 4.4 与或图问题求解 4.5 博弈树搜索 4.1 状态图搜索 4.1.1 状态图 例4.1 如图是一个迷宫。将迷宫的每一个格子以及入口和出口都作为节点,把通道作为边,则该迷宫可以由一个有向图表示。走迷宫其实就是从该有向图的初始节点(入口)出发,寻找目标节点(出口)的路径的问题。 例4.2 八个数码问题。每个数码占一格,有一个空格。数码在棋盘上移动规则是:与空格相邻的数码方可移入空格。问题:对于指定的初始棋局和目标棋局,给出数码的移动序列。 4.1.2 状态图搜索 在状态图中寻找目标或路径的基本方法就是搜索: 从初始节点出发,沿着与之相连的边试探地前进,寻找目标节点的过程(也可以反向进行)。 1.搜索方式 计算机实现状态图搜索的两种最基本方式: 树式搜索:从树根出发,是以“画树”的方式进行搜索。 线式搜索:在搜索过程中只记录当前走过的节点和边,所形成的轨迹是一条线。进一步可回溯/不可回溯搜索。 2.搜索策略 搜索具有探索性,要提高搜索效率(尽快地找到目标节点),或要找最佳路径(最佳解)就必须注意搜索策略。对于状态图搜索,已经提出了许多策略,它们大体可分为盲目搜索和启发式(heuristic)搜索两大类。 盲目搜索:无向导 启发式搜索:有向导(全局最优/局部最优/最佳图搜索…) 对于类树搜索:深度优先/广度优先 3. 搜索算法框架 由于搜索的目的是为了寻找初始节点到目标节点的路径,所以在搜索过程中就得随时记录搜索轨迹。为此,用一个称为CLOSED表的动态数据结构来专门记录考查过的节点。 对于树式搜索来说,CLOSED表中存储的是一棵不断成长的搜索树;而对于线式搜索来说,CLOSED表中存储的是一条不断伸长的折线,它可能本身就是所求的路径(如果能找到目标节点的话)。 另一方面,对于树式搜索来说,还得不断地把待考查的节点组织在一起,并做某种排列,以便控制搜索的方向和顺序。为此,采用一个称为OPEN表的动态数据结构,来专门登记当前待考查的节点。 4.1.3 穷举式搜索 为简单起见,先讨论树型结构的状态图搜索,并仅限于树式搜索。 按搜索树生成方式的不同,树式穷举搜索又分为广度优先和深度优先两种搜索方式。 广度优先(WSF)和深度优先(DSF) 是最基本的树式搜索策略,其他搜索策略都是建立在它们之上的。 1. 广度优先搜索 广度优先搜索始终先在同一级节点中考查,只有当同一级节点考查完之后,才考查下一级节点。或者说,是以初始节点为根节点,向下逐级扩展搜索树。所以,广度优先策略的搜索树是自顶向下一层一层逐渐生成的。 广度优先搜索算法: 步1 把初始节点S0放入OPEN表中; 步2 若OPEN表为空,则搜索失败,退出。 步3 取OPEN表中前面第一个节点N放入CLOSED表中,并冠以顺序编号n; ? 步4 若目标节点Sg=N,则搜索成功,结束。 步5 若N不可扩展,则转步2; 步6 扩展N,将其所有子节点配上指向N的返回指针依次放入OPEN表的尾部,转步2。 例4.3 用广度优先搜索策略解八数码难题。 由于把一个与空格相邻的数码移入空格,等价于把空格向数码方向移动一位。所以,该题中给出的数码走步规则也可以简化为:对空格可施行左移、右移、上移和下移等四种操作。 设初始节点S0和目标节点Sg分别如图4—3的初始棋局和目标棋局所示,我们用广度优先搜索策略,则可得到如图4—5所示的搜索树。 2.深度优先搜索 深度优先搜索就是在搜索树的每一层始终先只扩展一个子节点,不断地向纵深前进,直到不能再前进(到达叶子节点或受到深度限制)时,才从当前节点返回到上一级节点,沿另一方向又继续前进。这种方法的搜索树是从树根开始一枝一枝逐渐形成的。 深度优先搜索算法: 步1 把初始节点S0放入OPEN表中; 步2 若OPEN表为空,则
文档评论(0)