欧拉图与汉密尔顿图

转自: http://class.htu.cn/lisanshuxue/neirong/7_4.htm
    1936年瑞士数学家列昂哈德·欧拉(Leonhard Euler)发表了图论的第一篇论文“哥尼斯堡七桥问题”。这个问题是这样的:哥尼斯堡城市有一条横贯全城的普雷格尔(Pregel)河,城的各部分用七座桥联接,每逢假日,城中居、民进行环城逛游,这样就产生了一个问题,能不能设计一次“遍游”,使得从某地出发对每座跨河桥只走一次,而在遍历了七桥之后却又能回到原地。在图7-4.1中画出了哥尼斯堡城图,城的四个陆地部分分别标以A、B、C、D。将陆地设想为图的结点,而把桥画成相应的连接边,这样城图可简化成如图7-4.2所示,于是通过哥尼斯堡城中每座桥一次且仅一次的问题,等价于在图7-4.2中从某一结点出发找一条通路,通过它的每条边一次且仅一次,并回到原结点。
               
    欧拉在1736年的论文中提出了一条简单的准则,确定了哥尼斯堡七桥问题是不能解的。下面将讨论这个问题的证明。 
1 欧拉图
    定义7-4.1 给定无孤立结点图G,若存在一条路,经过图中海边一次且仅一次,该条路称为欧拉路;若存在一条回路,经过图中海边一次且仅一次,该回路称为欧拉回路
    具有欧拉回路的图称作欧拉图
    定理7-4.2 无向图G具有一条欧拉路,当且仅当G是连通的,且有零个或两个奇数度结点。
    证明 必要性
    设G具有欧拉路,即有点边序列v0e1v1e2v2eiviei+1ekvk,其中结点可能重复出现,但边不重复,因为欧拉路经过所有图G的结点,故图G必是连通的。
    对任意一个不是端点的结点vi,在欧拉路中每当v
i出现一次,必关联两条边,故vi虽可重复出现,但deg(vi)必是偶数。对于端点,若v0vk,则d(v0)为偶数,即G中无奇数度结点,若端点v0vk不同,则d(v0)为奇数,d(vk)为奇数,G中就有两个奇数度结点。
    充分性
    若图G连通,有零个或两个奇数度结点,我们构造一条欧拉路如下:
    (1)若有两个奇数度结点,则从其中的一个结点开始构造一条迹,即从v0出发经关联边e1“进入”v1,若deg(v1)为偶数,则必可由v1再经关联边e2进入v2,如此进行下去,每边仅取一次。由于G是连通的,故必可到达另一奇数度结点停下,得到一条迹L:v0e1v
1e2viei+1vk。若G中没有奇数度结点则从任一结点v0出发,用上述方法必可回到结点v0,得到上述一条闭迹L1
    (2)若L1通过了G的所有边,则L1就是欧拉路。
    (3)若G中去掉L1后得到子图G′,则G′中每个结点度数为偶数,因为原来的图是连通的,故L1与G′至少有一个结点v
i重合,在G′中由vi出发重复(1)的方法,得到闭迹L2
    (4)当L1与L2组合在一起,如果恰是G,则即得欧拉路,否则重复(3)可得到闭迹L3,以此类推直到得到一条经过图G中所有边的欧拉路。 
    推论 无向图G具有一条欧拉回路,当且仅当G是连通的,并且所有结点度数全为偶数。
    由于有了欧拉路和欧拉回路的判别准则,因此哥尼斯堡七桥问题立即有了确切的否定答案,因为从图7-4.2中可以看到deg(A)=5,deg(B)=deg(C)=deg(D)=3,故欧拉回路必不存在。
    与七桥问题类似的还有一笔画的判别问题,要判定一个图G是否可一笔画出,有两种情况:一是从图G中某一结点出发,经过图G的每一边一次仅一次到达另一结点。另一种就是从G的某个结点出发,经过G的每一边一次仅一次再回到该结点。上述两种情况分别可以由欧拉路和欧拉回路的判定条件予以解决。如图7-4.3(a)中,因为deg(v2)=deg(v
3)=3,deg(v1)=deg(v4)=deg(v5)=2,故必有从v2v3的一笔画。在图7-4.3(b)中所有结点度数均为偶数,所以可以从任一结点出发,一笔画回到原出发点。
                
    欧拉路和欧拉回路的概念,很易推广到有向图中去。
