第三章启发式搜索
- 格式:pdf
- 大小:1.21 MB
- 文档页数:14
1
3实验三 启发式搜索
内容:
1 以8数码或15数码为例,实现其A 算法求解程序。
2 写出实验报告:包括做实验的目的、方法、过程等;分析估价函数对搜索算法的影响,画出A 算法流程图,根据A 算法分析启发式搜索的特点。
(一)实验名称:
启发式搜索
(二)目的:
熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A 算法求解N 数码难题,理解求解流程和搜索顺序。
(三)原理:
A 算法是一种有序搜索算法,其特点在于对估价函数的定义上。
对于一般的有序搜索,总是选择f 值最小的节点作为扩展节点。
因此,f 是根据需要找到一条最小代价路径的观点来估算节点的,所以,可考虑每个节点n 的估价函数值为两个分量:从起始节点到节点n 的代价以及从节点n 到达目标节点的代价。
(四)步骤:
(五)实验结果与分析:
八数码问题
估价函数为:f (n ) = g (n ) + h (n
)
其中: g(n):节点n的深度
h(n):节点n中错放的棋子个数
相同值时,后扩展的节点放在前面;带圆圈的数字表示估价函数的值不带圆圈的数字表示扩展顺序。
2。
⼈⼯智能习题作业搜索策略I习题答案第三章搜索策略课后习题及答案⼀、选择题:1. 启发式搜索中,通常OPEN表上的节点按照它们f函数值的_____顺序排列。
( D )A平均值 B 递减 C 最⼩ D递增2. 按尼尔逊(Nilsson)提出的有序搜索基本算法指出,⼀个节点的希望程度⼤,则f值_____。
( B )A 不变化B ⼩C ⼤D 为03. 如果重排OPEN表是依据f(x)=g(x)+h(x)进⾏的,则称该过程为_____。
( B )A A*算法B A算法 C有序搜索 D启发式搜索4. 在与或树和与或图中,我们把没有任何⽗辈节点的节点叫做_____。
( C )A 叶节点 B端节点 C根节点 D 起始节点5. 对于⼋数码问题:起始棋局 —> ⽬标局棋2 83 1 2 31 6 4 8 47 5 7 6 5取h(n)=W(n), W(n)⽤来计算对应于节点n的数据库中错放的棋⼦个数。
请问需要扩展多少个节点才能到达⽬标?( C )A 20B 13C 6D 116. α-β剪枝技术中,⼀个MIN节点的β值等于其后继节点当前()的最终倒推值。
( A )A 最⼩B 最⼤C 平均D α值7. α-β剪枝技术中,“或”节点n的α值如果不能降低其⽗节点的β值,则对节点n以下的分枝可停⽌搜索,并使节点n的倒推值为α。
这种剪枝称为_____。
( A )A β剪枝B α剪枝C α-β剪枝 D极⼩极⼤分析法8. 宽度优先搜索⽅法能够保证在搜索树中找到⼀条通向⽬标节点的_____途径(如果有路径存在时)。
( B )A 可⾏B 最短C 最长D 解答9. A*算法是⼀种_____。
( ABD )A 图搜索策略B 有序搜索算法C 盲⽬搜索D 启发式搜索10. 应⽤某个算法(例如等代价算法)选择OPEN表上具有最⼩f值的节点作为下⼀个要扩展的节点。
这种搜索⽅法的算法就叫做_____。
( C )A 盲⽬搜索B 深度优先搜索C 有序搜索算法D 极⼩极⼤分析法⼆、填空题:1. OPEN表⽤于存放未扩展的节点,CLOSED表存放_已扩展_的节点。
启发式搜索信息工程学院计算机科学与技术118班路振中一、何谓启发式搜索启发式搜索算法有点像广度优先搜索,不同的是,它会优先顺着有启发性和具体特定信息的节点搜索下去,这些节点可能是到达目标的最好路径。
我们称这个过程为最优(best-first)或启发式搜索下面是其基本思想:(1) 假定有一个启发式(评估)函数ˆf ,可以帮助确定下一个要扩展的最优节点,我们采用一个约定,即ˆf的值小表示找到了好的节点。
这个函数基于指定问题域的信息,它是状态描述的一个实数值函数。
(2) 下一个要扩展的节点n是ˆf(n)值最小的节点(假定节点扩展产生一个节点的所有后继)。
(3) 当下一个要扩展的节点是目标节点时过程终止二、典例A搜索算法描述用最优搜索算法详细说明GRAPHSEARCH。
最优搜索算法根据函数的增加值,(在上述第7步)重排OPEN中的节点。
把GRAPHSEACH的这种算法称为算法A。
下面将会看到,定义使A执行广度搜索或相同代价搜索的函数是可行的。
为了确定要用的函数族,必须先介绍一些其他符号。
设g(n) = 从开始节点n0到节点n的一个最小代价路径的代价。
设h(n) =节点n和目标节点(遍及所有可能的目标节点以及从n到它们的所有可能路径)之间的最小代价路径的实际代价。
那么f(n) = g(n) + h(n)就是从n0到目标节点并且经过节点n的最小代价路径的代价。
注意f(n0)= h(n0)是从n0到目标节点的一个(不受限的)最小代价路径的代价。
对每个节点n,设gˆ(n)(深度因子)是由A*发现的到节点n的最小代价路径的代价,hˆ(n)(启发因子)是h(n)的某个估计。
在算法A中,我们用ˆf(n)= gˆ(n)+ hˆ(n)。
A算法流程:(1)生成一个只包含开始节点n0的搜索图G,把n0放在一个叫OPEN的列表上。
(2)生成一个列表CLOSED,它的初始值为空。
(3)如果OPEN为空,则失败退出。
(4)选择OPEN上的第一个节点,把它从OPEN中移入CLOSED,称该节点为n。