1
第四章 Euler图和Hamilton图
§ 1. Euler 图
一、基本概念
七桥问题: 如下图。从任一陆地点出发,经过每座桥一次且仅一次回到出发点,是否可能?
?
哥尼斯堡七桥 G
转化为 图论问题 :图 G 中从任一顶点出发,经过每条边恰好一次回到出发点,是否可能?
Euler 环游 (tour,circuit,closed trail):经过图 G 的每条边恰好一次的闭迹。
Euler 迹( trail) :经过每条边恰好一次的迹。
Euler 图:有 Euler 环游的图。
七桥问题:图 G 是否 Euler 图?
二、 Euler 图的判定
定理 4.1.1 一个非空连通图是 Euler 图当且仅当它没有奇度顶点。
证明 必要性 :设图 G 是 Euler 图, C 是 G 中一个 Euler 环游。对 )(GVv∈? , v 必在 C 上
出现。 因 C 每经过 v 一次, 就有两条与 v 关联的边被使用。 设 C 经过 v 共 k 次, 则 kvd 2)( = 。
充分性 :无妨设 1)( >Gν 。因 G 连通,故至少有一条边。下面用反证法证明充分性结论。
假设图 G 无奇度顶点,但它不是 Euler 图。令
S={G|G 至少有一条边,无奇度顶点,且不是 Euler 图 }
则 φ≠S 。取 S 中边数最少的一个,记为 G′。因 2)( ≥′Gδ ,故 G′含有圈,因而含有闭迹。
设 C 是 G′中一条最长的闭迹。由假设, C 不是 G′的 Euler 环游。因此 )(\ CEG′ 必有一个
连通分支至少含有一条边。记这个连通分支为
0
G 。由于 C 是闭迹,故
0
G 中没有奇度顶点,
且 )()(
0
GG ′<εε 。 由 G′的选择可知,
0
G 必有 Euler 环游
0
C 。 由于 G′连通, 故 C 必经过
0
G
中至少一个顶点,从而 φ≠)()(
0
CVCV I 。因此
0
CC + 是 G′ 的一条闭迹,且
)()(
0
CCC εε >+ ,这与 C 的选取矛盾。证毕。
2
充分性的另一种证法(数学归纳法) :
无妨设 1)( >Gν 。因 G 连通且无奇度顶点,故 2)( ≥Gδ ,因而必含有圈。
当 2)( =Gν 时,设仅有的两点为 u,v,则 u,v 间必有偶数条边,它们显然构成 Euler 回路。
假设 kG =)(ν 时,结论成立。
当 1)( += kGν 时,任取 )(GVv∈ 。令 S = {v 的所有关联边 }。记 S 中的边为
m
eee L,,
21
,
其中 )(vdm = 为偶数。记 vGG \=′ 。对 G′作如下操作:
( 1) 任取 See
ji
∈, ,设 vve
ii
= , vve
jj
= ;
( 2)
ji
vvGG +′=′: , },{\:
ji
eeSS = ;
( 3) 若 φ=S ,则令 vGG ?′=′: ,停止;否则转( 1)继续。
这个过程最终得到的 G′有 k 个顶点,且每个顶点在 G′中的度与在 G 中完全一样。由归纳假
设, G′中有 Euler 环游,设为 P。将 P 中上述添加边
ji
vv 都用对应的两条边
ji
ee , 代替,显
然获得 G 的一条 Euler 环游。证毕。
定理 4.1.2 一个连通图有 Euler 迹当且仅当它最多有两个奇度顶点。
证明 必要性 :设连通图 G 有 Euler 迹 C,其起点和终点分别为 u,v。
若 )(GEuv∈ ,则 G 有 Euler 闭迹(环游) ,由定理 4.1.1, G 无奇度顶点。
若 Guv? ,则 uvG + 有 Euler 环游。由定理 4.1.1,图 uvG + 无奇度顶点。故 G 最多
只可能有两个奇度顶点。
充分性 :若 G 无奇度顶点,则由定理 4.1.1, G 有 Euler 环游,自然有 Euler 迹。
若 G 只有两个奇度顶点,设其为 u,v,则给 G 添加一条新边 uve = 所得的图 G +e 的每
个顶点都是偶度顶点。从而 G +e 有 Euler 环游。故 G 有 Euler 迹。证毕。
推论 4.1.1 一个连通图可 k 笔画成当且仅当它最多有 2k 个奇度顶点。
证明留作习题。
例
三、求 Euler 图中的 Euler 环游- Fleury 算法
step1. 任取 )(
0
GVv ∈ ,令
00
: vw = , 0:=i 。
step2. 设迹
iii
vevevw L
110
= 已取定。从 },,,{21 i
eeeE L 中选取一条边
1+i
e ,使得
( 1)
1+i
e 和
i
v 相关联;
3
( 2)
1+i
e 不选 },,,{21 ii
eeeGG L= 的割边,除非没有别的选择。
step3. 当 step2 不能再执行时,停止。
定理 4.1.3 若 G 是 Euler 图,则 Fleury 算法终止时得到的是 G 的 Euler 环游。
证明 设 G 是 Euler 图,
nnn
veevevW L
2110
= 是 Fleury 算法终止时得到的迹。则显然
n
v 在
},,,{21 nn
eeeGG L= 中的度数是 0( 因算法终止在
n
v ,若不是 0,则算法应继续 ) 。故
n
vv =
0
( 否则
n
v 在 G 中是奇度顶点,这不可能 ) ,即
n
W 是闭迹。
若
n
W 不是 G 的 Euler 环游,设 S = {
n
G 中度 >0 的所有顶点 }。则 φ≠S (因
n
W 不是 G
的 Euler 环游,有边不在
n
W 上) ,且
n
W 上有 S 中的点( 否则
n
G 中
n
W 上的点都是
n
G 的孤立
点, 这与 G 是 Euler 图 (从而连通) 矛盾 ) , 但 SGVSv
n
\)(=∈ 。 设 m 是
n
W 上使得 Sv
m
∈
而 Sv
m
∈
+1
的最大整数。因
n
W 终止于 SGVS \)(= ,故
11 ++
=
mmm
vve 是
m
G 中 ],[ SS 的仅
有的一条边,因而是
m
G 的一条割边。
设 e 是
m
G 中和
m
v 关联的另一条边( 因 0)( >
mG
vd
n
,这样的边 e 一定存在 ) ,则由算法第
二步知: e 必定也是
m
G 的一条割边( 否则,按算法应选 e 而不选
1+m
e ) ,因而 e 是 ][SG
m
的
割边。
但由于
n
W 是闭迹, Svv
n
∈=
0
,且对 Sv∈? , )(vd
G
是偶数。故 ][SG
m
= ][SG
n
中
每个顶点都是偶数度顶点,由此又推出 ][SG
m
无割边(连通性一章习题) 。
以上两方面矛盾。证毕。
例 :
S
S
v
0
= v
n
v
m
e e
m+1
v
m+1
1
5
4
32
6
4
§ 2.中国邮递员问题( Chinese Postman Problem)
问题(管梅谷, 1960) :一位邮递员从邮局出发投递邮件,经过他所管辖的每条街道至少一
次,然后回到邮局。请为他选择一条路线,使其所行路程尽可能短。
图论模型 :求赋权连通图中含有所有边的权最小的闭途径。这样的闭途径称为最优回路。
思想 : ( 1)若 G 是 Euler 图,则 G 的 Euler 环游便是最优回路,可用 Fleury 算法求得;
( 2)若 G 不是 Euler 图,则含有所有边的闭途径必须重复经过一些边,最优回路要求重复
经过的边的权之和达到最小。闭途径重复经过一些边,实质上可看成给图 G 添加了一些重
复边(其权与原边的权相等) ,最终消除了奇度顶点形成一个 Euler 图。因此,在这种情况
下求最优回路可分为两步进行:首先给图 G 添加一些重复边得到 Euler 图
*
G ,使得添加边
的权之和
∑
∈Fe
ew )( 最小, (其中 )(\)(
*
GEGEF = ) ;然后用 Fleury 算法求
*
G 的一条 Euler
环游。这样便得到 G 的最优回路。
问题是:如何给图 G 添加重复边得到 Euler 图
*
G ,使得添加边的权之和
∑
∈Fe
ew )( 最小?
方法一(图上作业法)
定理 4.2.1 设 C 是一条经过赋权连通图 G 的每条边至少一次的回路,则 C 是 G 的最优回路
当且仅当 C 对应的欧拉图
*
G 满足:
( 1) G 的每条边在
*
G 中至多重复出现一次;
( 2) G 的每个圈上在
*
G 中重复出现的边的权之和不超过该圈总权的一半。
证明 必要性:先证( 1)
设 C 是最优回路,即 C 是它所对应的
*
G 的一个 Euler 环游。假设 G 中的边 uve = 被 C
经过了 m 次,即在
*
G 中 u,v 之间有 m 条重边。若 3≥m ,则在
*
G 中删去这 m 条边中的两
条,不改变 u,v 的度数的奇偶性。所得图 G′仍为 Euler 图,但 )()(
*
GwGw <′ ,即 G′中的
欧拉环游是比 C 更优的一条投递路线,这是矛盾的。
下证( 2) 。
设
1
C 是 G 中一个圈,且在
*
G 中,
1
C 上重复出现的边的权之和 >
1
C 的权的一半。将
1
C
上重复的边改为不重复而未重复的边改为重复边。
5
这样做不改变
*
G 中
1
C 上各顶点的度数的奇偶性。设所得图为 G
~
,则 G
~
仍是欧拉图,但
)()
~
( GwGw < , G
~
的欧拉环游比 C 更优。这是不可能的。
充分性:设
1
C 是 G 的一个最优回路,
*
1
G 是它对应的欧拉图;
2
C 是 G 的一条投递路线
(经过所有边的回路) ,它对应的欧拉图
*
2
G 满足( 1)和( 2) 。由必要性知,
*
1
G 也满足( 1)
和( 2) 。我们来证明 )()(
12
CwCw = 。
设
1
F 、
2
F 分别为
*
1
G 和
*
2
G 的重复边集合。令 )(\)(
2121
FFFFF IU= 。则 G[F]为 F
在
*
2
*
1
GG U 中的导出子图( G[F]中的边全是
1
F 和
2
F 的边,且无一边既在
1
F 中又在
2
F 中) 。
由于在
*
1
G 和
*
2
G 中,过一个顶点 v 的添加边条数的奇偶性与度数 )(vd
G
的奇偶性相同,
故 G[F]中各顶点的度数均为偶数。这表明 G[F]各连通分支均为欧拉图。从而 G[F]是若干个
圈的边不重的并。而且 G[F]中各圈均既有
1
F 的边又有
2
F 的边(因
1
F 的边不会形成圈,
2
F
的也是) 。由条件( 2) , G[F]中任一个圈 C′上
1
F 的边的权之和与
2
F 的边的权之和均不超过
)(
2
1
Cw ′ 。于是
1
F 、
2
F 在 C′上边的权之和必都等于 )(
2
1
Cw ′ 。这说明 G[F]中属于
1
F 的边
的权之和= G[F]中属于
2
F 的边的权之和。因此 )()(
*
1
*
2
GwGw = ,从而 )()(
12
CwCw = 。
证毕。
奇偶点图上作业法:
先分奇偶点,奇点对对联;联线不重迭,重迭要改变;圈上联线长,不得过半圈。
奇偶点图上作业法虽然通俗易懂,但使用时需要检查图的每个圈,对于有很多圈的图,
计算量很大,实际当中用得较少。
方法二( Edmonds-Johnson 方法)
定理 4.2.2 设 G 是赋权连通图, G 中有 k2 个奇度顶点。设
,|{ EeeA ∈= 在求最优回路时 e 被添加重复边 }。
则 G[A]是以 G 的奇度顶点为起点和终点的 k 条无公共边的最短路之并。
证明(略) 。
基于此定理, Edmonds 和 Johnson 于 1973 年给出了求解邮递员问题的有效算法。
Edmonds-Johnson 算法:
F
2
F
1
E(G
2
*
)
E(G
1
*
)
E(G)
6
Step1. 若 G 中无奇度顶点,令 GG =
*
,转 step2;否则转 step3。
Step2. 求 G
*
中的 Euler 回路,结束。
Step3. 求 G 中所有奇度顶点对之间的最短路。
Step4. 以 G 中奇度顶点集 V′ 为顶点集,构作赋权完全图 |)|(, VnK
n
′= ,使得对
Vvv
ji
′∈? , ,
n
K 中边
ji
vv 的权为
i
v 至
j
v 在 G 中最短路的权。
Step5. 求
n
K 中最小权完美匹配 M。
Step6. 将 M 中边对应的各最短路中的边在 G 中加重复边,得 Euler 图 G
*
,转 step2。
注 :该算法的复杂度为 )(
2
νO 。
例 :求下图的最优投递路线, A 为邮局。
解:只有两个奇点, },{ EBV =′ 。 B 到 E 的最短路为 BAFE,权为 13。完全赋权图
2
K 及
相应的 Euler 图 G
*
为
K
2
G
*
易求得其 Euler 环游,并得到最优回路。
A
F
E
D
CB
4
3
10
14
8
5
6
5
9
E B
13
A
F
E
D
CB
4
3
10
14
8
5
6
5
9