我尝试用对角线和两点之间直线距离的启发式编写星形算法。但是,在这种情况下,路径不是最短的
Going(2,2) - > (3,2) - > (4,2) - > (5,2)会更快,但它选择了削减。
我无法弄清楚我的理解有什么不对,因为当我这么想时,这就是它实际工作的方式。
我的理解:
它应该意识到f(5,2)低于(4,2)低于(3,2),这是从未计算过的,因为它选择采取(3,3)
这究竟出了什么问题?
编辑:水平/垂直的步费用为1,对角线的步长费用为sqrt(2)
答案 0 :(得分:0)
感谢亨利在评论中,推理因为(4,3) - > (5,2)具有比(2,2)更高的f值 - > (3,2),所以它应该向下(3,2)
即。要评估的下一个节点是从已排序的开放节点列表中选择的,而不是在输入时排序的值组的节点列表(不是添加了排序列表的堆栈)