实验一 启发式搜索

上传人:豆浆 文档编号:48417941 上传时间:2018-07-15 格式:PPTX 页数:13 大小:60.11KB
返回 下载 相关 举报
实验一 启发式搜索_第1页
第1页 / 共13页
实验一 启发式搜索_第2页
第2页 / 共13页
实验一 启发式搜索_第3页
第3页 / 共13页
实验一 启发式搜索_第4页
第4页 / 共13页
实验一 启发式搜索_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实验一 启发式搜索》由会员分享,可在线阅读,更多相关《实验一 启发式搜索(13页珍藏版)》请在金锄头文库上搜索。

1、实验一 启发式搜索一、实验目的:熟悉和掌握启发式搜索的定义、 估价函数和算法过程,并利用A算法求解九宫 问题,理解求解流程和搜索顺序。二、实验方法: 1.先熟悉启发式搜索算法; 2.用C、C+或JAVA 语言编程实现实验内 容。三、实验背景知识1.估价函数 在对问题的状态空间进行搜索时,为提高搜索效率需要和被解问 题的解有关的大量控制性知识作为搜索的辅助性策略。这些控制 信息反映在估价函数中。 估价函数的任务就是估计待搜索节点的重要程度,给这些节点排 定次序。估价函数可以是任意一种函数,如有的定义它是节点x处 于最佳路径的概率上,或是x节点和目标节点之间的距离等等。在 此,我们把估价函数f(n

2、)定义为从初始节点经过n节点到达目标节点的最小代价路径的代价估计值,它的一般形式是: f(n) = g(n) + h(n) 其中g(n)是从初始节点到节点n的实际代价,g(n)可以根据生成的搜 索树实际计算出来;h(n)是从n到目标节点的最佳路径的代价估计 ,h(n)主要体现了搜索的启发信息。2. 启发式搜索过程的特性 (1)可采纳性 当一个搜索算法在最短路径存在的时候能保证能找到 它,我们就称该算法是可采纳的。所有A*算法都是可 采纳的。 (2)单调性 一个启发函数h是单调的,如果 a) 对所有的状态ni和 nj,其中nj是ni的子孙, h(ni )- h(nj )cost(ni ,nj )

3、,其中cost(ni ,nj )是从ni 到nj 实 际代价。b) 目标状态的启发函数值为0,即h(Goal)=0. 具 有单调性的启发式搜索算法在对状态进行扩展时能保 证所有被扩展的状态的f值是单调递增(不减)。 2. 启发式搜索过程的特性 (3)信息性 比较两个启发策略h1和h2,如果对搜索空间中的 任何一个状态n都有h1(n) h2(n),就说h2比h1具 有更多的信息性。 一般而言,若搜索策略h2比 h1有更多的信息性,则h2比h1考察的状态要少。 但必须注意的是更多信息性需要更多的计算时间 ,从而有可能抵消减少搜索空间所带来的益处。3.常用的启发式搜索算法 (1)局部择优搜索算法(瞎

4、子爬山法) 瞎子爬山法是最简单的启发式算法 之一。该算法在搜索过程中扩展当前节点并 估价它的子节点。最优的子节点别选择并进 一步扩展;该子节点的兄弟节点和父节点都 不再被保留。当搜索到达一种状态,该状态 比它的所有子状态都要好,则搜索停止。因 此,该算法的估价函数可表示为f(n) = h(n)。 在一个限定的环境下,瞎子爬山法可能 会极大的提高搜索的效率,但是对整个搜索 空间而言,可能得不到全局最优解。(2)最好优先搜索法(有序搜索法) 该算法的估价函数采用f(n) = g(n) + h(n),在 搜索过程中算法使用OPEN表和CLOSE表来记 录节点信息:OPEN表中保留所有已生成而 未考察

5、的节点;CLOSE表中保留所有已访问 过的节点。算法在每一次搜索过程中都会 对OPEN表中的节点按照每个节点的f值进行 排序,选择f值最小节点进行扩展。算法的描述如下: 把起始节点S放到OPEN表中,计算f(S),并把 其值与节点S联系起来。 若OPEN是个空表,则算法失败退出,无 解。 从OPEN表中选择一个f值最小的节点i。结果 有几个节点合格,当其中有一个为目标节点时, 则选择此目标节点,否则就选择其中任一个节点 作为节点i 。 把节点i从OPEN表中移出,并把它放入到 CLOSED的扩展节点表中。 若节点i是个目标节点,则成功退出,求得 一个解。 扩展i,生成其全部后继节点。对i的每个

6、后继节 点j: (a) 计算f(j)。 (b) 如果j既不在OPEN表中,也不在CLOSED表中 ,则用估价函数f将其添加到OPEN表。从j加一指向 其父辈节点i的指针,以便一旦找到目标节点时记住 一个解答路径。 (c) 如果j已则OPEN表中或CLOSED表中,则比较 刚刚对j计算过的f值和前面计算过的该节点在表中 的f的值。若新的f值较小,则 (i) 以此值取代旧值。 (ii) 从j指向i,而不是指向它的父辈节点。 (iii) 若节点j在CLOSED表中,则把它移回OPEN 表。 转向。四、实验内容问题描述: 用启发式搜索方法求解下列九宫问题五、问题 (1)状态表示的数据结构 (2)状态扩展规则的表示 (3)搜索产生的状态空间图 (4)OPEN表和CLOSE表变化过程 (5)程序清单六、实验结果讨论 a. 你所采用的估价函数f(n) = g(n) + h(n)中, g(n)和h(n)的主要作用是什么? b. 结合本实验举例说明不同启发策略对实验 的效果有何影响? c. 若问题的初始状态是随机产生的,你的实 验程序应该如何改进?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号