有向图上的A *算法

时间:2013-11-23 13:12:37

标签: graph graph-algorithm a-star

您好任何人都可以帮助我了解A *算法在此图表上的工作原理吗?

我想找到从1到7的最低成本路径。

以下是我解决问题的方法:  从1 - > 7:

{1,2}f = 2+7=9
 {1,3}f = 11+0=11
 {1,4}f = 1+11=12

EXPAND 2

{1,3}f = 11+0=11
 {1,4}f = 1+11=12
 {1,2,5}f = (2+3)+5=10

EXPAND 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

EXPAND 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 个答案:

答案 0 :(得分:2)

我将假设括号中的数字是使用某种启发式从给定节点到目标的估计距离(乍一看它们似乎与允许的启发式函数一致)。如果是这种情况,那么这就是成本等式中的 h(x)

  

f(x) = g(x) + h(x)

g(x)将是从源到节点 x 的路径的实际成本。从节点1开始,我们有3个传出边:2,3和4。

  

f(2) = g(2) + h(2)
   f(3) = g(3) + h(3)
   f(4) = g(4) + h(4)

从图表中填写数字我们得到:

  

f(2) = 2 + 7 = 9
   f(3) = 11 + 0 = 11
   f(4) = 1 + 11 = 12

f(2)是最低成本,因此我们选择节点2.下一步不是很有启发性(因为我们只能转到节点5),除非注意 g(x)是从源节点到达节点 x 的实际成本,即边缘1> 2的成本加上成本边缘2-> 5:

  

g(5) = 2 + 3 = 5

从那里 g(3) g(7)将他们的边缘成本添加到 g(5)。希望你能看到现在的情况,并完成这条道路。

编辑:

A* Search Algorithm中有一些关于他的例子的混淆。我会尝试在那里使用的符号和我使用过的符号之间进行转换。

以我们选择从S到A的路径的另一个问题为例做出决定。我们必须继续路径到节点X或Y.它们显示:

  

{S,A,X} f =(1 + 4)+ 5 = 10
  {S,A,Y} f =(1 + 7)+ 8 = 16

在我一直使用的符号中,这相当于:

  

f(X) =(1 + 4)+ 5 = 10,其中 g(X) =(1 + 4)和 h(X ) = 5
   f(Y) =(1 + 7)+ 8 = 16,其中 g(Y) =(1 + 7)和 h(Y) = 8

正如您在两种情况下所看到的,当您尝试确定下一个要选择的节点(X或Y)时,您必须将到达该节点的实际成本g(x)添加到估计的成本从那个节点到目标,h(x)。