我是 AI 的新手。有人告诉我,深度优先搜索不是最佳搜索算法,因为“无论深度或成本如何,它都会找到'最左边'的解决方案”。因此,这是否意味着在实践中,当我们实现 DFS 时,我们应该始终有一个检查器在找到第一个解决方案(也是最左边的一个)时停止搜索?
深度优先搜索是否总是在找到最左边的解决方案时停止?
人工智能
搜索
执行
深度优先搜索
2021-11-11 20:48:48
1个回答
首次向新生介绍搜索算法(例如深度优先搜索、广度优先搜索,您也可能听说过或即将听到等)时,更标准的假设之一确实是我们的目标是找到某种解决方案,只找到一个。
如果我们的意图是只找到一个解决方案,那么是的,您需要在每个节点上检查它是否是一个解决方案节点,一旦找到一个,您就可以停止搜索过程。
在实践中,这个想法可能有各种各样的变体。也许在另一种情况下,您有兴趣找到所有解决方案,而不是单个解决方案;在这种情况下,您自然不会在找到第一个后停止搜索过程,而是继续搜索。
因此,总而言之,这实际上取决于您想要什么,为什么要使用搜索算法。如果您只关心找到解决方案,您可以在有解决方案时停止。
其它你可能感兴趣的问题