我正在研究明智的搜索算法,对于新的双向A *搜索,我知道空间复杂度为O(b ^ d),其中d是最浅目标节点的深度,b是分支因子。我试图找出它的时间复杂度是什么,但我一直没能找到关于在线资源有关的任何确切信息。 NBA * Search的确切时间复杂度未知吗?原始双向A *有什么区别?任何见解都会受到赞赏。
答案 0 :(得分:1)
如果您有特定的问题模型(例如,在两个方向上均等增长的图,且单位边缘成本和状态数呈指数增长),则大多数双向搜索算法都需要O(b ^(d / 2))节点展开和需要O(b ^(d / 2))时间。但是,这个简单的模型并不能实际模拟大多数现实问题。
鉴于此,我不建议您花大量精力研究新双向A *。
在过去的几年中,双向搜索的技术水平发生了巨大变化。目前具有最佳理论保证的算法为NBS - Near-Optimal Bidirectional Search。该算法找到最优路径,并且在节点扩展方面接近最优。也就是说,保证NBS进行必要扩展的次数不得超过最佳算法(给出合理的理论假设,例如使用相同的启发式算法)。其他所有算法(包括A *)的表现都可能比NBS差。
已经提出了NBS的其他算法变体,例如DVCBS,它们遵循相同的基本结构,没有相同的保证,但在实践中表现良好。