为什么知情搜索比不知情搜索更有效地找到解决方案?
为什么知情搜索比不知情搜索更有效?
人工智能
搜索
比较
效率
2021-11-02 12:22:51
1个回答
有几种知情和不知情的搜索算法。它们并不都具有相同的时间和空间复杂度(这也取决于具体的实现)。我可以提出一种在时间或空间复杂度方面效率极低的知情搜索算法。因此,一般而言,就空间和时间复杂度而言,知情搜索算法并不比不知情的搜索算法更有效。
然而,鉴于知情搜索算法使用“领域知识”(即估计到目标节点距离的启发式函数),在实践中,如果给定更知情的“启发式”,它们往往会更快地找到目标节点(为了找到最佳解决方案,它需要被接受)。例如,理论上,A*具有指数时间和空间复杂性(关于分支因子和树的深度),但在实践中,它往往表现得不错。它往往有一个有效的分支因子(即特定问题实例的分支因子)非常“小”(对于几个问题)。
什么是更明智的启发式?直观地说,它是一种启发式方法,可以更快地关注搜索空间的有希望的部分。让我们表示启发式函数。如果, 对于所有节点,那么这是一个可接受的启发式,因为它总是低估到目标的距离(也就是说,它总是返回)。但是,这是一种非常不明智的启发式方法:无论您是在起始节点还是目标节点,估计值总是相同的(因此,就估计值而言,您无法区分起始节点和目标节点)。给定两个可接受的启发式和,比如果, 对于所有节点.
不知情的搜索算法执行穷举搜索。有几种方法可以执行这种详尽的搜索(例如广度优先或深度优先),它们比其他方法更有效(取决于搜索空间或问题)。鉴于他们执行详尽的搜索,他们倾向于探索搜索空间的“无趣”部分。因此,在实践中,它们可能比知情搜索算法效率更低(也就是说,它们可能需要更多时间来找到解决方案)。
其它你可能感兴趣的问题