平方欧几里得距离是可以接受的启发式方法吗?

时间:2019-06-23 08:17:06

标签: python artificial-intelligence heuristics planning

enter image description here

我有一个如图所示的网格。到目前为止,我已经将以下功能实现为启发式功能。因此,该游戏的目标是收集放置在该网格上的所有数字。起点A。

  1. 曼哈顿距离,然后将其最大值用于计算启发式方法。
    distance = abs(A_x-x_i)+abs(A_y-y_i)
    if distance > manhMax:
       manhMax = distance
  1. 所有曼哈顿距离到放置数字的总和。 (我认为这是不可接受的,因为如果我错了,它会高估到达目标的距离,可以纠正我)

我的问题是,第一种方法扩展状态超出我的需要,第二种方法不可接受。目前,我正在实施自己的启发式方法。

我想到了这个主意,计算从A到2再到1再到3和0的距离之间的距离之间的平方欧几里得距离。没有这样的顺序来收集数字。然而,问题是尽管欧氏距离可扩展但扩展了太多状态。您能否以合适的距离或方法帮助我完成任务。

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑您在解释您的方法时遇到了麻烦,因为此问题没有用于定义“可允许的”的简单,单一目标范例。相反,您有一个小的TSP(旅行商问题),您可以在其中收集4种物品中的任何一种!订单。您没有描述在方法中使用的哪个距离,但是没有简单的计算可​​以做到。将所有10个距离相加(对于n = 5个节点; 5x4 / 2)只是超支,因为您将仅遍历其中4条边。同样,将A到每个项目的距离相加也是错误的。

相反,您需要在路径的每个边缘上使用启发式,然后添加,然后为所考虑的四边缘路径生成启发式估计。对于 this 处理,欧几里德距离是可以接受的-但其平方不是:它严重高估了并且以错误的单位(面积而不是距离)显示。曼哈顿距离可能会更适合您。

请注意,在此示例中您遇到问题,因为根据启发式方法,边缘3-0将被低估4到5倍。