我正在努力在Wikipedia pseudocode中使用Python(我是新手)实现IDA *算法。
你能解释一下我应该在这一行检查的内容:
if t = ∞ then return NOT_FOUND
他们对无限的意义是什么?我在这里有同样的价值吗?
min := ∞
如果您有其他伪代码来源,我会更高兴!
谢谢
答案 0 :(得分:3)
它意味着无限。许多面向对象的语言提供“无限”值,并且在不存在的情况下,您可以使用变量的最大值替换无限。 (减去无限下限)
在python中你可以做到
test = float("inf")
答案 1 :(得分:1)
我认为lesto的答案只是说如何实现而不回答“但我的问题是:我该怎么检查那里?”,所以我回答这部分我觉得OP需要知道。
IDA *用两句话写成:执行A *,并假设深度限制以下的节点没有孩子
如果成功:完成......
否则:
使用新的深度限制执行A *(再次)(超出深度限制的最小f
)
现在让我们再看一遍:
if t = ∞ then return NOT_FOUND
t等于无穷大的唯一方法是节点的f
值小于限制,但其中没有目标状态,最大f
的节点也没有子节点。 (注意,如果一个节点有一个继承器,肯定min将不是无穷大)