1. Định nghĩa cơ bản về đồ thị
ĐỒ 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 1Sơ đồ 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 naỳ 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 nghĩa sau
Định nghĩa 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
Hình 2 Sơ đồ mạng máy tính với đa kênh thoại. Định nghĩa 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 ná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 nghĩa nhƣ sau:
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).
Hì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 nghĩa sau.
Định nghĩa 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ị cĩ hướng:
Định nghĩa 5
Đa đồ 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. Hai cung e 1 , e 2 tương ứng với cùng một cặp đỉnh được gọi là cung lặp.
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ừđơnkhi nhắc đến chúng.
2. Đƣờng đi. chu trình. Đồ thị liên thơng
Đườ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 dã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.
Ví dụ 1 Trên đồ thị vơ hƣớng cho trong hình 5: 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 5. Đƣờ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 5 Đường đi trên đồ thị
Khái niệm đƣờng đi và chu trình trên đồ thị cĩ hƣớng đƣợc định nghĩa hồn tồ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 nghĩa 7.
Đườ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.
Ví dụ 2Trên đồ thị cĩ hƣớng cho trong hình 1.6: 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 mọi cặp đỉnh của đồ thị.
Định nghĩa 8
Đồ thị vơ hƣớng G = (V, E) đƣợc gọi là liên thơng nếu luơn tìm đƣợc đƣờng đi giữa hai đỉnh bất kỳ của nĩ.
Nhƣ vậy hai máy tính bất kỳ trong mạng cĩ thể trao đổi thơng tin đƣợc với nhau khi và chỉ khi đồ thị tƣơng ứng với mạng này là đồ thị liên thơng.
Ví dụ 3Trong hình 6: Đồ thị G là liên thơng, cịn đồ thị H là khơng liên thơng.
Hình 6 Đồ thị G và H. Định nghĩa 9.
Ta gọi đồ 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ẽ rã ra 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ácthành phần liên thơngcủa đồ thị.
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 nghĩa sau.
Định nghĩa 10.
Đỉnh v được gọi là đỉnh rẽ nhánh nếu việc loại bỏ v cùng với các cạnh liên thuộc với nĩ khỏi đồ thị làm tăng số thành phần liên thơng của đồ thị. Cạnh e được gọi là cầu nếu việc loại bỏ nĩ khỏi đồ thị làm tăng số thành phần liên thơng của đồ thị.
Ví dụ 5Trong đồ thị G ở hình2, đỉnh d và e là đỉnh rẽ nhánh, cịn các cạnh (d, g) và (e, f) là cầu.
Đối với đồ thị cĩ hƣớng cĩ hai khái niệm liên thơng phụ thuộc vào việc ta cĩ xét đến hƣớng trên các cung hay khơng.
Định nghĩa 11
Đồ thị cĩ hƣớng G = (V, A) đƣợ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ĩ.
Định nghĩa 12
Đồ 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ụn dƣới đây.
Ví dụ 6Trong hình 7 đồ 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.
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.
Định lý 1
Đồ thị vơ hƣớng liên thơng là định hƣớng đƣợc khi và chỉ khi mỗi cạnh của nĩ nằm trên ít nhất một chu trình.
Chứng minh.
Điều kiện cần.Giả sử (u,v) là một cạnh của một đồ thị. Từ sự tồn tại đƣờng đi cĩ 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.
Đồ thị vơ hƣớng liên thơng
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 nghĩa 13
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ĩ vao nhiêu cạnh liên thuộc với một đỉnh, ta đƣa vào định nghĩa sau
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 8 Đồ thị vơ hướng.
Ví dụ 7Xét đồ thị cho trong hình 8, 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:
Định lý 2Giả sử G = (V, E) là đồ thị vơ hướng với m cạnh. Khi đĩ tổng bậc của tất cả các đỉnh bằng hai lần số cung.
Chứng minh.Rõ ràng mỗi cạnh e = (u, v) đƣợc tính một lần trongdeg(u)và một lần trongdeg(v). Từ đĩ suy ra tổng tất cả các bậc của các đỉnh bằng hai lần số cạnh.
Ví dụ 8Đồ thị với n đỉnh cĩ bậc là 6 cĩ bao nhiêu cạnh?
Giải: Theo định lý 2 ta cĩ2m = 6n. Từ đĩ suy ra tổng các cạnh của đồ thị là 3n.
Hệ quả 3Trong đồ thị vơ hướng, số đỉnh bậc lẻ (nghĩa là cĩ bậc là số lẻ) là một số chẵn.
Chứng minh.Thực vậy, gọi O và U tƣơng ứng là tập đỉnh bậc lẻ và tập đỉnh bậc chẵn của đồ thị. Ta cĩ
Do 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. Đồ thị cĩ hƣớng liên thơng
Định nghĩa 15
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ị 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 nghĩa 16
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 9 Đồ thị cĩ hướng.
Ví dụ 9Xét đồ thị cho trong hình 9. Ta cĩ
deg - (a)=1, deg - (b)=2, deg - (c)=2, deg - (d)=2, deg - (e) = 2. deg + (a)=3, deg + (b)=1, deg + (c)=1, deg + (d)=2, 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ĩ:
2m =
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 ứngvới đồ thị cĩ hƣớng đã cho. II. Biểu diễn đồ thị
1. Danh sách liền kề
Danh sách liền kề là một cách biểu diễn đồ thị khơng cĩ cạnh bội bằng cách liệt kê tất cả các đỉnh nối với mỗi đỉnh của đồ thị
Ví dụ:Danh sách liền kề của đồ thị cĩ hƣớng G1
2. Ma trận liền kề
Xét đơn đồ thị vơ hƣớng G=(V,E), với tập đỉnh V={v1, v2, ...,vn} và tập cạnh E={e1, e2, ..., em}. Ma trận liền kề AG của đồ thị G là ma trận 0-1 vuơng cấp nxn.
AG= (aij), trong đĩ:
1, nếu (vi,vj) là một cạnh của G
3. Ma trận trọng số
- Trong thực tế chúng ta thƣờng giải quyết những tình huống nhƣ sau: từ địa điểm A đến địa điểm B trong thành phố, chúng ta chọn đƣờng đi ngắn nhất (xét đến độ dài), cĩ lúc lại cần chọn đƣờng đi nhanh nhất (xét đến thời gian) và cĩ lúc phải cân nhắc để chọn đƣờng đi cĩ chi phí thấp nhất, v.v...
- Khi chúng ta gán một giá trị số thực dƣơng cho mỗi cạnh của đồ thị G thì chúng ta cĩ đồ thị cĩ trọng số.
- Chúng ta cĩ thể xem đồ thị G bất kỳ là đồ thị cĩ trọng số mà tất cả các cạnh cĩ trọng số bằng 1.
Mỗi đƣờng đi m(u,v)từ đỉnh u đến đỉnh v, cĩ trọng số bằng tổng trọng số các cạnh