【问题标题】:Admissible heuristic for number maze/jumping maze problem数字迷宫/跳跃迷宫问题的可接受启发式
【发布时间】:2019-06-20 11:55:53
【问题描述】:

我遇到了一个问题,其中给出了一个迷宫并且每个单元格都有一个数字。在任何单元格中,您可以向上/向下/向左/向右跳转与当前单元格中指定的单元格一样多的单元格。使用 A* 达到目标的良好可接受启发式方法是什么?

我尝试过曼哈顿/欧几里得距离,但我相信他们高估了成本。

【问题讨论】:

  • 你可以向上/向下/向左/向右跳转与当前单元格中指定的单元格一样多的单元格你的意思是什么时候?请举例说明
  • 你能保证跳跃中没有障碍物吗?如果我向左跳 3 并且在 2 处有一堵墙?我跳过它吗?在我看来,这听起来更像是一个速度变量,加上与目标的距离。所以更喜欢高价值的方块。
  • @MatthewPage 迷宫中没有障碍物。只是带有指定数字的单元格,表示它可以在 4 个方向中的任何一个方向上跳跃的允许的单元格数量。此外,一次跳跃等于 1 个成本,而不是它实际跳跃的单元数。
  • @bruno 假设你在 (0,0) 并且单元格的值为 2,那么它可以跳转到坐标 (2,0) 或 (0,2)。
  • @antsy 好的。什么表示退出?从哪里开始?

标签: artificial-intelligence


【解决方案1】:

一个简单的下限是曼哈顿距离除以地图上最大跳跃的大小(​​向下取整)。这也应该是一个一致的启发式。

【讨论】:

  • 是的,但我觉得这可能过于乐观了。
  • @antsy 如果“过度乐观”是指“不可接受”,那么不,显然是可以接受的。例如,如果曼哈顿距离为 10,而图表上的最大跳跃为 2,则仅 4 次跳跃是无法达到的。 5 是可能的绝对最小值。其实应该可以证明这个启发式是consistent,比可接受性强。
  • 让我们假设在 8*8 矩阵中提到的最大跳跃是 8。那么根据这个规则,对于大量单元格,我可能会得到相同的启发式成本 (0)。因此,我们的启发式方法不会唯一确定要进行的路径。我明白你的观点,这是可以接受的,因为它从不高估,但它也给了我相同的各种选择的启发式成本。
  • @antsy:是的,没错。这没有什么问题——一旦你靠近目标节点,算法就会转移到 Dijkstra 算法。您可以通过考虑节点的值 (1+(manhattenDistance - nodeValue)/largestNodeValue) 对其进行一些细化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 2020-06-14
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多