Bài giảng Toán rời rạc - Chương 5: Đường đi trên đồ thị - Võ Tấn Dũng
MỞ ĐẦU
Bài toán về những cây cầu ở Konigsber
Năm 1736 Euler, cha đẻ của lý thuyết đồ thị, đã giải
được bài toán hóc búa nổi tiếng thời đó về những cây
cầu ở Konigberg.Thành phố Königsberg, Đức (nay là Kaliningrad, Nga)
nằm trên sông Pregel, bao gồm hai hòn đảo lớn nối với
nhau và với đất liền bởi bảy cây cầu.
Câu hỏi đặt ra là có thể đi theo một tuyến đường mà
đi qua mỗi cây cầu đúng một lần rồi quay lại điểm
xuất phát hay không
Company L/O/G/O Chương 5 ĐƯỜNG ĐI TRÊN ĐỒ THỊ GV: Võ Tấn Dũng TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM MÔN TOÁN RỜI RẠC MỞ ĐẦU Bài toán về những cây cầu ở Konigsber Năm 1736 Euler, cha đẻ của lý thuyết đồ thị, đã giải được bài toán hóc búa nổi tiếng thời đó về những cây cầu ở Konigberg. Thành phố Königsberg, Đức (nay là Kaliningrad, Nga) nằm trên sông Pregel, bao gồm hai hòn đảo lớn nối với nhau và với đất liền bởi bảy cây cầu. Câu hỏi đặt ra là có thể đi theo một tuyến đường mà đi qua mỗi cây cầu đúng một lần rồi quay lại điểm xuất phát hay không. 1 2 3 4 Euler đã chứng minh rằng bài toán không có lời giải bằng ngôn ngữ đồ thị. Ông biểu diễn 2 hòn đảo và 2 bờ sông bằng 4 điểm và 7 cây cầu bằng các cạnh nối các điểm như sau: Việc đi qua 7 cây cầu tương đương với việc vẽ đồ thị trên bằng 1 nét. Sau này ta sẽ thấy đồ thị trên không thể vẽ bằng 1 nét. 1 2 3 4 ĐỒ THỊ EULER Định nghĩa Cho đồ thị vô hướng G = (V, E) Đường đi Euler: Đường đi đơn trong G đi qua mọi cạnh của nó, mỗi cạnh chỉ đi qua một lần được gọi là đường đi Euler Chu trình Euler: Chu trình đơn trong đồ thị G đi qua mọi cạnh của nó, mỗi cạnh chỉ đi qua một lần được gọi là chu trình Euler. Cho đồ thị có hướng G = (V, E) Đường đi có hướng Euler là đường đi đơn có hướng qua mọi cạnh của đồ thị. Chu trình có hướng Euler là chu trình đơn có hướng qua mọi cạnh đồ thị. Đồ thị chứa chu trình Euler gọi là đồ thị Euler Ví dụ a b c d e f Đồ thị Euler Chu trình Euler: a, b, c, f, e, b, d, c, a Ví dụ Đồ thị về 7 cây cầu của thành phố Konigsberg 1 2 3 4 Không có chu trình và đường đi Euler Thí dụ: Đồ 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ị G2 không có chu trình cũng như đường đi Euler. Đồ thị G1, G2, G3 Đ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ị. Điều kiện cần và đủ để đồ thị có chu trình và đường đi Euler Đồ thị G có đường đi Euler khi và chỉ khi G liên thông và có không quá 2 đỉnh bậc lẻ. Đồ thị G có chu trình Euler khi và chỉ khi G liên thông và mọi đỉnh đều có bậc (chẵn khác 0). Đồ thị vô hướng: Đồ thị có hướng G có chu trình có hướng Euler khi và chỉ khi G liên thông mạnh và mọi đỉnh đều có nửa bậc ra bằng nửa bậc vào. Chú thích: Đồ thị liên thông mạnh là đồ thị có hướng mà mọi cặp đỉnh của nó đều có đường đi có hướng nối chúng với nhau. Đồ thị có hướng: dv(v) = dr(v) Ví dụ Đồ thị nào sau đây có chu trình Euler? Nếu không, liệu có đường đi Euler không? a b c ed a b c def a b c d e Đồ thị nào sau đây có chu trình có hướng Euler? Nếu không, liệu có đường đi có hướng Euler không? Ví dụ a b cd a b c d e f ĐỒ THỊ HAMINTON Định nghĩa Cho đồ thị G = (V, E) Đường đi Haminton là đườ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 Hamintơn là 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ị chứa chu trình Hamintơn gọi là đồ thị Hamintơn Định nghĩa tương tự đối với đồ thị có hướng Ví dụ Cho đồ thị: e d c ba f g Đồ thị trên không có chu trình và đường đi Euler nhưng có chu trình Hamintơn. Đồ thị Hamintơn Chu trình Hamintơn có độ dài bằng số đỉnh và mọi đường đi Hamintơn có độ dài bằng số cạnh. Chú ý Xét đồ thị: a b c de Đồ thị trên có chu trình Hamintơn không? Vì sao? Định lý (Dirak). Đơ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. Đồ thị Hamilton G3, đường đi Hamilton trong G2 , và G1. Cho G là đơn đồ thị n đỉnh (n 3). Nếu: Gv, 2 n )v(d thì G có chu trình Hamintơn Cho G là đơn đồ thị n đỉnh (n 3). Nếu: Gv, 2 1n )v(d thì G có chu trình Hamintơn Định lí 1 Định lí 2 Định lí 3 Nếu G là đồ thị có hướng liên thông mạnh và: Gv, 2 n )v(d& 2 n )v(d vr thì G có chu trình có hướng Hamintơn Ví dụ Các đồ thị sau có chu trình hay đường đi Hamintơn không? Nếu có hãy chỉ ra chu trình hay đường đi Hamintơn. 1 2 3 456 78 a. 1 2 3 4 5 67 8 11 12 13 14 15 910 b. TÌM ĐƯỜNG ĐI NGẮN NHẤT 4.5.1 Đồ thị có trọng số: Là đồ thị mà mỗi cạnh của nó được gán 1 số. Trong đồ thị có trọng số, độ dài trọng số của đường đi là tổng các trọng số trên đường đi đó. 4.5.2 Phát biểu bài toán: Cho đồ thị có trọng số G = (V, E). Tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z của đồ thị Thuật toán Dijkstra: Tìm đường đi ngắn nhất từ đỉnh a đến đỉnh z trong đồ thị có trọng số. Trọng số của cạnh (i,j) là w(i,j) > 0 và đỉnh x sẽ mang nhãn L(x). Khi kết thúc thuật giải L(z) chính là chiều dài đường đi ngắn nhất từ a đến z. Đầu vào: Đồ thị liên thông G = (V, E) có trọng số w(i, j) > 0 với mọi cạnh (i, j), đỉnh a và đỉnh z. Đầu ra: Chiều dài đường đi ngắn nhất và đường đi ngắn nhất. Phương pháp: (1) Gán L(a) 0. Với mọi đỉnh x a gán L(x) = . Kí hiệu T V (2) Chọn v T sao cho L(v) có giá trị nhỏ nhất. Đặt: T T – {v} (3) Nếu z T Kết thúc. L(z) là đường đi ngắn nhất từ a đến z. Từ z lần ngược theo các đỉnh được ghi nhớ ta có đường đi ngắn nhất. Ngược lại sang bước 4. (4) Với mỗi x T kề với v gán: L(x) min{L(x), L(v) + w(v, x)} Nếu L(x) này thay đổi thì ghi nhớ đỉnh v cạnh x để sau này xây dựng đường đi ngắn nhất. Quay về bước 2. Ví dụ: Tìm đường đi ngắn nhất từ đỉnh a đến z trong đồ thị sau: a f ed cb g z 2 1 2 14 3 4 2 67 5 3 Ví dụ trên đồ thị vô hướng Nguồn: ThS. Trịnh Thanh Đèo 28 Ví dụ trên đồ thị có hướng Nguồn: ThS. Trịnh Thanh Đèo 29 Hết chương
File đính kèm:
- bai_giang_toan_roi_rac_chuong_5_duong_di_tren_do_thi_vo_tan.pdf