课后讨论
上一节
下一节
今天上课讲到第31页时,我没有在课堂上解释清楚。
下课后,有同学提醒了,非常感谢他。
如图所示,A*算法的求解过程为:
| Frontier | Explored Set | Comment |
| {S:7+0} | {} | |
| {A:1+6; G:5+0} | {S} | G入栈 |
| {A:1+6} | {S、G} | G出栈,A*算法截止 |
由此可见,A*算法给出的解为:S-G,总代价为5。
但是,结果S-G为次优解,最优解应该为:S-A-G,总代价为4。
导致以上问题的原因在于状态A节点的代价估计6高于实际代价3。
因此,这个例子的结论包括:
如果不对A*算法的Heuristic function进行约束,A*算法的最优性(optimality)存疑。
在tree-search问题求解中,A*算法的Heuristic function必须满足可达性(admisibility),才能确保解的最优性。


