Euler图
- Euler迹:经过图 G G G的每条边的行迹(边不重复)称为Euler迹
- Euler回路:经过图 G G G每条边的闭行迹称为Euler回路
- Euler图:如果图 G G G含有Euler回路,则称 G G G为Euler图
- 定理:设
G
G
G是连通图,则下面三个命题等价
- G G G是Euler图
- G G G的每个顶点的度数都是偶数
-
G
G
G可以表示成无公共边的圈之并
- 推论:连通图 G G G有Euler迹,当且仅当 G G G中最多有两个度数为奇数的顶点
- 定理:设
D
D
D是有向图,且略去
D
D
D中边的方向后,对应的无向图连通,则下面三个命题等价
- D D D是Euler图
- ∀ v ∈ V ( D ) , d e g + ( v ) = d e g − ( v ) \forall v\in V(D),deg^+(v)=deg^-(v) ∀v∈V(D),deg+(v)=deg−(v)
-
D
D
D可以表示成无公共边的有向圈之并
- 推论:连通有向图 D D D有Euler有向迹但不是有向Euler图,当且仅当 D D D中恰有两个度数为奇数的顶点,其中一个顶点入度比出度大1,另一个的出度比入读大1,其余顶点入度等于出度
- 高效率计算机鼓轮的设计
- De Bruijn序列:对于固定正整数 k k k的一个 ( 0 , 1 ) (0,1) (0,1)周期序列,它具有最大的周期 τ \tau τ,而使得 k k k部分序列 S 1 , S 2 , ⋯ , S τ S_1,S_2,\cdots,S_{\tau} S1,S2,⋯,Sτ均不同
- 一个圆盘等分成
m
n
m^n
mn格扇形,每个扇形表示
S
=
{
a
1
,
⋯
,
a
m
}
S=\{a_1,\cdots,a_m\}
S={a1,⋯,am}中的一个符号,连续
n
n
n个扇形表示一个长为
n
n
n的符号串。将
m
n
m^n
mn个字符(
m
n
−
1
个
a
1
,
m
n
−
1
个
a
2
,
⋯
,
m
n
−
1
个
a
m
m^{n-1}个a_1,m^{n-1}个a_2,\cdots,m^{n-1}个a_m
mn−1个a1,mn−1个a2,⋯,mn−1个am)放到这样的圆盘上,使圆盘转动一周得到
m
n
m^n
mn个各不相同的符号串
- 构造有向图 D = ( V , E ) , V = { α 1 α 2 ⋯ α n − 1 ∣ α i ∈ S , 1 ≤ i ≤ n − 1 } , E = { α 1 α 2 ⋯ α n − 1 α n = ( α 1 α 2 ⋯ α n − 1 , α 2 ⋯ α n − 1 α n ) ∣ α i ∈ S , 1 ≤ i ≤ n } D=(V,E),V=\{\alpha_1\alpha_2\cdots\alpha_{n-1}|\alpha_i\in S,1\leq i \leq n-1\},E=\{\alpha_1\alpha_2\cdots\alpha_{n-1}\alpha_n=(\alpha_1\alpha_2\cdots\alpha_{n-1},\alpha_2\cdots\alpha_{n-1}\alpha_n)|\alpha_i\in S,1\leq i \leq n\} D=(V,E),V={α1α2⋯αn−1∣αi∈S,1≤i≤n−1},E={α1α2⋯αn−1αn=(α1α2⋯αn−1,α2⋯αn−1αn)∣αi∈S,1≤i≤n}
- 显然 D D D连通,每个顶点的入度等于出度,为 m m m,所以 D D D是有 m n − 1 m^{n-1} mn−1个顶点, m n m^n mn条边的有向Euler图,存在Euler回路。取回路中各边的最后一个字母,按边在回路中的顺序依次放在圆盘上。
- Fluery算法
- 输入:图 G = ( V ( G ) , E ( G ) ) G=(V(G),E(G)) G=(V(G),E(G))
- 输出:图 G G G的一条行迹
- 初始化:任取 v 0 ∈ V ( G ) v_0\in V(G) v0∈V(G),令 P 0 = v 0 P_0=v_0 P0=v0
- 选边:假设 P i = v 0 e 1 v 1 e 2 ⋯ e i v i P_i=v_0e_1v_1e_2\cdots e_iv_i Pi=v0e1v1e2⋯eivi走到顶点 v i v_i vi,在 E ( G ) − { e 1 , e 2 , ⋯ , e i } E(G)-\{e_1,e_2,\cdots,e_i\} E(G)−{e1,e2,⋯,ei}选取与 v i v_i vi关联的边,除非无边可选,否则不选桥,将该边及其关联另一顶点加入 P P P,直至无边可选
- 逐步插入回路算法:
- 输入:Euler图 G = ( V ( G ) , E ( G ) ) G=(V(G),E(G)) G=(V(G),E(G))
- 输出:图 G G G的一条Euler回路
- 初始化: i ← 0 , v ∗ = v 1 , v = v 1 , P 0 = v 1 , G 0 = G i\leftarrow0,v^*=v_1,v=v_1,P_0=v_1,G_0=G i←0,v∗=v1,v=v1,P0=v1,G0=G
- 找圈:在 G i G_i Gi中选取与 v v v关联的任意一条边 e = v v ′ e=vv' e=vv′,将 e e e加入 P i P_i Pi中得到 P i + 1 = P i e v ′ P_{i+1}=P_iev' Pi+1=Piev′,直至 v ′ = v ∗ v'=v^* v′=v∗
- 判断是否已找完:若 E ( P i + 1 ) = E ( G ) E(P_{i+1})=E(G) E(Pi+1)=E(G),结束算法;否则, G i + 1 = G − E ( P i + 1 ) G_{i+1}=G-E(P_{i+1}) Gi+1=G−E(Pi+1),在 G i + 1 G_{i+1} Gi+1中取一条与 P i + 1 P_{i+1} Pi+1中某顶点 v k v_k vk关联的边 e e e,令 v ∗ = v k , v = v k v^*=v_k,v=v_k v∗=vk,v=vk
中国邮递员问题
- 最优投递路线:构造无向加权图 G = ( V , E , w ) G=(V,E,w) G=(V,E,w), E E E为街道集合, V V V中的元素是街道的交叉点,街道的长度为该街道对应的边的权,显然所有权均为整数。中国邮递员问题为求 G G G中一条经过每条边至少一次的回路 C C C,使该回路的权 ∑ e ∈ E ( C w ( e ) \sum_{e\in E(C}w(e) ∑e∈E(Cw(e)最小,且称满足以上条件的回路使最优投递路线
- 定理:若
W
W
W是图
G
G
G中一条包含所有边的闭通道,则
W
W
W在这样的闭通道中具有最小长度的充要条件是
- 每一条边最多重复经过一次
- 在 G G G的每一个圈上,重复经过的边的数目不超过圈的长度的一半
- Edmonds-Johnson算法
- 输入:加权图 G = ( V ( G ) , E ( G ) , w ( G ) ) G=(V(G),E(G),w(G)) G=(V(G),E(G),w(G))
- 输出:图 G G G的一条最优投递路线
- Euler图:直接求Euler回路
- 变成Euler图:令 V 0 V_0 V0为 G G G中度数为奇数的顶点集合,对 V 0 V_0 V0中每对顶点 u u u和 v v v,用 D i j k s t r a Dijkstra Dijkstra算法求出其在 G G G中的最短距离 d i s t G ( u , v ) dist_G(u,v) distG(u,v)以及最短路径。构建加权完全图 K ∣ V 0 ∣ K_{|V_0|} K∣V0∣,每条边 u v uv uv的权为 d i s t G ( u , v ) dist_G(u,v) distG(u,v),求 K ∣ V 0 ∣ K_{|V_0|} K∣V0∣的总权最小的完备匹配,将 M M M中的每条边,给出其两个端点,将这个端点在 G G G中的最短路径上的每条边重复一遍,得到Euler图 G ∗ G^* G∗
Hamilton图
- Hamilton轨道:经过图 G G G每个顶点的轨道称为Hamilton轨道
- Halimton圈:经过图 G G G每个顶点的圈称为Hamilton圈
- Hamilton图:如果图 G G G含有Hamilton圈,则称这个图为Hamilton图
- 定理:设 G G G是Hamilton图,则对 V ( G ) V(G) V(G)的每个非空真子集 S S S,均有 w ( G − S ) ≤ ∣ S ∣ w(G-S)\leq|S| w(G−S)≤∣S∣, w w w为连通片个数
- Dirac定理:设 G G G是简单图,且 v ( G ) > 3 , δ ( G ) ≥ v ( G ) / 2 v(G)>3,\delta(G)\geq v(G)/2 v(G)>3,δ(G)≥v(G)/2,则 G G G是Hamilton图
- 引理:设 G = ( V , E ) G=(V,E) G=(V,E)是简单图, u u u和 v v v是 G G G中两个不相邻的顶点,且 d e g ( u ) + d e g ( v ) ≥ v ( G ) deg(u)+deg(v)\geq v(G) deg(u)+deg(v)≥v(G),则 G G G是Hamilton图,当且仅当当 G + u v G+uv G+uv是Hamilton图
- 闭包:反复连接 G G G中度数之和不小于 v ( G ) v(G) v(G)的不相邻顶点对,直到没有这样的点对为止,称为 G G G的闭包,记为 c ( G ) c(G) c(G)
- 引理: c ( G ) c(G) c(G)是唯一确定的
- 定理:简单图
G
G
G是Hamilton图,当且仅当它的闭包
c
(
G
)
c(G)
c(G)是Hamilton图
- 推论:设 G G G是 v ( G ) ≥ 3 v(G)\geq3 v(G)≥3的简单图,若 c ( G ) c(G) c(G)是完全图,则 G G G是Hamilton图
- Ore定理:设 v ( G ) ≥ 3 v(G)\geq3 v(G)≥3,对 G G G的任意一对顶点 u , v u,v u,v,若 d e g ( u ) + d e g ( v ) ≥ v ( G ) − 1 deg(u)+deg(v)\geq v(G)-1 deg(u)+deg(v)≥v(G)−1,则 G G G有Hamilton轨道;若 d e g ( u ) + d e g ( v ) ≥ v ( G ) deg(u)+deg(v)\geq v(G) deg(u)+deg(v)≥v(G),则$G是Hamilton图
旅行商问题
- 设 K v = ( V , E , w ) K_v=(V,E,w) Kv=(V,E,w)是 v v v阶完全加权图,各边的权非负,有的边的权可为 + ∞ +\infty +∞,求 K v K_v Kv中权最小的Hamilton圈
- 最近邻法
- 输入:加权图 G = ( V ( G ) , E ( G ) , w ( G ) ) G=(V(G),E(G),w(G)) G=(V(G),E(G),w(G)),顶点 v 1 v_1 v1
- 输出:图 G G G的一条Hamilton圈
- 一句概括:找与P中最后顶点的最近顶点作为下一顶点
- 复杂度: O ( v 2 ) O(v^2) O(v2)
- 定理:设 G = ( V , E , w ) G=(V,E,w) G=(V,E,w)是 v ( v ≥ 3 ) v(v\geq3) v(v≥3)阶完全加权图,各边的权均为整数,且满足三角不等式,则 d d 0 ≤ 1 2 ( ┌ l o g 2 n ┐ + 1 ) \frac{d}{d_0}\leq \frac{1}{2}(\ulcorner log_2n\urcorner+1) d0d≤21(┌log2n┐+1),其中 d 0 d_0 d0是 G G G中最短Hamilton圈的权, d d d是最近邻法求出的Hamilton圈的权
- 最小生成树法
- 输入:加权图 G = ( V ( G ) , E ( G ) , w ( G ) ) G=(V(G),E(G),w(G)) G=(V(G),E(G),w(G))
- 输出:图 G G G的一条Hamilton圈
- 造Euler图,找Euler回路:找最小生成树 T T T,将 T T T中各边都添加一条平行边,所得图为 G ∗ G^* G∗, G ∗ G^* G∗为Euler图,从 v v v出发找Euler回路 C v C_v Cv
- 抄近路:Euler回路跳过已访问过的结点得到的Hamilton圈
- 复杂度: O ( v 2 ) O(v^2) O(v2)
- 定理:设 G = ( V , E , w ) G=(V,E,w) G=(V,E,w)是 v ( v ≥ 3 ) v(v\geq3) v(v≥3)阶完全加权图,各边的权均为整数,且满足三角不等式,则 d d 0 < 2 \frac{d}{d_0}<2 d0d<2,其中 d 0 d_0 d0是 G G G中最短Hamilton圈的权, d d d是最小生成树法求出的Hamilton圈的权
- 最小权匹配法
- 输入:加权图 G = ( V ( G ) , E ( G ) , w ( G ) ) G=(V(G),E(G),w(G)) G=(V(G),E(G),w(G))
- 输出:图 G G G的一条Hamilton圈
- 提升最小生成树法:在其算法基础上,另种方法求Euler图
- 求Euler图:设 T T T中度数为奇数的顶点集合为 V 0 = { v 1 , v 2 , ⋯ , v 2 k } V_0=\{v_1,v_2,\cdots,v_2k\} V0={v1,v2,⋯,v2k},求 V 0 V_0 V0的导出子图 G [ V 0 ] = K 2 k G[V_0]=K_{2k} G[V0]=K2k中总权最小的完备匹配 M M M,将 M M M中的 K K K条边加到 T T T上,得到Euler图 G ∗ G^* G∗
- 定理:设 G = ( V , E , w ) G=(V,E,w) G=(V,E,w)是 v ( v ≥ 3 ) v(v\geq3) v(v≥3)阶完全加权图,各边的权均为整数,且满足三角不等式,则 d d 0 < 3 2 \frac{d}{d_0}<\frac{3}{2} d0d<23,其中 d 0 d_0 d0是 G G G中最短Hamilton圈的权, d d d是最小权匹配法求出的Hamilton圈的权
超Hamilton图
- 超Hamilton图:若 G G G不是Hamilton图,但对于 G G G的任意点 v ∈ V ( G ) , G − v v\in V(G),G-v v∈V(G),G−v都是Hamilton图,则称 G G G是超Hamilton图
- 超可迹的:若 G G G中没有Hamilton轨道,但对任意的点 v ∈ V ( G ) , G − v v\in V(G),G-v v∈V(G),G−v存在 H H H路,则称 G G G是超可迹的
- 定理: P e t e r s o n Peterson Peterson图是超Hamilton图
- 定理: T h o m a s s e n Thomassen Thomassen图是超可迹的
Euler图和Hamilton图的联系
- 线图:将一个图
G
G
G的边集
E
(
G
)
E(G)
E(G)看作
V
(
G
)
V(G)
V(G)的2点子集的一个族,则交图
Ω
(
E
)
\Omega(E)
Ω(E)称为
G
G
G的线图,记为
L
(
G
)
L(G)
L(G)
- 显然 L ( G ) L(G) L(G)的点是 G G G的边,当 G G G中相应的边邻接时 L ( G ) L(G) L(G)的两个点邻接。
- 迭线图:一般地, L n ( G ) = L ( L n − 1 ( G ) ) L^n(G)=L(L^{n-1}(G)) Ln(G)=L(Ln−1(G))
- 细分图:若 e = u v e=uv e=uv是 G G G的一条边,又 w w w不是 G G G的一个点,则当用边 u w uw uw和 w v wv wv来代替 e e e时称 e e e被细分,又称 G G G的每一条边被细分后产生的图为 G G G的细分图,记为 S ( G ) S(G) S(G)
-
L
n
(
G
)
L_n(G)
Ln(G):用
S
n
(
G
)
S_n(G)
Sn(G)来表示
G
G
G中每条边被插进
n
n
n个度数为2的新点得到的图,定义
L
n
(
G
)
=
L
(
S
n
−
1
(
G
)
)
L_n(G)=L(S_{n-1}(G))
Ln(G)=L(Sn−1(G))
- 一般地, L n ( G ) ≠ L n ( G ) L_n(G)\neq L^n(G) Ln(G)=Ln(G)
- 定理:若 G G G是 E E E图,则 L ( G ) L(G) L(G)既是 E E E图又是 H H H图
- 定理:若 G G G是 H H H图,则 L ( G ) L(G) L(G)是 H H H图
- 定理:一个图 G G G是 E E E的充要条件是 L 3 ( G ) L_3(G) L3(G)是 H H H图
- Chartarand定理:若 G G G是 n n n个点的非平凡连通图,且不是一条路,则对所有 m ≥ n − 3 m\geq n-3 m≥n−3, L m ( G ) L^m(G) Lm(G)是 H H H图