应用运筹学-7-2015答辩.ppt

基本原理 若序列{vs,v1,……,vn-1,vn},是从vs到vn的最短路,则序列{vs,v1,……,vn-1}必定是从vs到vn-1的最短路。 该算法的基本步骤,采用标号法。 P标号:永久性标号,给点vi作P标号时,表示从vs到vi的路最短, vi的标号不再改变; T标号:试探性标号,给点vi作T标号时,表示得到从vs到vi的最短路权的上界,凡没有得到P标号的点都有T标号。 基本思想 从vs出发,逐步向外探寻最短路。每一步都把某一点的T标号改为P标号,当终点vt得到P标号时,全部计算结束。 对于有n个顶点的图,最多经n-1步就可以得到从始点到终点的最短路。 Dijkstra算法 给vs以P标号,P(vs)=0,其余各点均给T标号,T(vi)=?; 若vi为刚得到P标号的点,考虑这样的点vj:(vi, vj)?E,且vj为T标号。对vj的T标号进行如下的更改: T(vj)=min[T(vj), P(vi)+wij] 比较所有具有T标号的点,把最小者改为P标号,即: Dijkstra算法的步骤 当存在两个以上最小者时,可同时改为P标号。若全部点均为P标号则停止。否则用 代替vi转回2. 。 求从v1点到v8点的最短路。 Dijkstra算法求解举例 v2 v4 v6 5 9 v1 4 v3 v5 v7 v8 6 4 4 7 7 5 6 5 4 1 给v1以P标号,P(v

文档评论(0)

1亿VIP精品文档

相关文档