§2 最短路问题 最短路问题:对一个赋权的有向图D中的指定的两个点V,和V找到一条 从V、到V的路,使得这条路上所有弧的权数的总和最小,这条路被称 之为从V,到V的最短路。这条路上所有弧的权数的总和被称为从V,到V 的距离。 一、求解最短路的Dijkstra:算法(双标号法) 步骤: 1.给出点V1以标号(0,s) 2.找出已标号的点的集合I,没标号的点的集合J以及弧的集合 {(y,v,)y,∈I,v,∈J} 3. 如果上述弧的集合是空集,则计算结束。如果v已标号(,k),则vs 到v的距离为,而从ⅴ,到v的最短路径,则可以从k反向追踪到起点 V、而得到。如果v,未标号,则可以断言不存在从v,到v的有向路。如果 上述的弧的集合不是空集,则转下一步。 4. 对上述弧的集合中的每一条弧,计算s1l+c。在所有的s中,找到其 值为最小的弧。不妨设此弧为(V,V),则给此弧的终点以双标号 (Scd,c),返回步骤2。 6
管 理 运 筹 学 6 §2 最短路问题 • 最短路问题:对一个赋权的有向图D中的指定的两个点Vs和Vt找到一条 从 Vs 到 Vt 的路,使得这条路上所有弧的权数的总和最小,这条路被称 之为从Vs到Vt的最短路。这条路上所有弧的权数的总和被称为从Vs到Vt 的距离。 一、求解最短路的Dijkstra算法(双标号法) 步骤: 1.给出点V1以标号(0,s) 2.找出已标号的点的集合I,没标号的点的集合J以及弧的集合 3. 如果上述弧的集合是空集,则计算结束。如果vt已标号(l t ,kt),则vs 到vt的距离为l t,而从vs到vt的最短路径,则可以从kt 反向追踪到起点 vs 而得到。如果vt未标号,则可以断言不存在从vs到vt的有向路。如果 上述的弧的集合不是空集,则转下一步。 4. 对上述弧的集合中的每一条弧,计算sij=li+cij 。在所有的sij中,找到其 值为最小的弧。不妨设此弧为(Vc ,Vd),则给此弧的终点以双标号 (scd,c),返回步骤2。 {( , ) | , } i j i j v v v I v J
§2最短路问题 例1求下图中v到v的最短路 V3 解:采用Dijkstra算法,可解得最短路径为v1V3V4→V6 各点的标号图如下: (3,1) ,4) V2 7 6 3 3,3)5 5 2 (0s 5 (2,1) 3
管 理 运 筹 学 7 §2 最短路问题 例1 求下图中v1到v6的最短路 解:采用Dijkstra算法,可解得最短路径为v1 v3 v4 v6 各点的标号图如下: v2 3 5 2 7 5 3 1 5 2 1 v1 v6 v v5 3 v4 (3,1) v2 3 5 2 7 5 3 1 5 2 1 V1 (0,s) v5 (8,4) v6 (2,1) v3 (3,3) v4
§2 最短路问题 例2电信公司准备在甲、乙两地沿路架设一条光缆线,问如何架 设使其光缆线路最短?下图给出了甲乙两地间的交通图。权数表示两 地间公路的长度(单位:公里)。 V2(乙地) 17 5 6 15 (甲地) 43 2 V6 10 4 V3 解:这是一个求无向图的最短路的问题。可以把无向图的每一边 (VV)都用方向相反的两条弧(VV)和(VY)代替,就化为有向 图,即可用Dijkstra算法来求解。也可直接在无向图中用Dijkstra算法 来求解。只要在算法中把从已标号的点到未标号的点的弧的集合改成 已标号的点到未标号的点的边的集合即可。 曹理运筹学
管 理 运 筹 学 8 §2 最短路问题 例2 电信公司准备在甲、乙两地沿路架设一条光缆线,问如何架 设使其光缆线路最短?下图给出了甲乙两地间的交通图。权数表示两 地间公路的长度(单位:公里)。 解:这是一个求无向图的最短路的问题。可以把无向图的每一边 (vi ,vj)都用方向相反的两条弧(vi ,vj)和(vj ,vi)代替,就化为有向 图,即可用Dijkstra算法来求解。也可直接在无向图中用Dijkstra算法 来求解。只要在算法中把从已标号的点到未标号的点的弧的集合改成 已标号的点到未标号的点的边的集合即可。 V1 (甲地) 15 17 6 2 4 4 4 3 10 6 5 v2 V7 (乙地) v3 v4 v5 v6
§2 最短路问题 例2最终解得: 最短路径vV3一V一V一V,每点的标号见下图 (22,6 (乙地) (13,3) 17 V2 5 6 15 6 (0,s) 3 (18,5) V 2 16,5) (甲地) 10 4 (T4,3) aod 9
管 理 运 筹 学 9 §2 最短路问题 例2最终解得: 最短路径v1 v3 v5 v6 v7,每点的标号见下图 (0,s) V1 (甲地) 15 17 6 2 4 4 3 10 6 5 (13,3) v2 (22,6) V7 (乙地) V5 (14,3) V6 (16,5) V3 (10,1) V4 (18,5)
§2 最短路问题 例3设备更新问题。某公司使用一台设备,在每年年初,公司就 要决定是购买新的设备还是继续使用旧设备。如果购置新设备,就要 支付一定的购置费,当然新设备的维修费用就低。如果继续使用旧设 备,可以省去购置费,但维修费用就高了。请设计一个五年之内的更 新设备的计划,使得五年内购置费用和维修费用总的支付费用最小。 已知:设备每年年初的价格表 年份 1 2 3 4 5 年初价格 11 11 12 12 13 设备维修费如下表 使用年数 0-1 1-2 2-3 3-4 4-5 每年维修 5 6 8 11 18 费用 10
管 理 运 筹 学 10 §2 最短路问题 例3 设备更新问题。某公司使用一台设备,在每年年初,公司就 要决定是购买新的设备还是继续使用旧设备。如果购置新设备,就要 支付一定的购置费,当然新设备的维修费用就低。如果继续使用旧设 备,可以省去购置费,但维修费用就高了。请设计一个五年之内的更 新设备的计划,使得五年内购置费用和维修费用总的支付费用最小。 已知:设备每年年初的价格表 设备维修费如下表 年份 1 2 3 4 5 年初价格 11 11 12 12 13 使用年数 0-1 1-2 2-3 3-4 4-5 每年维修 费用 5 6 8 11 18