【问题标题】:Difference between best first search and greedy best first search?最佳优先搜索和贪婪的最佳优先搜索之间的区别?
【发布时间】:2020-05-23 19:24:07
【问题描述】:

有区别吗?有人告诉我,贪婪者会选择具有最高值的 child 启发式函数,即本地最佳继任者。我的困惑是在一个贪婪的最佳优先算法中会发生什么不跟踪它的访问节点,在不同的路径中遇到相同的节点?我会把问题画出来清楚地描述它;

贪心最佳优先算法通过B、C(x)或C(y)到达C时会扩展哪个节点C,输出路径是什么? ABCG 还是 ACG?

注意此树是网格的最短路径评估的图形表示,子节点是网格中父节点的有效相邻节点。

【问题讨论】:

  • 您要搜索的是树还是图?您显示了一个树结构,但声称 C 节点是相同的。我不清楚您要解决的问题;是在非树形图中找到C的路径吗?
  • 很抱歉没有提供更好的上下文,请看一下我现在编辑的注释
  • 这有点怀疑,答案是由问题的作者自己编辑的,而且也没有太大的信心。这样一来,这是否意味着 A-B-C-G 是最先提供的贪婪路径?因为它将只考虑节点 B 的子节点进行下一次选择?

标签: algorithm search artificial-intelligence


【解决方案1】:

那么这是否意味着 A-B-C-G 是最先贪婪的路径 交付?因为它将只考虑节点 B 的子节点 下一个选择?

是的:一个严格的“贪婪”算法只考虑在每个关头最好的短期选择。第一步,BC 便宜,所以它从这条路径开始。从这里开始,它将B 视为起始节点。从那里最便宜的移动是到C,然后到G。

相比之下,A* 或 Dijkstra 等“最佳优先”算法会注意到最便宜的总路径。它从状态 (A, 0) 开始——到达A 不需要任何费用。然后它产生移动(AB,2),(AC,3)和(AD,手);它采取最便宜的移动,(AB,2),但保留列表中的其他移动。现在它从B 生成移动,total 成本:(ABE, 7) 和 (ABC, 5)。此时,它会下降 (ABC, 5),因为有一条已知的更便宜的路径可以到达 C

现在列表中最便宜的路径是 (AC, 3),算法将从那里生成移动:(ACG, 3+unknown)。

这对你来说足够清楚了吗?

【讨论】:

    【解决方案2】:

    一般来说,如果算法只采取局部最佳步骤并且从不重新考虑决策,则称为“贪婪”算法。 “最好的优先”将是某种详尽的搜索,您可以通过一些启发式(“听起来很明智,但不保证”)对替代步骤进行排序,然后按顺序尝试它们。只有结合一些截止标准才有意义,即,您有某种方法可以剔除可以证明不会产生预期结果的替代方案。

    检查例如$A^*$(A-star)搜索。

    【讨论】:

    • 我确实理解贪婪背后的概念,但我的问题是我对它在上面显示的场景中的行为感到困惑
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    相关资源
    最近更新 更多