启发式算法的目标是为寻路器提供上下文信息。这些信息越准确,寻路器就能越高效。
要得到一个好的启发式算法,你需要满足两个相互矛盾的要求,但这很好,因为这意味着存在一个最佳平衡点。这两个要求如下:
当然,最优的启发式算法将返回精确的、正确的长度(通常是不可达到的或者与其目的相悖), 因为它不能返回更长的路径而不再是可接受的。
编辑 细看一下,似乎你在左下角有倾斜的顶点。如果是这样的话,你不在一个4连通图中,那么你必须使用欧几里得距离,因为曼哈顿距离不可行。
你的英雄有哪些可用移动方式不清楚。你的图表是否类似于象棋棋盘上的矩形网格,并且可以像国王一样在一个步骤中对角线移动?如果是的话,切比雪夫距离是最佳选择https://en.wikipedia.org/wiki/Chebyshev_distance。否则使用欧几里得距离。如果您想要最优路径,则不能在此处使用曼哈顿算法,因为曼哈顿启发式搜索在对角线路线上不可采用(它高估了它们),因此可能导致次优路径。