【问题标题】:Multiple solutions in Shorthest Path Algorithm (A*)最短路径算法中的多种解决方案 (A*)
【发布时间】:2018-01-14 12:52:37
【问题描述】:

所以前几天我找到了一个网站,在那里我可以刷新我的算法知识,但遇到了一个问题。

如果我在地图上运行 A* 算法会发生什么,其中两个 - 完全相同 - possible solutions 可用?

  • 算法如何决定,哪个解决方案更好?哪一个 将选择一个,为什么?
  • 如果它是随机的,那么有没有办法通过代码(和 如何)?

【问题讨论】:

  • 这和ruby有什么关系?
  • 所有最短路径算法都识别出从给定节点 A 到给定节点 B 的单一最短路径,或得出不存在路径的结论。 (在计算从 A 到 B 的最短路径的过程中,有些会产生从 A 到所有其他节点的最短路径。)所有这些算法都可以修改以识别从 A 到 B 的所有最短路径。如果您想了解细节,请选择其中一种算法(例如,Djikstra's) 并发布一个问题,询问如何修改它以生成所有最短路径。 (续)
  • 算法会选择哪条最短路径,纯属实现问题。该算法的作者当然没有偏好。算法效率永远是驱动力。一个简单的类比:假设想要确定数组arr = [1,4,2,4] 中最大值的索引。一个常见的算法是首先选择0,然后选择1,因为arr[1] > arr[0], then reject 2`和3,因为arr[2] #=> 2[arr[3] #=>4都不大于4。可以将索引1 替换为3,这样效率会稍低一些,那有什么意义呢?
  • 我相信@Jörg 的问题是rhetorical;他是说这个问题不应该有 Ruby 标签,因为它与 Ruby 无关。我同意。此外,您应该只在必要时才使用图片,因为链接将来可能会断开。
  • 谢谢大家的回答,我现在明白了,它应该如何工作! 'ruby' 标签背后的原因,我不仅想理解,还想以某种方式实现它,在本例中是 Ruby。 (如何?在我的第二个问题中,我的第二个问题有点针对这种语言)我也很喜欢关于“理想问题形式”的各种建议,因为我是这个网站的新手,我还在学习它。 :)

标签: algorithm path a-star short


【解决方案1】:

我相信这取决于您如何实现算法。 这不是随机的。如果您在同一张地图上多次运行该算法,那么每次都会给出相同的解决方案。 这完全取决于您如何实现算法。

在您链接的示例中,您可以通过两种方式实现算法。 您可以让它先检查“向上”方向,也可以让它先检查“右”方向。

希望这个回答对你有帮助

【讨论】:

    【解决方案2】:

    如果多个解决方案都是正确的,那么选择哪个答案并不重要,因为两者都不比另一个更好。

    如果算法中没有随机元素,算法将始终选择相同的路径。遍历应该始终以相同的顺序进行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多