Artificial intelligence Dijkstra vs A*结果路径
当我在不同的图上运行Dijkstra和A*时,因为它们都是最优算法,所以我总是希望找到相同的路径,对吗 如下图所示: 节点:S、A、B、C、D、E、G 边缘和成本:(S,A)=1,(A,B)=1(B,C)=1, (A,E)=8,(A,D)=6,(D,G)=2 启发式:h(S)=6,h(C)=7,h(B)=6,h(A)=5,h(D)=2,h(E)=1,h(G)=0 我发现S->A->D->G都是路径。 Dijkstra和A*这条路的成本都是9 任何图都是这样,因为两者都是最优的吗? 如果我想比较这两种算法,我应该使用什么作为统计数据,时间似乎也是一样的 谢谢。如果最短路径是唯一的,那么任何正确的最短路径算法都必须准确地找到该路径 在开始和目标之间存在多条路径且成本相同的图上,即使同一算法的不同实现也不能保证找到相同的路径,因为可能存在细微的差异,例如:Artificial intelligence Dijkstra vs A*结果路径,artificial-intelligence,dijkstra,a-star,Artificial Intelligence,Dijkstra,A Star,当我在不同的图上运行Dijkstra和A*时,因为它们都是最优算法,所以我总是希望找到相同的路径,对吗 如下图所示: 节点:S、A、B、C、D、E、G 边缘和成本:(S,A)=1,(A,B)=1(B,C)=1, (A,E)=8,(A,D)=6,(D,G)=2 启发式:h(S)=6,h(C)=7,h(B)=6,h(A)=5,h(D)=2,h(E)=1,h(G)=0 我发现S->A->D->G都是路径。 Dijkstra和A*这条路的成本都是9 任何图都是这样,因为两者都是最优的吗? 如果我想比较这
- “探索”节点时,处理节点传出边的顺序
- 从优先级队列中弹出相等值节点的顺序
- 对于A*,由于优先级队列的排序不同,不同的正确启发式通常会导致不同的路径(成本相等)
如果你的启发式是好的(即可接受的),只有执行时间会改变。您可以实现这两种方法并测量执行时间。您还可以分析探索的节点数。在不同的图形上?我猜你是指同一张图吧?