Net有道

紫冠道人的求道历程

导航

四. 可行遍性

 

4.1 Euler

 

欧拉最早研究的时候就是这个东西了,就是从七桥问题来的。

 

定义 图中每一条边的行迹叫做Euler行迹;闭的Euler行迹叫做Euler回路;含Euler回路的图叫做Euler图。(复习一下1.3节:各边相异的道路叫行迹)

欧拉图就是从一顶出发每条边恰通过一次又能回到出发顶点的那种图,即不重复的行遍所有的边再回到出发点。下面是欧拉图的特征性描述。

 

定理1 G是连通图,下面三个命题等价:

(1)   G是欧拉图。

(2)   G的每顶皆偶次。

(3)    G=Ci(i1d)Ci是圈,且E(Ci)E(Gj)= Φ(i<>j).

证:证:(1)>>(2) 这个没什么可证,基本是不言自明。

(2)>>(3) 已知G是每顶皆偶次的连通图,而非平凡树至少两个叶,故G不是树,G内可以找到一个圈C1;把C1上的边从G上删除,得新图G1,若G1每顶皆零次,则G=C1(3)成立,不然,G1中必有一个连通片每顶皆偶次,于是G1中含有圈C2,把C2的边从G1中删除,得一新图G2,依此类推,进行有限次之后,得到无边图G0。于是,G=CiCiG中之圈,且E(Ci)E(Gj)=Φ,i<>j,1=<i,j=<d

(3)>>(1) d=1时,显然是欧拉图;d>=2时,由于G连通,可以找到两个圈,不妨设其为C1C2C1C2有公共顶v0,令C12=C1C2,则C12是闭行迹。又由于G连通,还可以找到一个圈,不妨设为C3,使C3C12有公共顶,于是C123=Ci(i13)也是闭行迹。如此下去,得证G=Ci(i1d)是闭行迹,故G是欧拉图。证毕。

 

定理2  连通图G中有欧拉行迹的充要条件是G中至多有两个奇次顶。

这个很简单,不证了,好象也是欧拉的杰作了。如此简单明了的东西,不愧是大师。这个定理为判别图形能否一笔画给出了有力的依据。由此也判定七桥问题是无解的。

 

3 在圆上任取n>2个点,把每个点用线段与其余各点连接,能否一笔画出所有这些线段,使第一条线段的终点与第二条线段的起点相重,第二条线段的终点与第三条线段的起点相重,。。。,最后一条线段的终点与最初那条线段的起点相重合?

解:以这n个点为顶点,以所连线段为边,构成一个连通图;当n为奇数时,G的每顶皆偶次,由定理1,本题答案是肯定的;当n为偶数时,G的每顶皆奇次,由定理1,本题的答案是不定的。

 

本节就是最基本的一些东西 ,下节讲中国邮路问题,这个更烦了,是在连通加权图上的。

 

 

4.2 中国邮路问题

 

中国邮路问题的原始模型是:一个邮递员从邮局选好邮件去投递,然后回到邮局,当然他必须经过他所管辖的每条街一次。请为他选择一条路线,使其所行路程尽可能地少。据说这是中国人提出并进行研究的,这是真的吗?

中国邮路问题在于连通加权图上求取含有一切边的权最小的回路,我们称这种回路为理想回路。显然,在欧拉图中,每个欧拉回路是理想回路。

 

下面是求欧拉图中欧拉回路的Fleury算法

Fleury算法:

(1) 对任意的voV(G),W0=v0

(2) 设行迹Wi=v0e1v1e2...eivi已选定,则从E-{e1,e2,...,ei}中选取一条边ei+1,使得

   (i) ei+1ei相邻,

   (ii) 除非已无选择余地,ei+1不要选Gi=G-{e1,...,ei}的桥(如选了桥的话就回不来了,这边如果还有其他边的话就遍历不到了)

(3) 直到(2)不能进行为止。

 

为了严谨性,还是要证一下这个算法的有效性。

定理3  G是欧拉图,Fleury算法终止时得到的是欧拉回路。

