【问题标题】:Is squared Euclidien distance a admissible heuristic?平方欧几里得距离是可以接受的启发式的吗?
【发布时间】:2019-11-05 09:50:39
【问题描述】:

我有一个如图所示的网格。到目前为止,我已经实现了以下函数作为我的启发式函数。所以这个游戏的目标是收集所有放在这个网格上的数字。起点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)
  • 其实这和旅行商问题(tsp)密切相关。我建议查看一些关于 tsp 和他们使用的启发式的文献。

标签: python artificial-intelligence heuristics planning


【解决方案1】:

我怀疑您在解释您的方法时遇到了麻烦,因为这个问题没有用于定义“可接受”的简单、单一目标范式。相反,您有一个小的 TSP(旅行推销员问题),您可以在其中收集 4 个中的任何一个项目!命令。您没有描述您在方法中使用的 哪个 距离,但不会进行简单的计算。添加所有 10 个距离(对于 n=5 个节点;5x4 / 2)只是超支,因为您将只遍历其中的 4 个边。同样,将 A 到每个项目的距离相加也是错误的。

相反,您需要在路径的每条边上使用启发式算法,然后添加所考虑的四边路径的启发式估计值。对于这种处理,欧几里得距离是可以接受的——但它的平方不是:它严重高估,并且单位错误(面积,而不是距离)。曼哈顿距离可能更适合您。

请注意,此示例中存在问题,因为边 3-0 将被低估 4 到 5 倍,具体取决于您的启发式方法。

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 2013-03-02
    • 2017-02-02
    • 1970-01-01
    • 2019-03-11
    • 2017-03-21
    相关资源
    最近更新 更多