【发布时间】: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 reject2`和3,因为arr[2] #=> 2和[arr[3] #=>4都不大于4。可以将索引1替换为3,这样效率会稍低一些,那有什么意义呢? -
我相信@Jörg 的问题是rhetorical;他是说这个问题不应该有 Ruby 标签,因为它与 Ruby 无关。我同意。此外,您应该只在必要时才使用图片,因为链接将来可能会断开。
-
谢谢大家的回答,我现在明白了,它应该如何工作! 'ruby' 标签背后的原因,我不仅想理解,还想以某种方式实现它,在本例中是 Ruby。 (如何?在我的第二个问题中,我的第二个问题有点针对这种语言)我也很喜欢关于“理想问题形式”的各种建议,因为我是这个网站的新手,我还在学习它。 :)
标签: algorithm path a-star short