繁体   English   中英

理解不一致的启发式

[英]Understanding an Inconsistent Heuristic

假设我有一个网格,其中一些方块被指定为“目标”方块。 我正在使用A *来导航这个网格,尝试使用非对角线移动至少访问每个目标方块。 一旦访问了目标广场,就不再将其视为目标广场。 Think Pac Man,四处走动,试图吃掉所有的点。

我正在寻找一种一致的启发式方法来给A *辅助导航。 我决定尝试在任何给定位置尝试“将曼哈顿距离返回到最近的未访问目标”启发式。 我被告知这不是一致的启发式,但我不明白为什么。

将一个方格移向最近的目标方,成本为1,曼哈顿距离也应减少一个。 在目标广场上着陆将增加启发式的值(因为它现在将寻找下一个最近的未访问目标)或结束搜索(如果目标是最后未访问的目标)

H(N)<c(N,P)+ h(P)似乎总是成立。 是什么让这个算法不一致,或者我的导师错了?

如果你问如何使用A *找到所有目标的最短路径,答案是:你不能(只有一次迭代) 这是旅行推销员问题 ,NP完全问题。 要使用A *来解决这个问题,您需要尝试目标排序的每个排列。 然后,可以使用A *来解决从单个目标到单个目标的每个路径(因此,您需要为每个排列多次运行算法)

但是,如果您正在询问如何使用A *来查找从单个开始到多个目标中的任何一个的最短路径,那么您的解决方案工作正常,并且您的启发式确实是一致的。 多个一致启发式的最小值仍然是一致的启发式算法,很容易证明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM