2012-03-01 91 views

回答

0

Greedy Best First Search在任何情况下的行为都可能与Depth First Search类似吗?

不,如果是的话,它会深度优先搜索。

我看到这两种算法的最坏情况是类似的O(b^m)。这是否意味着他们的行为方式相同?

0

“最佳第一”只是意味着它完全依靠一些启发式该分数可能的选项,并首先扩展的最佳选择。深度优先搜索不使用这种启发式。

想一想,它的一个方法是Djiksta将返回图中具有非负边的最短路径。当您添加最佳优先搜索的评分机制时,您会得到A *。带走Djikstra,你会再次回到最佳状态。

+0

是否有任何可能的情况,当两个算法以相同的方式寻找答案时,可能通过以相同方式遍历节点。让我们说目标在于m级树的叶节点。 DFS的最坏情况是o(b^m),GBFS也是如此。我们可以改变h(n)是否有某种方式使它像DFS一样适用于某些特殊情况? – Zombie 2012-03-01 10:43:41

+0

设置h(n)= -g(n)会给你一个搜索,这取决于你从队列中取出什么顺序。 (可能是随机或先入,模拟BFS)。 因此,使它像DFS一样行事的策略是维护一个计数器,每次计算启发式时都会减少计数器。例如。您的启发函数是: H(N): 计数器=计数器 - 1 回报-g(N)+计数器 再次,这是不是A *的一个特别有用的应用,但它确实工作。 – sjdlgjsljg 2012-03-01 11:14:52