Do đó, theo đ nh lý trên s không có chu trình Euler trong đ th này... Khi đó G có chu trình Hamilton... Mâu thu n này đã.
Trang 1N m 2003
Trang 2r i r c, khi nghiên c u các quá trình h u h n M t trong nh ng nguyên nhân ch y u làm
t ng t m quan tr ng c a toán r i r c là vi c l u tr và x lý thông tin trên máy tính đi n t mà
b n ch t là các quá trình r i r c Ba l nh v c có nhi u ng d ng c a toán h c r i r c là lý thuy t t h p, hàm đ i s logic (đ i s Boole) và lý thuy t đ th Các v n đ v lý thuy t t
h p, hàm đ i s logic (đ i s Boole) s đ c trình bày trong các giáo trình khác Trong ph m
vi giáo trình này chúng tôi ch trình bày l nh v c có th xem là quan tr ng nh t và có nhi u
ng d ng nh t c a toán h c r i r c là Lý thuy t đ th
Lý thuy t đ th đ c khai sinh k t công trình nghiên c u v bài toán “7 cây c u
K ö nigsberg” c a nhà toán h c Leonhard Euler (1707 - 1783) đ c công b vào n m 1736
T đó đ n nay, đã có nhi u nhà toán h c trên th gi i nghiên c u làm cho lý thuy t đ th
ngày càng phong phú và có nhi u ng d ng trong các l nh v c khác nhau nh m ng đi n t ,
lý thuy t mã, v n trù h c, kinh t h c, c bi t, trong kho ng vài ch c n m tr l i đây, cùng
v i s ra đ i c a máy tính đi n t và s phát tri n nhanh chóng c a Tin h c, Lý thuy t đ th
càng đ c quan tâm nhi u h n, đ c bi t là các thu t toán và ng d ng trên đ th Hi n nay, môn h c này đã đ c xem là ki n th c c s c a khoa h c máy tính
Giáo trình này đ c biên so n t bài gi ng c a các tác gi trong các n m qua
Tr ng i h c C n th và các trung tâm đào t o liên k t trong vùng ng b ng sông C u long, nh m đáp ng nhu c u tài li u tham kh o và h c t p b ng ti ng Vi t c a sinh viên ây
là giáo trình dành cho sinh viên s ph m Toán Tin, Toán nên h u h t các v n đ đ c trình bày đ u đ c ch ng minh ch t ch , rõ ràng ng th i, c ng kèm theo m t s thu t toán và các ng d ng th c t c ng nh ng d ng trên máy tính Các sinh viên chuyên ngành Lý Tin, Tin h c và i n t c ng có th s d ng giáo trình này nh m t tài li u tham kh o h u ích
N i dung c a giáo trình bao g m các n i dung c b n nh t c a lý thuy t đ th có kèm các bài t p áp d ng và đ c chia làm 04 ch ng:
Ch ng 1: Trình bày các thu t ng , đ nh ngh a và khái ni m c b n c a đ th nh đ
th vô h ng, có h ng, các lo i đ th , đ ng đi, chu trình, tính liên thông, ph ng pháp
t ng quát đ gi i quy t m t bài toán b ng lý thuy t đ th ,
Ch ng 2: Trình bày các bài toán v đ ng đi Euler, Hamilton, các gi i thu t tìm
đ ng đi ng n nh t nh Dijkstra, Heterdetmin cùng m t s ví d ng d ng
Ch ng 3: Trình bày các v n đ liên quan đ n đ th ph ng và bài toán tô màu đ th cùng m t s ng d ng
Ch ng 4: Kh o sát t ng quát v c u trúc cây và các v n đ liên quan, đ c bi t là cây
nh phân M t s ng d ng c a cây trong tin h c c ng đ c trình bày nh các phép duy t cây, cây bi u th c s h c, ký pháp ngh ch đ o Ba Lan (RPN), các thu t toán tìm cây ph t i ti u,
Cu i m i ch ng có ph n bài t p giúp sinh viên rèn luy n và ki m tra l i nh ng ki n
th c đã đ c h c M t s v n đ trong ph n lý thuy t c ng còn đ m xem nh ph n bài t p
t gi i c a sinh viên
Do gi i h n v m t th i gian (giáo trình đ c gi ng d y trong 45 ti t) nên chúng tôi
ch đ c p đ n các v n đ c b n nh t c a lý thuy t đ th Các v n đ m r ng và chuyên sâu
c a lý thuy t c a lý thuy t đ th s đ c trình bày thêm trong quá trình gi ng d y trên l p và xem là các v n đ m cho sinh viên t h c, nghiên c u thêm khi làm ti u lu n, lu n v n t t nghi p
Trang 3Tuy đã h t s c c g ng, song v i qu th i gian và ki n th c h n ch ch c ch n giáo trình v n còn nh ng v n đ khi m khuy t, chúng tôi r t mong nh n đ c s đóng góp ý ki n quý báu c a quý th y cô, b n bè đ ng nghi p và các em sinh viên đ giáo trình đ c hoàn thi n h n
Th.S Tr ng Qu c B o
C n th , tháng 12 n m 2003
Trang 4N u c nh e t ng ng v i 2 đ nh v, w thì ta nói v và w là 2 đ nh k (hay 2 đ nh liên
k t) (adjacent) v i nhau Ta c ng nói c nh e t i hay liên thu c (incident) v i các đ nh v và w
Ký hi u e = vw hay v e w (ho c e = vw; e = wv) C nh vv t ng ng v i 2 đ nh trùng nhau g i là m t vòng hay khuyên (loop) t i v
Hai c nh phân bi t cùng t ng ng v i m t c p đ nh đ c g i là 2 c nh song song (paralleledges) hay c nh b i th không có c nh song song và c ng không có vòng đ c
g i là đ n đ th (simple graph) Ng c l i là đa đ th (multigraph)
th mà m i c p đ nh c a nó đ u k nhau đ c g i là đ th đ y đ (Complete graph) n đ th đ y đ bao g m n đ nh đ c ký hi u: Kn
th G' = (V',E') đ c g i là m t đ th con (subgraph) c a đ th G = (V,E) n u V'
⊂ V; E' ⊂ E
th có s đ nh và s c nh h u h n đ c g i là đ th h u h n (finite graph), ng c
l i đ c g i là đ th vô h n (Infinite graph)
Trong giáo trình này, chúng ta ch kh o sát các đ th h u h n
Ví d 2: th G có: V = {u, v, x, y}
E = {uv, uv, ux, vx, xy, yy}
c bi u di n hình h c nh sau:
Trang 1
Trang 5- Ma tr n liên k t hay li n k (adjacency matrix)
- Ma tr n liên thu c (incidence matrix)
có ma tr n li n k là:
Trang 6Ng i ta còn dùng ma tr n liên thu c đ bi u di n đ th Cho G = (V,E) là m t đ th
v i v1, v2, , vn là các đ nh và e1, e2, , em là các c nh c a G Khi đó ma tr n liên thu c c a
G theo th t trên c a V và E là m t ma tr n M = (mij)n x m v i:
mij = 1 n u c nh ej n i v i đ nh vi
0 n u c nh ej không n i v i đ nh vi
Ü Chú ý: Các ma tr n liên thu c c ng có th đ c dùng đ bi u di n các c nh b i và khuyên (vòng) Các c nh b i (song song) đ c bi u di n trong ma tr n liên thu c b ng cách dùng các c t có các ph n t gi ng h t nhau vì các c nh này đ c n i v i cùng m t c p các
1 1
1 1 0
0 0 0 0v
2 0
1 1 1
0 1 1 0v
3 0
0 0 1
1 0 0 0v
4 0
0 0 0
0 0 1 1v
5 0
0 0 0
Trang 7- nh có b c 0 g i là đ nh cô l p (isolated vertex)
- nh có b c 1 g i là đ nh treo (pendant vertex)
- C nh t i đ nh treo g i là c nh treo (pendant edge)
- th mà m i đ nh đ u là đ nh cô l p g i là đ th r ng (null graph)
Ví d 9: Cho đ th sau:
ef
i
i 2deg
4 Ch ng minh - gi i bài toán b ng ph ng pháp đ th
ch ng minh (gi i) bài toán b ng đ th ta th c hi n theo các b c sau:
Trang 8Ü B c 1: Xây d ng đ th G = (V, E) mô t đ y đ các thông tin c a bài toán, trong đó:
+ M i đ nh v∈V bi u di n cho m t đ i t ng nào đó c a bài toán
+ M i c nh n i 2 đ nh và s bi u di n cho m i quan h gi a hai đ i
Ví d 10: Ch ng minh r ng trong m t cu c h p tùy ý có ít nh t 02 đ i bi u tham gia
tr lên, luôn luôn có ít nh t hai đ i bi u mà h có s ng i quen b ng nhau trong các đ i bi u
+ C nh: Trong đ th G các đ nh và đ c n i v i nhau b ng m t c nh n u hai
đ i bi u và quen nhau V y, m i quan h gi a 02 đ i t ng đây là m i quan h quen
bi t M i c nh n i 2 đ nh và trong G n u hai đ i bi u và quen nhau
i
v v j i
+ Theo đ nh lý 1.2 ta có trong G t n t i ít nh t 02 đ nh có cùng b c ngh a là luôn luôn
có ít nh t hai đ i bi u mà h có s ng i quen b ng nhau trong các đ i bi u đã đ n d h p
Ví d 11: Ch ng minh r ng s ng i mà m i ng i đã có m t s l l n b t tay nhau trên trái đ t này là m t con s ch n
(Xem nh bài t p - Sinh viên t ch ng minh)
Trang 9Ü V y Cn có:
+ S đ nh: V = n≥3+ B c c a đ nh deg( )v i =2; ∀v i∈V
Trang 10+ S c nh: = *2n−1
n E
M t đ th G đ c g i là đ th l ng phân (bipartie graph) n u t p h p các đ nh V
c a G có th phân thành 2 t p h p không r ng V1 và V2, V1 V2 = ∅ sao cho m i c nh c a G
n i m t đ nh c a V1 v i m t đ nh c a V2
Trang 7
Trang 11là không ph i là đ th l ng phân vì n u ta chia các đ nh c a nó thành 2
ph n r i nhau thì m t trong 2 ph n này ph i ch a 2 đ nh N u đ th là l ng phân thì các
đ nh này không th n i v i nhau b ng m t c nh Nh ng trong K3 m i đ nh đ c n i v i đ nh
khác b ng m t c nh
1 nh ngh a
Các đ th G1 = (V1,E1) và G2 = (V2,E2) đ c g i là đ ng c u v i nhau n u có m t song ánh f: V1 → V2 sao cho n u a và b là li n k trong V1 thì f(a) và f(b) li n k trong V2; ∀
Trang 12d' e'
G và H có cùng s c nh, s đ nh nh ng H có đ nh e' b c 1, trong khi đó G không có
đ nh nào b c 1 i u ki n c n không th a ⇒ G và H không đ ng c u
→ab
b a
Trang 13nh ngh a: Cho G là đ th có h ng, b c vào c a đ nh v, ký hi u: deg−(v) (ho c din(v)) là s c nh có đ nh cu i là v.
V
i
i out V
Ví d 23: Có m t nhóm g m 09 đ i bóng bàn thi đ u vòng tròn m t l t H i sau khi
có k t qu thi đ u c a t t c các đ i có th có tr ng h p b t k đ i nào trong 09 đ i này
c ng đ u th ng đúng 05 đ i khác trong nhóm đ c không? (L u ý trong thi đ u bóng bàn không có tr n hòa)
(Xem nh bài t p - Sinh viên t ch ng minh)
1 ng đi
nh ngh a: ng đi (path) có đ dài n t vo đ n vn v i n là m t s nguyên d ng, trong m t đ th vô h ng là m t dãy các c nh liên ti p vov1, v1v2, , vn−1vn nh vođ c
g i là đ nh đ u, đ nh vn đ c g i là đ nh cu i ng đi này th ng đ c vi t g n: vov1v2
vn−1vn Khi ch c n nêu ra đ nh đ u vo và đ nh cu i vn c a đ ng đi, ta vi t: đ ng đi vo −
vn
Ü M t đ ng đi không qua c nh nào l n th hai đ c g i là đ ng đi đ n gi n
( đ ng đi đ n)
Ü M t đ ng đi không qua đ nh nào l n th hai đ c g i là đ ng đi s c p
Ü L u ý: M t đ ng đi s c p là m t đ ng đi đ n gi n nh ng m t đ ng đi đ n
gi n có th không là đ ng đi s c p)
2 Chu trình
Trang 142.1 nh ngh a: M t đ ng đi khép kín (đ nh đ u ≡ đ nh cu i) và có đ dài n ≥ 3
đ c g i là m t chu trình (Cycle)
Ü Chu trình không đi qua c nh nào l n th hai đ c g i là chu trình đ n gi n
Ü Chu trình không đi qua đ nh nào l n th hai, tr đ nh đ u ≡ đ nh cu i, đ c g i là
Vì G là m t đ th h u h n, m i đ ng s c p qua t ng đ nh không quá m t l n, nên
s đ ng s c p trong G là h u h n Do đó, ta luôn xác đ nh đ c đ ng đi s c p có đ dài
c c đ i trong s các đ ng đi s c p có trong đ th G=(V,E)
Gi s α =v1 v2,Lv k−1 v k là m t trong các đ ng đi s c p có đ dài c c đ i Do b c
c a m i đ nh không nh h n 2 (∀v∈V có d( )v ≥2), nên đ nh v1 ph i k v i 1 đ nh u nào đó
và u≠v2 Xét 02 tr ng h p:
+ N u đ nh u≡v i (3≤i≤k), khi đó trong đ th G s có m t chu trình s c p
1 1
1 2
k
j≤
≤3
+ α1 =v1 v2 v3Lv i−1 v i v1 và + α2 =v1 v2 v3Lv i−1 v i v i+1Lv j−1v j v1
Ta xét 2 tr ng h p sau:
+ N u m t trong hai đ ng s c p α ho c 1 α có đ dài ch n thì ta có đi u 2
ph i ch ng minh
Trang 11
Trang 15+ Ng c l i, n u c hai đ ng s c p α và 1 α2 đ u có đ dài l thì khi đó
đ ng đi s c p:
i
i v v v v
v1 2 3 1
3 = L −
α có đ dài ch n và đ ng s c p:
1 1 1
4 =v i v i+ Lv j− v j v
α có đ dài l nên chu trình:
1 1 1 1
5 =v v i v i+ Lv j− v j v
α có đ dài ch n (đi u ph i ch ng minh)
3 Tính liên thông trong đ th vô h ng
3.1 nh ngh a: M t đ th vô h ng đ c g i là liên thông n u có đ ng đi gi a
m i c p đ nh phân bi t c a đ th
V ê duû 25:
G: liên thông; H: không liên thông
Cho đ th G = (V,E) và v ∈ V V' là t p h p các đ nh c a V liên thông v i v, E' là t p
h p các c nh n i 2 đ nh c a V' Khi đó đ th G' = (V',E') g i là thành ph n liên thông (connected component) c a G ch a v ng nhiên n u v và u liên thông trong G thì thành
ph n liên thông c a G ch a v c ng là thành ph n liên thông ch a u
Ví d 26: có 3 thành ph n liên thông
3.2 nh lý 1.8: th G=(V, E) là liên thông khi và ch khi G có duy nh t m t thành
ph n liên thông
3.3 nh c t và c u:
Ü nh c t: N u vi c xóa đi m t đ nh v∈ và t t c các c nh liên thu c v i nó s t o V
ra m t đ th con m i có nhi u thành ph n liên thông h n đ th xu t phát Các đ nh nh
th đ c g i là đ nh c t (cut point) hay đi m kh p v
Ü C u: N u trong đ th G ta b đi c nh e s t o ra nhi u thành ph n liên thông h n G thì e đ c g i là c u (brìdge)
d ≥ thì G
là đ th liên thông
4 Tính liên thông trong đ th có h ng
Trang 164.1 Liên thông m nh (Strongly connected)
th có h ng G đ c g i là liên thông m nh n u có đ ng đi t a đ n b và t b đ n a; ∀ a, b ∈ đ th
V ê duû 28:
4.2 Liên thông y u (Weakly connected)
th có h ng G đ c g i là liên thông y u n u đ th vô h ng t ng ng c a nó là liên thông
V ê duû 29:
th có h ng G đ c g i là đ y đ n u đ th vô h ng c a nó là đ y đ
4.3 nh lý 1.10: N u trong đ th G=(V, E) có đúng hai đ nh b c l thì hai đ nh này
ph i liên thông v i nhau
thành hai t p con V1 và V2 Khi đó, d c theo chu trình b t k c a G thì các đ nh thu c t p V1
và t p V2 s l n l t n m liên ti p và xen k nhau Do đó, khi tr v đ nh xu t phát đ u tiên,
ta ph i đi qua m t s ch n các đ nh và do đó chi u dài c a chu trình là m t s ch n
đ ng α có đ dài ch n và 'α có đ dài l n i 2 đ nh v và v0 thì đ th G1 s có chu trình v i
đ dài l , mâu thu n v i tính ch t ban đ u là G ch có chu trình đ dài ch n
V i cách thi t l p hai t p h p đ nh V1 và V2 này, các đ nh c a đ th G1 ho c thu c
t p h p đ nh V1 ho c thu c t p h p đ nh V2 Bây gi , ta ch ng minh r ng ch có các c nh n i các đ nh không thu c cùng m t t p h p đ nh v i nhau mà thôi Th t v y, gi s r ng có 2
đ nh v và u k nhau trong G1 thì chúng không th thu c cùng m t t p h p đ nh V1 ho c V2,
n u không ta có th đi t đ nh v0đ n đ nh v r i đi đ n đ nh u b ng c nh vu r i tr v đ nh v0
Trang 13
Trang 17b ng m t đ ng đi có đ dài l i u này không x y ra trong đ th G V y G là đ th l ng phân v i hai t p đ nh r i nhau là V1 và V2 b ng cách mà ta đã xây d ng trên
VI M t s phép bi n đ i đ th
1 H p c a hai đ th
H p c a hai đ th G1 = (V1,E1) và G2 = (V2,E2) là m t đ th G= (V, E) có t p h p các đ nh là V = V1 ∪ V2 và t p h p các c nh là E = E1 ∪ E2
Cho đ th G = (V,E), n u ta b đi m t c nh e = uv c a G và thêm vào m t
đ nh m i w cùng v i 2 c nh uw và wv thì phép toán trên đ c g i là phép phân chia s c p Hai đ th G1 = (V1,E1) và G2 = (V2,E2) đ c g i là đ ng phôi (homeomorphic) n u chúng có th nh n đ c t cùng m t đ th b ng m t dãy các phép phân chia s c p
Chú ý: Hai đ th là đ ng phôi thì ch a ch c đ ng c u v i nhau
Trang 18Ch ng II
1 Bài toán m đ u :
Bài toán 7 cây c u K ö nigsberg: Thành ph Königsberg thu c Ph (bây gi g i là
Kaliningrad thu c C ng hòa Liên bang Nga) đ c chia thành b n vùng b ng các nhánh sông Pregel Các vùng này g m 2 vùng bên b sông, đ o Kneiphof và m t mi n n m gi a 2 nhánh
c a sông Pregel Vào th k th XVIII, ng i ta đã xây 7 cây c u n i các vùng l i v i nhau
nh s đ sau:
C
DA
B
Vào ch nh t, ng i dân đây th ng đi b d c theo các vùng trong thành ph H t
h i “Có th xu t phát t i m t đi m nào đó trong thành ph , đi qua t t c 7 cây c u, m i cây
m t l n, r i tr v đi m xu t phát đ c không?”
Nhà toán h c Th y S Leonard Euler đã nghiên c u gi i bài toán này L i gi i c a ông
đ c công b n m 1736 Bài toán này có th đ c coi là m t trong nh ng ng d ng đ u tiên
c a lý thuy t đ th
Ta có th xây d ng đ th G = (V, E) mô t bài toán nh sau:
+ nh: L y các đi m trên m t ph ng hay trong không gian t ng ng v i các vùng
đ t trong s đ i t ng c a bài toán đây là m t vùng đ t trong s đ V y, m i đ nh
bi u di n cho m t vùng đ t th G s có 4 đ nh A, B, C, D t ng ng v i 4 vùng đ t
V
v∈
+ C nh: Trong đ th G các đ nh và đ c n i v i nhau b ng m t c nh e đ i di n cho m t chi c c u n i gi a hai vùng đ t th G s có 7 c nh t ng ng v i 7 chi c c u n i
Bài toán tìm đ ng đi qua t t c các c u m i c u không quá m t l n có th đ c phát
bi u l i b ng mô hình này nh sau: “T n t i hay không m t chu trình đ n trong đa đ th G= (V, E) có ch a t t c các c nh?”
2 nh ngh a
2.1 Chu trình Euler ( th Euler)
Cho G = (V,E) là m t đa đ th liên thông Chu trình đ n ch a t t c các c nh c a đ
th G đ c g i là chu trình Euler th có ch a m t chu trình Euler đ c g i là đ th Euler 2.2 ng đi Euler
Trang 17
Trang 19Cho G = (V,E) là m t đa đ th liên thông ng đi Euler trong G là đ ng đi đ n
e
không có chu trình Euler và đ ng đi Euler
3 Chu trình và đ ng đi Euler trong đ th vô h ng
Khi gi i bài toán c u Königsberg, Euler đã phát hi n ra các tiêu chu n đ kh ng đ nh
m t đa đ th có chu trình và đ ng đi Euler hay không?
m t c nh liên thu c và r i kh i đ nh này b ng m t c nh liên thu c khác Cu i cùng chu trình
k t thúc đ nh mà nó xu t phát, do đó nó t ng thêm m t đ n v vào deg (a) Ngh a là deg (a)
ph i là m t s ch n nh khác a c ng có b c ch n vì chu trình góp 2 đ n v vào b c c a nó
m i l n đi qua đ nh này V y, m i đ nh c a G đ u có b c ch n
(⇐) Gi s m i đ nh c a đa đ th liên thông G đ u có b c ch n Ta s ch ng minh
t n t i m t chu trình Euler trong G
Th t v y, ta s xây d ng m t chu trình đ n b t đ u t đ nh a tùy ý c a G G i xo = a;
Tr c tiên, ta ch n tùy ý c nh xox1, x1x2, , xn−1xn càng dài càng t t Ví d , trong đ th G sau:
các c nh còn l i Ch ng h n v i đ th trên, khi xóa đi chu trình a,
b, c, f, a kh i đ th trên, ta nh n đ c đ th con H c d
e
Trang 20Vì G là liên thông ⇒ H có ít nh t có m t đ nh chung v i chu trình v a b xóa G i w
là đ nh đó (trong ví d trên là đ nh c) M i đ nh c a H có b c ch n vì t t c các đ nh c a G có
b c ch n và v i m i đ nh ta đã xóa đi t ng c p liên thu c đ t o ra H L u ý r ng H có th không liên thông B t đ u t đ nh w ta xây d ng m t đ ng đi đ n b ng cách ch n càng nhi u càng t t nh ta đã làm trong G ng này ph i k t thúc t i w Ví d trong đ th H nêu trên ta có chu trình con: c, d, e, c Sau đó, ta t o m t chu trình trong G b ng cách ghép chu trình trong H và chu trình ban đ u trong G (đi u này th c hi n đ c vì 2 chu trình có chung
đ nh w) Ti p t c quá trình này cho đ n khi t t c các đ nh đ c s d ng Quá trình này ph i
k t thúc vì đ th có h u h n đ nh Do đó, ta đã xây d ng đ c m t chu trình Euler
Bây gi , tr l i bài toán 7 cây c u Königsberg: có th xu t phát t m t đ a đi m nào
đó trong thành ph , đi qua t t c các c u (m i c u đi qua đúng m t l n) và tr v đi m xu t phát? Ta đã th y đ th bi u di n các c u Königsberg có 4 đ nh b c l Do đó, theo đ nh lý trên s không có chu trình Euler trong đ th này i u này c ng có ngh a là bài toán 7 cây
c u Königsberg không có l i gi i Hay nói cách khác, không có chu trình nào th a yêu c u
đ t ra
3.2 Thu t toán Fleury tìm chu trình Euler
tìm m t chu trình Euler trong m t đa đ th có t t c các đ nh đ u b c ch n, ta có
th s d ng thu t toán Fleury nh sau:
Xu t phát t m t đ nh b t k c a đ th G và tuân theo hai qui t c sau:
Ü Qui t c 1: M i khi đi qua m t c nh nào thì xóa c nh đó đi, sau đó xóa đ nh cô l p (n u có)
Ü Qui t c 2: Không bao gi đi qua m t c u, tr khi không còn cách đi nào khác đ di chuy n
Ví d 4: Tìm m t chu trình Euler trong đ th sau:
Ta không còn cách ch n nào khác, nên ph i ch n FG, GH, HB, BG, GA
Nh v y, ta có chu trình Euler sau: A, B, C, F, D, C, E, F, G, H, B, G, A
Ví d 5: Tìm m t chu trình Euler c a đ th sau:
E F
D CBA
Trang 19
Trang 21Th t v y, gi s G có đ ng đi Euler t a đ n b, nh ng không có chu trình Euler
C nh đ u tiên c a đ ng đi góp m t đ n v vào deg (a) Sau đó m i l n đ ng đi qua a l i góp thêm 2 đ n v vào deg (a)
Ch c ch n đ ng đi không th k t thúc t i a, cho nên deg(a) là s l C nh cu i cùng
c a đ ng đi góp m t đ n v vào deg(a) và m i l n đi qua b, nó c ng góp 2 đ n v vào deg(b) Do đó, deg(b) là s l Các đ nh trung gian đ u có b c ch n vì m i l n đ ng đi t i r i
l i đi nên t ng hai đ n v cho b c c a đ nh đó V y, đ th đã cho có đúng 2 đ nh b c l (⇐) Gi s đa đ th liên thông G có đúng 2 đ nh b c l Ta s ch ng minh G có
(Xem nh bài t p - Sinh viên t ch ng minh)
4 Chu trình và đ ng đi Euler đ i v i đ th có h ng
4.1 nh lý v chu trình Euler: th có h ng G = (V, E) có ch a m t chu trình Euler khi và ch khi G là liên thông y u, đ ng th i b c vào và b c ra c a m i đ nh là b ng nhau
Ch ng minh: T ng t đ nh lý Euler đ i v i đ th vô h ng (Xem nh bài t p - Sinh viên t ch ng minh)
Ví d 7: th
c d
Trang 224.2 nh lý v đ ng đi Euler: Cho G =(V,E) là m t đa đ th có h ng G có
đ ng đi Euler nh ng không có chu trình Euler ⇔ G là liên thông y u, đ ng th i b c vào và
b c ra c a các đ nh là b ng nhau, tr 2 đ nh, m t đ nh có b c vào l n h n b c ra m t đ n v , còn đ nh kia có b c vào nh h n b c ra m t đ n v
Ch ng minh: T ng t đ nh lý Euler đ i v i đ th vô h ng (Xem nh bài t p - Sinh viên t ch ng minh)
M t chu trình s c p đi qua t t c các đ nh c a đ th G =(V,E) (đi qua m i đ nh đúng
m t l n) đ c g i là chu trình Hamilton th G=(V,E) có ch a chu trình Hamilton đ c
g i là đ th Hamilton
Ví d 11: th
ab
c
d e
nh lý Ore (1960): Cho G = (V,E) là m t đ n đ th liên thông v i n đ nh (n ≥ 3)
và n u: deg(v) + deg(w) ≥ n v i m i c p đ nh không li n k v, w trong G Khi đó G có chu trình Hamilton
Ch ng minh: S d ng ph ng pháp ch ng minh ph n ch ng
Gi s G th a deg(v) + deg(w) ≥ n; ∀v,w không li n k trong G nh ng G không có chu trình Hamilton Khi đó ta có th ghép thêm vào G nh ng c nh cho đ n khi nh n đ c m t
đ th con H c a Kn sao cho H không có chu trình Hamilton, nh ng v i m i c nh e ∈ Kn
nh ng e ∉ H, ta có (H + e) có chu trình Hamilton Vi c ghép thêm c nh vào G là hoàn toàn
th c hi n đ c và không nh h ng gì đ n đi u ki n c a gi thi t
Do H ≠ Kn nên t n t i a, b ∈ V sao cho ab ∉ H nh ng H + ab có chu trình Hamilton
C B n thân H không có chu trình Hamilton mà H + ab có chu trình Hamilton ⇒ ab ∈ C Gi
s ta li t kê các đ nh c a H trong chu trình C nh sau:
a(=v1) → b(=v2) → v3 → v4 → → vn-1 → vn; 3 ≤ i ≤ n
Khi đó, n u c nh bvi ∈ H, ta có th k t lu n avi-1 ∉ H vì n u c hai bvi và avi-1 cùng
n m trong H, ta có chu trình:
Trang 21
Trang 23b → vi → vi+1 → → vn-1 → vn → a → vi-1 → vi-2 → → v3
Chu trình này n m trong H, đi u này mâu thu n vì H không có chu trình Hamilton Vì
v y, ∀vi (3 ≤ i ≤ n) ch có m t trong 2 c nh: bvi ho c avi-1 n m trong H
Do đó: degH(a) + degH(b) < n
V i degH(a): b c c a a trong H
Ta có ∀ v ∈ V: degH(v) ≥ degG(v) = deg(v) (vì G là đ th con c a H)
⇒ v i c p đ nh không li n k trong G: a, b ta có: deg(a) + deg(b) < n
i u này mâu thu n v i gi thi t: deg(v) + deg(w) ≥ n; ∀ v, w không li n k
1.3 nh lý Pósa v chu trình Hamilton
Gi s G không có chu trình Hamilton, ta có th gi s r ng n u thêm m t c nh b t k
n i 2 đ nh không k nhau c a G thì đ th thu đ c s có m t chu trình Hamilton th G
nh v y đ c g i là có tính ch t c c đ i
N u G không th a tính ch t c c đ i, ta có thêm vào G các c nh m i b ng cách n i các
c p đ nh không k nhau, lúc đó ta s thu đ c m t đ th không có chu trình Hamilton có tính
ch t c c đ i nh đã mô t trên và v n không nh h ng gì đ n gi thuy t c a bài toán ban
đ u
Do tính ch t c c đ i c a đ th nên gi a hai đ nh tu ý không k nhau c a đ th luôn
t n t i m t đ ng Hamilton n i hai đ nh này Có th đó là đ ng Hamilton thu đ c t chu trình Hamilton xu t hi n khi thêm vào m t c nh n i hai đ nh không k nhau này
Ký hi u ( là m t đ ng Hamilton (không khép kín) trong G Cho
Ta có n u vk đ c n i v i v
)
n v v
v1, 2,L,1
Trang 24d n ≥ Gi s (v1,v2,L,v n) là m t đ ng Hamilton n i v1 v i vn Ký hi u các đ nh lân c n c a v1 là v i
S
i i
≤ n , n u không G có chu trình Hamilton theo
đ nh lý Dirac Ký hi u là b c cao nh t trong các đ nh c a G có b c nh h n ∆
−
≥
−
n u
d i ph n trên ta đã ch ng minh đ c khi đó ph i k v i
un Ta đ c chu trình Hamilton:
1 0−
i u
(u1u2Lu i0−1u n u n−1Lu i0) là đi u vô lý Mâu thu n này đã
Trang 25Ü Qui t c 2: N u đ nh v có b c là 2 (d( )v =2) 2 c nh t i v đ u ph i thu c chu trình Hamil
thì cton
g ch a b
c 4: Trong quá trình xây d ng chu trình Hamilton, sau khi đã l y 2 c nh t i
xóa m
có deg(a) = 3, cho nên ta ch gi
Ü Qui t c 3: Chu trình Hamilton khôn t k chu trình con th c s nào
không có chu trình Hamilton vì: deg(f) = 1
m t chu trình con th t s trong
H V y đ th không có chu trình Hamilton
Trang 26+ x v1Lv k (1) + v1Lv i x v i+1Lv k
+ v1Lv k x (3)
Ta s ch ng m uα1 không có d ng (1) và (2) thì ph i có d ng (3)
Th t v y:
G x
⇒ 1 + N u α1 không có d ng (1)
+ N u α1 không có d ng (2) ⇒xv i∉G v i i= k ⇒v i x∈G; i= k
k i
⇒v1x∈ = ngh a là α1 có d ng (3)
1 M đ u
mô hình b ng đ th có tr ng s ó là đ th mà uyên ho c th c) g i là tr ng s ng v i c nh đó Ví
ta c t h th ng đ ng hàng không M i thành ph đ c bi u di n b ng m t
đ nh, m i chuy n bay là m t c nh n i 2 đ nh t ng ng N u trong bài toán đang xét ta c n
Trong th c t , nhi u bài toán có th
m i c nh c a nó đ c gán m t con s (ng
d n mô hình m
Trang 27tính đ n kho ng câch gi a câc thănh ph thì ta c n gân cho m i c nh c a đ th c s trín kho ng câch gi a câc thănh ph t ng ng N u ta quan tđm đ n th i gian c a m i chuy n bay thì ta s gân câc th i l ng năy cho m i c nh c a đ th c s
th bi u di n kho ng câch gi a m t s thănh ph c a n c M
BostonKhoảng cách (dặm)
1855 908834
722760
595
1090New York
Miami
AtlantaLos Angeles
2 Thu t toân tìm đ ng đi ng n nh t
2.1 Thu t toân Dijkstra tìm đ ng đi ng n nh t
Có m t s thu t toân tìm đ ng đi n
đđy ta s s d ng thu t toân Dijkstra, do
3Tính đ dăi c a đ ng đi ng n nh t gi a 2 đ nh a vă z
trong đ th có tr ng s sau:
1 3
4 2
h t t a đ n z b ng câch th
ât tri n m t s ý t ng giúp ta hi u thu t toân Dijkstra d dăng
h n Ta s tìm đ dăi c a đ ng đi ng n nh t t a đ n câc đ nh k ti p cho đ n khi đ t t i
đ nh z Xu t phât t đ nh a, ta th y ch có 2 đ nh b vă d liín thu c v i a Nín ch có hai đ ng
Bđy gi , ta tìm đ nh ti p theo g n a nh t trong t t c câc đ ng đi qua a vă d ng
đi ng n nh t t a t i b lă ab v i đ dăi 3 ng đi ng n nh t t a đ n e lă a, b, e v i đ dăi 5
ng đi ng n nh t t a đ n c lă a, b, c v i đ dăi 6 Khi đó ta có 2 đ ng đi t a đ n z qua c
vă e lă
i đ dăi 6
Ví d trín đê minh h a nh ng nguyín t c chung dùng trong thu t toân Dijkstra
ng đi ng n nh t t đ nh a đ n z có th tìm đ c b ng câch th tr c ti p Nh ng ph ng phâp năy không âp d ng đ c đ i v i đ th có nhi u c nh
Bđy gi , ta nghiín c u băi toân tìm đ dăi c a đ ng đi ng n nh t gi a a vă z trong
đ n đ th liín thông, vô h ng vă có tr ng s
Trang 28Trang 27
n khi tìm đ c đ dài ng n nh t t a đ n z
n trong m
các đ nh thu c t p đ c bi t M t đ nh đ c thêm vào t p này là đ nh có nhãn n
hác b ng ∞ Ta ký hi u:
n Chúng ta b t
g cách thêm vào đ nh u ∉ Sk−1 mà có nhãn n
, vn = z và tr ng s w(vi,vj) v i w(vivj) = ∞ n u vivj
{Ban đ đ c kh i t o sao cho nhãn c a a b ng không, các đ nh khác b ng
∞; S = φ
thu c S có L(u) nh nh t = S ∪ {u}
Thu t toán Dijkstra đ c th c hi n b ng cách tìm đ dài c a đ ng đi ng n nh t t a
đ n đ nh đ u tiên, t a đ n đ nh th hai, cho đ
Thu t toán này d a trên m t dãy các b c l p M t t p đ c bi t các đ nh đ c xây
ch ch a các đ nh thu c Sk (t c là các đ nh đã thu c t p đ c bi t cùng v i đ nh u)
Gi s v là m t đ nh không thu c Sk s a nhãn c a v, ta ch n Lk(v) là đ dài c a
đ ng đi ng n nh t t a đ n v và ch ch a các đ nh thu c Sk ý r ng đ ng đi ng n nh
Thu t toán Dijkstra có th đ c trình bày d i d ng gi i mã (pseudo - code) nh sau:
THU T TOÁN DIJKS
Procedure Dijkstra (G: đ n đ th liên thông có tr ng s d ng);
{G có các đ nh a = vo; v , v , 1 2
không là m t c nh c a G}
for i = 1 to n
L(vi): = ∞ L(a): = 0 S: = φ
u các nhãn }
Trang 29) < L(v) then
nh nh t, và s a đ i nhãn c a các đ nh không end
Ví d 17: Dùng thu t toán Dijkstra, tìm đ ng đi
ng n nh t t
if L(u) + w(uvL(v): = L(u) + w(uv) {thêm vào S đ nh có nhãn thu c S}
5 6
5 6
+ Trong các đ nh không thu c S = {a} và k v i a có 2 đ nh b và c Ta có:
L(b) = min {∞, L(a) + w(ab)} = min {∞, 0 + 4} = 4
6 5
2(a)+ Trong các đ nh không thu c S mà k v i c có 3 đ nh là b, d, e
4
2 6 5
e 12(a,c)
d 8(a,c,b)
+ Trong các đ nh k v i d mà không thu c S, có: e,z
Trang 303 2
IV Thu t toán Hedetniemi
M t trong nh ng thu t toán tìm đ ng đi ng n nh t ngoài thu t toán Dijkstra nh đã
Tr c khi gi i thi u thu
c
b
e
da
2105
50
3
250
2
320
1 Phép c ng ma tr n Hedetniemi
40152
Trang 31Cho A = (aij)m x n và B = (bij)n x p Khi đó t ng ma tr n Hedetniemi là ma tr n C = (Cij)m x p v i Cij = min{ai1 + b1j, ai2 + b2j, , ain + bnj} Ký hi u: C = A B
302
210
405
430
210
430
= ⎜⎜
⎛
302
210
401
10
401
10
401
510
, A3, cho đ n AK sao cho: AK ≠ AK−1 và AK = AK+1
Ta có đ nh lý sau: đ i v i đ n đ th liên thông có tr ng s g m n đ nh, n u ma tr n detn mi AK ≠ AK và AK = AK+1 thì A bi u di n t p h p các đ dài đ ng đi ng n nh t
gi a hai đ nh c a G khi đó ph n t aij c a AK là đ dài đ ng đi ng n nh t gi a hai đ nh vi
ba
5 2
2
320
50
3
40152
2105
Trang 32210637
956053
623502
47320
301524
210635
856053
523502
845320
16 a
) 2 ( 15 ) 3 (
Trang 33v i nhau Có l n b t hòa v i nhau, h tìm cách làm các đ ng khác đ n gi ng sao cho các
đ ng này đôi m t không giao nhau H có th c hi n đ c ý đ nh đó không?
Ta xây d ng đ th G = (V, E) mô t đ y đ các thông tin c a bài toán:
+ nh: L y các đi m trên m t ph ng hay trong không gian t ng ng v i các gia
đình và các gi ng n c i t ng c a bài toán đây đ c chia làm hai lo i là gia đình và
đ n gi ng n c Ta có đ th G nh sau:
i v j
Trang 34Khi ta k t lu n K3,3 là đ th không ph ng, ta c ng đã gi i quy t đ c bài toán "ba
nhà ba gi ng" Không có đ ng đi nào n i m i nhà v i 3 gi ng mà không c t nhau Hay nói cách khác, ba nhà ba gi ng nói trên không th n i v i nhau trên m t m t ph ng mà không c t nhau
3 Công th c Euler
Ta th y khi bi u di n ph ng m t đ th , ta chia m t ph ng thành các mi n, k c mi n
vô h n Euler đã ch ng minh r ng t t c các bi u di n ph ng c a m t đ th đ u chia m t
ph ng thành cùng m t s mi n nh nhau Euler c ng đã tìm ra m i liên h gi a s mi n; s
đ nh và s c nh c a m t đ th ph ng
3.1 nh lý 1 (Công th c Euler v đ th ph ng - liên thông)
Cho G là m t đ n đ th ph ng liên thông v i e c nh, v đ nh G i r là s mi n
(regions) trong bi u di n ph ng c a G Khi đó:
r = e − v + 2 hay v − e + r = 2
Ch ng minh: Gi s ta đã có bi u di n ph ng c a G Ta s ch ng minh b ng cách xây d ng m t dãy các đ th con c a G: G1, G2, , Ge = G b ng cách ghép thêm m t c nh vào đ th b c tr c i u này là làm đ c vì ta có th l y b t k m t c nh c a G đ đ c
G1 Sau đó, ta nh n đ c Gn+1 t Gn b ng cách thêm vào Gn m t c nh có m t đ nh liên thu c
v i Gn và m t đ nh khác liên thu c v i c nh m i đó i u này luôn làm đ c do G là liên thông Ta s nh n đ c đ th G sau e b c (vì G có e c nh)
Trang 35- Gi s đã có rn = en − vn + 2 G i an+1bn+1 là c nh ghép thêm vào Gn đ có Gn+1 Khi đó có hai tr ng h p có th x y ra:
+ N u c hai đ nh an+1 và bn+1đ u thu c Gn:
an+1
Do Gn+1 là đ th ph ng nên an+1bn+1 không th c t b t c c nh nào c a Gn+1 ⇒ an+1
và bn+1 ph i n m trên biên c a mi n chung R ⇒ c nh an+1bn+1 chia R ra làm hai mi n con Khi đó: rn+1 = rn + 1; en+1 = en + 1
=+
v
Thay (1) vào (2), ta đ c:
636
3322
−
≥
⇒+
−
e
Trang 36v
Thay (1) vào (2), ta đ c:
424
222
−
≥
⇒+
−
e
Ví d 6: Ch ng minh r ng K3,3 là không ph ng
Gi i: Ta có K3,3 không có chu trình đ dài 3 H n n a, K3,3 có 6 đ nh và 9 c nh ⇒ e =
9 và 2v − 4 = 8 i u này không th a h qu 2 ⇒ K3,3 không ph ng
3r≤ e
Gi s G là m t đ th ph ng, liên thông có e c nh, v đ nh mà đ u có
i u này có ngh a là m i đ nh c a G s là đ u mút c a ít nh t 6 c nh và m i c nh liên thu c v i 2 đ nh T đó, ta có:
V
w∈
∀( )w ≥6
Trang 37Cho G là m t đ n đ th ph ng v i e c nh, v đ nh và có thành ph n liên thông
G i r là s mi n (regions) trong bi u di n ph ng c a G Khi đó: k≥1
v − e + r = k + 1
ây chính là công th c Euler cho m t đ th ph ng b t k
(Sinh viên t ch ng minh - xem nh bài t p)
4 nh lý Kuratowski
nh lý Kuratowski cho ta đi u ki n c n và đ đ m t đ th là ph ng nh lý này liên quan đ n phép phân chia s c p c a đ th
Nh c l i phép phân chia s c p c a đ th : Cho G là m t đ th , n u b đi c nh ab c a
G và thêm vào đ nh m i c cùng v i 2 c nh ac và cb Phép toán đó g i là phép phân chia s
c p Hai đ th nh n đ c t cùng m t đ th b ng m t dãy các phép phân chia s c p đ c
N u ta xóa đ nh a c a G, đ ng th i xóa đi c nh ab, ac, ad thì ta đ c m t đ th con
c d e f g h
N u ta b đi các c nh bc, cd, fg, gh ta đ c đ th con c a G:
a b
c d
g
h
a b
c
d e f g h
th này đ ng phôi v i K3,3 ⇒ G không ph ng