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