我想就以下 A* 搜索示例进行澄清:

algorithm - A* 搜索算法-LMLPHP

用红色椭圆突出显示的部分是我不明白的区域;似乎 {S,B} f=2+6=8 已从 Expand S(上图)中获取/移动/复制并用于 Expand A 。似乎还从 {S,A,X} f=(1+4)+5=10 获取/移动/复制了 Expand A 并在 Expand B 中使用。

有人可以解释为什么会发生这种情况吗?我能够很好地阅读图表并且在解释它时没有任何问题 - 这只是我不知道 为什么 上述路径/路线在其他地方被复制的事实。

谢谢你。

最佳答案

这是获取当前最佳项目,删除它,并用扩展替换它(将新项目插入列表中的适当位置)。可以这样想:

展开 S:

  • {S,A} f = 1+5 = 6
  • {S,B} f = 2+6 = 8

  • 展开 A:
  • {S,A} f = 1+5 = 6
  • {S,B} f = 2+6 = 8
  • {S,A,X} f = (1+4)+5 = 10
  • {S,A,Y} f = (1+7)+8 = 16

  • 展开 B:
  • {S,B} f = 2+6 = 8
  • {S,A,X} f = (1+4)+5 = 10
  • {S,B,C} f = (2+7)+4 = 13
  • {S,A,Y} f = (1+7)+8 = 16
  • {S,B,D} f = (2+1)+15 = 18
  • 关于algorithm - A* 搜索算法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5849667/

    10-12 20:04