2 有向欧拉图
    定义7-4.2 给定有向图G,通过图中每边一次且仅一次的一条单向路(回路),称作单向欧拉路(回路)。
    定理7-4.2 有向图G具有一条单向欧拉回路,当且仅当是连通的,且每个结点入度等于出度。一个有向图G具有单向欧拉路,当且仅当它是连通的,而且除两个结点外,每个结点的入度等于出度,但这两个结点中,一个结点的入度比出度大1,另一个结点的入度比出度小1。
    这个定理的证明,可以看作是无向图的欧拉路的推广,因为对于有向图的任意一个结点来说,如果入度与出度相等,则该点的总度数为偶数,若入度与出度之差为1时,其总度数为奇数,因此定理7-4.2的证明与定理7-4.1的证明类似。
    例1 计算机鼓轮的设计。设有旋转鼓轮其表面被等分成24个部分,如图7-4.4所示。
                    
    其中每一部分分别用绝缘体或导体组成,绝缘体部分给出信号0,导体部分给出信号1,在图7-4.4中阴影部分表示导体,空白部分表示绝缘体,根据鼓轮的位置,触点将得到信息1101,如果鼓轮沿顺时针方向旋转一个部分,触点将有信息1010。问鼓轮上16个部分怎样安排导体及绝缘体,才能使鼓轮每旋转一个部分,四个触点能得到一组不同的四位二进制数信息。
            
    设有一个八个结点的有向图(图7-4.5),其结点分别记为三位二进制数{000,001,010,011,100,101,110,111},设ai∈{0,1>,从结点a1a2a3可引出两条有向边,其终点分别是a2a30以及a2a3l。该两条边分别记为a1a2a30和a1a2a3l。按照上述方法,对于八个结点的有向图共有16条边,在这种图的任一条路中,其邻接的边必是a1a2a3a4和a2a3a4a5的形式,即是第一条边标号的后三位数与第二条边标号的头三位数相同。因为图中16条边被记成不同的二进制数,可见前述鼓轮转动所得到16个不同位置触点上的二进制信息,即对应于图中的一条欧拉回路。在图7-4.5中,每个结点的入度等于2,出度等于2,故在图中必可找到一条欧拉回路如(e0e1e2e4e9e3e6e13e10e5e11e7e15e14e12e8),根据邻接边的标号记法,这16个二进制数可写成对应的二进制数序列0000100110101111。把这个序列排成环状,即与所求的鼓轮相对应,如图7-4.4所示。
    上面的例子,我们可以把它推广到鼓轮具有n个触点的情况。为此我们只要构造2n-1个结点的有向图,设每个结点标记为n-1位二进制数,从结点a1a2…an-1出发,有一条终点为a2a3…an-10的边,该边记为a1a2…an-10;还有一条边的终点为a2a3…an-11的边,该边记为a1a2…an-11。这样构造的有向图,其每一结点的出度和入度都是2,故必是欧拉图。由于邻接边的标记是第一条边的后n-1位二进制数与第二条边的前n-1位二进制数相同,为此就有一种2n个二进制数的环形排列与所求的鼓轮相对应。
3 汉密尔顿图
    与欧拉回路非常类似的问题是汉密尔顿回路的问题。1859年,咸廉?汉密尔顿爵士(Sir Willian Hamilton)在给他朋友的一封信中,首先谈到关于十二面体的一个数学游戏:能不能在图7-4.6中找到一条回路,使它含有这个图的所有结点?他把每个结点看成一个城市,联结两个结点的边看成是交通线,于是他的问题就是能不能找到旅行路线,沿着交通线经过每个城市恰好一次,再回到原来的出发地? 他把这个问题称为周游世界问题。
                    
    按图7-4.6中所给的编号,可以看出这样一条回路是存在的。
    对于任何连通图也有类似的问题。 
    定义7-4.3 给定图G,若存在一条路经过图中的每个结点恰好一次,这条路称作汉密尔顿路。若存在一条回路,经过图中的每个结点恰好一次,这条回路称作汉密尔顿回路
    具有汉密尔顿回路的图称作汉密尔顿图
    定理7-4.3 若图G=<V,E>具有汉密尔顿回路,则对于结点集v的每个非空子集S均有W(G-S)≤|S|成立。其中W(G-S)是G-S中连通分支数。
    证明 设C是G的一条汉密尔顿回路,则对于v的任何一个非空子集S在C中删去S中任一结点a1,则C-a1是连通的非回路,若再删去S中另一结点a2,则W(C-a1-a2)≤2,由归纳法可得: 
                W(C-S)≤|S|
同时C-S是G-S的一个生成子图,因而
                W(G-S) ≤W(C-S)
    所以 W(G-S)≤|S|
利用定理7-4.3可以证明某些图是非汉密尔顿图。如图7-4.7中若取S={v1,v4},则G-S中有三个分图,故G不是汉密尔顿图。
                    
    需要指出,用定理7-4.3来证明某一特定图是非汉密尔顿图,这个方法并不是总是有效的。例如,著名的彼得森(Petersen)图,如图7-4.8中所示,在图中删去任一个结点或任意两个结点,不能使它不连通;删去3个结点,最多只能得到有两个连通分支的子图;删去4个结点,只能得到最多三个连通分支的子图;删去5个或5个以上的结点,余下子图的结点数都不大于5,故必不能有5个以上的连通分支数。所以该图满足W(G-S)≤|S|,但是可以证明它是非汉密尔顿图(此证明留作习题)。
4 汉密尔顿图的充分条件
    虽然汉密尔顿回路问题与欧拉回路问题在形式上极为相似,但对图G是否存在汉密尔顿回路还无充要的判别准则。下面我们给出一个无向图具有汉密尔顿路的充分条件。
    定理7-4.4 设G具有n个结点的简单图,如果G中每一对结点度数之和大于等于n-1,则在G中存在一条汉密尔顿路。
    证明 我们首先证明G是连通图。若G有两个或更多个互不连通的分图,设一个分图中有n1个结点,任取一个结点v1。没另一个分图中有n2个结点,任取一个结点v2,因为d(v1)≤n1-1,d(v2)≤n2-1,故d(v1)+d(v2)≤n1+n2-2<n-1,这与题设矛盾,故G必连通。
    其次,我们从一条边出发构成一条路,证明它是汉密尔顿路。
    设在G中有p一1条边的路,p<n,它的结点序列为v1v
2,…,vp。如果有v1vp邻接于不在这条路上的一个结点,我们立刻可扩展这条路,使它包含这一个结点,从而得到p条边的路,,否则,v1vp都只邻接于这条路上的结点,我们证明在这种情况下,存在一条回路包含结点v1v2,…,vp。若v1邻接于vp,则v1v2,…,vpv1即为所求的回路。假设与v1邻接的结点集是

                    
这里2≤l,m,…,j,…,t≤p-1,如果vp是邻接于
v1-1vm-1,…,vj-1,…,vt-1中之一,譬如说vj-1,如图7-4.9(a)所示,v1 v2 v3vj-1 vvp-1vj v1是所求的包含结点v1v2,…,vp的回路。
             
    如果vp不邻接于v1-1vm-1,…,vt-1中任一个,则vp至多邻接于p-k-1个结点,deg(vp)≤p-k-1,deg(v1)=k,故deg(vp)+deg(v1) ≤p-k-1+k=p-1<n-1,即v1vp度数之和至多为n一2,得到矛盾。
    至此,我们有包含所有结点v1v2,…,vp的一条回路,因为G是连通的,所以在G中必有一个不属于该回路的结点vxv1v2vp中的某一个结点vk邻接,如图7-4.9(b)所示,于是就得到一条包含p条边的路(vxvkvk+1,…,vj-1vpvp-1,…,vj,…,v1v2,…,vk-1)。如图7-4.9(c)所示,重复前述构造法,直到得到n-1条边的路。
    容易看出定理7-4.4的条件对于图中汉密尔顿路的存在性只是充分的,但并不是必要条件。设G是n边形,如图7-4.10,其中n=6,虽然任何两个结点度数之和是4<6-1,但在G中有一条汉密尔顿路。
    例题1 考虑在七天内安排七门课程的考试,使得同一位教师所任的两门课程考试不排在接连的两天中,试证明如果没有教师担任多于四门课程,则符合上述要求的考试安排总是可能的,
    证明 设G为具有七个结点的图,每个结点对应于一门课程考试,如果这两个结点对应的课程考试是由不同教师担任的,那么这两个结点之间有一条边,因为每个教师所任课程数不超过4,故每个结点的度数至少是3,任两个结点的度数之和至少是6,故G总是包含一条汉密尔顿路,它对应于一个七门考试课目的一个适当的安排。
    定理7-4.5 设G是具有n个结点的简单图。如果G中每一对结点度数之和大于等于n,则在G中存在一条汉密尔顿回路。
    证明 由定理7-4.4可知必有一条汉密尔顿路,设为v1v2vn,如果v1vn邻接,则定理得证。
    如果v1vn不邻接,假设v1邻接于{vi1vi2,…,vikk}2≤ij≤n-1,可以证明vn必邻接于vi1-1vi2-1,…,vik-1中之一。如果不邻接于vi1-1vi2-1,…,vik-1中任一结点,则vn至多邻接于n-k-1个结点,因而d(vn)≤n-k-1, 而d(v1)=k
故d(v1)+d(vn)≤n-k-1+k=n-1,与题设矛盾,所以必有汉密尔顿回路v1v2vj-1vnvn-1vjv1,如图7-4.11所示。
    
        
5 汉密尔顿图的充要条件

    定义7-4.4 给定图G=<V,E>有n个结点,若将图G中度数之和至少是n的非邻接结点连接起来得图G′,对图G′重复上述步骤,直到不再有这样的结点对存在为止,所得到的图,称为是原图G的闭包,记作C(G)。
            
    例如图7-4.12给出了对六个结点的一个图G,构造它的闭包的过程。在这个例子中C(G)是完全图。一般情况下,C(G)也可能不是完全图。
    定理7-4.6 当且仅当一个简单图的闭包是汉密尔顿图时,这个简单图是汉密尔顿图。
    证明略。
    关子图中没有汉密尔顿路的判别尚没有确定的方法,下面介绍一个说明性的例子。
                
    例题2
 指出图7-4.13(a)所示的图G中没有汉密尔顿路。
    解 用A标记任意一个结点a,所有与a邻接的结点均标记B,继续不断地用A标记所有邻接于B的结点,用B标记所有邻接于A的结点,直到所有结点标记完毕。这个有标记的图如图7-4.13(b)所示,如果在图G中有一条汉密尔顿路,那么它必交替通过结点A和结点B,然而本例中共有九个A结点和七个B结点,所以不可能存在一条汉密尔顿路。
                    
    注意:如果在标记过程中,遇到相邻结点出现相同标记时,可在此对应边上增加一个结点,并标上相异标记。如图7-4.14所示。请读者考虑用这种方法能否判断汉密尔顿路的存在性。
*重点:掌握欧拉图和汉密尔顿图的概念及其性质。

posted @ 2011-06-04 18:32  zqynux  阅读(5071)  评论(0编辑  收藏  举报