Best-First搜索
Best-First搜索(最佳优先搜索)结合了深度优先与广度优先的优点。
基本思想
根据评价函数,在目前所产生的所有结点中选择评价函数最优的结点进行扩展。
与爬山法的区别
- 爬山法:只在当前路径的邻域选择,具有局部性
- Best-First搜索:在所有已生成的结点中全局选择,具有全局优化的概念
实现方式
通常使用优先队列(Priority Queue)来管理所有已生成但未扩展的结点,每次从队列中取出评价函数最优的结点进行扩展。
特点
- 全局优化能力更强
- 空间开销较大(需要维护所有已生成结点的队列)
- 典型的应用包括 A* 算法
