Á th‡ G2 không có chu trình Euler.
‡nh l˛ 2.3.2 (xem [6], [7]). a Á th‡ có h˜Óng G = (X, U) không có
ønh cô l™p có ˜Ìng i Euler nh˜ng không có chu trình Euler khi và chø
khi G là Á th‡ liên thông y∏u Áng thÌi b™c vào và b™c ra cıa tßt c£ các
ønh là b¨ng nhau, tr¯ hai ønh, mÎt ønh vÓi b™c vào lÓn hÏn b™c ra mÎt
Ïn v‡, còn ønh kia có b™c ra lÓn hÏn b™c vào mÎt Ïn v‡. Ch˘ng minh.
• i∑u kiªn c¶n.
Gi£ s˚ Gcó ˜Ìng i Euler (không khép kín) . Vì ph£i i qua tßt c£ các c§nh cıa Á th‡ G, nên G là Á th‡ liên thông y∏u. (Tr˜Ìng hÒp ng˜Òc l§i, không th∫ i qua ˜Òc tßt c£ các c§nh cıa G).
Tr¯ ønh xußt phát là ønh mà ˜Ìng b≠t ¶u b¨ng c§nh i ra kh‰i ønh này (nh˜ng không có c§nh i vào), và ønh cuËi là ønh mà ˜Ìng k∏t thúc b¨ng mÎt c§nh i vào ønh này (nh˜ng không có c§nh i ra), t§i mÈi ønh còn l§i bao giÌ cÙng tÓi b¨ng mÎt c§nh i vào và rÌi i b¨ng mÎt c§nh i ra, nên G chø có th∫ có úng mÎt ønh có sË c§nh i ra lÓn
hÏn sË c§nh i vào là 1, mÈi ønh còn l§i ∑u có sË c§nh i vào b¨ng sË c§nh i ra.
• i∑u kiªn ı.
Gi£ s˚ a Á th‡ G là Á th‡ liên thông y∏u, mÎt ønh A có sË c§nh i ra lÓn hÏn sË c§nh i vào là 1, mÎt ønh B có sË c§nh i vào lÓn hÏn sË c§nh i ra là 1 và mÈi ønh còn l§i ∑u có sË c§nh i vào b¨ng sË c§nh i ra.
Thêm vào c§nh mÓi i t¯ ønh B sang ønh A. K˛ hiªu c§nh này b¨ng
(B, m, A). Ta kí hiªu a Á th‡ nh™n ˜Òc b¨ng G0, tho£ mãn i∑u kiªn cıa ‡nh l˛ 2.3.1, nên nó có chu trình Euler ( ). Chu trình i qua mÈi c§nh cıa G úng mÎt l¶n và qua c§nh (B, m, A) cÙng úng mÎt l¶n nên lo§i c§nh (B, m, A) kh‰i , ˜Òc ˜Ìng Euler cıa a Á th‡ G.
Ví dˆ 2.3.2. Xét Á th‡ sau:
Hình 2.8: Áth‡có h˜Óng có ˜Ìng i Euler. Á th‡ G có ˜Ìng i Euler: A, B, C, A, D, C.
∫ tìm mÎt chu trình Euler trong mÎt a Á th‡ có h˜Óng vÓi mÈi ønh ∑u có b™c vào b¨ng b™c ra, ta có th∫ s˚ dˆng thu™t toán Fleury (xem [6]) nh˜ sau:
Xußt phát t¯ mÎt ønh bßt k˝ cıa Á th‡ G và tuân thı theo hai quy t≠c:
• Quy t≠c 1: MÈi khi i qua mÎt c§nh nào ó thì xóa nó i, sau ó xóa ønh cô l™p (n∏u có).
• Quy t≠c 2: Không bao giÌ i qua c§nh c¶u (là c§nh duy nhßt nËi gi˙a hai thành ph¶n liên thông), tr¯ khi không còn cách i nào khác.
Khi th¸c hiªn thu™t toán này c¶n l˜u ˛: MÈi khi g∞p c§nh c¶u c¶n ph£i xoá h∏t mÎt trong hai thành ph¶n liên thông rÁi mÓi "xoá" c§nh c¶u. Chú ˛ 2.3.1. N∏u a Á th‡ có mÎt ønh vÓi b™c vào lÓn hÏn b™c ra mÎt
Ïn v‡, mÎt ønh vÓi b™c ra lÓn hÏn b™c vào mÎt Ïn v‡, tßt c£ các ønh còn l§i ∑u có b™c vào b¨ng b™c ra, thì khi tìm ˜Ìng i Euler c¶n xußt phát t¯ ønh vÓi b™c ra lÓn hÏn b™c vào mÎt Ïn v‡ và s≥ k∏t thúc t§i ønh vÓi b™c vào lÓn hÏn b™c ra mÎt Ïn v‡
Ví dˆ 2.3.3. Tìm chu trình Euler trong Á th‡ có h˜Óng sau:
Hình 2.9: Á th‡có h˜Óng có chu trình Euler.
B˜Óc 1: Xußt phát t¯ ønh A có th∫ i theo c§nh (A, B) ho∞c (A, C), gi£ s˚ i theo c§nh (A, B) (xoá c§nh (A, B)).
B˜Óc 2: T¯ ønh B i theo c§nh (B, C) (xoá c§nh B, C và ønh B).
B˜Óc 3: T¯ ønh C i theo c§nh (C, A) ho∞c c§nh C, D, gi£ s˚ i theo c§nh (C, A) (xoá c§nh (C, A)).
B˜Óc 5: T¯ ønh C i theo c§nh (C, D) (xoá c§nh (C, D) và ønh D).
B˜Óc 6: CuËi cùng i theo c§nh (D, A) (xoá c§nh (D, A), ønh D và ønh A). Nh˜ v™y, trong Ví dˆ trên ta ã tìm ˜Òc mÎt chu trình Euler:
A, B, C, A, C, D, A
Ch˜Ïng 3
MÎt sË ˘ng dˆng
Nh˙ng ˘ng dˆng cıa ˜Ìng i và chu trình Euler ã ˜Òc nghiên c˘u và trình bày trong rßt nhi∑u tài liªu khác nhau bi tính thi∏t th¸c và tính ˘ng dˆng cao cıa chúng. – ph¶n này, chúng tôi s≥ trình bày mÎt vài ˘ng dˆng thú v‡ cıa ˜Ìng i và chu trình Euler trong mÎt sË lænh v¸c.
3.1 Ÿng dˆng cıa ˜Ìng i và chu trình Euler trong mÎt sË
bài toán tìm ˜Ìng i
Bài toán 3.1.1 (Bài toán Domino [13]). Domino là mÎt hình ch˙ nh™t chia thành hai hình vuông mÈi hình mang mÎt trong các sË 0,1,2,3,4,5,6. Hai hình vuông trên mÎt Domino có th∫ mang cùng mÎt sË. Có tßt c£ 28 quân Domino khác nhau. Ch˘ng minh r¨ng ta có th∫ s≠p x∏p các Domino thành hình tròn sao cho hai hình vuông k∑ nhau trên hai Domino khác nhau s≥ mang cùng sË.
LÌi gi£i.
Ta l™p Á th‡7 ønhx0, x1, x2, x3, x4, x5, x6 t˜Ïng ˘ng vÓi 7 sË xußt hiªn trên mÈi hình vuông cıa Domino. MÈi ønh có th∫ nËi vÓi các ønh còn l§i và chính nó ∫ t§o thành Domino.
thông vÓi tßt c£ các ønh có b™c chÆn b¨ng 8. Do v™y, Á th‡ này s≥ tÁn t§i chu trình Euler. MÈi chu trình Euler s≥ cho ta t˜Ïng˘ng mÎt cách x∏p các Domino tho£ yêu c¶u bài toán.
Hình 3.1: Áth‡cıa bài toán Domino.
Bài toán 3.1.2 (Bài toán ng˜Ìi ˜a th˜ Trung Hoa [8]). MÎt nhân viên i t¯ s b˜u iªn, qua mÎt sË ˜Ìng phË ∫ ˜a th˜, rÁi quay v∑ s. Ng˜Ìi ßy ph£i i qua các ˜Ìng theo trình t¸ nào ∫ ˜Ìng i là ng≠n nhßt?
Bài toán này ˜Òc nhà toán hÂc ng˜Ìi Trung Hoa tên làGuan nêu lên ¶u tiên n´m 1962 nh¨m tìm cách tËi ˜u hoá lÎ trình i cıa ng˜Ìi ˜a th˜, vì v™y nó th˜Ìng ˜Òc gÂi là “Bài toán ng˜Ìi ˜a th˜ Trung Hoa”.
Ta xét bài toán d§ng Ïn gi£n nh˜ sau:
Cho Á th‡ liên thông G. MÎt chu trình qua mÂi c§nh cıa G gÂi là mÎt hành trình trong G. Trong các hành trình ó, hãy tìm hành trình ng≠n nhßt, t˘c là qua ít c§nh nhßt.
Rõ ràng n∏u mÂi ønh cıa G ∑u có b™c chÆn thì chu trình Euler trong
G (qua mÈi c§nh cıa G úng mÎt l¶n) là hành trình ng≠n nhßt c¶n tìm. Chø còn xét tr˜Ìng hÒp G có mÎt sË ønh b™c l¥ (sË ønh b™c l¥ là mÎt sË chÆn). Khi ó mÂi hành trình trong G ph£i i qua ít nhßt hai l¶n mÎt sË c§nh nào ó. Dπ dàng thßy r¨ng mÎt hành trình qua mÎt c§nh (u, v)
nào ó quá hai l¶n thì không ph£i hành trình ng≠n nhßt trong G. Vì v™y, ta chø c¶n xét nh˙ng hànhh trình T i qua hai l¶n mÎt sË c§nh nào ó cıa
G.
Ta quy ˜Óc, xem mÎt hành trình T trong Glà mÎt hành trình trong Á th‡ Euler GT có ˜Òc t¯ G b¨ng cách v≥ thêm nh˙ng c§nh song song Ëi vÓi nh˙ng c§nh mà T i qua hai l¶n. Bài toán ∞t ra ˜Òc ˜a v∑ bài toán nh˜ sau: Trong các Á th‡ Euler, tìm Á th‡ có sË c§nh ít nhßt (khi ó chu trình Euler trong Á th‡ này là hành trình ng≠n nhßt).
∫ tìm cách bÍ sung thêm các c§nh song song sao cho hÒp l˛ta s˚ dˆng ‡nh l˛ Goodman-Hedetniemi (1973).
‡nh l˛ 3.1.1 (Goodman-Hedetniemi [8]). N∏u G là mÎt Á th‡ liên thông có q c§nh thì hành trình ng≠n nhßt trong G có chi∑u dài
q+ m(G)
trong ó m(G) là sË c§nh mà hành trình i qua 2 l¶n.
G có mÎt sË chÆn các ønh b™c l¥, gÂi sË l˜Òng ønh này là 2k.
GÂi V0(G) là t™p hÒp các ønh b™c l¥ (2k) cıa G. Ta phân 2k ønh này thành k c∞p, mÈi t™p hÒp k c∞p này ˜Òc gÂi là mÎt phân ho§ch Pi cıa
V0(G).
VÓi mÈi c∞p ønh u, v trong mÎt phân ho§ch ta xét kho£ng cách gi˙a 2 ønh ó (chính b¨ng Î dài ˜Ìng i ng≠n nhßt nh™n u, v làm 2 ¶u mút), k˛ hiªu là d(u, v). Tính kho£ng cách cıa k c∞p ønh, rÁi cÎng l§i ta ˜Òc tÍng d(Pi).
SË m(G) chính là sË nh‰ nhßt trong các tÍng d(Pi).
Khi ó, GT có ˜Òc t¯ G b¨ng cách thêm vào m(G) c§nh và GT là Á th‡ Euler.
Ví dˆ 3.1.1. Gi£i bài toán ng˜Ìi ˜a th˜ Trung Hoa cho Á th‡ sau
Hình 3.2: Áth‡ Gminh ho§ cho bài toán ng˜Ìi ˜a th˜ Trung Hoa.
Cho Á th‡G gÁm 11 ønh: A, B, C, D, E, F, G, H, I, J, K vÓi b™c t˜Ïng ˘ng là 2, 3, 4, 2, 4, 2, 1, 3, 4, 4, 5 nh˜ trong hình v≥. Ta s˚ dˆng ‡nh l˛ Goodman-Hedetniemi ∫ tìm hành trình ng≠n nhßt trong G. T™p hÒp các ønh b™c l¥ V0(G) = {B, G, H, K} và t™p hÒp các phân ho§ch c∞p là P = {P1, P2, P3}, trong ó P1 = {(B, G),(H, K)}, P2 = {(B, H),(G, K)} và P3 = {(B, K),(G, H)}. VÓi P1 = {(B, G),(H, K)} ta có d(P1) =d(B, G) +d(H, K) = 4 + 1 = 5. VÓiP2 = {(B, H),(G, K)} ta cód(P1) = d(B, H) +d(G, K) = 2 + 1 = 3. VÓiP3 = {(B, K),(G, H)} ta cód(P1) = d(B, K) +d(G, H) = 3 + 2 = 5. Khi ó ta có m(G) =min{d(P1), d(P2), d(P3)} = 3.
Do ó,GT có ˜Òc t¯Gb¨ng cách thêm vào 3 c§nh:(B, I),(I, H),(G, K)
và GT là Á th‡ Euler.
V™y hành trình ng≠n nhßt c¶n tìm là i theo chu trình Euler trong GT:
Hình 3.3: Áth‡GT sau khi bÍ sung c§nh.
Bài toán 3.1.3 (xem [1]). MÎt ông vua ã xây d¸ng mÎt lâu ài nhi∑u phòng ∫ cßt gißu báu v™t. Ng˜Ìi ta tìm thßy sÏ Á lâu ài nh˜ Hình 3.4 vÓi lÌi d∞n: "MuËn tìm thßy báu v™t chø c¶n t¯ mÎt trong các phòng bên ngoài cùng i qua tßt c£ các c˚a phòng, mÈi c˚a chø i mÎt l¶n. Báu v™t
˜Òc gißu sau cánh c˚a cuËi cùng."
Hình 3.4: SÏ Álâu ài.
Hãy tìm nÏi gißu báu v™t.
Coi i∫m gi˙a cıa mÈi phòng là mÎt ønh, ˜Ìng i t¯phòng này sang phòng bên (qua c˚a) là mÎt c§nh ta có Á th‡ nh˜ Hình 3.5. Hai ønh ˘ng vÓi phòng F và phòng S có b™c là sË l¥, trong khi các ønh còn l§i ∑u có b™c chÆn, áp dˆng ‡nh l˛ v∑ ˜Ìng i Euler ( ‡nh l˛2.2.3), ta xußt phát t¯ phòng F, c˚a cuËi cùng có ch˘a báu v™t là phòng S.
Hình 3.5: Áth‡cıa sÏ Álâu ài.
3.2 Ÿng dˆng chu trình Euler trong viªc xây d¸ng tßt c£ các
Á th‡ có dãy b™c cho tr˜Óc
Trong ph¶n này ta chø kh£o sát Á th‡ Ïn vô h˜Óng. Các khái niªm cÏ s ã ˜Òc trình bày tr˜Óc ó.
Tr˜Óc tiên, ta tìm hi∫u ‡nh nghæa cıa dãy b™c.
‡nh nghæa 3.2.1 (xem [9]). MÎt dãy sË t¸ nhiên d = (d1, ..., dn) ˜Òc gÂi là dãy b™c n∏u tÁn t§i mÎt Á th‡ Ïn vô h˜Óngn ønh ∫ b™c cıa ønh
i là di.
MÎt vßn ∑ cÏ b£n cıa l˛ thuy∏t Á th‡ ã tÁn t§i t¯ lâu là tìm tßt c£ các Á th‡ có dãy b™c là mÎt dãy sË t¸ nhiên cho tr˜Óc. Vßn ∑ này không
chø là l˛ thuy∏t cÏ b£n mà còn có ˛ nghæa th¸c t∏. Do ó, tÁn t§i rßt nhi∑u nghiên c˘u v∑ vßn ∑ này, ta có th∫ tham kh£o cách xây d¸ng sau.
Erd¨os và Gallai ã ˜a ra mÎt i∑u kiªn c¶n và ı ∫ mÎt dãy sË t¸ nhiên là dãy b™c cıa mÎt Á th‡ Ïn nh˜ sau:
‡nh l˛ 3.2.1 (Erd¨os-Gallai [10]). Cho d1 d2 ... dn > 0 là các sË nguyên. Các sË này là dãy b™c cıa mÎt Á th‡ Ïn khi và chø khi
(i) d1 +...+dn là sË chÆn. (ii) Cho mÂi k = 1, ..., n 1 ta có k X i=1 di k(k 1) + n X i=k+1 min{k, di}.
‡nh l˛ 3.2.1 chø ra mÎt tiêu chu©n thu¶n túy toán hÂc v∑ i∑u kiªn c¶n và ı ∫ mÎt dãy sË là dãy b™c cıa Á th‡ nh˜ng nó không cho ta bi∏t cách xây d¸ng Á th‡ t˜Ïng ˘ng nh˜ th∏ nào. MÎt cách cˆ th∫ hÏn, g¶n gÙi hÏn vÓi thu™t toán là k∏t qu£ sau cıa Hakimi và Havel [10].
‡nh l˛ 3.2.2 (Hakimi-Havel [10]). Dãy sË t¸ nhiên d1 ... dn > 0(n 3) là dãy b™c khi và chø khi dãy sË d2 1, ..., dd1+1 1, dd1+2, ..., dn
cÙng là dãy b™c.
‡nh l˛ 3.2.2 cho ta mÎt thu™t toán xác ‡nh mÎt dãy sË t¸ nhiên cho tr˜Óc có ph£i là mÎt dãy b™c hay không, Áng thÌi nó cÙng cho ta cách xây d¸ng mÎt Á th‡ t˜Ïng ˘ng vÓi dãy b™c này.
Thu™t toán Hakimi-Havel ˜Òc áp dˆng nh˜ sau: Trong mÈi b˜Óc ta chÂn ønh x có b™c cao nhßt trong sË các ønh còn l§i và gi£m b™c d(x)
ønh có b™c cao nhßt và kí hiªu t™p ønh này là N(x). Khi b™c cıa tßt c£ các ønh gi£m v∑ toàn giá tr‡ 0, ta xây d¸ng l§i Á th‡ theo qui t≠c nËi các
ønh x ˜Òc chÂn vÓi các ønh cıa t™p N(x).
Ví dˆ 3.2.1. VÓi dãy b™c 2,2,2,2,1,1 ta s≥ xây d¸ng Á th‡6 ønh (B£ng 1). Trong B£ng 1, t¯ hàng th˘ 3 tr i, cÎt ¶u tiên ch˘a thông tin v∑
ønh x ˜Òc chÂn và t™p ønh N(x) các ønh nó s≥ nËi tÓi (dßu ⇥ bi∫u th‡ cho ønh ˜Òc chÂn). ønh x1 x2 x3 x4 x5 x6 B™c 2 2 2 2 1 1 N(x1) ={x2, x3} ⇥ 1 1 2 1 1 N(x4) ={x2, x3} 0 0 ⇥ 1 1 N(x5) = {x6} ⇥ 0
B£ng 1. Xây d¸ng Á th‡ có dãy b™c d= (2,2,2,2,1,1) theo thu™t toán Hakimi.
Khi b£ng k∏t thúc, ta xây d¸ng Á th‡t˜Ïng˘ng b¨ng cách nËi các ønh
x ˜Òc chÂn vÓi các ønh cıa t™p hÒp N(x) t˜Ïng ˘ng và có Á th‡ t˜Ïng ˘ng, ˜Òc bi∫u diπn trong Hình 3.6.
Hình 3.6: Áth‡có dãy b™cd= (2,2,2,2,1,1) theo thu™t toán Hakimi.
Các tác gi£ cıa [11] m rÎng k∏t qu£ này theo cách t˜Ïng t¸, và h tin t˜ng r¨ng thu™t toán sau cho ta tßt c£ các Á th‡ có dãy b™c cho tr˜Óc:
‡nh l˛ 3.2.3 (Hakimi - Havel m rÎng [11]). Cho d = {d1, d2, ..., dn}, là dãy b™c không gi£m, và j là mÎt ønh cË ‡nh (có th∫ l¸a chÂn tùy ˛). Gi£ s˚ chúng ta cho tr˜Óc mÎt t™p hÒp các ønh b‡ cßm không ˜Òc chÂn làm láng gi∑ng cıa j. Thì tÁn t§i mÎt Á th‡ có dãy b™c d trong ó j không nËi vÓi các ønh b‡ cßm khi và chø khi tÁn t§i mÎt Á th‡ vÓi dãy b™c d trong ó j ˜Òc nËi vÓi tßt c£ các ønh b™c cao nhßt trong sË các ønh không b‡
Tuy nhiên các tác gi£ không h∑ ch˘ng minh thu™t toán m rÎng cıa mình có th∫ quét ˜Òc h∏t các Á th‡ ˘ng vÓi dãy b™c cho tr˜Óc. Thu™t toán áp dˆng ‡nh l˛ 3.2.3 có th∫ xây d¸ng mÎt Á th‡ sao cho t™p láng gi∑ng cıa mÎt ønh ˜Òc xác ‡nh nh˜ mong muËn cıa ta, nh˜ng nó khó cho ta ˜Òc h∏t các Á th‡ c¶n tìm (vì có th∫ t™p láng gi∑ng cıa các ønh khác không xác ‡nh nh˜ mong muËn ˜Òc).
Ph¶n này s≥ trình bày thu™t toán gi£i quy∏t các vßn ∑ còn tÁn t§i d¸a trên ˜Ìng mÎt nét Euler an màu khép kín và ta cÙng s≥ ch˘ng minh r¨ng thu™t toán này xác ‡nh ˜Òc tßt c£ Á th‡ có dãy b™c cho tr˜Óc.
Tr˜Óc tiên, chúng tôi s≥ nh≠c l§i mÎt sË khái niªm cÏ b£n.
Cho tr˜Óc mÎt Á th‡ G = (X, E) mà X là t™p ønh, E là t™p c§nh. Ta kí hiªu uv là c§nh nËi 2 ønh u và v. MÎt Á th‡ con G0 cıa G vÓi cùng t™p ønh X ˜Òc gÂi là Á th‡ khung.
MÎt Á th‡ khung t¶m th˜Ìng cıa Á th‡ G = (X, E) là Á th‡ không có c§nh G= (X,;).
Á th‡ bù cıa Á th‡ G = (X, E) ˜Òc k˛ hiªu là G= (X, E).
Ta ‡nh nghæa mÎt sË phép toán hÒp, giao và tr¯ vÓi các Á th‡ nh˜ sau: VÓi G1 = (X1, E1) và G2 = (X2, E2) thì G1 [ G2 là Á th‡ G = (X1 [
X2, E1 [ E2). ∞c biªt khi X1 = X2 = X thì ta k˛ hiªu G1 \ G2 là Á th‡ G = (X, E1 \ E2) và G1 G2 là Á th‡ G = (X, E1 E2), ây
A B := (A[B) (A\ B) (xem minh hÂa Hình 3.7).
N∏u các c§nh cıa Á th‡ ˜Òc tô màu hai màu xanh, ‰ thì c§nh ‰
˜Òc hi∫n th‡ b¨ng các nét li∑n, c§nh xanh hi∫n th‡ b¨ng các nét ˘t (nh˜ trong Hình 3.8). SË c§nh màu ‰ (xanh) xußt phát t¯ mÎt ønh x ˜Òc gÂi là b™c ‰ (b™c xanh) cıa x.
Á th‡ có các c§nh ˜Òc tô hai màu mà ønh tùy ˛ cıa nó có sË c§nh xanh b¨ng sË c§nh ‰ ˜Òc gÂi là Á th‡ cân b¨ng (ví dˆ Á th‡ H trong