Dim*_*ski 10 algorithm search artificial-intelligence beam-search
我对光束搜索算法有疑问.
让我们说n = 2(我们将从每个节点扩展的节点数).所以,在开始时,我们只有根,我们从它扩展了2个节点.现在,从这两个节点开始,我们再扩展两个节点.所以,目前,我们有4片叶子.我们将继续这样,直到找到答案.
这是梁搜索的工作原理吗?它是仅扩展n = 2每个节点,还是一直保留2个叶子节点?
我曾经认为这n = 2意味着我们每个节点最多应该有2个活动节点,而不是整个树的两个活动节点.
ami*_*mit 15
在"标准" 波束搜索算法中,在每个步骤中,您当前"了解"的节点总数是有限的 - 而不是您将从每个节点跟随的节点数.
具体地说,如果n = 2,则意味着"梁"的大小始终为2.因此,最初,您从一个节点开始,然后您发现可从其中访问的所有节点,但丢弃除了两个节点之外的所有节点,并使用2个节点完成步骤1.在第2步,你有两个节点,你将扩展它们,并再次丢弃所有节点,除了2个节点(总数,不是每个节点!).在接下来的步骤中,类似地,您将在每个步骤后保留2个节点.
选择要保留的节点通常由一些启发式函数完成,该函数评估哪个节点最接近目标.
注意,波束搜索算法不完整(即,如果存在,则可能找不到解决方案)也不是最优的(即,它可能找不到最佳解决方案).看到这种情况的最佳方式是见证它何时n = 1,它基本上减少到最佳搜索.