第k短路

基本算法:单源最短路+A*

估价函数f(h):估计当前点到中点的距离,以此确定搜索方向

f(p)=g(p)+h(p)

g(p):源点到当前点的距离

h(p):当前点到终点的最短路,可以通过单源最短路算法预处理得到

算法步骤:

(1)将有向边反向,由终点求一次单源最短路作为预处理结果

(2)建优先队列,将源点s加入队列

(3)从优先队列中弹出f最小的点p,判断:如果p是t,t的出队次数加1,若达到k次,当前路径长度就是第k短路长度,结束算法。

否则,遍历与p相连的边,将拓展出的p的邻接点加入优先队列中。

猜你喜欢

转载自blog.csdn.net/hi_One_Month/article/details/68940610
今日推荐