证:G是欧拉图,Wn=v0e1v1e2...envnFleury算法终止时得到的行迹,则vnGn中的次数是0。故v0=vn,Wn是闭行迹。

Wn不是欧拉回路,令SGn中有正次数的顶集,则S<>Φ。但vn不属于S,~S=V-S,则vn属于~S。令mvm属于Svm+1属于~Sv的脚标的最大值,因Wn终止于~Sem+1Gm的桥。令eGm中与vm关联的一边,且e<>em+1,由算法第二步,e必为Gm的桥,因此e也是Gm[S]的桥。又Gm[S]=Gn[S],故Gm[S]中每顶皆偶次,Gm[S]无桥,与eGm[S]的桥矛盾。证毕。

 

实际上欧拉回路是理想回路的一个特例,若G不是欧拉图,任何理想回路通过某些边多于1次。

现把e的两端间再边上一条权亦为w(e)的新边,则称新边为原来那条边的倍边。所以一般中国邮路问题的数学模型是:

(i) 用倍边法由G得到G*图,使G*是欧拉图,且

                         Σw(e)=min (e(E(G*)-E(G))

(ii) G*中找到欧拉回路。

上述问题已由EdmondsJohnson1973年解决。书上就说解决了,如何解决也没细说。由上节的定理1可知就是把图上那些奇次顶通过倍边化成偶次顶,但这个倍边如何倍法比较的好还要好好思考一下。

 

下节要讲与欧拉图齐名的汉密尔顿图。

 

 

4.3  Hamilton

 

汉密尔顿图与欧拉图的区别只在于,边与顶的区别,欧拉图是每边经过一次,汉密尔顿图是每顶经过一次

定义  含图的一切顶的轨叫Hamilton轨,闭的Hamilton轨叫做Hamilton圈;有Hamilton圈叫做Hamilton图。

与欧拉图不一样Hamilton图的充要条件至今尚未建立起来(又是一个没解决的问题),只是分别地给了一些充分条件上,另外给了一些必要条件,用这些条件来判定只能在个别情形下才能判定任意给定的图是否是Hamilton图。

 

定理4 GHamilton,对任意的S 真包含于VS<>Φ,则ω(G-S)=<|S|

证:设CHamilton圈,则对任意的 S 真包含于VS<>Φ,有ω(C-S)=<|S|(这显而易见,一个圈无论如何断连通片个数总是不会大于断点的个数),又C-SG-S的生成子图,故ω(G-S)=<ω(C-S)=<|S|。证毕。

但定理4之逆不真。如图4.8(Petersen,最小的妖怪图,妖怪终于看到了),它不是Hamilton图,但G-v(任意的v属于V(G))则是Hamilton图。

 

 

 

 

定理5  (Ore,1960) G是υ>=3的图,且对任意的u,vV(G),d(u)+d(v)>=υ-1,则G中有Hamilton轨;若d(u)+d(v)>=υ,则GHamilton图。

证:首先证明,任意的u,vV(G),d(u)+d(v)>=υ-1时,G是连通图。事实上,若G不连通,有ω>=2个连通片G1,G2,...,Gω。任意的u1G1,d(u1)<=υ(G1)-1,任意的的u2G2,d(u2)<=υ(G2)-1,于是d(u1)+d(u2)<=υ(G1)+υ(G2)-2<=υ-2,d(u1)+d(u2)>=υ-1矛盾。

若对任意的u,vV(G),d(u)+d(v)>=υ-1,G中无Hamilton轨,令P(v1,vi+1)G的最长轨,其长为l<υ-1,v1vi+1的相关联的边的另一端点必为P(v1,vi+1)上的内顶。设P上的顶依次为v1,v2,v3,...vi+1,其中vj1,vj2,...,vjkv1相邻,而vj1-1,vj2-1,...,vjk-1相邻,则d(v1)=k,d(vi+1)<=l-k,这样,d(v1)+d(vi+1)<=l<υ-1,与定理条件不符,故G中出现图4.9的结构,即有一个长l+1C。又因P(v1,vi+1)上的顶的个数l+1<υ,故存在wV(G),w不在P(v1,vi+1)上。由G的连通性,存在轨P1(w,v1),vk0是从wP1(w,v1)上第一个在C上的顶,这样有一条轨起点在w,终点在C上的比P(v1,vi+1)更长的轨,它是由P1(w,v1)上从wvk0段及C上由vk0开始的长l的轨并成的。至此得到矛盾。

定理的后半部分显然成立,因为G中有最长轨,长υ-1,于是与上面的证明同理,在此长υ-1的轨上出现上面的结构,即有长υ的圈,证毕。

这个定理的逆也不为真,这也是有图为证的。

4.10Hamtilton图,Hamilton圈是1 2 3 4 5 6 7 8 9 1 ,但d(3)+d(5)=6<9=υ。这种Hamilton图不能用Ore定理来判定。

 

 

8  若围圆桌至少坐着五个人,那么一定可以调整他们的座位,使得每个人两侧都挨着新邻居。

证:若恰好是五个人,设原来座次是ABCDEA,可以调成ADBECA

若超过五个人,以人为顶,仅当两人原来不邻座时,在此相应的二顶之间连一条边,得一个图G。由于每个顶都是|V(G)|-3次的,于是任顶次数之和为2υ-6,又υ>5,故2υ-6>=υ,由定理5GHamilton图,按GHamilton圈的次序请各位入席即可。证毕。

9  一个有限集合的全部子集可以这样排序,使任何相邻的集合相差一个元素。

2^n个子集的编码构成一个n维立方体,用数学归纳法证明(证明略)

 

下面的东西开始显示图论的魅力了。下面研究棋盘上的马图,马图:以方格棋盘上的小方格为顶,当且仅当一格能以马的一步跳到另一格时,此二格所代表的顶这间边一边。

例10                        4*4的棋盘上的马图是否Hamilton图?即马从任一方格出发,每个格恰跳到一次,再回到出发的那个方格,是否可能?

 

解:见图4.134c号顶形成一个4阶圈;4d号顶形成4阶圈;4a号顶是2次顶,每个a顶仅与两个b顶相邻。于是把四个b顶删除后,得六个连通 片:一个c4阶圈,一个d4阶圈,四个孤立顶a;而原来的马图是连通的:每个b与一个c一个d相邻,而每个a顶与两个b顶相邻。则定理4知,4*4的马图不是Hamilton图,即马从任何方格出发也不能每格跳一次又回到出发的方格。

11:对5*5的马图,如上的问题。

解:5*5图上的四个角a号顶是2次顶,它们已经在一个8阶圈上(5*5图画出来,四个角上的点是在同一个马圈上的),所以这4a顶不会与其余21个顶形成HamiltonG不是Hamilton图,从而答案与例10是一样的。

128*8棋盘上的马图是Hamilton图,即在国际象棋棋盘上马可以从任何一个方格跳到每个方格恰好一次再回到出发的方格。一种解,即一个Hamilton圈。如图4.15,这是一个幻方,每行每列之和皆为260。太奇妙了。

 

下面是BondyChvatal 1974年建立的闭包判别法。

定理6  uvG的两个不相邻的顶,且d(u)+d(v)>=υ,GHamilton图的充要条件是G+uvHamilton图。(这个充要条件有意思)

证:GHamilton图,G+uv显然也是Hamilton图。反之若G+uvHamilton图,而G不是Hamilton图,这时G中有Hamiltonv1v2v3...vυ,其中v1=u,vυ=v,若对某个i(2=<i<=υ-1),v1vi E(G),vi-1vυ不属于E(G),不然v1v2...vi-1vυvυ-1...viv1GHamilton圈。因而d(vυ)=<υ-1-d(v1),d(v1)+d(vυ)=<υ-1,d(u)+d(v)>=υ矛盾。证毕。

就是这个定理启发人们引入了闭包的概念(概念是层出不究呀)

定义  G中次数之和至少为υ的不邻的两顶之间添加一边,直至这种加边的过程终止,得到的图叫做G的闭包,记之为C(G)(就是定理6G+uv那个东西了)

 

定理7  G为连通图,则C(G)存在且唯一

证:C(G)的存在性不足道(就是不言自明,书上都喜欢说不足道)

下证C(G)的唯一性,设G1G2G的两个闭包,且e1,e2,...emf1,f2,...,fn分别是构作G1G2时加的边(G一条边也不能加时,则C(G)=G,这时唯一性成立),我们证明ei属于E(G2)i=1,2,...,mfi属于E(G1)j=1,2,...,n。设ek+1e1,e2,...,em中不在G2中的第一条边,令H=G+{e1,e2,...,ek}。由G1的定义,当uv=ek+1时,

                    dH(u)+dH(v)>=υ,

H包含于G2,故

                    dG2(u)+dG2(v)>=υ,

ek+1=uv不在G2中,就有dG2(u)+dG2(v)<υ,矛盾。可见e1,e2,...,em属于E(G2)。同理可证f1,f2,...,fn属于E(G1)。证毕。

 

现在看到了定理6的意思之处了,判断一个图是不是Hamilton图的充要条件竟是引入一个闭包,把图化为另一个图,再用上面的定理5判断。定理5又不是充要的。简直换汤不换药。

也不是毫无用处。如下图,4.16 GHamilton图,但不满足Ore定理的条件,引入闭包化为C(G)(是一个K6),发现是Hamilton图。

 

下节是货郎问题,呵呵,这一章之始显示图论的威力了。

 

 

 

4.4  货郎问题

 

这个问题太有名了,大凡讲到图论或是算法的NP时候都会提到,有的地方叫旅行推销员问题(这个提法现代一点,货郎的提法比较的中化)

货郎问题有两种提法。一种是货郎到各村去卖货,再回到出发处,每村都要串到,(不限制次数),为其设计一种路线,使得所用的旅行售货的时间最短(注意与中国邮路问题的区别),这个问题的数学模型是在加权图G上求一个生成回路C,使得

W(C)=Σw(e)=min{各个生成回路的权}

这个C叫做理想回路。

另一种提法是限制货郎每村到且仅到一次。这时,其数学模型是在加权图上求一个HamiltonCh,使得

W(Ch)=Σw(e)=min{各个Hamtilton圈的权}

 

从算法理论上讲,这两种提法的难度是相当的,所以现只考虑更直接的后一种提法。这个问题的难度很大:

(1)如何判定G是否Hamilton图。这个问题目前尚无有效算法,也不知究竟存在不存在它的有效算法。

(2)已知GHamilton图,求出一个Hamilton圈来至今亦无有效算法,也不知有无它的有效算法。

怎么这么麻烦呀,不过从上章讲了那么多定理椤是没有得到一个Hamilton图的很强的充要条件就可见一斑了。

 

下面介绍一种近似的算法----“改良圈算法”。已知C=v1v2...vυv1G的一个Hamilton圈,我们用下面的算法把它的权减小。

算法:

(1)C上检查是否有i<>j,使得vi-1vj属于E(G)vivj+1属于E(G),且w(vi-1vj)+w(vivj+1)<w(vi-1vi)+w(vjvj+1);有,则构成新圈

                        C1=v1v2...vi-1vjvj-1...vivj+1vj+2...vυv1

C1叫做C的改良圈。

(2)C1代替C(1),直至终止。

上述算法得到的Hamilton圈未必是理想Hamilton圈;不过上述算法的时间复杂度是O(υ^2)。还是比较诱人的。

 

这一章结束了,主要讲可行遍性。可行遍性有两种,边行遍与顶行遍。分别对应Euler图和Hamilton图。其中Hamilton图是一个大难题,有时候画出的一些Hamilton图总是令人叹为观止。还记得4.3的那个幻方吗。

 

 

posted on 2004-10-22 16:40  lichdr  阅读(2131)  评论(0)    收藏  举报