我目前正在研究行人导航软件,对我来说很难找到最适合该任务的路由算法。我听说A *是这种软件中实际使用的算法之一。
你能建议其他解决这个问题的算法吗?他们如何比较表现?他们需要多少内存和空间?
提前感谢您的回答。
答案 0 :(得分:1)
你可以看一下iterative deepening search。在我看来,这是一个非常聪明的方法来解决你的问题,但是由于算法旨在进行全面的探索,你可能会因为具有良好的启发式而在A *方面具有非常糟糕的时间复杂性。
来自维基百科:
IDDFS结合了深度优先搜索的空间效率和广度优先 搜索的完整性(当分支因子是有限的时)。它是 当路径成本是深度的非递减函数时最优 节点。 IDDFS的空间复杂度是O(bd),其中b是 分支因子和d是最浅目标的深度。以来 迭代加深访问状态多次,看起来似乎 浪费,但事实证明并不是那么昂贵,因为在树上最多 节点位于底层,因此无关紧要 上层被多次访问。
同样,关于时间复杂性的问题:
IDDFS在均衡树中的时间复杂性可行 与深度优先搜索相同:O(bd)。