尝试几次,测量,最快地选择,以适应您的需求。性能主要取决于启发式函数的选择,而启发式函数与A *固有无关。
如果启发式是固定的,则优先级队列的实现可能会成为瓶颈,因此请尝试配对堆。这些是实践中最快的堆数据结构,与二进制堆相比,它们具有优点,它们允许O(1)插入时间+摊销O(log
n)pop-min。这在许多A *循环的预期情况下很重要,在这种情况下队列已满,但从未完全清空,即插入次数远大于弹出次数。
如果内存成为问题,请切换到迭代加深A (IDA )或递归最佳优先搜索(RBFS)。
如果没有任何效果,请考虑使用近似算法(贪婪搜索)。仅优化写得体的A *循环并不会为您带来巨大的提速。
有关算法和问题的详尽讨论,请参见Russell和Norvig。



