启发式搜索方法的概念
(1)启发式搜索方法介绍
早期人工智能算法进行问题求解的过程就是在给定具体问题后,算法在问题对应解空间中进行搜索,得到与问题相对应、满足一定的约束条件的最佳答案。也就是找到一条从初始状态到目标状态的最佳路径。
由于求解问题的过程中求解方式有多种,到达目标状态的方式也就有多种。这主要是由于求解过程中求解条件的不确定性和不完备性造成的。求解的路径多样性构成了一个图,我们称这个图为状态空间。常用的状态空间搜索有广度优先搜索和深度优先搜索,但是它们存在着较大的缺陷,它们都是在一个给定的状态空间中进行穷举,也都是根据搜索的次序依次进行搜索。故而我们把它称为盲目搜索,当状态空间非常大且不可预测时,使用盲目搜索的效率会非常低。这时就需要启发式搜索方法了。
与盲目搜索不同,启发式搜索方法利用与问题有关的信息(即启发信息),从中得到启发来指导搜索,从而降低搜索的复杂性,减少搜索量,以提高效率。
(2)启发式搜索方法表达形式
启发式搜索方法的核心在于启发式函数。这是一个将启发信息形式化为一个关于结点的函数,用于估计结点n距离达成目标还需付出多少代价。启发式函数是基于当前结点到目标结点的某些特征来估算成本,从而指导搜索过程优先考虑那些可能更接近最优解的路径。由于启发式函数是用来估计结点之间的距离,因此它通常是非负的。值得注意的是,启发式函数存在一些负值有时也不会影响搜索算法的性质。
在利用启发信息来辅助指导搜索时,常见的做法是使用这些信息来规定从边缘集合挑选结点次序。对于边缘集合中的任意结点n,函数
f(n)=g(n)+h(n)f\left(n\right)=g\left(n\right)+h\left(n\right)f(n)=g(n)+h(n)
决定了搜索算法拓展结点n的优先度,这个函数被称为评价函数。我们规定:边缘结合中某个结点的评价函数值越小,其被挑选的优先级就越高。在深度优先搜索中,结点n的f\left(n\right)值可定义为该结点深度的倒数;在广度优先搜索中,结点n的f(n)f\left(n\right)f(n)值可以定义为该结点的深度。启发式搜索方法的公式表达如下,
f(n)=g(n)+h(n)f\left(n\right)=g\left(n\right)+h\left(n\right)f(n)=g(n)+h(n)
其中f(n)f\le
启发式搜索算法:原理与应用

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



