【发布时间】:2016-01-06 17:04:24
【问题描述】:
我不明白IDA* 是如何节省内存空间的。
根据我的理解,IDA* 是 A* 迭代深化。
A* 使用的内存量与 IDA* 使用的内存量有什么区别。
IDA* 的最后一次迭代不会表现得与A* 完全相同并且使用相同数量的内存。当我跟踪IDA* 时,我意识到它还必须记住低于f(n) 阈值的节点的优先级队列。
我了解 ID 深度优先搜索通过允许它像搜索一样进行广度优先搜索,而不必记住每个节点,从而有助于深度优先搜索。但我认为A* 已经表现得像深度优先,因为它忽略了沿途的一些子树。迭代加深是如何减少内存占用的?
另一个问题是具有迭代深化的深度优先搜索允许您通过使其表现得像广度优先来找到最短路径。但是A* 已经返回最优最短路径(假设启发式是可以接受的)。迭代深化如何帮助它。我觉得 IDA* 的最后一次迭代与 A* 相同。
【问题讨论】:
标签: algorithm path-finding a-star