K最短路问题(A*算法)
问题在有向带权图G,求从s到t的第k短路(不严格递增)的长度。A*算法通过一个估价函数f(x)来估计图中的当前点p到终点的距离,并由此决定它的搜索方向;
设g(x)表示走当前路径到x的长度,dis(x,y)表示x到y的最短距离,由于y只有等于t时才有用,所以我们可以连反向边,然后从t出发跑一遍最短路得到。
令f(x)=g(x)+dis(x,t)
建一个优先队列,初始将源点s加入到队列中;
每
原创
2017-05-20 10:29:31 ·
3127 阅读 ·
0 评论