贪婪的搜索算法

时间:2018-11-25 02:18:41

标签: artificial-intelligence

目前,我是AI的新手。我对贪婪搜索算法有疑问。我在教程中看到的一个问题,但无法理解如何回答。请帮我。任何帮助表示赞赏。

考虑给定的图1.每个节点中的值代表该节点的启发式成本 到目标节点(G),圆弧内的值表示两个节点之间的路径成本。

[![1.If B is the starting node and G is the goal node,

(i) Find the traversal using Greedy Search Algorithm.

(ii) Find the traversal using A* Search Algorithm



2. Using the result of part(1) show that greedy search is not optimal.

enter image description here

1 个答案:

答案 0 :(得分:0)

我假设您所引用的贪婪搜索算法具有如下贪婪选择策略:选择与当前节点相邻且与当前节点的成本/距离最小的下一个节点。 / strong>请注意,贪婪的解决方案根本不使用启发式成本。

请仔细考虑以下附图,以证明贪婪的解决方案不是最佳的。 enter image description here

红色突出显示的路径表示贪婪算法采用的路径,绿色突出显示的路径表示启发式A *算法采用的路径。

说明:

贪婪算法

  • 从节点B开始,贪婪算法会查看路径成本(A为6,C为6,E为5)
  • 我们贪婪地移动到节点E,因为它的路径值最小。
  • 从E出发,只有一个选项可以移至F
  • 从F到F,我们只有一个选择,从H到G,我们只有一个选择(目标状态/节点)

“贪婪算法”的路径成本(红色突出显示):B -> E -> F -> H -> G = 5+6+6+3 = 20

A *算法(在继续之前,请查看A *算法的wiki页面,并了解g(n)h(n)是什么还不了解这个概念):

  • 从节点B开始,我们有三个选项A,C和E。对于每个节点,我们计算f(n) = g(n) + h(n)。这里g(n)是弧上的立即成本,h(n)是节点上的启发式值
    • 对于节点A,f(n)= 6 + 12 = 18
    • 对于节点B,f(n)= 6 + 10 = 16
    • 对于节点C,f(n)= 5 + 14 = 19
  • 我们选择继续使用f(n)最少的节点。所以我们移到节点B。
  • 我们以类似的方式进行操作,并找到以绿色突出显示的路径。
  • A *算法的路径为B -> C -> D -> H -> G,其成本为6+6+4+3 = 19

通过上面的示例,我们可以看到启发式路径的成本小于贪婪算法。因此,贪心算法并不总是最优的。