Một số dạng đồ thị đặc biệt

Một phần của tài liệu Bài toán cây bao trùm trên đồ thị và ứng dụng (Trang 26)

a/ Đồ thị đầy đủ

Đồ thị đầy đủ là đơn đồ thị vơ hƣớng mà giữa hai đỉnh bất kỳ của nĩ luơn cĩ một cạnh nối. Đồ thị đầy đủ n đỉnh ký hiệu là Kn và cĩ tất cả n(n-1) / 2 cạnh. Các đồ thị đầy đủ K3, K4 và K5 vẽ ở hình 2.8.

K3 K4 K5

Hình 2.8. Đồ thị đầy đủ

b/ Đồ thị hai phần

Đơn đồ thị G = (V, E) gọi là đồ thị hai phần nếu cĩ thể phân hoạch tập đỉnh V= A ∪ B (A ∩ B = Ø) sao cho cả hai đồ thị con cảm sinh bởi A và B đều là đồ thị rỗng, nghĩa là G chỉ cĩ các cạnh nối một đỉnh nào đĩ trong A với một đỉnh nào đĩ trong B. Ta viết G = (A ∪ B, E) để chỉ đồ thị hai phần với tập đỉnh A ∪ B. Cách phân tích một đồ thị thành hai phần cĩ thể khơng duy nhất.

Hình 2.9. Đồ thị hai phần

Đồ thị hai phần gặp rất nhiều mơ hình trong thực tế. Chẳng hạn quan hệ hơn nhân giữa tập những ngƣời nam và những ngƣời nữ, việc sinh viên chọn trƣờng, thầy giáo chọn tiết học vv…

c/ Đồ thị vịng Đồ thị vịng Cn, n ≥ 3, gồm n đỉnh v1, v2, …, vn và các cạnh (v1, v2), (v2, v3),… (vn-1, vn), (vn, v1). Đồ thị vịng C3, C4, C5, C6 cho trong hình 2.10 Hình 2. Đồ thị vòng C3, C4, C5, C6 C3 C4 C5 C6 Hình 2.10. Đồ thị vịng C3, C4, C5, C6 d/ Đồ thị bánh xe

Đồ thị Wn thu đƣợc từ Cn bằng cách bổ sung vào một đỉnh mới nối với tất cả các đỉnh của Cn.

Hình 3. Đồ thị bánh xe W3, W4, W5, W6

W3 W4 W5 W6

Hình 2.11. Đồ thị bánh xe W3, W4, W5, W6

e/ Đồ thị lập phƣơng

Đồ thị lập phƣơng n đỉnh Qn là đồ thị với các đỉnh biểu diễn 2n

xâu nhị phân độ dài n. Hai đỉnh của nĩ gọi là kề nhau nếu nhƣ hai xâu nhị phân tƣơng ứng chỉ khác nhau 1 bit. Hình 2.12 cho thấy Qn với n=1,2,3.

Hình 4. Đồ thị lập phương Q1, Q2, Q3

Q1 Q2 Q3

Hình 2.12. Đồ thị lập phƣơng Q1, Q2, Q3 2.2 Biểu diễn đồ thị và tìm kiếm trên đồ thị

2.2.1 Biểu diễn đồ thị

a/ Ma trận kề.

Nếu các đỉnh của đồ thị đƣợc đánh số liên tiếp từ 1 đến n thì đồ thị cĩ thể đƣợc biểu diễn bởi một ma trận vuơng cấp n, gọi là ma trận kề. Cho đồ thị G = (V, E), ma trận kề của đồ thị G đƣợc định nghĩa là ma trận M= [mij ] với

1 nếu đỉnh i kề với đỉnh j, mi j=

Cũng cĩ thể dùng ma trận kề để biểu diễn đồ thị cĩ hƣớng: mij =1 nếu cĩ cung đi từ i tới j. Ma trận kề của đồ thị vơ hƣớng là đối xứng, nhƣng ma trận kề của đồ thị cĩ hƣớng nĩi chung khơng đối xứng.

Đồ thị vơ hƣớng, và đồ thị cĩ hƣớng ở hình 2.13 cĩ các ma trận kề lần lƣợt là: Hình 2.13. Biểu diễn ma trận kề 0 1 1 1 0 0 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 = M 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 = N b/ Danh sách cạnh (cung) Trƣờng hợp đồ thị thƣa (đồ thị cĩ số cạnh m ≤ 6n, trong đĩ n là số đỉnh) ta dùng cách biểu diễn đồ thị dƣới dạng danh sách cạnh (cung).

Trong cách biểu diễn này mỗi cạnh (cung) e = (x, y) của đồ thị sẽ đƣợc lƣu giữ nhờ hai biến nguyên Dau (e), Cuoi (e). Nhƣợc điểm của cách biểu diễn này là khĩ xác định các đỉnh của đồ thị kề với một đỉnh cho trƣớc.

3 1 7 4 2 5 6

Danh sách cạnh (cung) của đồ thị vẽ ở hình 2.13 nhƣ sau :

