这个问题我已经思考了很久,但始终没有得到合理的答案:
通常在人工智能课程中,当涉及到搜索时,总是说广度优先搜索(BFS)是最优的,而深度优先搜索(DFS)不是,但我可以举出很多例子,证明使用DFS有时可以更快地得到答案。那么,有人能解释一下吗?我是不是错过了什么?
回答:
这里的“最优”是指“产生最优路径”,而不是“最快的算法”。在搜索状态空间以寻找通往目标的路径时,DFS可能会产生比BFS长得多的路径。请注意,BFS只有在动作没有权重时才是最优的;如果不同的动作有不同的权重,你需要使用像A*这样的算法。