§4.3Hamilton图 * 经过图G的每个顶点恰一次的路称为G的Hamilton路。 * 经过图G的每个顶点恰一次的圈称为G的Hamilton圈。 Hamilton图的研究起源于十二面体的游戏(1856) 十二面体是H图 Herschel图不是H图 与Euler图不同,目前为止尚没有找到判别一个图是否是Hamilton图的有效充要条件。 这是图论中未解决的重要难题之一。 本节给出一些经典的充分条件和必要条件。 一、必要条件 定理4.3.1 设G是一个二部图,且有奇数个顶点,则G不是H图。(设G是二部图,若G 是H图,则G必有偶数个顶点) 证明: 留作习题。 *Herschel图是二部图,但有奇数个顶点,故不是H图。 定理 4.3.2 若G是H图,则对V(G)的每个非空真子集S,均有 W(G-S)≤ | S |。 证明:设C是G的H圈,则对V(G)的每个非空真子集S,均有 W(C-S)≤ | S | 由于C-S是G-S的生成子图,故W(G-S)≤W(C-S)≤ | S |. 证毕。 利用定理4.3.2可判断下面不是H图。 但定理4.3.2不能来判断下列Petersen图不是H图。 2. 充分条件 (1)度型条件 定理4.3.3(Dirac, 1952) 若G是简单图,且3≥ν, 2 ν δ ≥,则G是Hamilton图。 证明 用反证法:假定定理不真。令 |{GA = G的顶点数为3≥ν, 2 ν δ ≥,且G是非Hamilton图}。 取A中边最多的一个G。因3≥ν,故不是完全图(否则G是Hamilton图)。设u和v是G 的不相邻顶点。由G的选择,G+uv是Hamilton图。因G是非Hamilton图,故G+uv的H 圈必经过e = uv。于是G中存在以u为起点v为终点的Hamilton路 ν vvv L 21 。这里uv = 1 , vv = ν ,令 }|{ 1 EuvvS ii ∈= + 和}|{ EvvvT ii ∈=。 由于TSv U? ν ,故ν<|| TS U,并且0|| =TS I(因为若TSv i I∈?,则G将包含H 圈 11121 vvvvvvv ii +? LL νν ,矛盾)。 故ν<+=+=+ ||||||||)()( TSTSTSvdud IU,这与 2 ν δ ≥的前提矛盾。证毕。 (2) 闭包型条件 定理4.3.4(Bondy & Chvátal,1974) 设G是简单图,u和v是G中不相邻的顶点,且 ν≥+ )()( vdud,则G是Hamilton图当且仅当G+uv 是Hamilton图。 证明:必要性是显然的。 充分性:若G+uv是Hamilton图而G不是,则与定理4.3.3一样可推出矛盾。证毕。 定义:图G的闭包(closure)是指由如下方法所得之图: 反复连接G中度之和不小于ν的不相邻顶点对,直到没有这样的顶点对为止。 图G的闭包记为C(G)。 v 1 v2 v 3 v i v i+1 v v-1 v v …… u v v 1 v2 v 3 v i v j v v-1 v v …… u v v i+1 定理4.3.5 G的闭包C(G)是唯一确定的。 证明:设 21 ,GG是按闭包构成方法所得的两个图。用 m eee ,,, 21 L和 n fff ,,, 21 L分别表示 在构作 21 ,GG过程中给G添加边的序列。我们来证明每个 i e一定是 2 G的边,而每个 j f一 定是 1 G的边。 假设uve k = +1 是序列 m eee ,,, 21 L中第一条不属于 2 G的边,令 },,,{ 21 k eeeGH L+=。 由 1 G的定义知,ν≥+ )()( vdud HH 。但因H是 2 G的子图,因此ν≥+ )()( 22 vdud GG 。 而由 1+k e的选择,u、v在 2 G中是不相邻的,这与 2 G是闭包矛盾。故每条 i e都必是 2 G的边。 同理可证,每条 j f一定是 1 G的边。这说明图G的闭包是唯一的。证毕。 例: 前一个图的闭包是它自己,后一个图的闭包是完全图K 5 。 定理4.3.6一个简单图是Hamilton图当且仅当它的闭包是Hamilton图。 证明:在构作闭包过程中,反复运用定理4.3.4即可。 推论4.3.1 设G是3≥ν的简单图。若C(G)是完全图,则G是Hamilton图。 定理4.3.2后的例子改动一条边后所得的如下图,可以检验它的闭包是完全图,因而是 Hamilton图。 (3)度序列条件 定理4.3.7 设G是度序列为( ν ddd ,,, 21 L)的简单图,这里 ν ddd ≤≤≤ L 21 ,并且3≥ν。 若不存在小于 2 ν 的m,使得md m ≤和md m ?< ? ν ν ,则G是Hamilton图。 证明:设G满足定理条件。我们来证明G的闭包C(G)是完全图。用反证法。 假设C(G)不是完全图。设u、v是C(G)中两个不相邻顶点,满足)()( vdud ≤,且)()( vdud + 尽可能大。()(vd表示v在C(G)中的度)。由C(G)的定义,ν<+ )()( vdud。令 wuVwuN |}{\{)( ∈=在C(G)中与u不相邻}; wvVwvN |}{\{)( ∈=在C(G)中与v不相邻}; 则)(1|)(| uduN ??=ν,)(1|)(| vdvN ??=ν。记mud =)(,则muN ??= 1|)(| ν, 1))((1)(1|)(| ?=???>??= mudvdvN ννν (1) 另外,由u、v的选择()()( vdud +尽可能大)知,}{)( uuN U中每个顶点在C(G)中的度 不超过)(vd(否则,设)(uNv ∈′,)()( vdvd >′,则)()( vdud ′+ > )()( vdud +,当初 应当选择u和v′)。同理,N (v)中每个顶点在C(G)中的度不超过)(ud。结合(1)式可知: C(G)中至少有m?ν个顶点,其度mvd ?<≤ ν)(,(比如}{)( uuN U中的顶点); C(G)中至少有m个顶点,其度m≤,(比如)(vN中的顶点); 由于G是C(G)的子图,故上述结论对G也成立。按照度序列的排列方式,便有md m ≤和 md m ?< ? ν ν ,并且 2 ν <m(因)()( vdud ≤及ν<+ )()( vdud)。这与定理的条件矛盾。 该矛盾说明C(G)确实是完全图。由推论4.3.1,G是Hamilton图。证毕。 §4.4旅行商问题(Travelling Salesman Problem,TSP) 问题:有n个城镇。一个旅行商从某一城镇出发,欲经过其余1?n个城镇一次且仅一次, 最后回到出发点。他应该如何设计旅行路线,才能使所走路程最短? 图论描述:将城镇作为顶点,两顶点连边当且仅当对应的两城镇能直达,每条边上以道路的 里程作为权。从而获得一个赋权图G。旅行商问题现在可以叙述为: 给定赋权图 G,求 G 的一个权最小的 Hamilton 圈。 这一问题看似简单,实际上含有两个困难的问题: (1)如何判定G是否有Hamilton圈; (2)在已知G是Hamilton图的情况下,如何求出一个权最小的Hamilton图来。 这两个问题目前尚未找到有效算法,甚至不知道这样的有效算法是否存在。事实上它们 是NPC问题。 转化:给G添加权为∞的边,化为赋权完全图。问题化为:对赋权完全图 n K,求其最小权 Hamilton圈,这样的圈称为最小Hamilton圈。 在 n K中,共有)!1( 2 1 ?n个不同的Hamilton圈(v到其余顶点有1?n条边)。如果一 一计算各Hamilton圈的长度,再逐个比较出权最小的一个,则计算量太大。当n较大时无 法实现。 对这样的NPC问题,一般解决方法是设计较好的近似算法,求其近似最优解。下面介 绍三种求最优Hamilton圈的近似算法。 近似算法1-邻近点法 step1. 任选一点Vv ∈ 1 ,令1:, 11 == ivP。 Step2. 设已得到 ii vvvP L 21 =,选取},,{211 ii vvvVv L∈ + 使得权)( 1+ii vvw最小。 Step3. 若ni =,则停止, 1211 vvvvvvPC nnn L=+=是一条近似的最小Hamilton圈;否 则1: += ii,转step2。 例 解:因5=n,故存在12!4 2 1 =×个不同的Hamilton圈。由计算可知abcdea,adcbea等是 最优解,权为36;而abdeca和acebda等是最差解,权为48。 按邻近点法来求: 比如从a点出发,可得四个近似解:abdeca,权为48;adbeca,权为48;aebdca,权 为41;aedbca,权为41。 如果从b出发,可得2个近似解:badecb,权为43,baedcb,权为36。 可见,邻近点法求近似解的精度不高,且与初始点有关。 定理4.4.1设赋权完全图 n K各边的权均为正数,且权满足三角不等式:对于任意的 Vvvv kji ∈,,,)()()( kikjji vvwvvwvvw ≥+,则 ?? )1log( 2 1 2 0 +≤ ? n c c 。其中 ? c是 n K的 最小Hamilton圈的权,而 0 c是用邻近点法求得的Hamilton圈的权。 证明较长,从略。 注:对精确算法需要证明其正确性;对近似算法需要估计算法的性能(精度)。 5 5 5 8 8 9 9 7 16 12 a b c d e 近似算法2-最小生成树法 step1. 求 n K的一棵最小生成树T; step2. 将T中各边均添加一条重边,设所得图为 * G; step3. 求 * G的从某点v出发的一条Euler环游 v E; step4. 按下面的方法求出G的一条Hamilton路: 从顶点v出发,沿E v 访问G * 中各顶点。在此过程中,一旦遇到重复顶点,就跳过它直接走 到Euler环游上的下一个顶点。直到访问完所有顶点为止。 该算法的计算复杂度为)( 2 νO。 例 G 最小生成树 加重边后 注:(1)若由不止一棵最小生成树,则最小生成树的选择会影响最重的结果(H圈的权)。 (2)Euler环游路线也影响最终结果。 (3)选择Euler环游的不同起点也影响最终的结果。 定理4.4.2设赋权完全图的各边之权均为正数,且对Vvvv kji ∈? ,,,都有 )()()( kijji vvwvkvwvvw ≥+,则2 * 0 < c c 。这里 0 c是算法2所得的Hamilton圈H的权(近 似解)。而 * c是最小Hamilton圈 * H的权。 证明:设T,G * 如算法所述。设E是G * 中一条Euler环游。由于对Vvvv kji ∈? ,,,都有 )()()( kijji vvwvkvwvvw ≥+,故)(2)()( 0 TwEwcHw =≤=。此外,设T′是G的最小 Hamilton圈 * H删去任一边后所得的生成树,则 * )()( cTwTw <′≤。因而 * 0 2cc <。证毕。 近似算法3-最小权匹配法(Christofides算法) step1. 求完全图 n K的一棵最小生成树T step2. 设T 中奇度顶点的集合为},,,{ 221 k vvvV L=′。求V′的导出子图 k KVG 2 ][ =′的最 小权完美匹配,将得到的k条边添加到T上,得Euler图G * 。 step3. 求出G * 的从某顶点v出发的一条Euler环游 v E。 5 5 5 8 8 9 9 7 16 12 a b c d e 5 5 5 9 a b c d e 5 5 5 9 a b c d e step4. 从v出发沿 v E访问G * 的各个顶点。在此过程中,一旦遇到重复顶点,就跳过它直接 走到Euler环游上的下一个顶点。直到访问完所有顶点为止。 例 G 最小生成树T ][VG ′ G * (][VG ′的最小完美匹配},{ cdaeM =,将M添加到T上,得G * 。求G * 中一条Euler环游, 然后按step4操作)。 定理4.4.3设赋权完全图的各边之权均为正数,且对Vvvv kji ∈? ,,,都有 )()()( kikjji vvwvvwvvw ≥+,则 2 3 * 0 < c c 。这里 0 c是算法3所得的Hamilton圈H的权(近 似解),而 * c是最小Hamilton圈 * H的权。 证明:先证四条事实: (1) * c去掉一条边后便得一生成树,故 * )( cTw <。 (2)设 k KVG 2 ][ =′中最小权Hamilton图的权为c′。由于对Vvvv kji ∈? ,,,都有 )()()( kikjji vvwvvwvvw ≥+,故)( 0 v Ewc ≤。 (3)因][VG ′是完全图 n K的子图,][VG ′的Hamilton圈可由 n K的Hamilton圈通过“去 二添一”手续得到,故 * cc ≤′。 (4)因][VG ′中最小Hamilton圈上交替取边可得一完美匹配,故][VG ′中最小权完美匹配 M中各边权之和 2 )( c Mw ′ ≤。 由以上四条,得 * * * 0 2 3 2 )()()( c c cMwTwEwc v =+<+=≤。证毕。 5 5 5 8 8 9 9 7 16 12 a b c d e 5 5 5 9 a b c d e 16 5 5 a c d e12 8 9 5 5 5 9 a b c d e 9