IDA *搜索算法伪代码解释

时间:2014-02-27 16:53:56

标签: python algorithm a-star

我正在努力在Wikipedia pseudocode中使用Python(我是新手)实现IDA *算法。

你能解释一下我应该在这一行检查的内容:

if t = ∞ then return NOT_FOUND

他们对无限的意义是什么?我在这里有同样的价值吗?

min := ∞

如果您有其他伪代码来源,我会更高兴!

谢谢

2 个答案:

答案 0 :(得分:3)

它意味着无限。许多面向对象的语言提供“无限”值,并且在不存在的情况下,您可以使用变量的最大值替换无限。 (减去无限下限)

在python中你可以做到

test = float("inf")

答案 1 :(得分:1)

我认为lesto的答案只是说如何实现而不回答“但我的问题是:我该怎么检查那里?”,所以我回答这部分我觉得OP需要知道。

IDA *用两句话写成:

  1. 执行A *,并假设深度限制以下的节点没有孩子

  2. 如果成功:完成......
    否则:      使用新的深度限制执行A *(再次)(超出深度限制的最小f

  3. 现在让我们再看一遍:

    if t = ∞ then return NOT_FOUND
    

    t等于无穷大的唯一方法是节点的f值小于限制,但其中没有目标状态,最大f的节点也没有子节点。 (注意,如果一个节点有一个继承器,肯定min将不是无穷大)