Python贪婪算法:贪婪搜索算法(greedy search example)

目前,我是人工智能的新手。我对贪婪搜索算法有一个问题。我在一个教程中看到一个问题,但无法理解如何回答它。请帮助我。任何帮助不胜感激。

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

如果 B 是起始节点,G 是目标节点,

使用贪婪搜索算法查找遍历。

使用 A * 搜索算法查找遍历

Using the result of part (1) show that greedy search is not optimal. enter image description here

0

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

Consider the following figure well crafted such that it proves that greedy solution is not optimal. enter image description here

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

说明:

贪婪算法

从节点 B 开始,贪婪算法看到路径成本(A 为 6,C 为 6,E 为 5)

我们贪婪地移动到节点 E,因为它具有最小的路径值。

从 E 我们只有一个选择移动到 F

从 F 我们再次只有一个选项移动到 H,从 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

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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(831)
9炼金科技谁主c:Cloud-9:如何从c9终端在c9编辑器中打开文件
上一篇
今天晚上cba:如果是晚上或晚上 为什么高度会改变
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(32条)