图论课件第四章欧拉图与哈密尔顿.ppt
图论及其应用应用数学学院1第四章 欧拉图与哈密尔顿图主要内容一、欧拉图与中国邮路问题二、哈密尔顿图三、度极大非哈密尔顿图与TSP问题教学时数安排8学时讲授本章内容四、超哈密尔顿图问题2本次课主要内容(一)、欧拉图及其性质(二)、Fleury算法(三)、中国邮路问题欧拉图与中国邮路问题3 1、欧拉图的概念(一)、欧拉图及其性质(1)、问题背景-欧拉与哥尼斯堡七桥问题 结论:在一个点线连接的图形中,如果每个顶点关联偶数条边,并且点与点之间有路可行,则从某点出发,经过每条边一次且仅一次,可以回到出发点。4 哥尼斯堡城(位于德国北部),在欧拉的生活与图论历史中扮演着非常重要角色。因为它,产生了著名的欧拉图定理,因为它,产生了图论。注:一笔画-中国古老的民间游戏 要求:对于一个图G,笔不离纸,一笔画成.(2)、欧拉图概念 定义1 对于连通图G,如果G中存在经过每条边的闭迹,则称G为欧拉图,简称G为E图。欧拉闭迹又称为欧拉环游,或欧拉回路。欧拉图41324132非欧拉图有欧拉迹非欧拉图无欧拉迹12345 2、欧拉图的性质 定理1 下列陈述对于非平凡连通图G是等价的:(1)G是欧拉图;(2)G的顶点度数为偶数;(3)G的边集合能划分为圈。证明:(1)(2)由(1),设 C是欧拉图G的任一欧拉环游,v是G中任意顶点,v在环游中每出现一次,意味在G中有两条不同边与v关联,所以,在G中与v关联的边数为偶数,即v的度数为偶数,由v的任意性,即证明(2)。(2)(3)由于G是连通非平凡的且每个顶点度数为偶数,所以G中至少存在圈C1,从G中去掉C1中的边,得到G的生成6子图G1,若G1没有边,则(3)成立。否则,G1的每个非平凡分支是度数为偶数的连通图,于是又可以抽取一个圈。反复这样抽取,E(G)最终划分为若干圈。(3)(1)设C1是G的边划分中的一个圈。若G仅由此圈组成,则G显然是欧拉图。否则,由于G连通,所以,必然存在圈C2,它和C1有公共顶点。于是,C1C2是一条含有C1与C2的边的欧拉闭迹,如此拼接下去,得到包含G的所有边的一条欧拉闭迹。即证G是欧拉图。推论1 连通图G是欧拉图当且仅当G的顶点度数为偶。推论2 连通非欧拉图G存在欧拉迹当且仅当G中只有两个顶点度数为奇数。7 例1 下面图中谁是欧拉图?谁是非欧拉图但存在欧拉迹?谁是非欧拉图且不存在欧拉迹?G1G2G3 解:G1是欧拉图;G2是非欧拉图,但存在欧拉迹;G3中不存在欧拉迹。例2 证明:若G和H是欧拉图,则 是欧拉图。8 证明:首先证明:对任意u V(G),v V(H),有:事实上,设z是u的任意一个邻点,一定有(u,v)的一个邻点(z,v),反之亦然。同理,对于v的任意一个邻点w,一定有(u,v)的一个邻点(u,w),反之亦然。即:(u,v)在乘积图中邻点个数等于u在G中邻点个数与v在H中邻点个数之和。所以,G,H是欧拉图,那么 顶点度数为偶数。其次证明:是连通的。由于G,H都是欧拉图,所以都连通。设最短的(u1,u2)路9最短的(v1,v2)路分别为:那么,由乘积图的定义:在乘积图中有路:这样,我们证明了 是连通的且每个顶点度数为偶数。即它是欧拉图。(二)、Fleury算法 该算法解决了在欧拉图中求出一条具体欧拉环游的方法。方法是尽可能避割边行走。1、算法(1)、任意选择一个顶点v0,置w0=v0;10(2)、假设迹wi=v0e1v1eivi已经选定,那么按下述方法从E-e1,e2,ei中选取边ei+1:1)、ei+1与vi+1相关联;2)、除非没有别的边可选择,否则 ei+1不能是 Gi=G-e1,e2,ei的割边。(3)、当(2)不能执行时,算法停止。例3 在下面欧拉图G中求一条欧拉回路。dcbafe g图Ghji11 解:dcbafe g图Ghji 例4 某博物馆的一层布置如下图,其中边代表走廊,结点e是入口,结点g是礼品店,通过g我们可以离开博物馆。请找出从博物馆e进入,经过每个走廊恰好一次,最后从g处离开的路线。afedcbihgj12 解:图中只有两个奇度顶点e和g,因此存在起点为e,终点为g的欧拉迹。为了在G中求出一条起点为e,终点为g的欧拉迹,在e和g间添加一条平行边mafedcbihgjm 用Fleury算法求出欧拉环游为:emgcfabchbdhgdjiejge 所以:解为:egjeijdghdbhcbafcg13 证明:令Wn=v0e1v1envn为由Fleury算法得到的一条G中迹。定理1 若G是欧拉图,则G中任意用Fleury算法作出的迹都是G的欧拉环游。2、算法证明 由Fleury算法,dGn(vn)=0,所以,vn=v0,否则,dGn(vn)为奇 设Wn 不是G的欧拉环游,于是可令:容易知道:14 令vm是Wn在S中的最后一个顶点。vmvm+1vn 首先,中边一定都是Wn中边。若不然,设 设e=uv,u S,那么,dGn(v)0,矛盾!其次,由vm是Wn在S中的最后一个顶点,知:15 即em+1是Gm的割边。设e是Gm中与vm关联的另外一条边。那么,由F算法,它必然为GmS的割边。但是,GmS=GnS,所以,GmS中每个点为偶数,从而没有割边,矛盾!vmvm+1vne 3、算法复杂性分析16 设G=(n,m)是欧拉图 由Fleury算法知:算法需要m次循环;算法中主要运算是判断:,该判断的时间复杂性是n2数量级的。所以Fleury算法时间复杂性是:O(n2m),是好算法。例4 证明:若G有2k0个奇数顶点,则存在k条边不重的迹Q1,Q2,Qk,使得:证明:不失一般性,只就G是连通图进行证明。17 设G=(n,m)是连通图。令vl,v2,,vk,vk+1,v2k是G的所有奇度点。在vi与vi+k间连新边ei得图G*(1ik).则G*是欧拉图,因此,由Fleury算法得欧拉环游C.在C中删去ei(1i k).得k条边不重的迹Qi(1i k):例5 设G是非平凡的欧拉图,且v V(G)。证明:G的每条具有起点v的迹都能扩展成G的欧拉环游当且仅当G-v是森林。证明:“必要性”若不然,则G-v有圈C。18 考虑G1=G-E(G)的含有顶点v的分支H。由于G是非平凡欧拉图,所以G1的每个顶点度数为偶数,从而,H是欧拉图。H是欧拉图,所以存在欧拉环游T.对于T,把它看成v为起点和终点的一条欧拉迹,显然不能扩充为G的欧拉环游。这与条件矛盾!“充分性”若不然,设Q=(v,w)是G的一条不能扩充为G的欧拉环游的最长迹,显然v=w,且Q包含了与v关联的所有边。即Q是一条闭迹。于是,G-v包含G-Q且G-Q的每个顶点度数为偶数.于是,G-Q的非平凡分支是欧拉图,说明有圈,即G-v有圈,这与条件矛盾.19(三)、中国邮路问题 1962年,中国数学家管梅谷提出并解决了“中国邮路问题”1、问题 邮递员派信的街道是边赋权连通图。从邮局出发,每条街道至少行走一次,再回邮局。如何行走,使其行走的环游路程最小?如果邮路图本身是欧拉图,那么由Fleury算法,可得到他的行走路线。如果邮路图本身是非欧拉图,那么为得到行走环游,必须重复行走一些街道。于是问题转化为如何重复行走街道?20 2、管梅谷的结论 定理2 若W是图G中一条包含所有边的闭途径,则W在这样的闭途径中具有最短的长度当且仅当下列两个条件被满足:(1)每一条边最多重复经过一次;(2)在G的每一个圈上,重复经过的边的条数不超过圈长的一半。证明:“必要性”首先,设G是连通非欧拉图,u与v是G的两个奇度顶点,把连接u与v的路上的边改为2重边,则路中的点的度数奇偶性没有改变,仍然为偶数,但u与v的度数由奇数变成了偶数。如果对G中每对奇度点都如此处理,则最终得到的图为欧拉图。设该图为G1.21 其次,对G1作修改:如果在G1中,边e重复数大于2,则在G1中删掉2条重复的e边后,所得之图仍然是包含G的欧拉图。在G1中,对每组平行边都做上面的处理,最后得到一个重复边数最多为1的包含G的欧拉图G2。这说明,若W是包含G的所有边的欧拉环游,则G中每条边至多在W里出现两次。这就证明了(1).又设C是G2中任意一个圈,在该圈中,如果有平行边条数超过该圈长度的一半,那么可以把该圈中平行边改为非平行边,而把非平行边改为平行边,如此修改,得到的图仍然是包含G的欧拉图,但对应的欧拉环游长度减小了。22 这就是说,只要对G2的每个圈都作上面的修改,最后得到的图仍然为包含G的欧拉图,而最后的图正好满足(2).“充分性”我们证明:任何两条包含G中所有边的闭途径W1与W2,如果满足定理2的两个条件,则它们有相同的长度。设Y1与Y2分别表示W1与W2中重复出现的边集合。如果能够证明:|Y1-Y2|=|Y2-Y1|,那么d(W1)=d(W2).断言1:GY的每个顶点度数必然为偶数。令:Y=(Y1-Y2)(Y2-Y1)首先:对于G中任意点v,如果d G(v)是奇数,那么Y1与Y2中与v关联的边数均为奇数;23 如果d G(v)是偶数,那么Y1与Y2中与v关联的边数均为偶数。所以Y1与Y2中与G中任意点关联的边数奇偶性相同。其次,设Y1与Y2中与v关联的边数分别为y1与y2,其中相同的边数为y0,那么,Y中与v关联的边数为:所以,Y中与v关联的边数为偶数,说明 GY的每个顶点度数必然为偶数。断言2:|Y1-Y2|=|Y2-Y1|由于GY的每个顶点度数为偶数。所以,它的每个分支是欧拉图。因此,GY可以作不重圈分解。24 由定理2的条件(2),Y1与Y2在圈中的边数不能超过圈长的一半,但圈中边不是属于Y1就是属于Y2,所以,在每个圈中,Y1-Y2与Y2-Y1中边各占一半,即:由此,证明了定理的充分性。注:(1)定理2的必要性证明过程实际上给出了求中国邮路问题的方法.下面看一个例题。例5 求包含下图G的一个最优欧拉环游。25 解:由定理2:v8v7v6v5v4v3v2v1v12v11v10v9Gv15v14v13v8v7v6v5v4v3v2v1v12v11v10v9Gv15v14v1326 修改后得:v8v7v6v5v4v3v2v1v12v11v10v9Gv15v14v13 由Fleury算法得可得到具体的最优欧拉环游。3、非负权值的赋权图的最优欧拉环游27 对于一般的具有非负权值的赋权图G来说,如何求一条包含G的边的最优欧拉环游?其实,可以证明:一般问题和中国邮路问题的特殊情况是等价的(定理2).也就是说:可以通过定理2的求最优欧拉环游的方法来求一般情况下的最优欧拉环游。所以,求一般非负权赋权图的最优欧拉环游步骤为:(1)、用添加重复边的方法求G的一个赋权母图G*,使:(2)、用Fleury算法在G*中求出欧拉环游。28 注:步骤(1)的好算法已经由Edmons在1973年给出。例6 如果一个非负权的边赋权图G中只有两个奇度顶点u与v,设计一个求其最优欧拉环游的算法。解:1、算法(1)、在u与v间求出一条最短路P;(最短路算法)(2)、在最短路P上,给每条边添加一条平行边得G的欧拉母图G*;(3)、在G的欧拉母图G*中用Fleury算法求出一条欧拉环游。2、算法证明29 定理:用上面方法求出的欧拉环游是最优欧拉环游。证明:设u与v是G的两个奇度顶点,G*是G的任意一个欧拉母图。考虑G*E*-E,显然它只有两个奇数顶点u与v,当然它们必须在G*E*-E的同一个分支中,因此,存在(u,v)路P*.所以,即证明定理。例如:求出下图的一条最优欧拉环游。30 解:y2222 11u43365w xvGzy2222 11u43365w xvGz 最优欧拉环游:x u y w v z w y x u w v x z y x31 作业 P97-99 习题4:1,2,3,7,8,932Thank You!33