传统的DFS算法会追踪节点。而局部搜索算法则不追踪状态,并且具有失忆特性。因此,我认为循环主要指一个无限分支(即具有无限可能状态的分支)。在这种情况下,DFS算法只会向下延伸并过于专注于一个分支。
如果您不检查循环,那么深度优先搜索可能会陷入其中并永远无法找到其目标,而广度优先搜索将始终扩展到下一个深度的所有节点,因此即使存在循环,它也最终会找到其目标。
简而言之:
如果您的图可以有循环,并且正在使用DFS,则必须考虑循环。另一方面,BFS提供了忽略循环的选项,以换取效率,这在搜索少量节点时通常是可以接受的。