如何计算A星算法的运行时间(How to compute the running time of A

2019-10-18 01:06发布

我与A *算法的工作。 我有一个2D网格,一些障碍,并给予起点和终点位置,我觉得他们之间的最短路径。

这里是我的伪代码

while(queueNotEmpty){
  removeFromPQ;
  if(removed == destination)
    found;
  insertAllNeighbours;
}

删除和插入件是在优先级队列(堆)的功能,并且是O(日志(n))的时间。

考虑到网格的尺寸为N * N。 如何计算运行时间。 即多少次将这个循环执行呢? 有什么措施?

Answer 1:

标准A *的运行时间是在溶液中(最坏情况)长度的指数。

如果您正在搜索上的网格n*n ,并使用图形搜索,搜索将访问最多一次每个节点; 所以它的O(n*n) 但发现解决方案仅是最佳的,如果使用的是启发式单调 (除了被受理)。

还有一些条件,标准A *的多项式运行时间。

对于图搜索与树搜索看到这个答案 。



文章来源: How to compute the running time of A-star algorithm