Dijkstra是A *的特例吗?

时间:2019-02-21 21:56:35

标签: dijkstra a-star

根据a.o. this accepted answerDijkstra's algorithmA* algorithm的特例。

  

Special case

     

在逻辑上,特别是在数学中,概念A恰好是概念B的一种特例或专业化   A的实例还是B的实例,但反之亦然,或者   同样地,如果B是A的推广。

但是,与Dijktra的算法相比,在某些情况下,对于A *而言,具有恒定的零启发式会产生不同的结果。

其中之一是当图形包含负周期时它们的行为:虽然A *的closed set处理完全避免了这样的周期,但Dijkstra在继续之前无限次跟随负周期。

另一个结果可能不同的边缘情况,这次甚至是admissible heuristic都是A * 低估了图形中最终边缘的成本。给定这样的图形: graph with nodes A, B, C, D

如果启发式函数将B到D的速率低于2,而Dijkstra正确地产生A-C-D,则大多数A *实现(包括Wikipedia上的伪代码示例)将错误地认为A-B-D是最短路径。

鉴于上述情况,Dijkstra的算法是否仍可以视为A *的特例?

0 个答案:

没有答案