c/ Danh sách kề.

Trong nhiều ứng dụng của lý thuyết đồ thị, cách biểu diễn đồ thị dƣới dạng danh sách kề là cách biểu diễn thích hợp và hay đƣợc dùng nhất. Theo cách biểu diễn này, ứng với mỗi đỉnh u của đồ thị ta sẽ lƣu giữ danh sách các đỉnh kề u : Ke(u) = { v∈ V(G) : ( u,v) ∈ E(G)}.

2.2.2 Các thuật tốn tìm kiếm trên đồ thị

Nhiều thuật tốn trên đồ thị đƣợc xây dựng trên cơ sở duyệt (thăm, xét…) tất cả các đỉnh của đồ thị theo thứ tự sao cho mỗi đỉnh đƣợc thăm đúng một lần (khơng trùng lặp và khơng bỏ sĩt). Những thuật tốn nhƣ vậy sẽ đƣợc gọi là các thuật tốn tìm kiếm (Search Algorithms) trên đồ thị. Trong mục này chúng ta sẽ giới thiệu hai thuật tốn tìm kiếm cơ bản trên đồ thị: Đĩ là thuật tốn tìm kiếm theo chiều sâu (Depth First Search) và thuật tốn tìm kiếm theo chiều rộng (Breadth First Search)

a/ Tìm kiếm theo chiều sâu (DFS = Depth First Search).

Ý tƣởng chính của thuật tốn cĩ thể trình bày nhƣ sau. Ta sẽ bắt đầu tìm kiếm từ một đỉnh v0 nà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 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

Xét đồ thị cho trong hình 2.14 gồm 13 đỉnh, các đỉnh đƣợc đánh số từ 1 đến 13 nhƣ sau:

1(1) 2(2) 3(9) 7(8) 5 (5) 8(6) 9(7) 6(4) 4 (3) 13(10) 12 (11) 10(12) 11(13)

Hình 2.14. Tìm kiếm theo chiều sâu

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 tốn tìm kiếm theo chiều sâu. 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ố.

Thuật tố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ủ tục 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.

b/ Tìm kiếm theo chiều rộng ( BFS = Breadth first Search ).

Để ý rằng trong thuật tố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 tất cả các đỉnh kề (chƣa đƣợc thăm) với nĩ.

Xét đồ thị xét trong hình 2.15, thứ tự thăm đỉnh của đồ thị theo thuật tốn tìm kiếm theo chiều rộng đƣợc ghi trong ngoặc.

1(1) 2(2) 3 (11) 7 (6) 5 (9) 8(12) 9(13) 6 (5) 4(3) 13(10) 12 (4) 10(7) 11(8)

Hình 2.15. Tìm kiếm theo chiều rộng 2.3 Đồ thị Euler và đồ thị Hamilton

2.3.1 Đồ thị Euler

Định nghĩa 2.10: 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 cĩ chu trình Euler và gọi là đồ thị nửa Euler nếu 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ị G1 Đồ thị G2 Hình 2.16. Đồ thị Euler

Trong hình 2.16 đồ thị G1 là đồ thị Euler vì nĩ cĩ chu trình Euler a, e, c, d, e, b, a. Đồ thị G2 khơng cĩ chu trình Euler nhƣng cĩ đƣờng đi Euler a, c, d, e, b, d, a, b vì thế G2 là đồ thị nửa Euler.

Đ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 tốn bài tốn hĩc búa nổi tiếng thế giới thời đĩ về bảy cái cầu ở thành phố Konigdberg và đây là định lý đầu tiên của lý thuyết đồ thị.

Định lý 2.4 (Euler). Đồ thị vơ hướng liên thơng G là đồ thị Euler khi và chỉ khi mọi đỉnh của G đều là cĩ bậc chẵn.

Để chứng minh định lý trƣớc hết ta chứng minh bổ đề.

Bổ đề 2.1: Nếu bậc của mỗi đỉnh của đồ thị G khơng nhỏ hơn 2 thì G chứa chu trình.

Chứng minh: Nếu G cĩ cạnh lặp thì khẳng định của bổ đề là hiển nhiên. Vì vậy giả sử G 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 … a b e c d a b d e c

Trong đĩ v1 là đỉnh kề với v, 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 đỉ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 vk là chu trình cần tìm.

Chứng minh định lý:

Điều kiện 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ị đều là bậc chẵn.

Điều kiện đủ: Quy nạp theo số đỉnh và số cạnh của G. Do G liên thơng và m(v) là số chẵn nên bậc của nĩ khơng nhỏ hơn 2. Từ đĩ theo bổ đề 2.1 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ỏ G tất cả các cạnh thuộc C ta thu đƣợc một đồ thị mới H vẫn là bậc chẵn. Theo giả thiết qui nạp, trong mỗi thành phần liên thơng của H đề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 H. Quá trình 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ệ quả 2.1: Đồ thị vơ hướng liên thơng G là nửa Euler khi và chỉ khi nĩ 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ĩ cĩ thể là 0 hoặc 2. Nếu G khơng cĩ đỉnh bậc lẻ thì theo định lý Euler 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, v) và (w, u). Khi đĩ tất cả các

