我似乎无法回避为什么 A* 在大多数时候优于 IDA* 的原因。我的教授说过,原因不是因为早期(更接近根)节点在达到 f-limit 后一直被重新探索为 IDA* 回溯,而是因为 A* 维护一个开放和封闭的列表,以便给定状态不会在树中多次探索,而在 IDA* 中,如果树中的给定节点有多条路径,它将一次又一次地探索这些节点。我的问题是它与 IDA* 相同。是否可以使用开放和封闭列表实现 IDA*,如果不能,为什么?
最佳答案
我不确定您是否完全理解 IDA*。 IDA* 使用重复有限深度 depth-first-search es 以减少与 A* 相关的内存需求(其中 A* 通常使用更多类似 breadth-first-search (BFS) 的进程)。
如果您修改 IDA* 以使用开放和封闭列表,您可能会回到类似 BFS 的过程,因此您实际上会回到 A*。
关于algorithm - Astar vs IDAstar 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21421294/