Xem mẫu

  1. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ €GIÁO ÁN MÔN LÝ THUYẾT ĐỒ THN Số tiết học: 60 tiết ( 45 tiết lý thuyết + 15 tiết thực hành) Tài liệu tham khảo: 1) Toán rời rạc, PGS. TS Đỗ Đức Giáo, Nhà xuất bản Đại học Quốc gia Hà Nội 2002 2) Toán rời rạc, Nguyễn Đức Nghĩa, Nguyễn Tô Thành, Nhà xuất bản Đại học Quốc gia Hà Nội 2003 3) Giáo trình Lý thuyết đồ thị, Nguyễn Thanh Hùng, Nguyễn Đức Nghĩa 4) Toán học rời rạc ứng dụng trong tin học, Dịch từ Discrete Mathematics and Its Applications, Nhà xuất bản khoa học kỹ thuật Chương 1 CÁC KHÁI NIỆM CƠ BẢN CỦA LÝ THUYẾT ĐỒ THN (9 tiết) 1.1 Giới thiệu Lý thuyết đồ thị là nghành khoa học đã có từ lâu nhưng lại có rất nhiều ứng dụng hiện đại. Những ý tưởng cơ sở ban đầu của nó được đưa ra từ những năm đầu thế kỷ 18 bởi nhà toán học người Thuỵ Sỹ là Leonhard Euler. Lý thuyết đồ thị được dùng để giải quyết các bài toán thuộc nhiều lĩnh vực khác nhau. Chẳng hạn: Dùng mô hình đồ thị để xác định xem hai máy tính trong một mạng máy tính có trao đổi thông tin được với nhau hay không?. Đồ thị với các trọng số được gắn cho các cạnh có thể dùng để giải quyết bài toán tìm đường đi ngắn nhất giữa hai thành phố trong một mạng lưới giao thông. Chúng ta cũng có thể phân biệt các hợp chất hoá học có cùng công thức phân tử nhưng có cấu trúc khác nhau nhờ vào đồ thị... 1.2 Các định nghĩa và tính chất cơ bản Định nghĩa 1: Giả sử V là một tập khác rỗng các phần tử nào đó và E ⊆ VxV (E là tập con của tích đề các VxV). Bộ G = (V, E) được gọi là một đồ thị. Mỗi phần tử v ∈ V được gọi là một đỉnh của đồ thị, V được gọi là tập các đỉnh của đồ thị. Mỗi phần tử e = (u, v) ∈ E được gọi là một cạnh của đồ thị, E được gọi là tập các cạnh của đồ thị. Ví dụ 1: G = (V = {v1, v2, v3, v4,...}, E = {e1 = (v1,v2), e2 = (v1,v3), e3 = (v2,v3), e4 = (v3,v4),... }) v2 e1 e3 v1 v3 e2 e4 v4 .... Như vậy ta có thể hình dung đồ thị là một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh này với nhau. 1 NguyÔn Minh §øc - §HQG Hµ Néi
  2. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Chú ý: Nếu tập V là tập hữu hạn các phần tử thì G = (V,E) được gọi là đồ thị hữu hạn. Từ đây về sau chủ yếu ta nghiên cứu các đồ thị hữu hạn. (có thể coi đây là một định nghĩa về đồ thị) Ví dụ 2: G = (V={Thanh hoá, Nghệ an, Hà nội, TP.HCM},E={(Thanh hoá,Nghệ an),(Thanh hoá, Hà nội), (Nghệ an, Hà nội), (Hà nội, TP.HCM) }) Thanh hoá Nghệ an Hà nội TP.HCM Định nghĩa 2: a) Hai đỉnh được gọi là kề nhau nếu có cạnh nối hai đỉnh đó với nhau. Cạnh nối hai đỉnh được gọi là cạnh liên thuộc. b) Hai cạnh được gọi là kề nhau nếu giữa chúng có đỉnh chung. c) Nếu e = (v,v) là một cạnh của đồ thị thì e được gọi là một khuyên. Trong trường hợp này đồ thị được gọi là giả đồ thị. Ví dụ 3: v1 v2 v3 e3 e1 e2 v1 và v2 được gọi là hai đỉnh kề nhau, e1 được gọi là cạnh liên thuộc hai đỉnh v1 và v2. e1 và e2 được gọi là hai cạnh kề nhau, e3 được gọi là một khuyên. Định nghĩa 3: a) Nếu mỗi cạnh e = (u , v) ∈ E là không phân biệt thứ tự của các đỉnh u và v, (tức là từ u tới v không kể hướng) thì ta nói đồ thị G = (V,E) là đồ thị vô hướng. b) Nếu mỗi cạnh e = (u , v) ∈ E có phân biệt thứ tự của các đỉnh u và v, (tức là từ u tới v khác với từ v tới u) thì ta nói đồ thị G = (V,E) là đồ thị có hướng. Cạnh của đồ thị có hướng còn được gọi là cung. Tây hồ Ví dụ 4: v1 CVThủ lệ Hồ gươm v2 v3 TTCPQG Đồ thị vô hướng Đồ thị có hướng 2 NguyÔn Minh §øc - §HQG Hµ Néi
  3. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Định nghĩa 4: Đồ thị G =(V,E) được gọi là đơn đồ thị nếu giữa hai đỉnh bất kỳ của đồ thị được nối với nhau bởi không quá một cạnh (cung). Ví dụ 5: Định nghĩa 5: Đồ thị G = (V,E) được gọi là đa đồ thị nếu có ít nhất một cặp đỉnh được nối với nhau bởi hai cạnh (hai cung) trở lên. Ví dụ 6: Định nghĩa 6: Đồ thị G = (V,E) được gọi là đồ thị phẳng nếu nó có dạng biểu diễn hình học trên mặt phẳng mà các cạnh (cung) chỉ cắt nhau ở đỉnh. Cách vẽ như vậy được gọi là biểu diễn phẳng của đồ thị. Trong trường hợp ngược lại đồ thị là không phẳng. Ví dụ 7: Đồ thị phẳng Đồ thị không phẳng Biểu diễn phẳng của một đồ thị chia mặt phẳng thành các miền. Ví dụ biểu diễn phẳng của đồ thị dưới đây chia mặt phẳng thành 5 miền. R3 R2 R5 R1 R1 Định nghĩa 7: Đồ thị G = (V,E) được gọi là đồ thị đầy đủ nếu mỗi cặp đỉnh đều có cạnh (cung) nối giữa chúng. Ví dụ 8: 3 NguyÔn Minh §øc - §HQG Hµ Néi
  4. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Định nghĩa 8: Cho đồ thị vô hướng G = (V,E). Với v ∈ V là một đỉnh của đồ thị, ta kí hiệu deg(v) là số các cạnh thuộc đỉnh v, riêng với khuyên thì đựơc tính là 2. deg(v) được gọi là bậc của đỉnh v. Nếu deg(v) = 0 thì v được gọi là đỉnh cô lập, nếu deg(v) = 1 thì v được gọi là đỉnh treo. Bậc của đồ thị vô hướng G = (V,E) được kí hiệu là deg(G) và được tính deg(G) = ∑ deg(v) v∈V Ví dụ 9: v1 v2 v3 v5 v4 Với đồ thị trên ta có: deg(v5) = 0, v5 được gọi là đỉnh cô lập deg(v4) = 1, v4 được gọi là đỉnh treo deg(v3) = 4, deg(v2) = 3, deg(v1) = 2 Định nghĩa 9: Cho đồ thị có hướng G = (V,E). Với v ∈ V là một đỉnh của đồ thị, ta ký hiệu deg-(v) là số các cung vào của đỉnh v, deg+(v) là số các cung ra của đỉnh v. Khi đó deg-(v) được gọi là bậc vào của đỉnh v, deg+(v) được gọi là bậc ra của đỉnh v và bậc của đỉnh v là deg(v) = deg-(v) + deg+(v). Nếu deg+(v) = deg-(v) = 0 thì v được gọi là đỉnh cô lập, nếu deg+(v) = 0, deg-(v) = 1 hoặc deg+(v) = 1, deg-(v) = 0 thì v được gọi là đỉnh treo. Bậc của đồ thị có hướng G = (V,E) được kí hiệu là deg(G) và được tính deg(G) = ∑ deg − (v) + ∑ deg + (v) v∈V v∈V Ví dụ 10: v3 v2 v1 v6 v4 v5 Với đồ thị trên ta có: deg-(v1) = 2, deg+(v1) = 5 deg-(v2) = 2, deg+(v2) = 1 deg-(v3) = 1, deg+(v3) = 0, đỉnh v3 được gọi là đỉnh treo deg-(v4) = deg+(v4) = 0, đỉnh v4 được gọi là đỉnh cô lập deg-(v5) = 3, deg+(v5) = 0 deg-(v6) = 1, deg+(v6) = 3 Định lý 1: Giả sử G = (V,E) là đồ thị hữu hạn. Khi đó bậc của đồ thị G bằng hai lần số cạnh của đồ thị, tức là deg(G) = 2|E| Chứng minh: 4 NguyÔn Minh §øc - §HQG Hµ Néi
  5. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Giả sử u,v ∈ V và e = (u,v) ∈ E Nhận xét: Giả sử u ≠ v. Khi đó nếu xoá cạnh (cung) e thì bậc của đồ thị sẽ giảm đi 2. Nếu ta xoá tất cả các cạnh có dạng như trên thì đồ thị còn lại chỉ gồm các đỉnh cô lập hoặc các đỉnh có khuyên. Tại mỗi đỉn u có khuyên, nếu ta xoá khuyên thì bậc của đồ thị cũng sẽ giảm đi 2. Như vậy nếu ta xoá một cạnh hoặc một khuyên thì bậc của đồ thị giảm đi 2 và sau khi xoá hết tất cả các cạnh và các khuyên của đồ thị thì bậc của đồ thị còn lại là bằng 0. Từ nhận xét trên, hiên nhiên ta có đẳng thức deg(G) = 2|E| (đpcm) Định lý 2: Giả sử G = (V,E) là đồ thị hữu hạn. Khi đó số các đỉnh bậc lẽ của đồ thị là một số chẵn. Chứng minh: Giả sử V = {v1,v2,...vn } và trong n đỉnh có k đỉnh bậc lẻ là v1,v2,...,vk. Các đỉnh còn lại có bậc chẵn là vk+1, vk+2,...vn I Ở đây ta có deg(vi) = 2mi+1 với i=1,2..,k và deg(vj) = 2mj với j=k+1, ...,n. mi,mj là các số nguyên dương. k n ∑ deg(v ) + ∑ deg(v Theo định lý 1 ta có: deg(G) = ) = 2|V| = 2n i j i =1 j = k +1 k k k ∑ deg(vi ) = ∑ (2m i +1) = 2∑ mi + k Do i =1 i =1 i =1 n n n ∑ deg(v ∑ 2m = 2 ∑mj )= và j j j = k +1 j = k +1 j = k +1 k  k n k n n ∑ deg(vi ) + ∑ deg(v j ) = 2∑ mi + k + 2 ∑ m j = 2 ∑ mi + ∑m  + k =2n Suy ra deg(G) =   j  i =1  i =1 j = k +1 i =1 j = k +1 j = k +1 Từ đó suy ra k là một số chẵn. (đpcm). Ví dụ 11: Có bao nhiêu cạnh trong một đồ thị có 10 đỉnh, mỗi đỉnh có bậc bằng 5? Giải: Vì bậc của đồ thị bằng 10.5 = 50, mà 2.e = 50 Suy ra e = 25 1.3 Đường và chu trình trong đồ thị Định nghĩa 10: Cho đồ thị G = (V,E). Một đường đi trong đồ thị là một dãy vi1ei1vi2ei2...vijeij...vikeikvik+1, Trong đó vij ∈ V là các đỉnh, eij ∈ E là các cạnh sao cho với ∀j ∈ {1,2,.., k} thì đỉnh vij và đỉnh vij+1 là hai đỉnh kề nhau. Đường đi đó xuất phát từ đỉnh vij và kết thúc tại đỉnh vik+1(hoặc ngược lại). Độ dài của đường bằng số các cạnh (hoặc cung) trong đường đi đó. Chu trình trong đồ thị là một đường đi có đỉnh xuất phát và đỉnh kết thúc trùng nhau. Ví dụ 12: a b e d c Trong đồ thị trên ta co: 5 NguyÔn Minh §øc - §HQG Hµ Néi
  6. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ a,b,e,d là một đường đi có độ dài 3 c,e,b,a,d là một đường đi có độ dài 4 a,d,c,a là một chu trình có độ dài 3 d,a,b,c,d là một chu trình có độ dài 4 a,b,d không phải là một đường đi a,d,e,a không phải là một chu trình Ví dụ 13: a b d c Trong đồ thị trên ta có: a,c,d là một đường đi có độ dài 2 c,d,a,b là một đường đi có độ dài 3 a,b,d,a là một chu trình có độ dài 3 a,c,d,b,d,a là một chu trình có độ dài 5 a,c,b không phải là một đường đi a,b,c,a không phải là một chu trình Định nghĩa 11: Đường hay chu trình trong đồ thị được gọi là đơn nếu nó đi qua mỗi cạnh (cạnh của đường hay chu trình) không quá một lần. Đường hay chu trình trong đồ thị được gọi là sơ cấp nếu nó đi qua mỗi đỉnh đúng một lần. Ví dụ 14: a b d c Với đồ thị trên ta có: a,b,c,d là một đường đi đơn trong đồ thị d,a,b,c,d là một chu trình đơn trong đồ thị a,b,c,d,a là một chu trình sơ cấp của đồ thị a,b,c là một đường sơ cấp Định lý 3: Giả sử G = (V,E) là đồ thị vô hướng. Nếu trong đồ thị mà mỗi đỉnh v ∈ V đều có bậc deg(v) ≥ 2 thì đồ thị có chu trình sơ cấp Chứng minh: Xét tất cả các đường sơ cấp có thể có trong đồ thị. Rõ ràng số các đường này là hữu hạn, vì vậy trong số các đường sơ cấp đó sẽ tồn tại một đường có độ dài lớn nhất. Giả sử đó là đường w: vi1ei1vi2ei2...vijeijvij+1dạng hình học của nó là: vi1 vi2 vi3 vij vij+1 ei1 ei2 eij 6 NguyÔn Minh §øc - §HQG Hµ Néi
  7. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ vi0 Theo giả thiết deg(vij) ≥ 2 nên phải tồn tại ít nhất một đỉnh vi0 và một cạnh nối đỉnh vi1 và vi0. Đỉnh vi0 phải trùng với một đỉnh, chẳng hạn là đỉnh vij trong đường w, vì nếu không trùng thì đường w không phải là đường sơ cấp dài nhất, điều này trái với giả thiết w là đường có độ dài lớn nhất. Điều này chứng tỏ phải tồn tại một chu trình trong đồ thị đang xét. Vì các đường đang xét là các đường sơ cấp, cho nên chu trình này là chu trình sơ cấp. Định lý đã được chứng minh. 1.4 Đồ thị con, đồ thị bộ phận và đồ thị liên thông Định nghĩa 12: Cho đồ thị G = (V,E) a) Nếu trong đồ thị G ta bỏ đi một số đỉnh nào đó và các cạnh chứa các đỉnh đó thì phần còn lại của đồ thị được gọi là đồ thị con của đồ thị G. b) Nếu trong đồ thị G ta bỏ đi một số cạnh nào đó và giữ nguyên các đỉnh thì phần còn lại của đồ thị được gọi là đồ thị bộ phận của đồ thị G. Ví dụ 15: Đồ thị G Một số đồ thị con của đồ thị G Mộ số đồ thị bộ phận của đồ thị G Định nghĩa 13: Cho đồ thị G = (V,E) a) Hai đỉnh u,v ∈ V được gọi là liên thông nếu tồn tại một đường đi nối hai đỉnh u,v với nhau. b) Đồ thị G được gọi là liên thông nếu với hai đỉnh phân biệt bất kỳ trong đồ thị đều là liên thông. Ví dụ 16: Các đồ thị liên thông 7 NguyÔn Minh §øc - §HQG Hµ Néi
  8. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Các đồ thị không liên thông Định nghĩa 14: Cho đồ thị có hướng G = (V,E) a) Đồ thị G được gọi là liên thông mạnh nếu luôn tìm được đường đi giữa hai đỉnh bất kỳ của nó. b) Đồ thị G được gọi là liên thông yếu nếu đồ thị vô hướng tương ứng với nó là đồ thị liên thônng. Ví dụ 17: Đồ thị liên thông mạnh Đồ thị liên thông yếu Định nghĩa 15: Cho đồ thị G = (V,E), H = (W,F) là đồ thị con của G. Nếu H là đồ thị liên thông thì H được gọi là thành phần liên thông của G. Ví dụ 18: I H G Trong ví dụ này H, I là các thành phần liên thông của G Định lý 4: Đồ thị G = (V,E) là liên thông khi và chỉ khi nó có một thành phần liên thông. Chứng minh: Điều khẳng định được trực tiếp suy ra từ các định nghĩa. Định lý 5: (Công thức Euler) Cho G = (V,E) là một đơn đồ thị phẳng liên thông với e cạnh và v đỉnh. Gọi r là số miền trong biểu diễn phẳng của G. Khi đó r = e – v +2. 8 NguyÔn Minh §øc - §HQG Hµ Néi
  9. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Chứng minh: Trước tiên ta xác định biểu diễn phẳng của G. Ta sẽ chứng minh định lý bằng cách xây dựng một dãy các đồ thị con G1, G2, ..,Ge = G, ở mỗi bước ghép thêm một cạnh vào đồ thị ở bước trước. Để làm điều này ta sử dụng định nghĩa đệ quy say: Lấy tuỳ ý một cạnh của G để nhận được G1. Để nhận được Gn từ Gn-1 ta thêm tuỳ ý một cạnh liên thuộc với một cạnh của Gn-1 và thêm một đỉnh khác liên thuộc với cạnh mới đó nếu đỉnh đó chưa có trong Gn-1, điều này làm được vì G là liên thông. G sẽ nhận được sau khi e cạnh được ghép thêm vào các đồ thị tạo ra trước. Gọi rn, en, và vn tương ứng là số miền, số cạnh, số đỉnh của biểu diễn phẳng của Gn sinh ra. Ta sẽ chứng minh bằng quy nạp biểu thức r = e – v +2 Với G1 thì biểu thức r1 = e1 – v1 + 2 là đúng, vì r1 = 1, e1 = 1, v1 = 2, điều này được thể hiện như hình sau: R1 G1 Giả sử ta có rn = en – vn + 2. Gọi (an+1, bn+1) là cạnh gộp vào Gn để được Gn+1. Khi đó có hai khả năng xảy ra. Trường hợp thứ nhất hai đỉnh an+1, bn+1 đã thuộc Gn. Khi đó nó phải ở trên biên của miền chung R nếu không thì không thể gộp cạnh (an+1,bn+1) vào Gn mà không có các cạnh cắt nhau (Gn+1 là phẳng). Cạnh mới này sẽ chia miền R thành hai miền con. Do đó rn+1 =rn+1, en+1 = en+1, vn+1 = vn. Do vậy ta có công thức rn+1 = en+1 – vn+1 +2. Trường hợp này được minh hoạ như sau: an+1 R bn+1 Trường hợp thứ hai, một trong hai đỉnh của cạnh chưa thuộc Gn. Ta giả sử an+1 thuộc Gn còn bn+1 không thuộc. Trong trường hợp này cạnh thêm (an+1, bn+1) không sinh ra miền mới nào vì bn+1 phải nằm trong miền có an+1 và ở trên biên của nó (Gn+1 phẳng). Do đó rn+1 = rn. Nhưng en+1 = en+1 và vn+1 = vn+1. Mỗi vế của công thức không đổi nên công thức vẫn đúng, hay rn+1=en+1 – vn+1 +2. Trường hợp này được minh hoạ như sau: an+1 R bn+1 Vậy với mọi n ta đều có rn = en – vn +2. Vì đồ thị gốc là Ge nhận được sau khi thêm e cạnh, định lý được chứng minh. Ví dụ 19: Cho đơn đồ thị G phẳng liên thông có 20 đỉnh, mỗi đỉnh đều có bậc là 3. Hỏi biểu diễn phẳng của đồ thị này chia mặt phẳng thành bao nhiêu miền? Giải: Ta có v = 20, deg(G) = v.3 = 20.3 = 60 = 2.e Suy ra e = 30. Áp dụng công thức Euler : r = e – v +2 = 12. Vậy mặt phẳng bị chia thành 12 miền. 9 NguyÔn Minh §øc - §HQG Hµ Néi
  10. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Bài tập chương 1 Bài 1: Hãy gọi tên (Đồ thị đơn, đa, đầy đủ,...) các đồ thị cho dưới đấy G1 G2 G3 G4 G5 G6 G7 G8 Bài 2: Vẽ đồ thị vô hướng và đồ thị có hướng cho bởi G = (V,E) V = {A, B, C, D, E, G, H} G = {(A,B), (B,C), (A,C), (G,H), (H,E), (E,A), (D,A)} Bài 3: Hãy tìm số đỉnh, số cạnh, bậc của mỗi đỉnh trong các đồ thị vô hướng cho dưới đây. Xác định các đỉnh cô lập và đỉnh treo. Xác định bậc của đồ thị và kiểm tra xem nó có bằng hai lần số cạnh không? v1 v2 a b c d e f v4 v3 v5 G1 G2 Bài 4: 10 NguyÔn Minh §øc - §HQG Hµ Néi
  11. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ Hãy tìm số đỉnh, số cạnh, bậc ra, bậc vào và bậc của mỗi đỉnh trong các đồ thị vô hướng cho dưới đây. Xác định các đỉnh cô lập và đỉnh treo. Xác định bậc của đồ thị và kiểm tra xem nó có bằng hai lần số cạnh không? v2 a b c v1 d e f v3 G2 G1 Bài 5: Có tồn tại đồ thị đơn có 10 đỉnh, mỗi đỉnh có bậc bằng 5 không? Bài 6: Trong một cuộc liện hoan mọi người bắt tay nhau. Hãy chỉ ra rằng tổng số lượt người được bắt tay được bắt tay là một số chẵn.(Giả sử rằng không ai tự bắt tay mình) Bài 7: Liệt kê tất cả các đồ thị con của đồ thị sau a e c d b G Bài 8: Cho đơn đồ thị phẳng liên thông G với 5 đỉnh và 9 cạnh. Hỏi đồ thị này chia mặt phẳng thành bao nhiêu miền?. Bài 9: Có bao nhiêu cạnh trong một đồ thị có 6 đỉnh mà hai đỉnh có bậc 4, hai đỉnh có bậc 6, hai đỉnh có bậc 8 ?. Bài 10: Chỉ ra môt vài đường đơn và chu trình đơn có thể có trong đồ thị sau: v1 v2 e1 e2 e3 e4 11 NguyÔn Minh §øc - §HQG Hµ Néi
  12. Gi¸o ¸n m«n: Lý ThuyÕt §å ThÞ v5 v3 e5 e6 v4 Bài 11: Chỉ ra tất cả các đường sơ cấp và chu trình sơ cấp có thể có của đồ thị sau v1 e6 e5 e2 e1 v2 e3 e4 v4 v3 Bài 12: Mỗi danh sách các đỉnh sau đây có tạo nên đường đi trong đồ thị đã cho hay không? Đường đi nào là đơn? Đường đi nào là chu trình? Độ dài của các đường đi này là bao nhiêu? a) a, b, e, c, b b c a b) a, d, b, e, a c) a, d, a, d, a d) a, b, e, c, b, d, a e d Bài 13: Trong các đồ thị cho dưới đây, đồ thị nào liên thông, đồ thị nào không liên thông? G1 G2 G3 G4 G5 12 NguyÔn Minh §øc - §HQG Hµ Néi
nguon tai.lieu . vn