关于 A* 算法的最优性
  • 板块学术版
  • 楼主naiver_naiver
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/3/25 21:33
  • 上次更新2024/3/26 09:56:28
查看原帖
关于 A* 算法的最优性
197533
naiver_naiver楼主2024/3/25 21:33

在 A* 算法中,有一句话是这么说的:

在 A 算法的基础上,只要估价函数 h(x)∈[0,h∗(x)]h(x) \in [0, h^{*}(x)],那么 A* 就能找到最优解。

其中 h∗(x)h{*}(x) 表示 xx 到终点的距离。

然而,我却发现了这样一组数据:

4 4
1 2 1
1 3 10
2 4 20
3 4 100

其中点数、边数均为 44,起点为 11,终点为 44。

若令 h(1)=0,h(2)=20,h(3)=0h(1) = 0, h(2) = 20, h(3) = 0,其满足估价函数的要求,但是经过模拟,似乎点 33 会先于点 22 被扩展,得到“错误”的最短路径 1→3→41 \to 3 \to 4,并非最优解。

显然,要么我对 A* 算法的理解有问题,要么是我对这组数据的模拟有问题。但很可惜,研究了一下午和一晚上,目前我并没有意识到是哪一步出了问题。

2024/3/25 21:33
加载中...