第三讲 图论模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例2、求图6-7所示图中从v1至v8的最短路及 路长 P136 v (2, v )
3
1
1
v5 (3, v3 )
2 v1
(0, v1) 8
6
4 2
3 v7
6 (6, v5) 2
9
v2 5
(7, vv1) (8, 5
(12, v5 v8 (11, v6))
1
7
4 2
9 v4 (1, v1)
图6-7
v6 (10,v2 4)) (9, v
C
A
B 图6-2b D
欧拉在他的论文中证明了这是不可能的:不存在从某 个点出发,经过每座桥一次且只能一次,最终回到原 出发地的方案
欧 拉 图
定义1 设 G=(V,E)是连通无向图 (1)经过 G 的每边至少一次的闭通路称为巡回. (2)经过 G 的每边正好一次的巡回称为欧拉巡回. (3)存在欧拉巡回的图称为欧拉图. (4)经过 G 的每边正好一次的道路称为欧拉道路.
计算 d(u0,u )=min{d(u0,u ), d(u0,ui)+c(ui,u )}
ui ∈Si
计算 min{d(u0,u )}
u ∈Si
并用ui+1记下达到该最小值的那个结点u ' , 置Si+1 =Si∪{ui+1}, i=i+1 Si =V-Si , 转第二步.
例1 求 SEERVADA 公园O到T的最短路
赋权图中求给定点到各顶点的最短路的算法
(Dijkstra算法,1959年)
基本思想: 若使 (u0,u1,u2,…,un-1,un)最短, 就要使 (u0,u1,u2,…,un-1)最短, 即保证从u0到以后各点的 路都是最短的. 令图G=<V,E,W>, 集合SiV ,Si=V-Si , 令|V|=n Si={u|从u0到u的最短路已求出}
使用年限 维修费
0-1 5
1-2 6
2-3 8
3-4 11
4-5 18
构造加权有向图G (V,E) ( (1)顶点集 V={ X ib , i=1,2,3,4,5}∪{ X irk ) , i=2,3,4,5,6; k=1,2,„,i-1}, 每个顶点代表年初的一种决策, 其中顶点 ( X ib 代表第 i 年初购置新设备的决策,顶点 X irk ) 代表第 i 年初修理用过 k 年的旧设备的决策
(2, O)
A 2 5 2
7
B (8, E ) (9, B A)
(14, E) (13, D)
5
T
(5, O)
4 3
O
(0, O)
B 1
D
1
7
7=min{4+3, 4+4}
4
(4, A)
C
(4, O)
E 4
(7, B)
O到T的最短路为:O →A →B→D → T 和O →A →B → E→D → T 路长d(O,T) = 13
最短路问题及算法
最短路问题是图论应用的基本问题,很多实际
问题,如线路的布设、运输安排、运输网络最小费
用流等问题,都可通过建立最短路问题模型来求解. •最短路问题的两种方法:Dijkstra和Floyd算法 . 1) 求赋权图中从给定点到其余顶点的最短路. 2) 求赋权图中任意两点间的最短路.
若P(u,v)是赋权图G中从u到v的路,称 w( P )
v1 e4 v4 e3 v3 e1 e5 v2 e2 v1 e1 v2 e2 e4 e e5 6 e3
v4
v3
欧拉道路:v1e1v2e2v3e5v1e4v4e3v3 巡回:v1e1v2e2v3e5v1e4v4e3v3e5v1
欧拉巡回: v1e1v2e2v3e5v1e4v4e3v3e6v1
定理1 对于非空连通图 G,下列命题等价: (1)G 是欧拉图. (2)G 无奇次顶点. (3)G 的边集能划分为圈.
2.以 v4、v7、v8、v9 为顶点,它们之间的距离为边权构造完备图 G1. 3.求出 G1 的最小权完美匹配 M={(v4,,v7),(v8,v9)}
4.在 G 中沿 v4 到 v7 的最短路径添加重复边,沿 v8 到 v9 的最短路径 v8v9 添 加重复边,得欧拉图 G2.G2 中一条欧拉巡回就是 G 的一条最佳巡回.其 权值为64.
若将投递区的街道用边表示,街道的长度用边权 表示,邮局街道交叉口用点表示,则一个投递区构成 一个赋权连通无向图.中国邮递员问题转化为:在一 个非负加权连通图中,寻求一个权最小的巡回.这样 的巡回称为最佳巡回.
中国邮递员问题-算法
1、G 是欧拉图
此时 G 的任何一个欧拉巡回便是最佳巡回. 问题 归结为在欧拉图中确定一个欧拉巡回.
Si ={u |从u0到u 的最短路未求出}
Dijkstra算法:(求从u0到各点u的最短路长)
第一步. 置初值: d(u0,u0)=0 d(u0,v)=∞ (其中v≠ u0) i=0 S0={u0} S0 =V-S0 ,
第二步.若 i=n-1 则停. 否则转第三步
第三步. 对每个u ∈Si
Fleury 算法:求欧拉图的欧拉巡回
Fleury算法-基本思想:从任一点出发,每当访问 一条边时,先要进行检查.如果可供访问的边不只 一条,则应选一条不是未访问的边集的导出子图的 割边作为访问边,直到没有边可选择为止.
Fleury 算法—算法步骤: (1)任选一个顶点 v0,令道路 w0=v0 (2)假定道路 wi=v0e1v1e2„ eivi 已经选好,则从 E\{e1,e2, „ ,ei}中选一条边 ei+1,使: a)ei+1 与 vi 相关联 b)除非不能选择,否则一定要使 ei+1 不是 Gi=G[E-{e1,e2, „ ,ei}] 的割边.
情形1 G 正好有两个奇次顶点 (1)用 Dijkstra 算法求出奇次顶点 u 与 v 之间的最短路径 P.
(2)令 G =G P,则 G 为欧拉图.
* *
(3)用 Fleury 算法求出 G 的欧拉巡回,这就是 G 的最佳巡回.
*
v1
e4
e1 e5 e3
v2
e2 e6 v3 e7
V5
e8
v4
二、哥尼斯堡七桥问题
东普鲁士的哥尼斯堡城中,有一条普莱格尔河,河中有 两个岛屿(奈佛夫岛),河上建有七座桥,将岛与两 岸陆地相连(图6-2)。当地居民喜欢散步,并提出 这样一个问题:若从岸或岛上任一处陆地出发,能否 通过每座桥正好一次而回到原地。
C
A
D
图 6-2 a
B
尽管试验者很多,但是都没有成功。为了寻 找答案,1736年欧拉将这个问题抽象成图 6-2b所示图形的一笔画问题。
返回
练习: 已知邮递员要投递的街道如 图所示,试求最优邮路.
解 先找出奇节点:A1,A2,A3,A4,B1,B2, B3,B4.奇节点进行配对,不妨把A1与B1,A2与 B2,A3与B3,A4与B4配对 ,求其最短路.显然它不是最优解 .下面我们根据定理3来进行调解.
第一次调整:删去多于一条的重复边,即 A3 与 B3,A4 与 B4 中的(A4,B3) .调整后, 实际上成为 A1 与 B1,A2 与 B2,A3 与 A4,B3 与 B4 的配对,它们的最短路如图所示.
v1 到v8 的最短路为: v1 → v3 → v5 → v2 → v6 → v8 。 路长 d( v1, v8) = 11
实例 多阶段决策问题
设备更新问题:企业使用一台设备,每年年初,企业领导 就要确定是购置新的,还是继续使用旧的.若购置新设备, 就要支付一定的购置费用;若继续使用,则需支付一定的 维修费用.现要制定一个五年之内的设备更新计划,使得五 年内总的支付费用最少. 该种设备在每年年初的价格(万元)为: 第一年 第二年 第三年 第四年 第五年 11 11 12 12 13 使用不同时间设备所需维修费(万元)为:
( ∪ ( X irk ) , X i(k1,r1) ) ,i=1,2,3,4,5;k=1,2,i-1}
若第 i 年初作了决策 X i 后,第 i+1 年初可以作决策 则顶点 X i 与 X i 1 之间有弧( X i , X i 1 ), 其权 W( X i , X i 1 ) X i 1 , 代表第 i 年初到第 i+1 年初之间的费用. 例如,弧 ( X 3b , X 4(1) ) 代表第三年初买新设备,第四年 r 初决定用第三年买的用过一年的旧设备,其权则为第三 年初的购置费与第三、第四年间的维修费之和,即为 12+5=17.
v1 e4 v4
e1
v2 e5 e2 v3
v1 e4 v4
e1 e5 e3
v2 e2 v3
e6 e3
欧拉图
非欧拉图
推论1 设 G 是非平凡连通图,则 G 有欧拉道路的充要条 件是 G 最多只有两个奇次顶点.
返回
中国邮递员问题-定义
邮递员发送邮件时,要从邮局出发,经过他投递范围内 的每条街道至少一次,然后返回邮局,但邮递员希望选择 一条行程最短的路线.这就是中国邮递员问题.
第三讲:图论模型
孙旭明
实例一: 某公园
A 2 O 2 7
5
B
T
Leabharlann Baidu5 4
C
4
3
D 1 7
图 6-1
1
E 4
图中线上数据表示道路的距离,O 表示入口,子母表示站点(控制点)三 个问题: (1)从入口O到最美景点T 的最短路? (2) 需要在所有站点安装电话线保证通信联系,需要在那些道路下铺设电 话线,使总电话最少? (3) 公园在每条道路上安排了电车,每条道路车辆的运能有一定限制,问 如何安排道路上的车次,使从入口到景点T 的运能最大?
V7 e9
V6
情形2
G 有2n 个奇次顶点(n 2)
Edmonds 最小对集算法:
基本思想:
先将奇次顶点配对,要求最佳配对,即点对 之间距离总和最小. 再沿点对之间的最短路径添 加重复边得欧拉图 G*, *的欧拉巡回便是原图 G 的最佳巡回.
算法步骤:
(1)用 Floyd 算法求出的所有奇次顶点之间的最短路径和距离.
称为路 P(u,v)的权.
eE ( P )
w(e)
在赋权图G中,从顶点u到顶点v的具有最小权的路 P*(u,v),称为u到v的最短路. 把赋权图中一条路的权称为它的长,把(u,v)路的 最小权称为u和v之间的距离,并记作 d(u,v). 在赋权图中找出指定两点之间的最短路的问题称之 为最短路问题。
(3 X 6r )
X
( 4) 5r
X
( 4) 6r
W ( X 3b , X ) 12 5
(1) 4r
(5 X 6r )
( (2) 弧集 E={ ( X ib , X i 1,b ),( X irk ) , X i 1,b ), i=1,2,3,4; k=1,2,„,i-1}
1) ∪{ ( X ib , X i(1,r ) , i=1,2,3,4,5}
(3)第(2)步不能进行时就停止.
v1
e1
v2
e10 e7 e6
V5 e8 V6
e4
v4 e3
e5
e2
v3
V7 e9
2、G 不是欧拉图
若G不是欧拉图,则G的任何一个 巡回经过某些边必定多于一次.
解决这类问题的一般方法是,在一些点对之 间引入重复边(重复边与它平行的边具有相同 的权),使原图成为欧拉图,但希望所有添加 的重复边的权的总和为最小.
例 求右图所示投递区的一条最佳邮递路线.
1.图中有 v4、v7、v8、v 9 四个奇次顶点
用 Floyd 算法求出它们之间的最短路径和距离: Pv4 v7 v4 v3v2 v7 , d (v4 , v7 ) 5
Pv4 v8 v4 v8 , d (v4 , v8 ) 3 Pv4 v9 v4 v8 v9 , d (v4 , v9 ) 6 Pv7 v8 v7 v8 , d (v7 , v8 ) 9 Pv7 v9 v7 v9 , d (v7 , v9 ) 6 Pv8v9 v8 v9 , d (v8 , v9 ) 3
(2)以 G 的所有奇次顶点为顶点集(个数为偶数) ,作一 完备图,边上的权为两端点在原图 G 中的最短距离,将此完 备加权图记为 G1.
(3)求出G1的最小权理想匹配M,得到奇次顶点 的最佳配对.
(4)在 G 中沿配对顶点之间的最短路径添加重复边得欧拉图 G*.
(5)用 Fleury 算法求出 G*的欧拉巡回,这就是 G 的最佳巡回.
X 1b
X 2b
X 3b
X 4b
X 5b
X
(1) 2r
X
(1) 3r
X
(1) 4r
X X X
(1) 5r
(1 X 6r)
(2 X 3r )
X
( 2) 4r ( 3) 4r
( 2) 5r
(2 X 6r )
弧(Xi,Xj)的权W (Xi,Xj) 代表第i年初到第i+1年 初之间的费用.
X
( 3) 5r
相关文档
最新文档