đỉnh của H đều là bậc chẵn, vì thế theo định lý Euler. Ta cĩ chu trình Euler C. Xĩa bỏ khỏi chu trình này đỉnh w và hai cạnh kề với nĩ ta thu đƣợc đƣờng đi Euler trong đồ thị G.

2.3.2 Đồ thị Hamilton

Định nghĩa 2.11: Đườ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à 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.

Đồ thị G1 Đồ thị G2

Hình 2.17. Đồ thị Hamilton

Trong hình 2.17: G1 là nửa Hamilton cịn G2 là Hamilton.

Định lý 2.5: (Dirak 1952) Đơn đồ thị vơ hướng G với n≥2 đỉnh, mỗi đỉnh cĩ bậc khơng nhỏ hơn n/2 là đồ thị Hamilton.

Chứng minh: Thêm vào đồ thị G k đỉnh mới và nối chúng với tất cả các đỉnh của G. Giả sử k là số nhỏ nhất cần thêm vào để cho đồ thị thu đƣợc G‟ là đồ thị Hamilton. Ta sẽ chỉ ra rằng k=0.

Thực vậy, giả sử ngƣợc lại là k>0. Ký hiệu v, p, w, …, v. là chu trình Hamilton trong G‟, trong đĩ v,w là đỉnh của G cịn P là một trong số các đỉnh mới.

a b c d a b d c

Khi đĩ w khơng kề với v vì nếu ngƣợc lại ta khơng cần sử dụng p và điều đĩ là mâu thuẫn với giả thiết k nhỏ nhất. Hơn nữa đỉnh (w‟ chẳng hạn) kề với w khơng thể đi liền sau đỉnh v‟ (kề với v) vì rằng khi đĩ cĩ thể thay.

v  p w …. v’ w‟… v bởi v  v‟….  w  w‟ … v

Bằng cách đảo ngƣợc đoạn chu trình nằm trong 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 do đĩ đã chứng minh đƣợc định lý.

2.4 Cây và cây bao trùm của đồ thị

Đồ thị vơ hƣớng liên thơng khơng cĩ chu trình gọi là cây. Khái niệm cây lần đầu tiên đƣợc Cayley đƣa ra vào 1857, khi ơng sử dụng chúng để đếm một dạng cấu trúc phân tử của các hợp chất hĩa học trong hĩa học hữu cơ. Cây cịn đƣợc sử dụng rộng rãi trong rất nhiều lĩnh vực khác nhau, đặc biệt trong tin học, cây đƣợc sử dụng để xây dựng các thuật tốn tổ chức các thƣ mục, các thuật tốn cất giữ, truyền dữ liệu và tìm kiếm.

Định nghĩa 2.12: Ta gọi cây là một đồ thị vơ hướng liên thơng và khơng cĩ chu trình. Đồ thị vơ hướng gồm k thành phần liên thơng mà mỗi thành phần liên thơng là một cây được gọi là rừng.

T1 T2 Hình 2.18. Cây của đồ thị

Trong hình 2.18 là một rừng gồm 2 cây T1, T2.

Cĩ thể nĩi cây là đồ thị vơ hƣớng đơn giản nhất. Định lý sau đây cho ta một số tính chất của cây.

Định lý 2.6: Giả sử G = (V, E) là đồ thì vơ hướng n đỉnh. Khi đĩ các mệnh đề sau đây là tương đương:

1) T là cây.

2) T khơng chứa chu trình và cĩ n-1 cạnh. 3) T liên thơng và cĩ n-1 cạnh .

4) T liên thơng và mỗi cạnh của nĩ đều là cầu.

5) Hai đỉnh bất kỳ của T đƣợc nối với nhau bởi đúng một đƣờng đi đơn. 6) T khơng chứa chu trình nhƣng hễ cứ thêm vào một cạnh ta thu đƣợc

một chu trình.

Chứng minh: ta sẽ chứng minh định lý theo sơ đồ sau: (1)=>(2)=>(3)=>(4)=>(5)=>(6)=>(1)

(1)=>(2) theo định nghĩa T khơng chứa chu trình. Ta sẽ chứng minh bằng qui nạp theo số đỉnh n cho khẳng định: Số cạnh của cây với n đỉnh là n -1. Rõ ràng khẳng định đúng với n = 1. Giả sử n > 1. Trƣớc hết nhận rằng trong mọi cây T cĩ n

a b c d a b d c d

đỉnh đều tìm đƣợc ít nhất một đỉnh là đỉnh treo (tức là đỉnh cĩ bậc là 1). Thực vậy, gọi v1,v2,…,vk là đƣờng đi dài nhất (theo số cạnh) trong T. Khi đĩ rõ ràng v1 và vk là

Một phần của tài liệu Bài toán cây bao trùm trên đồ thị và ứng dụng (Trang 26)

Tải bản đầy đủ (PDF)

(90 trang)