Best-First搜索

Best-First搜索(最佳优先搜索)结合了深度优先与广度优先的优点。

基本思想

根据评价函数,在目前所产生的所有结点中选择评价函数最优的结点进行扩展。

与爬山法的区别

  • 爬山法:只在当前路径的邻域选择,具有局部性
  • Best-First搜索:在所有已生成的结点中全局选择,具有全局优化的概念

实现方式

通常使用优先队列(Priority Queue)来管理所有已生成但未扩展的结点,每次从队列中取出评价函数最优的结点进行扩展。

特点

  • 全局优化能力更强
  • 空间开销较大(需要维护所有已生成结点的队列)
  • 典型的应用包括 A* 算法

链接到