【发布时间】:2013-11-23 13:12:37
【问题描述】:
您好,谁能帮我理解 A* 算法在此图上的工作原理?
我想找到从 1 到 7 成本最低的路径。
这是我解决问题的方法: 从 1 -> 7:
{1,2}f = 2+7=9
{1,3}f = 11+0=11
{1,4}f = 1+11=12
展开 2
{1,3}f = 11+0=11
{1,4}f = 1+11=12
{1,2,5}f = (2+3)+5=10
展开 5
{1,3}f = 11+0=11
{1,4}f = 1+11=12
{1,2,5,3}f = (2+3+5)+0=10
{1,2,5,7}f = (2+3+7)+0=12
展开 3
{1,3}f = 11+0=11
{1,4}f = 1+11=12
{1,2,5,7}f = (2+3+7)+0=12
{1,2,5,3,7}f = (2+3+5+1)+0 = 11
{1,2,5,3,6}f = (2+3+5+1)+1=12
所以正确答案是{1,2,5,3,7}f = (2+3+5+1)+0 = 11。我在写吗?
【问题讨论】:
-
从技术上讲,由于
{1,3}和{1,2,5,3,7}在最后一步中的成本相同,您应该检查路径{1,3,6}和{1,3,7},因为它们最终的成本可能与 @ 相同987654331@。在某些图表中,您最终可能会得到相同成本的多条路径。 -
但他们没有:)。如果会有多条成本相同的路径,正在考虑哪一条?
-
But they don't- 但您只知道这一点,因为您扩展了这些路径并发现它们的成本更高。 :) 至于多条路径中选择哪条路径,可以全部取,第一条,最后一条,随机一条,边最少的,边最多的,最北的边缘...换句话说,这完全取决于您要解决的问题和您的偏好。
标签: graph graph-algorithm a-star