启发式搜索算法:原理、应用与优化
1. 启发式搜索概述
在搜索方法中,广度优先和深度优先搜索通常选择边界上的第一条路径进行扩展,区别仅在于新路径添加到边界的顺序。而启发式搜索则利用对每条路径通向良好结果可能性的估计,选择最有期望的路径进行下一步探索。其核心思想是,如果估计较为准确,就能更快找到最优路径。在启发式搜索里,边界被管理为一个优先队列,队列中的优先级是对路径优劣的估计,每一步都会选择优先级最高的路径进行进一步扩展。启发式搜索主要用于寻找问题的单个解决方案。
1.1 启发式搜索示例
以在道路网络中寻找两个城镇之间的路线为例,从一个城镇到最终目的地的成本可以估计为两城镇之间的直线距离,即“乌鸦飞行距离”。由于实际路线不可能比这个距离更短,所以这是一个乐观估计。在选择下一步探索的部分路线时,会选择使已走过路线的成本与剩余路程估计成本之和最小的路线。这与 Dijkstra 算法不同,Dijkstra 算法总是探索当前成本最小的部分路线,而忽略完成旅程的估计成本。路线查找算法在人工智能领域有广泛应用,如机器人技术、游戏和谜题求解等。
1.2 相关算法及数据结构
启发式搜索通常使用图和边的术语来描述,假设图由有限个顶点和有向边组成,且每条边的成本(或权重)始终为正数。接下来将介绍两种密切相关的启发式搜索算法,它们分别基于对估计函数的不同假设。同时,还会回顾优先队列的必要操作,并介绍一种新的数据结构——优先搜索队列,它有助于提高搜索的运行时间。
2. 乐观启发式搜索
2.1 乐观启发式定义
估计函数或启发式函数 (h) 是一个从顶点到成本的函数,(h(v)) 用于估计从顶
超级会员免费看
订阅专栏 解锁全文

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



