Lu ng trong m ng... Lu ng trong m ng... ng ch khác nhau 1 bit... nh lý 3Kenneth Appeland – Wolfgang Haken... th G2không có chu trình c ng nh đ ng đi Euler.. th H1 không có chu trình c ng
Trang 1B GIAO THÔNG V N T I
B MÔN: KHOA H C MÁY TÍNH
Trang 2Trình bày nh ng ki n th c c s c a đ th nh đ ng đi, chu trình, s liên thông c a
đ th, ng d ng các bài toán tin h c trên đ th bao g m các ph ng pháp bi u di n đ th, các thu t toán tìm ki m c b n trên đ th, đ th Euler và đ th Haminton, các chu trình và thu t toán tìm cây khung nh nh t, các thu t toán tìm đ ng đi ng n nh t trên các d ng đ th khác nhau, bài toán lu ng c c đ i trong m ng
g Ng i biên so n: Ph m Tu n t – BM Khoa h c máy tính, Khoa CNTT
1.3 ng đi, chu trình, đ th liên thông 2 1
1.3.1 nh ngha đ ng đi, chu trình 1
Trang 32.2 Danh sách c nh (cung) 1
T h c: Cài đ t th t c xác đ nh ma tr n k /tr ng s cho
đ th
3.1 Tìm ki m theo chi u sâu trên đ th 1
3.2 Tìm ki m theo chi u r ng trên đ th 1
3.3 Tìm đ ng đi và ki m tra tính liên thông 3
T h c: Cài đ t th t c tìm ki m, đ ng đi trên ma tr n k
5.4.2 Thu t toán Kruskal 1,5 1
T h c: Cài đ t th t c tìm cây khung nh nh t Kruskal/
6.3 ng đi ng n nh t trong đ th tr ng s không âm 1,5 2
6.4 ng đi trong đ th không có chu trình 1,5
T h c: Cài đ t th t c tìm đ ng đi ng n nh t trên đ th
có tr ng s không âm
7.1 M ng Lu ng trong m ng Bài toán lu ng c c đ i 1
7.1.1 nh ngha m ng, lu ng trên đ th 0,5
Trang 4Sinh viên ph i tham d t i thi u 75% s gi lên l p và ph i đ t các đi m thành ph n X1,
X2 t 4,0 tr lên (X1là đi m chuyên c n, X2là đi m trung bình các bài ki m tra)
i m h c ph n (Z) đ c tính theo công th c: Z = 0.3X + 0.7Y
Trong đó:
• X: đi m quá trình, b ng trung bình c ng c a X1, X2
• Y: đi m bài ki m tra k t thúc h c ph n
• Hình th c thi: tr c nghi m trên máy tính; th i gian: 60 phút
Thang đi m đánh giá: A+
m Ngày phê duy t: 30/06/2014
n C p phê duy t: Khoa CNTT
P Tr ng B môn
Nguy n V n Th y
Trang 5M C L C
CH NG 1 CÁC KHÁI NI M C B N C A LÝ THUY T TH ……….1
nh ngh a th ………1
1.1.1 n đ th……… 1
1.1.2 Gi đ th ………2
1.1.3 a đ th……… 3
Các thu t ng c b n……… 4
Đ ng đi Chu trình Đ th liên thông………5
1.3.1 nh ngha đ ng đi, chu trình……… 5
1.3.2 th liên thông……… 6
M t s d ng Đ th đ c bi t……….8
CH NG BI U DI N TH TRÊN MÁY VI TÍNH……… … 13
2 Ma tr n k Ma tr n tr ng s ……… 13
2.2 Danh sách c nh cung……….14
2 Danh sách k ……… 15
CH NG 3 CÁC THU T TOÁN TÌM KI M TRÊN TH VÀ NG D NG… 18
Tìm ki m theo chi u sâu trên Đ th ……… 18
Tìm ki m theo chi u r ng trên Đ th ………20
Tìm Đ ng đi và ki m tra Tính liên thông……… 22
CH NG 4 TH EULER VÀ TH HAMILTON……….24
4 Đ th Euler………24
4.1.1 nh ngha đ th Euler……… 24
4.1.2 Các đ nh lý………25
Đ th Hamilton 27 4.2.1 nh ngha đ th Hamilton……… 27
4.2.2 Các đ nh lý………28
CH NG CÂY VÀ CÂY KHUNG C A TH 31
5 Cây và các tính ch t c b n c a cây……… 31
5 Cây khung c a Đ th ………32
5 Xây d ng t p chu trình c b n c a cây……….34
5.4 Cây khung nh nh t……… 35
5.4 Thu t toán Kruskal……… 35
Thu t toán Prim………37
CH NG BÀI TOÁN NG I NG N NH T……… 41
Các khái ni m m đ u……… 41
ng đi ng n nh t xu t phát t m t đ nh, t các c p đ nh……….42
6.2.1 ng đi ng n nh t xu t phát t m t đ nh……… 42
6.2.2 ng đi ng n nh t xu t phát t m t đ nh t i các đ nh……… 43
ng đi ng n nh t trong đ th tr ng s không âm………44
ng đi trong đ th không có chu trình……….47
CH NG BÀI TOÁN LU NG C C I……….53
M ng Lu ng trong m ng Bài toán lu ng c c đ i……… 53
7.1.1 nh ngha m ng, lu ng trên đ th………53
7.1.2 Bài toán lu ng c c đ i………53
Lát c t ng t ng lu ng nh lý Ford Fulkerson………54
7.2.1 Lát c t……….54
7.2.2 nh lý………55
Gi i thu t lu ng c c đ i……… 57
M t s bài toán lu ng t ng quát……… 1
Trang 6CH NG I CÁC KHÁI NI M C B N C A LÝ THUY T TH
Lý thuy t đ th là m t lnh v c đã có t lâu và có nhi u ng d ng hi n đ i Nh ng t
t ng c b n c a lý thuy t đ th đ c đ xu t vào nh ng n m đ u c a th k 18 b i nhà toán
h c l i l c ng i Th y S Lenhard Eurler Chính ông là ng i đã s d ng đ th đ gi i bài toán n i ti ng v các cái c u thành ph Konigsberg
th đ c s d ng đ gi i các bài toán trong nhi u lnh v c khác nhau Ch ng h n,
đ th có th s d ng đ xác đ nh các m ch vòng trong v n đ gi i tích m ch đi n Chúng ta
có th phân bi t các h p ch t hóa h c h u c khác nhau v i cùng công th c phân t nh ng khác nhau v c u trúc phân t nh đ th Chúng ta có th xác đ nh hai máy tính trong m ng
có th trao đ i thông tin đ c v i nhau hay không nh mô hình đ th c a m ng máy tính
th có tr ng s trên các c nh có th s d ng đ gi i các bài toán nh : Tìm đ ng đi ng n nh t
gi a hai thành ph trong m ng giao thông Chúng ta c ng còn s d ng đ th đ gi i các bài toán v l p lch, th i khóa bi u, và phân b t n s cho các tr m phát thanh và truy n hình…
1 1 NH NGH A TH
th là m t c u trúc r i r c bao g m các đ nh và các c nh n i các đ nh này Chúng
ta phân bi t các lo i đ th khác nhau b i ki u và s l ng c nh n i hai đ nh nào đó c a đ
th có th hình dung đ c t i sao l i c n đ n các lo i đ th khác nhau, chúng ta s nêu ví
d s d ng chúng đ mô t m t m ng máy tính Gi s ta có m t m ng g m các máy tính và các kênh đi n tho i (g i t t là kênh tho i) n i các máy tính này Chúng ta có th bi u di n các
v trí đ t náy tính b i các đi m và các kênh tho i n i chúng b i các đo n n i, xem hình 1
Hình 1 S đ m ng máy tính
Nh n th y r ng trong m ng hình 1, gi a hai máy b t k ch có nhi u nh t là m t kênh tho i
n i chúng, kênh tho i này cho phép liên l c c hai chi u và không có máy tính nào l i đ c
n i v i chính nó S đ m ng máy cho trong hình 1 đ c g i là đ n đ th vô h ng Ta đi
đ n đ nh ngha sau
1.1.1 n đ th
nh ngha 1: n đ th vô h ng G = (V,E) bao g m V là t p các đ nh, và E là
t p các c p không có th t g m hai ph n t khác nhau c a V g i là các c nh
Trong tr ng h p gi a hai máy tính nào đó th ng xuyên ph i truy n t i nhi u thông tin
ng i ta ph i n i hai máy nàu b i nhi u kênh tho i M ng v i đa kênh tho i gi a các máy
đ c cho trong hình 2
Trang 7Hình 2 S đ m ng máy tính v i đa kênh tho i
1.1.2 Gi đ th
nh ngha 2: a đ th vô h ng G= (V, E) bao g m V là t p các đ nh, và E là t p
các c p không có th t g m hai ph n t khác nhau c a V g i là các c nh Hai c nh
e 1 và e 2 đ c g i là c nh l p n u chúng cùng t ng ng v i m t c p đ nh
Hình 3 S đ m ng máy tính v i kênh tho i thông báo
Rõ ràng m i đ n đ th đ u là đa đ th, nh ng không ph i đa đ th nào c ng là đ n đ th, vì trong đa đ th có th có hai (ho c nhi u h n) c nh n i m t c p đ nh nào đó
Trong m ng máy tính có th có nh ng kênh tho i n i m t máy nào đó v i chính nó (ch ng
h n v i m c đính thông báo) M ng nh v y đ c cho trong hình 3 Khi đó đa đ th không
th mô t đ c m ng nh v y, b i vì có nh ng khuyên (c nh n i m t đ nh v i chính nó) Trong tr ng h p nàychúng ta c n s d ng đ n khái ni m gi đ th vô h ng, đ c đ nh
ngha nh sau:
nh ngha 3: Gi đ th vô h ng G = (V, E) bao g m V là t p các đ nh và E là
t p các c p không có th t g m hai ph n t (không nh t thi t ph i khác nhau) c a V
g i là c nh C nh e đ c g i là khuyên n u nó có d ng e = (u, u)
Trang 8Hình 4 M ng máy tính v i kênh tho i m t chi u Các kênh tho i trong m ng máy tính có th ch cho phép truy n tin theo m t chi u Ch ng
h n, trong hình 4 máy ch Hà N i ch có th nh n tin t các máy đ a ph ng, có m t s máy ch có th g i tin đi, còn các kênh tho i cho phép truy n tin theo c hai chi u đ c thay
th b i hai c nh có h ng ng c chi u nhau
Ta đi đ n đ nh ngha sau
nh ngha 4: n đ th có h ng G = (V, E) bao g m V là t p các đ nh và E là
t p các c p có th t g m hai ph n t khác nhau c a V g i là các cung
N u trong m ng có th có đa kênh tho i m t chi u, ta s ph i s d ng đ n khái ni m đa đ th
Trong các ph n ti p theo ch y u chúng ta s làm vi c v i đ n đ th vô h ng và đ n đ th
có h ng Vì v y, đ cho ng n g n, ta s b qua tính t đ n khi nh c đ n chúng
Trang 91.2 CÁC THU T NG C B N
Trong m c này chúng ta s trình bày m t s thu t ng c b n c a lý thuy t đ th Tr c tiên,
ta xét các thu t ng mô t các đ nh và c nh c a đ th vô h ng
nh ngha 1: Hai đ nh u và v c a đ th vô h ng G đ c g i là k nhau n u (u,v)
là c nh c a đ th G N u e = (u, v) là c nh c a đ th ta nói c nh này là liên thu c
v i hai đ nh u và v, ho c c ng nói là n i đ nh u và đ nh v, đ ng th i các đ nh u và v s
đ c g i là các đ nh đ u c a c nh (u, v)
có th bi t có bao nhiêu c nh liên thu c v i m t đ nh, ta đ a vào đ nh ngha sau:
nh ngha 2: Ta g i b c c a đ nh v trong đ th vô h ng là s c nh liên thu c v i
nó và s ký hi u là deg(v)
Hình 1 th vô h ng Thí d 1 Xét đ th cho trong hình 1, ta có
deg(a) = 1, deg(b) = 4, deg(c) = 4, deg(f) = 3,
deg(d) = 1, deg(e) = 3, deg(g) = 0
nh b c 0 g i là đ nh cô l p nh b c 1 đ c g i là đ nh treo Trong ví d trên đ nh g là
đ nh cô l p, a và d là các đ nh treo B c c a đ nh có tính ch t sau:
Trang 10Do deg(v) là ch n v i v là đ nh trong U nên t ng th nh t trên là s ch n T đó suy
ra t ng th hai (chính là t ng b c c a các đ nh b c l ) c ng ph i là s ch n, do t t c các s h ng c a nó là s l , nên t ng này ph i g m m t s ch n các s h ng Vì v y,
s đ nh b c l ph i là s ch n
Ta xét các thu t ng t ng t cho đ th vô h ng
nh ngha 3: N u e = (u, v) là cung c a đ th có h ng G thì ta nói hai đ nh u và
v là k nhau, và nói cung (u, v) n i đ nh u v i đ nh v ho c c ng nói cung này là đi ra
kh i đ nh u và vào đ nh v nh u(v) s đ c g i là đ nh đ u (cu i) c a cung (u,v)
T ng t nh khái ni m b c, đ i v i đ th có h ng ta có khái ni m bán b c ra và bán b c vào c a m t đ nh
nh ngha 4: Ta g i bán b c ra (bán b c vào) c a đ nh v trong đ th có h ng là
s cung c a đ th đi ra kh i nó (đi vào nó) và ký hi u là deg +
(v) (deg - (v))
Hình 2 th có h ng Thí d 3 Xét đ th cho trong hình 2 Ta có
deg - (a)=2, deg - (b)=2, deg - (c)=2, deg - (d)=2, deg - (e) = 2
deg + (a)=3, deg + (b)=1, deg + (c)=1, deg + (d)=3, deg + (e)=2
Do m i cung (u, v) s đ c tính m t l n trong bán b c vào c a đ nh v và m t l n trong bán
b c ra c a đ nh u nên ta có:
nh lý 2 Gi s G = (V, E) là đ th có h ng Khi đó:
2m = deg ( ) + = deg ( )
R t nhi u tính ch t c a đ th có h ng không ph thu c vào h ng trên các cung c a nó Vì
v y, trong nhi u tr ng h p s thu n ti n h n n u ta b qua h ng trên các cung c a đ th
th vô h ng thu đ c b ng cách b qua h ng trên các cung đ c g i là đ th vô h ng
t ng ng v i đ th có h ng đã cho
1.3 NG I CHU TRÌNH TH LIÊN THÔNG
1.3.1 nh ngh a đ ng đi, chu trình
nh ngha 1: ng đi đ dài n t đ nh u đ n đ nh v, trong đó n là s nguyên
d ng, trên đ th vô h ng G = (V, E) là dãy x 0 , x 1 ,…, x n-1 , x n ; trong đó u = x 0 , v =
x n , (x i , x i+1 ) E, i = 0, 1, 2,…, n-1 ng đi nói trên còn có th bi u di n d i d ng
Trang 11dãy các c nh: (x 0 , x 1 ), (x 1 , x 2 ), …, (x n-1 , x n ) nh u g i là đ nh đ u, còn đ nh v g i là
đ nh cu i c a đ ng đi ng đi có đ nh đ u trùng v i đ nh cu i (t c là u = v) đ c
g i là chu trình ng đi hay chu trình đ c g i là đ n n u nh không có c nh nào
b l p l i
Thí d 1 Trên đ th vô h ng cho trong hình 1: a, d, c, f, e là đ ng đi đ n đ dài 4 Còn d,
e, c, a không là đ ng đi, do (c,e) không ph i là c nh c a đ th Dãy b, c, f, e, b là chu trình
đ dài 4 ng đi a, b, e, d, a, b có đ dài là 5 không ph i là đ ng đi đ n, do c nh (a, b) có
m t trong nó 2 l n
Hình 1 ng đi trên đ th Khái ni m đ ng đi và chu trình trên đ th có h ng đ c đ nh ngha hoàn toàn t ng t
nh trong tr ng h p đ th vô h ng, ch khác là ta có chú ý đ n h ng trên các cung
nh ngha 2: ng đi đ dài n t đ nh u đ n đ nh v, trong đó, n là s nguyên
d ng, trên đ th có h ng G = (V, A) là dãy x 0 , x 1 ,…, x n-1 , x n trong đó u = x 0 , v = x n , (xi, x i+1 ) E, i = 0, 1, 2,…, n-1 ng đi nói trên còn có th bi u di n d i d ng dãy các cung (x 0 , x 1 ), (x 1 , x 2 ), …, (x n-1 , x n ) nh u g i là đ nh đ u, còn đ nh v g i là đ nh
cu i c a đ ng đi ng đi có đ nh đ u trùng v i đ nh cu i (t c là u = v) đ c g i
là chu trình ng đi hay chu trình đ c g i là đ n n u nh không có c nh nào b
l p l i
Thí d 2 Trên đ th có h ng cho trong hình 1: a, d, c, f, e là đ ng đi đ n đ dài 4 Còn d,
e, c, a không là đ ng đi, do (c,e) không ph i là c nh c a đ th Dãy b, c, f, e, b là chu trình
đ dài 4 ng đi a, b, e, d, a, b có đ dài là 5 không ph i là đ ng đi đ n, do c nh (a, b) có
m t trong nó 2 l n
Xét m t m ng máy tính M t câu h i đ t ra là hai máy tính b t k trong m ng này có th trao
đ i thông tin đ c v i nhau ho c là tr c ti p qua kênh n i chúng ho c thông qua m t ho c vài máy tính trung gian trong m ng? N u s d ng đ th đ bi u di n m ng máy tính này (trong
đó các đ nh c a đ th t ng ng v i các máy tính, còn các c nh t ng ng v i các kênh n i) câu h i đó đ c phát bi u trong ngôn ng đ th nh sau: T n t i hay không đ ng đi gi a
Trang 12
Hình 2 th G và H
nh ngha 4: th con c a đ th G = (V, E) là đ th H = (W, F), trong đó W ⊂V
và F ⊂ E
Trong tr ng h p đ th là không liên thông, nó s chia thành m t s đ th con liên thông đôi
m t không có đ nh chung Nh ng đ th con liên thông nh v y ta s g i là các thành ph n
liên thông c a đ th
Thí d 4 th H trong hình 2 g m 3 thành ph n liên thông H1, H2, H3
Trong m ng máy tính có th có nh ng máy (Nh ng kênh n i) mà s h ng hóc c a nó s nh
h ng đ n vi c trao đ i thông tin trong m ng Các khái ni m t ng ng v i tình hu ng này
đ c đ a ra trong đ nh ngha sau
nh ngha 7: th có h ng G = (V, A) đ c g i là liên thông y u n u đ th vô
h ng t ng ng v i nó là vô h ng liên thông
Rõ ràng n u đ th là liên thông m nh thì nó c ng là liên thông y u, nh ng đi u ng c l i là không luôn đúng, nh ch ra trong ví d d i đây
Thí d 6 Trong hình 3 đ th G là liên thông m nh, còn H là liên thông y u nh ng không là liên thông m nh
Trang 13
Hình 3 th liên thông m nh G và đ th liên thông y u H
M t câu h i đ t ra là khi nào có th đ nh h ng các c nh c a m t đ th vô h ng liên thông
đ có th thu đ c đ th có h ng liên thông m nh? Ta s g i đ th nh v y là đ th đ nh
h ng đ c nh lý d i đây cho ta tiêu chu n nh n bi t m t đ th có là đ nh h ng đ c hay không
h ng t u đ n v và ng c l i suy ra (u, v) ph i n m trên ít nh t m t chu trình
i u ki n đ Th t c sau đây cho phép đ nh h ng các c nh c a đ th đ thu đ c
đ th có h ng liên thông m nh Gi s C là m t chu trình nào đó trong đ th nh
h ng các c nh trên chu trình này theo m t h ng đi vòng theo nó N u t t c các
c nh c a đ th là đã đ c đ nh h ng thì k t thúc th t c Ng c l i, ch n e là m t
c nh ch a đ nh h ng có chung đ nh v i ít nh t m t trong s các c nh đã đ nh h ng Theo gi thi t tìm đ c chu trình C’ ch a c nh e nh h ng các c nh ch a đ c
đ nh h ng c a C’ theo m t h ng d c theo chu trình này (không đ nh h ng l i các
c nh đã có đ nh h ng) Th t c trên s đ c l p l i cho đ n khi t t c các c nh c a
đ th đ c đ nh h ng Khi đó ta thu đ c đ th có h ng liên thông m nh
1.4 M T S D NG TH C BI T
Trong m c này ta xét m t s đ n đ th vô h ng d ng đ c bi t xu t hi n trong nhi u v n đ
ng d ng th c t
th đ y đ : th đ y đ n đ nh, ký hi u b i K n , là đ n đ th vô h ng mà gi a hai đ nh b t k c a nó luôn có c nh n i
Hình 1 th đ y đ K3, K4, K5
Trang 14th đ y đ Kncó t t c n(n-1)/2 c nh, nó là đ n đ th có nhi u c nh nh t
th vòng: th vòng C n , n≥3 g m n đ nh v 1 , v 2 , .v n và các c nh (v 1 ,v 2 ), (v 2 ,v 3 ) (v n-1 ,v n ), (v n ,v 1 )
ng ch khác nhau 1 bit Hình 4 cho th y Q n v i n=1,2,3
Hình 4 th l p ph ng Q1, Q2, Q3
th hai phía: n đ th G=(V,E) đ c g i là hai phía n u nh t p đ nh V c a
nó có th phân ho ch thành hai t p X và Y sao cho m i c nh c a đ th ch n i m t
đ nh nào đó trong X v i m t đ nh nào đó trong Y Khi đó ta s s d ng ký hi u G=(X
⊂Y, E) đ ch đ th hai phía v i t p đ nh X ⊂Y
Trang 15nh lý sau đây cho phép nh n bi t m t đ n đ th có ph i là hai phía hay không
nh lý 1 n đ th là đ th hai phía khi và ch khi nó không ch a chu trình đ dài l
ki m tra xem m t đ th liên thông có ph i là hai phía hay không có th áp d ng th t c sau Cho v là m t đ nh b t k c a đ th t X={v}, còn Y là t p các đ nh k c a v Khi đó các đ nh k c a các đ nh trong Y ph i thu c vào X Ký hi u t p các đ nh nh v y là T Vì th
n u phát hi n X Y # thì đ th không ph i là hai phía, k t thúc ng c l i, đ t X=X T
M t đi u đáng l u ý n u đ th là ph ng thì luôn có th v nó trên m t ph ng v i các c nh n i
là các đo n th ng không c t nhau ngoài đ nh (ví d xem cách v K4 trong hình 6)
nh n bi t xem m t đ th có ph i là đ th ph ng có th s d ng đ nh lý Kuratovski, mà đ phát bi u nó ta c n m t s khái ni m sau: Ta g i m t phép chia c nh (u,v) c a đ th là vi c
lo i b c nh này kh i đ th và thêm vào đ th m t đ nh m i w cùng v i hai c nh (u,w), (w, u) Hai đ th G(V,E) và H=(W,F) đ c g i là đ ng c u n u chúng có th thu đ c t cùng
m t đ th nào đó nh phép chia c nh
nh lý 2 (Kuratovski) th là ph ng khi và ch khi nó không ch a đ th con đ ng c u
v i K 3,3 ho c K 5
Trang 16Trong tr ng h p riêng, đ th K3,3 ho c K5 không ph i là đ th ph ng Bài toán v tính
ph ng c a đ th K3,3 là bài toán đ n i ti ng v ba c n h và ba h th ng cung c p n ng
l ng cho chúng: C n xây d ng h th ng đ ng cung c p n ng l ng v i m i m t c n h nói trên sao cho chúng không c t nhau
M t trong nh ng bài toán d a trên đ th ph ng là tô màu b n đ B n đ đ c mô t d i
d ng đ th ph ng, m i vùng mi n trong b n đ bi u di n b ng m t đ nh, hai vùng mi n k nhau có màu tô khác nhau th đ c tô màu sao cho c p đ nh k nhau có màu tô khác nhau, hãy tìm s màu ít nh t đ tô đ th
nh lý 3(Kenneth Appeland – Wolfgang Haken) S màu tô đ th ph ng không l n h n
b n
Bi u di n ph ng c a đ th s chia m t ph ng ra thành các mi n, trong đó có th có c mi n không b ch ng Thí d , bi u di n ph ng c a đ th cho trong hình 7 chia m t ph ng ra thành
6 mi n R1, R2, .R6
Hình 7 Các mi n t ng ng v i bi u di n ph ng c a đ th Euler đã ch ng minh đ c r ng các cách bi u di n ph ng khác nhau c a m t đ th đ u chia
m t ph ng ra thành cùng m t s mi n ch ng minh đi u đó, Euler đã tìm đ c m i liên h
Trang 17BÀI T P CH NG 1
Bài 1 Lo i đ th nào đ c dùng đ mô hình các con đ ng gi a các thành ph trong
nh ng tr ng h p sau:
a) N u gi a hai thành ph có con đ ng thì gi a chúng s đ c n i b i m t c nh
b) M i c nh bi u di n cho m i con đ ng gi a hai thành ph
c) M i c nh bi u di n cho m i con đ ng n i hai thành ph và có khuyên bi u
di n đ ng n i quanh thành ph đó Bài 2 S d ng đ th nào bi u di n k t qu thi đ u gi a các đ i theo th th c vòng tròn
m t l t,hai l t S c nh c a đ th trong m i tr ng h p Bài 3 T n t i đ n đ th có 15 đ nh, m i đ nh b c 5
Bài 4 V đ n đ th vô h ng có 5 đ nh, bao g m 3 đ nh r nhánh, m t đ nh cô l p nh còn l i b c m y, s c nh c a đ th là bao nhiêu
Bài 5 Ch ng minh trong đ n đ th vô h ng không ch a chu trình thì luôn có ít nh t 2
Bài 11 Cho đ th vô h ng 10 đ nh, 16 c nh Tìm s mi n m t ph ng chia b i đ th
Bài 12 Tìm s màu tô đ th :
a Kn
b Cn
c Wn
d Km,n
Trang 192) T ng các ph n t trên dòng i, c t j c a ma tr n k chính b ng b c c a đ nh i (đ nh j)
3) N u ký hi u ajp , i,j=1, 2, ,n là ph n t c a ma tr n Ap
=A.A .A , p th a s Khi
đó ajp , i,j=1, 2, ,n cho ta s đ ng đi khác nhau t đ nh i đ n đ nh j qua p-1 đ nh trung gian
Ma tr n k c a đ th có h ng đ c đ nh ngha m t cách hoàn toàn t ng t
Thí d 2 th có h ng G1cho trong hình 1 có ma tr n k là ma tr n sau:
Chú ý: Trên đây chúng ta ch xét đ n đ th Ma tr n k c a đa đ th có th xây
d ng hoàn toàn t ng t , ch khác là thay vì ghi 1 vào v trí a[i,j] n u (i,j) là c nh c a
đ th, chúng ta s ghi k là s c nh n i hai đ nh i, j
Trong r t nhi u v n đ ng d ng c a lý thuy t đ th, m i c nh e=(u,v) c a đ th
đ c gán v i m t con s c(e) (còn vi t là c(u,v) g i là tr ng s c a c nh e th trong tr ng h p nh v y đ c g i là đ th có tr ng s Trong tr ng h p đ th có
tr ng s , thay vì mà tr n k , đ bi u di n đ th ta s d ng ma tr n tr ng s
C= {c[i,j], i,j=1, 2, .,n} v i c[i,j]=c(i,j) n u (i,j)∈ E và c[i,j]= n u (i,j)∉ E trong đó s , tu t ng tr ng h p c th , có th đ c đ t b ng m t trong các giá tr sau: 0, +∞, -∞
u đi m l n nh t c a ph ng pháp bi u di n đ th b ng ma tr n k (ho c ma tr n
tr ng s ) là đ tr l i câu h i: Hai đ nh u,v có k nhau trên đ th hay không, chúng ta
ch ph i th c hi n m t phép so sánh nh c đi m l n nh t c a ph ng pháp này là: không ph thu c vào s c nh c a đ th, ta luôn ph i s d ng n2 đ n v b nh đ l u
tr ma tr n k c a nó
2.2 DANH SÁCH C NH (CUNG)
Trong tr ng h p đ th th a (đ th có s c nh m tho mãn b t đ ng th c: m<6n)
ng i ta th ng dùng cách bi u di n đ th d i d ng danh sách c nh
Trong cách bi u di n đ th b i danh sách c nh (cung) chúng ta s l u tr danh sách
t t c các c nh (cung) c a đ th vô h ng (có h ng) M t c nh (cung) e=(x,y) c a đ th s
Trang 20t ng ng v i hai bi n Dau[e], Cuoi[e] nh v y, đ l u tr đ th ta c n s d ng 2m đ n v
b nh ù Nh c đi m c a cách bi u di n này là đ xác đ nh nh ng đ nh nào c a đ th là k
v i m t đ nh cho tr c chúng ta ph i làm c m phép so sánh (khi duy t qua danh sách t t c các c nh c a đ th)
Chú ý: Trong tr ng h p đ th có tr ng s ta c n thêm m đ n v b nh đ l u tr tr ng s
c a các c nh
Thí d 3 Danh sách c nh (cung) c a đ th G (G1) cho trong hình 1 là:
Dau Cuoi Dau Cuoi
Khi đó vòng l p th c hi n v i m i m t ph n t trong danh sách này theo th t các
ph n t đ c s p x p trong nó s đ c vi t nh sau: for u Ke(v) do
Trong r t nhi u thu t toán làm vi c v i đ th chúng ta th ng xuyên ph i th c hi n các thao tác: Thêm ho c b t m t s c nh Trong tr ng h p này c u trúc d li u dùng trên là không thu n ti n Khi đó nên chuy n sang s d ng danh sách k liên k t (Linked Adjancency List)
Thí d 4 Danh sách k c a các đ th trong hình 1 đ c mô t trong hình sau:
Trang 21nh đ u
nh đ u
Hình 2 Danh sách k c a đ th vô h ng G và có h ng G1 cho trong hình 1
ý r ng trong cách bi u di n này chúng ta c n ph i s d ng c m+n đ n v b nh Trong các thu t toán mô t các ph n ti p theo hai c u trúc danh sách k và ma tr n
tr ng s đ c s d ng th ng xuyên
Trang 22BÀI T P CH NG 2
Bài 1 A là ma tr n k c a đ th Ma tr n Anmô t cho cái gì
Bài 2 N u hai đ th đ ng c u v i nhau thì ma tr n k c a chúng gi ng nhau không Bài 3 Cho hai đ th có cùng 5 đ nh C c u b c c a chúng nh sau: 1 đ nh b c 3, 3 đ nh
b c 2, 1 đ nh b c 1 Hai đ th đ ng c u không
Bài 4 Bi u di n ma tr n k c a đ th K4, C4, W4, K2,3, Q3
Bài 5 Bi u di n ma tr n k c a đ th :
a G={V={u1,u2,u3,u4,u5},E={(u1,u2),(u2,u3),(u3,u4),(u4,u5)}
b G={V={u1,u2,u3,u4,u5},E={(u1,u2),(u2,u3),(u3,u4),(u4,u5), (u5,u1)}
c G={V={u1,u2,u3,u4,u5},E={(u1,u2),(u2,u3),(u3,u4), (u3,u5),(u4,u5),(u4,u1), (u5,u1)}
d G={V={u1,u2,u3,u4,u5, u6,u7,u8},E={(u1,u2),(u2,u3),(u3,u4), (u3,u5), (u5,u6),(u6,u7),
(u6,u8)}
Bài 7 Tìm s đ ng đi đ n đ dài n gi a hai đ nh không k nhau trong đ th K3,3v i n =
2,3,4
Bài 8 Tìm s đ ng đi đ dài 3 gi a hai đ nh u1, u4trong đ th bài 5a
Bài 9 T n t i đ ng đi đ n t m t đ nh b c l này t i đ nh b c l khác trong đ th vô
h ng
Trang 23CH NG 3 CÁC THU T TOÁN TÌM KI M TRÊN TH VÀ NG D NG
R t nhi u thu n toán trên đ th đ c xây d ng trên c s duy t t t c các đ nh c a đ
th sao cho m i đ nh c a nó đ c vi ng th m đúng m t l n Vì v y, vi c xây d ng nh ng thu t toán cho phép duy t m t cách h th ng t t c các đ nh c a đ th là m t v n đ quan
tr ng thu hút s quan tâm nghiên c u c a nhi u tác gi Nh ng thu t toán nh v y chúng ta s
g i là thu t toán tìm ki m trên đ th Trong m c này chúng ta s gi i thi u hai thu t toán tìm
ki m c b n trên đ th: Thu t toán tìm ki m theo chi u sâu (Depth Firt Search) và Thu t
toán tìm ki m theo chi u r ng (Breadth First Search) và ng d ng c a chúng vào vi c gi i
m t s bài toán trên đ th
Trong m c này chúng ta s xét đ th vô h ng G=(V,E), v i đ nh n và m c nh
Chúng ta s quan tâm đ n vi c đánh giá hi u qu c a các thu t toán trên đ th, màm t trong
nh ng đ c tr ng quan tr ng nh t là đ ph c t p tính toán, t c là s phép toán mà thu t toán
c n ph i th c hi n trong tình hu ng x u nh t đ c bi u di n nh hàm c a kích th c đ u vào
c a bài toán Trong các thu t toán trên đ th, đ u vào là đ th G=(V,E), vì v y, kích th c
c a bài toán là s đ nh n và s c nh m c a đ th Khi đó đ ph c t p tính toán c a thu t toán
s đ c bi u di n nh là hàm c a hai bi n s f(n,m) là s phép toán nhi u nh t c n ph i th c
hi n theo thu t toán đ i v i m i đ th n đ nh và m c nh Khi so sánh t c đ t ng c a hai hàm
nh n giá tr không âm f(n) và g(n) chúng ta s s d ng ký hi u sau:
N u đ ph c t p tính toán c a thu t toán là O(g(n)) thì ta s còn nói là nó đòi h i th i gian tính c O(g(n))
3.1 TÌM KI M THEO CHI U SÂU TRÊN TH
Ý t ng chính c a thu t toán có th trình bày nh sau Ta s b t đ u tìm ki m t m t đ nh v0nào đó c a đ th Sau đó ch n u là m t đ nh tu ý k v i v0 và l p l i quá trình đ i v i u
b c t ng quát, gi s ta đang xét đ nh v N u nh trong s các đ nh k v i v tìm đ c đ nh w
là ch a đ c xét thì ta s xét đ nh này (nó s tr thành đã xét) và b t đ u t nó ta s b t đ u quá trình tìm ki m còn n u nh không còn đ nh nào k v i v là ch a xét thì ta nói r ng đ nh này đã duy t xong và quay tr l i ti p t c tìm ki m t đ nh mà tr c đó ta đ n đ c đ nh v (n u v=v0, thì k t thúc tìm ki m) Có th nói nôm na là tìm ki m theo chi u sâu b t đ u t
đ nh v đ c th c hi n trên c s tìm ki m theo chi u sâu t t t c các đ nh ch a xét k v i v Quá trình này có th mô t b i th t c đ qui sau đây:
Trang 24If Chuaxet[u] then DFS(u);
End; (*dinh v da duyet xong*)
Khi đó, tìm ki m theo chi u sâu trên đ th đ c th c hi n nh thu t toán sau:
Begin
(*Initialization*) for v V do Chuaxet[v]:=true;
đánh giá đ ph c t p tính toán c a th t c, tr c h t nh n th y r ng s phép toán c n th c
hi n trong hai chu trình c a thu t toán (hai vòng for ch ng trình chính) là c n Th t c
DFS ph i th c hi n không quá n l n T ng s phép toán c n pha th c hi n trong các th t c này là O(n+m), do trong các th t c này ta ph i xét qua t t c các c nh và các đ nh c a đ th
V y đ ph c t p tính toán c a thu t toán là O(n+m)
Thí d 1 Xét đ th cho trong hình 1 g m 13 đ nh, các đ nh đ c đánh s t 1 đ n 13 nh sau:
Trang 25
Hình 1 th các đ nh đ c gán th t Khi đó các đ nh c a đ th đ c đánh s l i theo th t chúng đ c th m theo th t c tìm
ki m theo chi u sâu mô t trên nh hình 2 Gi thi t r ng các đ nh trong danh sách k c a
đ nh v (Ke(v)) đ c s p x p theo th t t ng d n c a ch s
Hình 2 Ch s m i (trong ngo c) c a các đ nh đ c đánh l i theo th t chúng đ c th m trong thu t toán tìm ki m theo chi u sâu
Thu t toán tìm ki m theo chi u sâu trên đ th vô h ng trình bày trên d dàng có th mô t
l i cho đ th có h ng Trong tr ng h p đ th có h ng, th tc DFS(v) s cho phép th m
t t c các đ nh u nào mà t v có đ ng đi đ n u ph c t p tính toán c a htu t toán là O(n+m)
ý r ng trong thu t toán tìm ki m theo chi u sâu đ nh đ c th m càng mu n s càng
s m tr thành đã duy t xong i u đó là h qu t t y u c a vi c các đ nh đ c th m s đ c
k t n p vào trong ng n x p (STACK) Tìm ki m theo chi u r ng trên đ th, n u nói m t cách
ng n g n, đ c xây d ng trên c s thay th ng n x p (STACK) b i hàng đ i (QUEUE) V i
s c i biên nh v y, đ nh đ c th m càng s m s càng s m tr thành đã duy t xong (t c là càng s m d i kh i hàng đ i) M t đ nh s tr thành đã duy t xong ngay sau khi ta xét xong
Chuaxet[v]:=false;
While QUEUE<> do begin
p⇐ QUEUE ;
Trang 26Tham_dinh(p);
For u Ke(v) do
If Chuaxet[u] them begin QUEUE⇐ u;
Chuaxet[u]:=false; end;
Trang 273.3 TÌM NG I VÀ KI M TRA TÍNH LIÊN THÔNG
Trong m c này ta xét ng d ng các thu t toán tìm ki m mô t trong các m c tr c vào
vi c gi i bài toán c b n trên đ th: bài toán v tìm đ ng đi và bài toán v xác đ nh tính liên thông c a đ th
a) Bài toán tìm đ ng đi gi a hai đ nh:
Gi s s và t là hai đ nh nào đó c a đ th Hãy tìm đ ng đi t s đ n t Nh trên đã phân tích, th t c DFS(s) (BS(s)) s cho th m t t c các đ nh thu c cùng m t thành ph n liên thông v i s vì v y, sau khi th c hi n xong th t c, n u Chuaxet[t]=true, thì đi u đó có ngha
là không có đ ng đi t s đ n t, còn n u Chuaxet[t]=false thì t thu c cùng thành ph n liên thông v i s, hay nói m t cách khác: t n t i đ ng đi t s đ n t Trong tr ng h p t n t i
đ ng đi, đ ghi nh n đ ng đi, ta dùng thêm bi u th c Truoc[v] đ ghi nh n đ nh đi tr c
đ nh v trong đ ng đi tìm ki m t s đ n v Khi đó, đ i v i th t c DFS(v) c n s a đ i câu
l nh ì trong nó nh sau:
If Chuaxet[u] then Begin
Truoc[u]:=v;
DFS(u);
End;
Còn đ i v i th t c BFS(v) c n s a đ i câu l n if trong nó nh sau:
If Chuaxet [u] then
Begin
QUEUE⇐ u;
Chuaxet[u]:=false;
Truoc[u]:=p; End;
Chú ý: ng đi tìm đ c theo thu t toán tìm ki m theo chi u r ng là đ ng đi ng n nh t (theo s c nh) t s đ n t i u này suy tr c ti p t th t th m đ nh theo thu t toán tìm ki m theo chi u r ng
b) Tìm các thành ph n liên thông c a đ th: Hãy cho bi t đ th g m bao nhiêu thành ph n liên thông và t ng thành ph n liên thông c a nó là g m nh ng đ nh nào
Do th t c DFS(v)/BFS(s) cho phép th m t t c các đ nh thu c cùng m t thành ph n liên thông v i s, nên s thành ph n liên thông c a đ th b ng s l n g i đ n th t c này V n
đ còn l i là cách ghi nh n các đ nh trong t ng thành ph n liên thông Ta dùng thêm bi n Index[v] đê ghi nh n ch s c a thành ph n liên thông ch a đ nh v, và dùng thêm bi n Inconnect đ đ m s thành ph n liên thông (bi n này c n kh i t o giá tr 0) Th t c Tham_dinh(v) trong các th t c DFS(v) và BFS(v) có nhi m v gán: Index[v]:=connect, còn câu l n if trong các ch ng trình chính g i đ n các th t c này c n đ c s a l i nh sau:
Inconnect:=0;
If Chuaxet[v] then Begin
Inconnect:=Inconnect+1;
DFS(v); (*BFS(v)*) End;
Trang 28Bài 5 Tìm th t đ nh duy t theo chi u r ng trong đ th bài 1
Bài 6 Tìm th t đ nh duy t theo chi u r ng, b t đ u t đ nh a trong đ th bài 2
Bài 7 Tìm th t đ nh duy t theo chi u sâu, b t đ u t đ nh e trong đ th bài 3
Bài 8 Cho đ th có h ng G = (V={a,b,c,d,e,f,g}, E={(a,b); (a,c); (a,d); (b,c); (b,e); (c,d); (c, f); (c, g); (d,g); (e,f); (f,g)} Tìm đ ng đi ng n nh t theo s c nh t a t i g Bài 9 Cho đ th có h ng G = (V={a,b,c,d,e,f}, E={(a,b); (a,e); (b,e); (c, b); (c,d); (d,c); (e,d); (e,b); (f,a); (f,e)} Tìm s liên thông m nh c a G
Trang 29CH NG 4 TH EULER VÀ TH HAMILTON
Trong ch ng này chúng ra s nghiên c u hai d ng đ th đ c bi t là đ th Euler và
đ th Hamilton D i đây, n u không có gi i thích b sung, thu t ng đ th đ c dùng đ
ch chung đa đ th vô h ng và có h ng, và thu t ng c nh s dùng đ ch chung c nh c a
đ th vô h ng c ng nh cung c a đ th có h ng
4 1 TH EULER
4.1.1 nh ngha đ th Euler
nh ngha 1 Chu trình đ n trong đ th G đi qua m i c nh c a nó m t l n đ c
g i là chu trình Euler ng đi đ n trong G đi qua m i c nh c a nó m t l n đ c
g i là đ ng đi Euler th đ c g i là đ th Euler n u nó có chu trình Euler, và
g i là đ th n a Euler n u nó có đ ng đi Euler
Rõ ràng m i đ th Euler luôn là n a Euler, nh ng đi u ng c l i không luôn đúng
Thí d 1 th G1 trong hình 1 là đ th Euler vì nó có chu trình Euler a, e, c, d, e, b, a
th G3 không có chu trình Euler nh ng nó có đ ng đi Euler a, c, d, e, b, d, a, b, vì th G3 là
đ th c a Euler th G2không có chu trình c ng nh đ ng đi Euler
Hình 1 th G1, G2, G3 Thí d 2 th H2 trong hình 2 là đ th Euler vì nó có chu trình Euler a, b, c, d, e, a th
H3 không có chu trình Euler nh ng nó có đ ng đi Euler c, a, b, c, d, b vì th H3 là đ th n a Euler th H1 không có chu trình c ng nh đ ng đi Euler
Hình 2 th H1, H2, H3
i u ki n c n và đ đ m t đ th là m t đ th Euler đ c Euler tìm ra vào n m 1736 khi ông
gi i quy t bài toán hóc búa n i ti ng th gi i th i đó v b y cái c u thành ph Konigsberg
và đây là đ nh lý đ u tiên c a lý thuy t đ th
Trang 30G là đ n đ th G i v là m t đ nh nào đó c a G Ta s xây d ng theo qui n p đ ng
đi v v1 v2 , trong đó v1 là đ nh k v i v, còn v i i≥1 ch n vi+1 # vi-l(có th
ch n vi+1 nh v y là vì deg(vi) ≥2) Do t p đ nh c a G là h u h n , nên sau m t s h u
h n b c ta ph i quay l i m t đ nh đã xu t hi n tr c đó G i đ nh đ u tiên nh th là
vk Khi đó, đo n c a đ ng đi xây d ng n m gi a hai đ nh vklà 1 chu trình c n tìm
Ch ng minh đ nh lý:
C n Gi s G là đ th Euler t c là t n t i chu trình Euler P trong G Khi đó c m i
l n chu trình P đi qua m t đ nh nào đó c a G b c c a đ nh đó t ng lên 2 m t khác m i
c nh c a đ th xu t hi n trong P đúng m t l n, suy ra m i đ nh c a đ th đi u có b c
ch n
Quy n p theo s đ nh và s c nh c a G Do G liên thông và deg(v) là s ch n nên b c c a m i đ nh c a nó không nh h n 2 T đó theo b đ G ph i ch a chu trình
C N u C đi qua t t c các c nh c a G thì nó chính là chu trình Euler Gi s C không
đi qua t t c các c nh c a G Khi đó lo i b kh i G t t c các c nh thu c C ta thu đ c
m t đ th m i H v n có b c là ch n Theo gi thi t qui n p, trong m i thành ph n liên thông c a H đi u tìm đ c chu trình Euler Do G là liên thông nên trong m i thành
ph n c a H có ít nh t m t đ nh chung v i chu trình C Vì v y, ta có th xây d ng chu trình Euler trong G nh sau: b t đ u t m t đ nh nào đó c a chu trình C, đi theo các
c nh c a C ch ng nào ch a g p ph i đ nh không cô l p c a H N u g p ph i đ nh nh
v y ta s đi theo chu trình Euler c a thành ph n liên thông c a H ch a đ nh đó Sau đó
l i ti p t c đi theo c nh c a C cho đ n khi g p ph i đ nh không cô l p c a H thì l i theo chu trình Euler c a thành ph n liên thông t ng ng trong Hv.v… (xem hình 3) Quá trình s k t thúc khi ta tr v đ nh xu t phát , t c là thu đ c chu trình đi qua m i
c nh c a đ th đúng m t l n
Hình 3 Minh ho cho ch ng minh đ nh lý 1
Trang 31H qu 2 th vô h ng liên thông G là n a Euler khi và ch khi nó có không quá 2 đ nh
b c l
Ch ng minh Th c v y , n u G có không quá 2 đ nh b c l thì s đ nh b c l c a nó
ch có th là 0 ho c 2 N u G không có đ nh b c l thì theo đ nh lý 1, nó là đ th Euler Gi s G có 2 đ nh b c l là u và v G i H là đ th thu đ c t G b ng cách thêm vào G m t đ nh m i w và hai c nh (w,u) và(w,v) Khi đó t t c các đ nh c a H
đi u có b c ch n, vì th theo đ nh lý 1, nó có chu trình Euler C Xoá b kh i chu trình này đ nh w và hai c nh k nó ta thu đ c đ ng đi Euler trong đ th G
Gi s G là đ th Euler, t ch ng minh đ nh lý ta có th t c sau đ tìm chu trình Euler trong
G
Procedure Euler_Cycle;
Begin
STACK:= ; CE:= ; STACK⇐ u;
While STACK<> do Begin
X:=top(STACK); (* x la phan tu dau STACK)
If Ke(x)<> then Begin
Y:=dinh dau tien trong danh sach Ke(x);
STACK⇐ y;
(* loai bo canh (x,y) khoi do thi *) Ke(x):=Ke(x)\ y} ;
Ke(y):=Ke(y)\{x} ; End
Else Begin
Thu t toán Flor
Xu t phát t m t đ nh u nào đó c a G ta đi theo các c nh c a nó m t cách tu ý ch
c n tuân th 2 qui t c sau:
(1) Xoá b c nh đã đi qua đ ng th i xoá b c nh ng đ nh cô l p t o thành
(2) m i b c ta ch đi qua c u khi không còn cách l a chon nào khác
Ch ng minh tính đúng đ n c a thu t toán
Tr c tiên ta ch ra r ng th t c trên có th th c hi n m i b c Gi s ta đi đ n m t
đ nh v nào đó, khi đó n u v#u thì đ th con còn l i H là liên thông và ch a đúng hai
Trang 32đ nh b c l là v và u Theo h qu trong H có đ ng đi Euler P t v t i u Do vi c xoá
b c nh đ u tiên c a đ ng đi P không làm m t tính liên thông c a H, t đó suy ra th
t c có th th c hi n m i b c N u v=u thì l p lu n trên s v n đúng ch ng nào
v n còn c nh k v i u
Nh v y ch còn ph i ch ra th t c trên d n đ n đ ng đi Euler Th c v y trong G không th còn c nh ch a đi qua khi mà ta s d ng c nh cu i cùng k v i u (trong
tr ng h p ng c l i, vi c lo i b m t c nh nào đó k v i m t trong s nh ng c nh còn l i ch a đi qua s d n đ n m t đ th không liên thông, và đi u đó là mâu thu n
v i gi thi t ii)
Ch ng minh t ng t nh trong đ nh lý 1 ta thu đ c k t qu sau đây cho đ th có h ng
nh lý 2 th có h ng liên thông m nh là đ th Euler khi và ch khi deg+
m i thành ph m t l n, r i tr v n i b t đ u
nh ngha 2 ng đi qua t t c các đ nh c a đ th m i đ nh đúng m t l n đ c
g i là đ ng đi Hamilton Chu trình b t đ u t m t đ nh v nào đó qua t t c các đ nh còn l i m i đ nh đúng m t l n r i quay tr v v đ c g i là chu trình Hamilton th
G đ c g i là đ th Hamilton n u nó ch a chu trình Hamilton và g i là đ th n a Hamilton n u nó có đ ng đi Hamilton
Rõ ràng đ th Hamilton là n a Hamilton, nh ng đi u ng c l i không còn đúng
Thí d 3 Trong hình 4: G3 là Hamilton, G2là n a Hamilton còn G1không là n a Hamilton
Hình 4 th Hamilton G3, n a Hamilton G2 , và G1
Cho đ n nay vi c tìm m t tiêu chu n nh n bi t đ th Hamilton v n còn là m , m c dù đây là
m t v n đ trung tâm c a lý thuy t đ th H n th n a, cho đ n nay c ng ch a có thu t toán
hi u qu đ ki m tra m t đ th có là Hamilton hay không Các k t qu thu đ c ph n l n là
đi u ki n đ đ m t đ th là đ th Hamilton Ph n l n chúng đi u có d ng "n u G có s c nh
đ l n thì G là Hamilton" M t k t qu nh v y đ c phát bi u trong đ nh lý sau đây
Trang 33li n sau đ nh v’ (k v i v) vì r ng khi đó có th thay dãy đ ng đi v p w v’ w’ v b i v v’ w w’ v b ng cách đ o ng c
đo n c a chu trình n m gi a w và v’ T đó suy ra là s đ nh c a đ th G’ không k
v i w là không nh h n s đ nh k v i v (t c là ít nh t c ng là b ng n/2+k), đ ng th i
s đ nh c a G’ k v i w ít ra là ph i b ng n/2+k Do không có đ nh nào c a G’ v a không k , l i v a k v i w, cho nên t ng s đ nh c a đ th G’ (G’ có n+k đ nh) không
ít h n n+2k Mâu thu n thu đ c đã ch ng minh đ nh lý
nh lý sau là t ng quát hoá c a đ nh lý Dirak cho đ th có h ng:
nh lý 4 Gi s G là đ có h ng liên thông v i n đ nh N u deg + (v)≥n/2, deg – (v) ≥ n/2,
v thì G là Hamilton
Có m t s d ng đ th mà ta có th bi t khi nào là đ th Hamilton M t ví d nh v y là đ
th đ u lo i th đ u lo i là đ th có h ng mà trong đó hai đ nh b t k c a nó đ c n i
v i nhau b i đúng m t cung Tên đ u lo i xu t hi n nh v y vì đ th nh v y có th dùng đ
bi u di n k t qu thi đ u bóng chuy n, bóng bàn hay b t c m t trò ch i nào mà không cho phép hoà Ta có đ nh lý sau:
Trang 34Thu t toán li t kê t t c các chu trình Hamilton c a đ th:
Hình 6 th và cây li t kê chu trình Hamilton c a nó theo thu t toán quay lui
Trong tr ng h p đ th có không quá nhi u c nh thu t toán trên có th s d ng đ ki m tra
đ th có ph i là Hamilton hay không