有人能解释一下迭代加深A*吗?我还不明白它是如何工作的。迭代加深搜索结合深度优先搜索,如果还没有找到解决方案,就增加深度++,直到找到解决方案。
如果迭代加深使用深度,那么迭代加深A*使用什么来限制它们的搜索呢?
如果你需要解释IDA*的工作原理,这里有一张图片,我就是不明白它是如何工作的。
(1,2,4,9)等,是步骤
0+2=2 是 f(n)=g(n)+h(n)
回答:
如果迭代加深使用深度,那么迭代加深A*使用什么来限制它们的搜索呢?
IDA*的简单实现会在每次迭代结束时类似于你的depth++
那样增加threshold++
。这是为了保持IDA*的可接受性。
更好的算法(仍然保持IDA*的可接受性)是将阈值增加到下一个最小的g()成本,这个成本是从关闭集到开放集可用的。
参见:http://webdocs.cs.ualberta.ca/~jonathan/PREVIOUS/Courses/657/Notes/10.Single-agentSearch.pdf