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