需要澄清A *算法

时间:2020-08-19 16:42:59

标签: algorithm

enter image description here

我认为使用A *算法应该是SAEFG,但是答案是SBEFG。现在,我的教授是个无所事事的人。有人可以解释为什么使用SBEFG吗?

1 个答案:

答案 0 :(得分:0)

示例中使用的启发式功能不一致。为了使启发法保持一致,以下等式必须为真:

对于每个节点x,y:h(x)+ w(x,y)> = h(y),其中h(v)是节点v的启发式函数值,w(x,y)是节点x和y之间的实际距离。

在此示例中,h(B)= 13,h(E)= 4且w(B,E)=6。如您所见,h(E)+ w(B,E)= 10

那是什么意思?好吧,具有这种启发式的A *搜索在图形中可能不是最佳的。如果不重新访问某些节点,它可能找不到最短的路径。

在此示例中,作者可能假设重新访问E节点,因此A *首先将转到C,然后是A,E,F,D,B,并且它应从B重新访问E,因为SBE比SAE短。 ,然后重新访问F并转到G。最终路径为SBEFG。

相关问题