v6
v7
v8
考虑边(v1,v2),(v1,v6),(v4,v2),(v4,v7)
计算 min{0+2, 0+3, 1+10, 1+2}=min {2,3,11,3} =2
v2:[2,v1]
(4)A={v1,v2,v4}
[0,v1] [2,v1] 2 1 10 [1,v1] v4 5 v6 [3,v1] 4 2 v7
最短.
最小支撑树的求法
1 破圈法 2 避圈法
5.2.1 求解最小支撑树问题的破圈法
方法:去边破圈的过程。 步骤:1)在给定的赋权的连通图上任找 一 个圈。 2)在所找的圈中去掉一条权数最 大的边。 3)若所余下的图已不含圈,则计 算结束,余下的图即为最小支撑
树,否则返回 1)。
例1:用破圈法求右图
v1 1 5 4 v2 2 v4 3 v6
权和=15
5.3 最短路问题
问题:求网络中一定点到其它点的最短路。
5.3.1 最短路问题的Dijstra解法 方法:给vi点标号[αi,vk] 其中:αi:vi点到起点vs的最短距离 vk: vi的前接点
方法:(1) 给起点vs标号[0,vs]。 (2)把顶点集v分为互补的两部分A和Ā 其中:A:已标号点集 Ā:未标号点集 (3)考虑所有这样的边[vi, vj], 其中vi ∈A,vj ∈ Ā 挑选其中与vs距离最短的点vj标号 [min{αi+cij},vi]
[3,V1]
考虑边(v2,v3),(v2,v5),(v4,v7),(v6,v7)
计算 min { 2+6, 2+5, 1+2, 3+4}=min {8,7,3,7}=3
v7:[3,v4]