我似乎无法解释为什么A在大多数情况下都比IDA好。我的教授说过,这并不是因为早期(更接近根的)节点在达到f限制后被重新定义为ida*回溯,而是因为a*维护了一个打开和关闭的列表,这样给定的状态就不会在树中被多次探索,而在ida*中,如果有多条路径指向树中的给定节点,它将一次又一次地探索这些节点我的问题和ida*是一样的,也就是说,用一个开放和封闭的列表实现ida*是不可能的,如果不可能,为什么?
最佳答案
我不确定你是否完全理解艾达ida*使用重复的有限深度depth-first-searches来减少与a*相关联的内存需求(其中a*通常使用更多类似于abreadth-first-search (BFS)的进程)。
如果修改ida*以使用打开和关闭列表,则可能会返回到类似于bfs的流程,因此基本上会返回到a*。
关于algorithm - Astar vs IDAstar表现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21421294/