设为首页 - 加入收藏
广告 1000x90
您的当前位置:二四六天天好彩308K文字资料 > 博弈树搜索 > 正文

第三章 搜索的原理和方法[PPT课件]

来源:未知 编辑:admin 时间:2019-09-06

  第三章搜索的原理和方法 从问题表示到问题的解决,有一个求解的过程,求解的基本方法包括搜索和推理。 本章先介绍搜索技术,将要讨论问题求解的搜索原理,包括一些早期的、用于解决比较 简单问题的搜索技术和一些较新的能够求解 比较复杂问题的搜索技术。 本章内容 3.1盲目搜索 3.2启发式搜索 3.3博弈树搜索 *3.4遗传算法(随机搜索) *3.5模拟退火算法 3.1 无信息搜索,一般只适用于求解比较简单的问题。 几种盲目搜索方法:宽度优先搜索 深度优先搜索 等代价搜索 3.1.1 在图中寻找路径的方法,图中的节点对应于状态,而连线对应于操作符 建立一个只含有起始节点S的搜索图G,把S放到一个叫做OPEN的未扩展节点表中(简称OPEN表)。 建立一个叫做CLOSED的已扩展节点表(简称CLOSED表),其初始为空表。 LOOP:若OPEN表是空表,则失败退出。图搜索过程 图搜索过程的关键是第8步对OPEN表上的节点进行排序,以便能够从中选出一个“最好”的节点 作为第4步扩展用。 这种排序可以是任意的即盲目的(属于盲目搜索),也可以用以后要讨论的各种启发思想或其它准 则为依据(属于启发式搜索)。 不同的排序方法就对应了不同的搜索策略(如下面介绍的宽度优先、深度优先搜索,或等代价搜 索等等)。 每当被选作扩展的节点为目标节点时,这一过程就宣告成功结束。这时,能够重现从起始节点到 目标节点的这条成功路径,其办法是从目标节点按 指针向S返回追溯。 当搜索树不再剩有未被扩展的端节点时,过程就以失败告终(某些节点最终可能没有后继节点,所 以OPEN表可能最后变成空表),在失败终止的情况 下,从起始节点出发,无法到达目标节点。 3.1.2 宽度优先搜索 搜索时,从节点A开始,对他的全部儿子节点按从左至右搜索,然后对他的所有孙子节点按从左 至右搜索,依此下去。 宽度优先搜索(breadth-firstsearch) :如果搜索 是以接近起始节点的程度依次扩展节点的,那么这 种搜索就叫做宽度优先搜索,这种搜索是逐层进行 的;在对下一层的任一节点进行搜索之前,必须搜 索完本层的所有节点。 3.1.3 深度优先搜索(depth-firstsearch)。在深度优 先搜索中,我们首先扩展最新产生的(即最深 的)节点。 把起始节点S放到未扩展节点OPEN表中。如果此节点为一目标节点,则得到一个解。 扩展节点n,产生其全部后裔,并把它们放入OPEN表的前头。如果没有后裔,则转向(2)。 如果后继节点中有任一个为目标节点,则求得一个解,成功退出;否则,转向(2)。 3.1.4 有些问题并不要求有应用算符序列为最少的解,而是要求具有某些特性的解。搜索树中 每条连接弧线上的有关代价以及随之而求得 的具有最小代价的解答路径,与许多这样的 广义准则相符合。 宽度优先搜索可被推广用来解决这种寻找从起始状态至目标状态的具有最小代价的路径 问题,这种推广了的宽度优先搜索算法叫做 等代价搜索算法。 3.1.4 从起始节点S到任一节点i的路径代价记为g(i)。在搜索树上,我们假设g(i)也是从起始节点S 到节点i的最少代价路径上的代价,因为它是 唯一的路径; 等代价搜索算法 3.2 启发式搜索 宽度优先、深度优先搜索,或等代价搜索算法,其主要差别是OPEN表中待扩展节点的 排序算法不同,因为都没有利用到其它启发 信息,因而同属于盲目搜索。 显而易见,盲目搜索的搜索效率低,搜索计算的空间复杂度与时间复杂度较高。 针对盲目搜索的不足,解决的方法之一是利用启发信息排列待扩展节点的顺序,即选择 最有希望的节点加以扩展,那么,搜索效率 将会大为提高。 这里的启发信息是指进行搜索时与具体问题领域相关的特性信息,把利用启发信息的搜 索方法叫做启发性搜索方法。 3.2.1 启发式搜索策略 用于决定要扩展的下一个节点,以避免像在宽度优先或深度优先搜索中那样盲目地扩展。 在扩展一个节点的过程中,用于决定要生成哪一个或哪几个后继节点,以免盲目地同时生成 所有可能的节点。 用于决定某些应该从搜索树中抛弃或修剪的节点。 3.2.2 (evaluation function) 估价函数:估算当前节点希望程度的量度(衡量当前节点与目标节点的差异程度)。 在状态空间问题中,估价函数的定义方法:估算目标节点到此节点的距离; 解答路径包括被估价过的节点,并计算全条路径的长度 或难度。 用符号f来标记估价函数,用f(n)表示节点n的估价函数值,这里的f(n)是从起始节点约束地通过节点n而 到达目标节点的最小代价路径上的一个估算代价。 3.2.3 用估价函数f来排列GRAPHSEARCH第8步中OPEN表上的节点。(根据习惯,OPEN表上 的节点按照它们f函数值的递增顺序排列) 某个具有低的估价值的节点较有可能处在最佳路径上。 应用某个算法(例如等代价算法)选择OPEN表上具有最小f值的节点作为下一个要扩展的节 d(n)是搜索树中节点n的深度;W(n)用来计算对应于节点n的数据库中错放的棋子个数。 3.2.4A*算法 每个节点n的估价函数值f(n)为两个分量:从起始节点到节点n的代价 从节点n到达目标节点的代价。 是搜索树中从S到n这段路径所遇到的各段弧线代价之和,g(n)g*(n)。 h(n)是h*(n)的估计,依赖于有关问题的领域的启发信息,h叫做启发函数,根据问题的特 点而选择定义。 在GRAPHSEARCH过程中,如果重排OPEN表是依据f(x)=g(x)+h(x)进行的,则称该过程 为A算法。 A*算法 采用h*(x)的下界h(x)为启发函数的A算法,称为A*算法。 如果对所有的x,h(x)h*(x)成立,则称h(x)为h*(x)的下界。 A*算法是一种有序搜索算法,总是选择f值最小的节点作为扩展节点。 3.3 诸如下棋、打牌、竞技、战争等一类竞争性智能活动称为博弈。 二人零和、全信息、非偶然博弈3.3.1 博弈概述 对垒的MAX、MIN双方轮流采取行动,博弈的结果只有三种情况:MAX方胜,MIN方败;MIN方胜, MAX方败;和局。 在对垒过程中,任何一方都了解当前的格局及过去的历史。 (3)双方理智地决定自己的行动,任何一方在采取行动前都要根据当前情况,选取对自已最有利而对对 方最不利的对策,不存在碰运气因素。 在博弈树中,双方轮流扩展节点,自己一方扩展的节点之间是“或”关系。 所有自己一方获胜的终局都是本原问题,相应的节点是可解节点;所有使对方获胜的 终局都认为是不可解节点。 3.3.2 极小极大分析法 为了找到当前的最优行动方案,需要考虑每一方案实施后对方可能采取的所有行动,并 计算可能的得分。 为计算得分,需要根据问题的特性信息定义一个估价函数,用来估算当前博弈树端节点 的得分。此时估算出来的得分称为静态估值。 当端节点的估值计算出来后,再推算出父节点的得分 对“或”节点,选其子节点中一个最大的得分作 为父节点的得分,这是为了使自己在可供选择的 方案中选一个对自己最有利的方案; 对“与”节点,选其子节点中一个最小的得分作 为父节点的得分,这是为了立足于最坏的情况。 这样计算出的父节点的得分称为倒推值。 如果一个行动方案能获得较大的倒推值,则它就是当前最好的行动方案。 设有九个空格,由MAX,MIN二人对弈,轮到谁走棋谁就往空格上放一只自己的棋子, 谁先使自己的棋子构成“三子成一线”(同一 行或列或对角线全是某人的棋子),谁就取得 了胜利。 若P对任何一方来说都不是获胜的位置,e(P)=e(那些可能被MAX连成一线的完全空着 的行、列或对角线的总数)-e(那些可能被MIN 连成一线的完全空着的行、列或对角线假设MAX走了这一步,而MIN直接在X 上方的空格里放上一个圆圈。下一步, MAX又在新的格局下搜索两层,产生 如图所示的搜索图。 3.3.3 极小极大分析法,先生成一棵博弈树,然后再计算其倒推值,效率较低。 α-β剪枝技术的基本思想:边生成博弈树边计算评估各节点的倒推值,并且根据评估出的 倒推值范围,及时停止扩展那些已无必要再 扩展的子节点,相当于剪去了博弈树上的一 些分枝。 3.6 小结 启发式图搜索策略是人工智能系统中最常用的控制策略,它是利用问题领域拥有的启发 信息来引导搜索过程,达到减少搜索范围, 降低问题复杂度的目的。

本文链接:http://mzi-ads.com/boyishusousuo/794.html
上一篇:子集树和排列树的区别
下一篇:没有了

相关推荐:

网友评论:

栏目分类

现金彩票 联系QQ:24498872301 邮箱:24498872301@qq.com

Copyright © 2002-2011 DEDECMS. 现金彩票 版权所有 Power by DedeCms

Top