图论及其在数学建模中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
v3 v5 v7
从 v1 出发,按广度优先访问到的 点序列为 v1v 2 v 3 v 4 v 5 v 6 v 7 ;
按深度优先访问到的点序列为 v1 v 3 v 5 v 7 v 6 v 4 v 2 。
v1
v2
v4
v6
简单图: 任何一条边连结 两个不同的点, 任何两个点之间 至多有一条边的 图。
自回路
例. 求右图中点 a 到其余 点的最短路。
6 3 a l(a) l(b) 0 6 6 5 l(c) l(d) 3 1 3 1
12 11 11 11
b
1
e 6 10 4
2 3
i 6
3 h 4
2
c 2 d
f
g
2
l(e) l(f ) l(g) l(h) l(i )
解法: 用最短路算法求出所有点对之间的距离,然 后确定 v0 。
例. 某县拟建一消防站为辖区内的 8 个镇服务,问应 设在哪一个镇上才能使它离最远镇的距离最小? 已知各镇(A 至 H)之间的道路连结情况和距离 如下图所示。
A
3 2.5 1 E F B 1.5 C 3 3 2 G 2
中心为点 B
D 1.5 2
x1 x2 x3 y1 y2 y3
需要 3 种颜 色给边着色
使得相邻的边有
不同的颜色。
x4
一、图的基本概念
点 v 的度数:与 v 相连的边的条数,记做 deg(v) 。 命题:图的所有点的度数之和等于边数的两倍,即
vV deg(v ) 2 | E |
。
例. 碳氢化合物中氢原子的个数为偶数。
注: 当 v 未被访问时,l(v) = 0,否则 l(v) 记录 v 被访 问的序号; 集合 S 保存与某个已访问的点相邻 但还没有被访问的点。
广度优先搜索: 在步骤 (2) 优先访问先加入 S 的点 (先进先出),并且在步骤 (3) 只 需考虑 v V \ S 。 深度优先搜索: 在步骤 (2) 优先访问后加入 S 的点(后进先出),在 步骤 (3) 可以将某个 v S 再加入 S ,这意味着在 S 中将 v 的次序后移,从而 v 可以被更早地访问。
最短路问题:求赋权图上指定点之间的权最小的路。
Dijkstra 算法
Biblioteka Baidu假设:对一切e E,有 w(e ) 0 。
(1) l (v s ) 0 , l (v ) (v v s ) , S {v s } , i s .
( 2) 若 S V,则终止;否则,对每 v S 且 {v i , v } E , 个 令 l (v ) min {l (v ) , l (v i ) w (v i , v )} .
≌
v1 v3 v5 v2 在图的概念中,点的空间位置、 边的曲直长短都是无关紧要的, 重要的是其有几个点以及哪些点 之间有边相连。
v4
如果用点表示要研究的对象,则图的边可以用来反映 对象之间是否存在某种关系。 用点表示人,边表示两个人是否互相认识;
在地区公路图中,用点表示城市,边表示城市之间是 否有公路直接相连; 在分子结构图中,用点表示原子,边表示原子之间是 否存在化学键; ……
(1) l (v s ) , l (v ) 0 (v v s ) , S {v s } , i s .
( 2) 若 S V,则终止;否则,对每 v S 且 {v i , v } E , 个 令 l (v ) max {l (v ) , min{ l (v i ) , w (v i , v )}} .
三、树
无圈的连通图称为树。树的等价定义:
(1) G 无圈且 |E| = |V| - 1 ; (2) G 连通且 |E| = |V| - 1 ; (3) G 无圈,但在两个不相邻的点之间添加一条边后得 到恰好一个圈 ;
(4) G 连通,但删去任何一条边后便不连通; (5) G 中任何两点间有且仅有一条通路(点不重复的 路)。
若 T 是 G 的生成子图且是一棵树,则称 T 是 G 的生成 树或支撑树。
T1 至 T8 都是 T 的 生成树
G
T1
T2
T3
T4
T5
T6
T7
T8
命题:完全图 Kn 有 n n -2 棵生成树。
最小生成树问题 给定一个赋权连通图 G = (V , E , w) ,求 G 的一棵生成 树 T 使得 T 中所有边的权之和最小。 Kruskal 算法
7 7 6 11 11 11 10 10 10 9 9 8
S
{a} {a,d} {a,d,c} {a,d,c,b} {a,d,c,b,e} {a,d,c,b,e,i} {a,d,c,b,e,i, g} {a,d,c,b,e,i, g, f } {a,d,c,b,e,i, g, f , h}
o 哥尼斯堡 (Knigsberg) 七桥问题
(Euler, 1736)
C C
是否可以 一笔画?
A
D
A
D
B
B
右图是否存在经过每条边恰好一次的回路,即是否为 Euler 图?
化学药品存放问题 某单位需要存放一些化学药品,其中某些药品不能放 在同一个库房里,问至少需要几个库房?
用点表示药品,在不能放在同一个库房的两种药品之 间连边。需要几个库房等价于需要用几种颜色给图的 点着色可以使得相邻的点有不同的颜色。
H
2. 使加权距离和最小
设 G (V , E , q, w ) 是一个点-边皆赋权的连通图,其中 权函数 q 定义在点集合 V 上,w 定义在边集合 E 上, 称使得
uV
q(u)d (v0 , u) min q(u)d (v, u) vV
uV
的点 v0 是 G 的加权中心。
例. 某矿区有 8 个出矿点 (A至H),这 8 个 出矿点每天的矿石产 量分别为 3、5、2、2、 2、7、4、1 百吨。要 从这 8 个出矿点中选 一个建选矿厂,应建 在何处才能使总运价 最低?已知各出矿点 之间的道路和距离如 右图所示。
多重边
该图非简单图
完全图: 任何两个点之间都有边相连的简单图。 n 个点的完全图记作 Kn 。
K3
K4
K5
二分图: 点集 V 能划分成两个子集 X、Y,使得每条 边的两个端点分别属于 X 和 Y 的图。 二分图 G 也记作 G = (X, Y, E ) 。 称 G = (X, Y, E ) 为完全二分图,若 X 中的每个点和Y 中的每个点之间皆有边相连,记作 K | X | , |Y | 。
a c e g b
d f
图中的 7 种药品需要 3 个库房,例 如 {a , b , e},{c , d , g},{ f } 各放一 个库房。
排课表问题 有 m 位教师 x1, …, xm 和 n 个班级 y1, …, yn ,教师 xi 需要给班级 yj 上 wij 节课,试编制一张课表使得课时 尽量少。 构造图 G = (V , E ),其中 V = { x1, …, xm , y1, …, yn } , 点 xi 与 yj 之间连有 wij 条边。 给 G 的边着色,
图论及其在数学 建模中的应用
一个图 G =(V ,E) 由一些点及点之间的连线(称为边) 构成,V、E 分别记 G 的点集合和边集合。
v1 v5 v4 v2
V v1 , v 2 , v 3 , v 4 , v 5
v3
{v1 , v 2 }, {v 2 , v 3 }, {v 3 , v 4 } E {v 4 , v 5 }, {v1 , v 5 }
K1, 3
K2, 3
K3, 3
命题:图 G 是二分图当且仅当 G 中不存在长度为 奇数的圈 。
二、最短路问题
在图 G = (V , E ) 的边集上定义权函数 w : E R 后就 得到一个赋权图,记为 G = (V , E , w) 。 对于赋权图,路的长度(即路的权)通常指路上所有
边的权之和。
v3
v5
v6
v8
路 v1v 2 v 4 v 5 v 3 v 4 v 6 v 7 的长度为 7 回路 v 2 v 4 v 5 v 6 v 4 v 3 v 2 的长度为 6 圈 v 2 v 4 v 5 v 3 v 2 的长度为 4
v1
v2
v4
v7
命题:若点 v 与 v 之间有路,则必有一条长度不 超过 |V | - 1 的路。
图的中心与选址问题 1. 使最大服务距离最小
给定一个赋权连通图 G = (V , E , w) ,在该图的点集中
确定一个点 v0 作为该图的中心,使得
max d ( v 0 , u ) min max d ( v , u )
uV vV uV
其中 d(v,u) 表示点 v、u 之间的距离,即最短路长。
eP w(e ) ln eP p(e )
求最可靠路等价于在赋权图 G (V , E , w ) 中求最短路。
2. 最大容量路 设在图 G = (V , E , w) 中,权 w(e) 表示 边 e 的通过能力(或容量),求 G 中指 定两点间的一条通过能力最大的路。
一条路的通 过能力等于 路上各边通 过能力的最 小值。
( 3) 设 l (v k ) max {l (v ) | v S },令 S S {v k },i k, 转 ( 2)。
注:v S 时,l (v ) 表示 v s 至 v 的最大容量路的容量 ;
具体路径可以通过反向跟踪获得,即 v 的紧前点 u 应满足
min{ l (u), w(u, v )} l (v ) .
G'
G''
G' 和 G'' 都是 G 的生成子图。
图 G 的一条点与边的交替序列 P v 0 e1v1e 2 v 2 e k v k 称为路,其中 e i {v i 1 , v i } (1 i k ) .
边数 k 称为路 P 的长度。 当 v0 = vk 时,称 P 为回路。除 v0 = vk 外,点不重复的 回路称为圈。
在图 G 中,若点 u、v 之间有路,则称 u、v 连通。若
G 的任何两点之间有路,则称 G 是连通图。 G 的极大连通子图称为连通分支。
有三个连通分支 u w
若删去某条边 e 之后图 的连通分支数增加,则 称 e 为割边或桥; 若删去某个点 v 及相连 的边后连通分支数增加, 则称 v 为割点。
加权中心为点 B
A 1.5 2 E 2 F
B 2.5 3
3.5 3 G
C 3 2
2
D
H
最短路问题的变种 1. 最可靠路
在通信网络中,已知各段线路的可靠性,求指定两 点间可靠性最大的线路,其中一条线路的可靠性是 其上各段线路的可靠性之积。
用图 G = (V , E) 表示网络,设线路 e (G 的一条边)的可 靠性为 p(e) (0 p(e) 1) ,给 e 定义权 w(e) ln p(e) , 则 G 的一条路 P 的权
H H C H H H H C H C H H H C C C H C C H H
H
C
两个图 G =(V ,E) 和 G (V , E ) ,如果有 V V , E E , 则称 G 是 G 的子图。 若G 是G 的子图,且V =V,则称G 是G 的生成子图。
G
( 3) 设 l (v k ) min {l (v ) | v S },令 S S {v k },i k, 转 ( 2) 。
注: v S 时,l (v ) 表示 v s 至 v 的最短路长; v S 时,l (v ) 是 v s 至 v 的最短路长的一个上界 ; 最短路径可以通过反向跟踪获得,即若 l(u) + w(u,v) = l(v) ,则 u 是 v 的紧前点。
e
v e 为割边 u、v、w 皆为割点
以下算法从点 vs 出发访问 vs 所在连通分支上的所有点:
(1) 令 l (v ) 0 (v V ), S {v s }, k 1 ; ( 2) 取 v S,令 S S \ {v }, l (v ) k ; ( 3) 对每个 v V,若 {v , v } E 且 l (v ) 0,则将 v 加入 S ; (4) 若 S ,算法终止;否则,令 k 1,转 ( 2) 。 k
从 v1 出发,按广度优先访问到的 点序列为 v1v 2 v 3 v 4 v 5 v 6 v 7 ;
按深度优先访问到的点序列为 v1 v 3 v 5 v 7 v 6 v 4 v 2 。
v1
v2
v4
v6
简单图: 任何一条边连结 两个不同的点, 任何两个点之间 至多有一条边的 图。
自回路
例. 求右图中点 a 到其余 点的最短路。
6 3 a l(a) l(b) 0 6 6 5 l(c) l(d) 3 1 3 1
12 11 11 11
b
1
e 6 10 4
2 3
i 6
3 h 4
2
c 2 d
f
g
2
l(e) l(f ) l(g) l(h) l(i )
解法: 用最短路算法求出所有点对之间的距离,然 后确定 v0 。
例. 某县拟建一消防站为辖区内的 8 个镇服务,问应 设在哪一个镇上才能使它离最远镇的距离最小? 已知各镇(A 至 H)之间的道路连结情况和距离 如下图所示。
A
3 2.5 1 E F B 1.5 C 3 3 2 G 2
中心为点 B
D 1.5 2
x1 x2 x3 y1 y2 y3
需要 3 种颜 色给边着色
使得相邻的边有
不同的颜色。
x4
一、图的基本概念
点 v 的度数:与 v 相连的边的条数,记做 deg(v) 。 命题:图的所有点的度数之和等于边数的两倍,即
vV deg(v ) 2 | E |
。
例. 碳氢化合物中氢原子的个数为偶数。
注: 当 v 未被访问时,l(v) = 0,否则 l(v) 记录 v 被访 问的序号; 集合 S 保存与某个已访问的点相邻 但还没有被访问的点。
广度优先搜索: 在步骤 (2) 优先访问先加入 S 的点 (先进先出),并且在步骤 (3) 只 需考虑 v V \ S 。 深度优先搜索: 在步骤 (2) 优先访问后加入 S 的点(后进先出),在 步骤 (3) 可以将某个 v S 再加入 S ,这意味着在 S 中将 v 的次序后移,从而 v 可以被更早地访问。
最短路问题:求赋权图上指定点之间的权最小的路。
Dijkstra 算法
Biblioteka Baidu假设:对一切e E,有 w(e ) 0 。
(1) l (v s ) 0 , l (v ) (v v s ) , S {v s } , i s .
( 2) 若 S V,则终止;否则,对每 v S 且 {v i , v } E , 个 令 l (v ) min {l (v ) , l (v i ) w (v i , v )} .
≌
v1 v3 v5 v2 在图的概念中,点的空间位置、 边的曲直长短都是无关紧要的, 重要的是其有几个点以及哪些点 之间有边相连。
v4
如果用点表示要研究的对象,则图的边可以用来反映 对象之间是否存在某种关系。 用点表示人,边表示两个人是否互相认识;
在地区公路图中,用点表示城市,边表示城市之间是 否有公路直接相连; 在分子结构图中,用点表示原子,边表示原子之间是 否存在化学键; ……
(1) l (v s ) , l (v ) 0 (v v s ) , S {v s } , i s .
( 2) 若 S V,则终止;否则,对每 v S 且 {v i , v } E , 个 令 l (v ) max {l (v ) , min{ l (v i ) , w (v i , v )}} .
三、树
无圈的连通图称为树。树的等价定义:
(1) G 无圈且 |E| = |V| - 1 ; (2) G 连通且 |E| = |V| - 1 ; (3) G 无圈,但在两个不相邻的点之间添加一条边后得 到恰好一个圈 ;
(4) G 连通,但删去任何一条边后便不连通; (5) G 中任何两点间有且仅有一条通路(点不重复的 路)。
若 T 是 G 的生成子图且是一棵树,则称 T 是 G 的生成 树或支撑树。
T1 至 T8 都是 T 的 生成树
G
T1
T2
T3
T4
T5
T6
T7
T8
命题:完全图 Kn 有 n n -2 棵生成树。
最小生成树问题 给定一个赋权连通图 G = (V , E , w) ,求 G 的一棵生成 树 T 使得 T 中所有边的权之和最小。 Kruskal 算法
7 7 6 11 11 11 10 10 10 9 9 8
S
{a} {a,d} {a,d,c} {a,d,c,b} {a,d,c,b,e} {a,d,c,b,e,i} {a,d,c,b,e,i, g} {a,d,c,b,e,i, g, f } {a,d,c,b,e,i, g, f , h}
o 哥尼斯堡 (Knigsberg) 七桥问题
(Euler, 1736)
C C
是否可以 一笔画?
A
D
A
D
B
B
右图是否存在经过每条边恰好一次的回路,即是否为 Euler 图?
化学药品存放问题 某单位需要存放一些化学药品,其中某些药品不能放 在同一个库房里,问至少需要几个库房?
用点表示药品,在不能放在同一个库房的两种药品之 间连边。需要几个库房等价于需要用几种颜色给图的 点着色可以使得相邻的点有不同的颜色。
H
2. 使加权距离和最小
设 G (V , E , q, w ) 是一个点-边皆赋权的连通图,其中 权函数 q 定义在点集合 V 上,w 定义在边集合 E 上, 称使得
uV
q(u)d (v0 , u) min q(u)d (v, u) vV
uV
的点 v0 是 G 的加权中心。
例. 某矿区有 8 个出矿点 (A至H),这 8 个 出矿点每天的矿石产 量分别为 3、5、2、2、 2、7、4、1 百吨。要 从这 8 个出矿点中选 一个建选矿厂,应建 在何处才能使总运价 最低?已知各出矿点 之间的道路和距离如 右图所示。
多重边
该图非简单图
完全图: 任何两个点之间都有边相连的简单图。 n 个点的完全图记作 Kn 。
K3
K4
K5
二分图: 点集 V 能划分成两个子集 X、Y,使得每条 边的两个端点分别属于 X 和 Y 的图。 二分图 G 也记作 G = (X, Y, E ) 。 称 G = (X, Y, E ) 为完全二分图,若 X 中的每个点和Y 中的每个点之间皆有边相连,记作 K | X | , |Y | 。
a c e g b
d f
图中的 7 种药品需要 3 个库房,例 如 {a , b , e},{c , d , g},{ f } 各放一 个库房。
排课表问题 有 m 位教师 x1, …, xm 和 n 个班级 y1, …, yn ,教师 xi 需要给班级 yj 上 wij 节课,试编制一张课表使得课时 尽量少。 构造图 G = (V , E ),其中 V = { x1, …, xm , y1, …, yn } , 点 xi 与 yj 之间连有 wij 条边。 给 G 的边着色,
图论及其在数学 建模中的应用
一个图 G =(V ,E) 由一些点及点之间的连线(称为边) 构成,V、E 分别记 G 的点集合和边集合。
v1 v5 v4 v2
V v1 , v 2 , v 3 , v 4 , v 5
v3
{v1 , v 2 }, {v 2 , v 3 }, {v 3 , v 4 } E {v 4 , v 5 }, {v1 , v 5 }
K1, 3
K2, 3
K3, 3
命题:图 G 是二分图当且仅当 G 中不存在长度为 奇数的圈 。
二、最短路问题
在图 G = (V , E ) 的边集上定义权函数 w : E R 后就 得到一个赋权图,记为 G = (V , E , w) 。 对于赋权图,路的长度(即路的权)通常指路上所有
边的权之和。
v3
v5
v6
v8
路 v1v 2 v 4 v 5 v 3 v 4 v 6 v 7 的长度为 7 回路 v 2 v 4 v 5 v 6 v 4 v 3 v 2 的长度为 6 圈 v 2 v 4 v 5 v 3 v 2 的长度为 4
v1
v2
v4
v7
命题:若点 v 与 v 之间有路,则必有一条长度不 超过 |V | - 1 的路。
图的中心与选址问题 1. 使最大服务距离最小
给定一个赋权连通图 G = (V , E , w) ,在该图的点集中
确定一个点 v0 作为该图的中心,使得
max d ( v 0 , u ) min max d ( v , u )
uV vV uV
其中 d(v,u) 表示点 v、u 之间的距离,即最短路长。
eP w(e ) ln eP p(e )
求最可靠路等价于在赋权图 G (V , E , w ) 中求最短路。
2. 最大容量路 设在图 G = (V , E , w) 中,权 w(e) 表示 边 e 的通过能力(或容量),求 G 中指 定两点间的一条通过能力最大的路。
一条路的通 过能力等于 路上各边通 过能力的最 小值。
( 3) 设 l (v k ) max {l (v ) | v S },令 S S {v k },i k, 转 ( 2)。
注:v S 时,l (v ) 表示 v s 至 v 的最大容量路的容量 ;
具体路径可以通过反向跟踪获得,即 v 的紧前点 u 应满足
min{ l (u), w(u, v )} l (v ) .
G'
G''
G' 和 G'' 都是 G 的生成子图。
图 G 的一条点与边的交替序列 P v 0 e1v1e 2 v 2 e k v k 称为路,其中 e i {v i 1 , v i } (1 i k ) .
边数 k 称为路 P 的长度。 当 v0 = vk 时,称 P 为回路。除 v0 = vk 外,点不重复的 回路称为圈。
在图 G 中,若点 u、v 之间有路,则称 u、v 连通。若
G 的任何两点之间有路,则称 G 是连通图。 G 的极大连通子图称为连通分支。
有三个连通分支 u w
若删去某条边 e 之后图 的连通分支数增加,则 称 e 为割边或桥; 若删去某个点 v 及相连 的边后连通分支数增加, 则称 v 为割点。
加权中心为点 B
A 1.5 2 E 2 F
B 2.5 3
3.5 3 G
C 3 2
2
D
H
最短路问题的变种 1. 最可靠路
在通信网络中,已知各段线路的可靠性,求指定两 点间可靠性最大的线路,其中一条线路的可靠性是 其上各段线路的可靠性之积。
用图 G = (V , E) 表示网络,设线路 e (G 的一条边)的可 靠性为 p(e) (0 p(e) 1) ,给 e 定义权 w(e) ln p(e) , 则 G 的一条路 P 的权
H H C H H H H C H C H H H C C C H C C H H
H
C
两个图 G =(V ,E) 和 G (V , E ) ,如果有 V V , E E , 则称 G 是 G 的子图。 若G 是G 的子图,且V =V,则称G 是G 的生成子图。
G
( 3) 设 l (v k ) min {l (v ) | v S },令 S S {v k },i k, 转 ( 2) 。
注: v S 时,l (v ) 表示 v s 至 v 的最短路长; v S 时,l (v ) 是 v s 至 v 的最短路长的一个上界 ; 最短路径可以通过反向跟踪获得,即若 l(u) + w(u,v) = l(v) ,则 u 是 v 的紧前点。
e
v e 为割边 u、v、w 皆为割点
以下算法从点 vs 出发访问 vs 所在连通分支上的所有点:
(1) 令 l (v ) 0 (v V ), S {v s }, k 1 ; ( 2) 取 v S,令 S S \ {v }, l (v ) k ; ( 3) 对每个 v V,若 {v , v } E 且 l (v ) 0,则将 v 加入 S ; (4) 若 S ,算法终止;否则,令 k 1,转 ( 2) 。 k