定义 Beam Search17 Mar 2025 | 6 分钟阅读 Beam search 是一种启发式搜索算法,通过扩展一组有限的、最乐观的节点来探索图。Beam search 是 最佳优先搜索 的一种优化,它减少了内存需求。 Best-first search 是一种图搜索算法,它根据某种启发式方法对所有部分解进行排序。但在 Beam search 中,只保留预先确定的数量的最佳部分解作为候选。因此,它是一种 贪婪 算法。 Beam search 使用 广度优先搜索 来构建其搜索树。在树的每一层,它都会生成当前层所有状态的后继,并按启发式成本递增的顺序对它们进行排序。然而,它只存储每层预先确定的数量 (β) 的最佳状态,称为 束宽 (beamwidth)。只有这些状态会被进一步扩展。 束宽越大,剪枝的状态就越少。束宽为无穷大时,不会剪枝,Beam search 就等同于广度优先搜索。束宽限制了执行搜索所需的内存。由于目标节点可能被剪枝,Beam search 会牺牲完备性(保证算法在存在解的情况下能够终止并找到解)。Beam search 不是最优的,这意味着不能保证它会找到最佳解。 通常,Beam search 返回找到的第一个解。一旦达到配置的最大搜索深度(即翻译长度),算法将评估在不同深度搜索过程中找到的解,并返回概率最高的最佳解。 束宽可以是 固定的 或 可变的。一种使用可变束宽的方法是从最小宽度开始。如果没有找到解,则会拓宽束宽,然后重复该过程。 Beam Search 的组成部分Beam search 接受三个组件作为输入:
问题是待解决的问题,通常表示为图,包含一组节点,其中一个或多个节点代表目标。启发式规则集是特定于问题域的规则,用于从内存中剪除与问题域相关的不利节点。 内存是存储 “束 (beam)” 的地方。当内存已满且要将一个节点添加到束中时,成本最高的节点将被删除,以确保不超过内存限制。 Beam Search 算法以下 Beam Search 算法,作为一种修改后的最佳优先搜索,改编自张(1999)的研究。 Beam Search 的用途Beam search 最常用于在内存不足以存储整个搜索树的大型系统中保持可处理性。例如,
Beam Search 的缺点以下是 Beam Search 的一个缺点及其示例:
例如,我们取下面树图的 ß = 2。然后按照以下步骤找到目标节点: ![]() 步骤 1: OPEN= {A} 步骤 2: OPEN= {B, C} 步骤 3: OPEN= {D, E} 步骤 4: OPEN= {E} 步骤 5: OPEN= { } 开放集变为空,而没有找到目标节点。 注意:但当 ß = 3 时,算法成功找到了目标节点。Beam Search 的最优性Beam Search 算法在某些情况下不是完备的。因此,也不能保证其最优性。这可能是由于以下原因:
例如,我们有一个具有启发式值的树,如下所示: ![]() 请按照以下步骤找到目标节点的路径: 步骤 1: OPEN= {A} 步骤 2: OPEN= {B, C} 步骤 3: OPEN= {C, E} 步骤 4: OPEN= {F, E} 步骤 5: OPEN= {G, E} 步骤 6: 找到目标节点 {G},停止。 路径: A-> C-> F-> G 但 最优路径 是 A-> D-> G Beam Search 的时间复杂度Beam Search 算法的时间复杂度取决于以下因素:
B 是束宽,m 是搜索树中任何路径的最大深度。 Beam Search 的空间复杂度Beam Search 算法的空间复杂度取决于以下因素:
B 是束宽,m 是搜索树中任何路径的最大深度。
Beam Search 的变体通过将其与 深度优先搜索 相结合,Beam search 已变得完备,从而产生了 beam stack search 和 depth-first beam search。通过有限差异搜索,beam search 产生了有限差异回溯 (BULB)。 生成的搜索算法是任何时间算法(anytime algorithms),它们能快速找到合理的但可能不是最优的解,然后回溯并继续寻找改进的解,直到收敛到最优解。 在局部搜索的上下文中,我们将 局部束搜索 (local beam search) 称为一种特定算法,它从选择 β 个生成的开始状态。然后,对于搜索树的每一层,它总是从当前状态的所有可能后继中考虑 β 个新状态,直到达到目标。 由于局部束搜索经常陷入局部最优,一种标准的解决方案是以随机方式选择接下来的 β 个状态,其概率取决于状态的启发式评估。这种搜索称为 随机束搜索 (stochastic beam search)。 其他变体包括 灵活束搜索 (flexible beam search) 和恢复束搜索 (recovery beam search)。 下一主题Prism Formula |
我们请求您订阅我们的新闻通讯以获取最新更新。