Giáo trình lý thuyết đồ thị
Giáo trình lý thuyết đồ thị Biên tập bởi: Thạc sĩ Nguyễn Thanh Hùng Giáo trình lý thuyết đồ thị Biên tập bởi: Thạc sĩ Nguyễn Thanh Hùng Các tác giả: Thạc sĩ Nguyễn Thanh Hùng Phiên trực tuyến: http://voer.edu.vn/c/9c021e14 MỤC LỤC Các khái niệm lý thuyết đồ thị Các thuật ngữ Đường đi,chu trình, độ liên thơng Một số dạng đồ thị đặc biệt Biểu diễn đồ thị máy vi tính Danh sách cạnh(cung) Danh sách kề Các thuật tốn tìm kiếm đồ thị ứng dụng Tìm kiếm theo chiều rộng đồ thị 10 Tìm đường kiểm tra tính liên thơng 11 Đồ thị Euler đồ thị Hamiton 12 Đồ thị Hamilton 13 Cây khung đồ thị 14 Cây khung đồ thị 15 Xây dựng tập chu trình đồ thị 16 Bài toán khung nhỏ 17 Bài toán đường ngắn 18 Đường ngắn xuất phát từ đỉnh 19 Trường hợp ma trân trọng số khơng âm-Thuật tốn Dijkstra 20 Đồ thị đồ thị khơng có chu trình 21 Đường ngắn tất cặp đỉnh 22 Bài toán luồng cực đại mạng 23 Lát cắt.Đường tăng luông.Định lý Ford_Fulkerson 24 Thuật tốn tìm luồng cực đại 25 Một số toán luồng tổng quát 26 Một số ứng dụng tổ hợp 27 Bài tập chương 28 Bài tập chương 29 Bài tập chương 30 Bài tập chương 31 Bài tập chương 32 Các tập khác Tham gia đóng góp 1/164 Các khái niệm lý thuyết đồ thị Lý thuyết đồ thị lĩnh vực có từ lâu có nhiều ứng dụng đại Những tư tưởng lý thuyết đồ thị đề xuất vào năm đầu kỷ 18 nhà toán học lỗi lạc người Thụy Sỹ Lenhard Eurler Chính ơng người sử dụng đồ thị để giải toán tiếng cầu thành phố Konigsberg Đồ thị sử dụng để giải toán nhiều lĩnh vực khác Chẳng hạn, đồ thị sử dụng để xác định mạch vịng vấn đề giải tích mạch điện Chúng ta phân biệt hợp chất hóa học hữu khác với cơng thức phân tử khác cấu trúc phân tử nhờ đồ thị Chúng ta xác định hai máy tính mạng trao đổi thơng tin với hay khơng nhờ mơ hình đồ thị mạng máy tính Đồ thị có trọng số cạnh sử dụng để giải tốn như: Tìm đường ngắn hai thành phố mạng giao thơng Chúng ta cịn sử dụng đồ thị để giải toán lập lịch, thời khóa biểu, phân bố tần số cho trạm phát truyền hình… ĐỊNH NGHĨA ĐỒ THỊ Đồ thị cấu trúc rời rạc bao gồm đỉnh cạnh nối đỉnh Chúng ta phân biệt loại đồ thị khác kiểu số lượng cạnh nối hai đỉnh đồ thị Để hình dung lại cần đến loại đồ thị khác nhau, nêu ví dụ sử dụng chúng để mơ tả mạng máy tính Giả sử ta có mạng gồm máy tính kênh điện thoại (gọi tắt kênh thoại) nối máy tính Chúng ta biểu diễn vị trí đặt náy tính điểm kênh thoại nối chúng đoạn nối, xem hình Hình Sơ đồ mạng máy tính 2/164 Nhận thấy mạng hình 1, hai máy có nhiều kênh thoại nối chúng, kênh thoại naỳ cho phép liên lạc hai chiều khơng có máy tính lại nối với Sơ đồ mạng máy cho hình gọi đơn đồ thị vô hướng Ta đến định nghĩa sau Định nghĩa Đơn đồ thị vô hướng G = (V,E) bao gồm V tập đỉnh, E tập cặp thứ tự gồm hai phần tử khác V gọi cạnh Trong trường hợp hai máy tính thường xun phải truyền tải nhiều thông tin người ta phải nối hai máy nàu nhiều kênh thoại Mạng với đa kênh thoại máy cho hình Hình Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa Đa đồ thị vô hướng G= (V, E) bao gồm V tập đỉnh, E tập cặp khơng có thứ tự gồm hai phần tử khác V gọi cạnh Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Hình Sơ đồ mạng máy tính với kênh thoại thơng báo 3/164 Rõ ràng đơn đồ thị đa đồ thị, đa đồ thị đơn đồ thị, đa đồ thị có hai (hoặc nhiều hơn) cạnh nối cặp đỉnh đó.Trong mạng máy tính có kênh thoại nối náy với (chẳng hạn vời mục đính thơng báo) Mạng cho hình 3.Khi đa đồ thị khơng thể mơ tả mạng vậy, có khun(cạnh nối đỉnh với 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, định nghĩa sau: Định nghĩa Giả đồ thị vô hướng G = (V, E) bao gồm V tập đỉnh E tập cặp khơng có thứ tự gồm hai phần tử (không thiết phải khác nhau) V gọi cạnh Cạnh e gọi khuyên có dạng e = (u, u) Hình Mạng máy tính với kênh thoại chiều Các kênh thoại mạng máy tính cho phép truyền tin theo chiều Chẳng hạn, hình máy chủ Hà Nội nhận tin từ máy địa phương, có số máy gửi tin đi, kênh thoại cho phép truyền tin theo hai chiều thay hai cạnh có hướng ngược chiều Ta đến định nghĩa sau Định nghĩa Đơn đồ thị có hướng G = (V, E) bao gồm V tập đỉnh E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Nếu mạng có đa kênh thoại chiều, ta phải sử dụng đến khái niệm đa đồ thị có hướng 4/164 Định nghĩa Đa đồ thị có hướng G = (V, E) bao gồm V tập đỉnh E tập cặp có thứ tự gồm hai phần tử khác V gọi cung Hai cung e1, e2 tương ứng với cặp đỉnh gọi cung lặp Trong phần chủ yếu làm việc với đơn đồ thị vô hướng đơn đồ thị có hướng Vì vậy, ngắn gọn, ta bỏ qua tính từ đơn nhắc đến chúng 5/164 Các thuật ngữ Trong mục trình bày số thuật ngữ lý thuyết đồ thị Trước tiên, ta xét thuật ngữ mô tả đỉnh cạnh đồ thị vô hướng Định nghĩa Hai đỉnh u v đồ thị vô hướng G gọi kề (u,v) cạnh đồ thị G Nếu e = (u, v) cạnh đồ thị ta nói cạnh liên thuộc với hai đỉnh u v, nói nối đỉnh u đỉnh v, đồng thời đỉnh u v gọi đỉnh đầu cạnh (u, v) Để biết có vao nhiêu cạnh liên thuộc với đỉnh, ta đưa vào định nghĩa sau Định nghĩa Ta gọi bậc đỉnh v đồ thị vô hướng số cạnh liên thuộc với ký hiệu deg(v) Hình Đồ thị vơ hướng Thí dụ Xét đồ thị cho 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) = Đỉnh bậc gọi đỉnh cô lập Đỉnh bậc gọi đỉnh treo Trong ví dụ đỉnh g đỉnh cô lập, a d đỉnh treo Bậc đỉnh có tính chất sau: Định lý Giả sử G = (V, E) đồ thị vơ hướng với m cạnh Khi tơng bậc tất đỉnh hai lần số cung 6/164 Chứng minh Rõ ràng cạnh e = (u, v) tính lần deg(u) lần deg(v) Từ suy tổng tất bậc đỉnh hai lần số cạnh Thí dụ Đồ thị với n đỉnh có bậc có cạnh? Giải: Theo định lý ta có 2m = 6n Từ suy tổng cạnh đồ thị 3n Hệ Trong đồ thị vô hướng, số đỉnh bậc lẻ (nghĩa có bậc số lẻ) số chẵn Chứng minh Thực vậy, gọi O U tương ứng tập đỉnh bậc lẻ tập đỉnh bậc chẵn đồ thị Ta có 2m = ? deg(v) + ? deg(v) v∈ U v∈ O Do deg(v) chẵn với v đỉnh U nên tổng thứ số chẵn Từ suy tổng thứ hai (chính tổng bậc đỉnh bậc lẻ) phải số chẵn, tất số hạng số lẻ, nên tổng phải gồm số chẵn số hạng Vì vậy, số đỉnh bậc lẻ phải số chẵn Ta xét thuật ngữ tương tự cho đồ thị vô hướng Định nghĩa Nếu e = (u, v) cung đồ thị có hướng G ta nói hai đỉnh u v kề nhau, nói cung (u, v) nối đỉnh u với đỉnh v nói cung khỏi đỉnh u vào đỉnh v Đỉnh u(v) gị đỉnh đầu (cuối) cung (u,v) Tương tự khái niệm bậc, đồ thị có hướng ta có khái niệm bán bậc bán bậc vào đỉnh Định nghĩa Ta gọi bán bậc (bán bậc vào) đỉnh v đồ thị có hướng số cung đồ thị khỏi (đi vào nó) ký hiệu deg + (v) (deg - (v)) 7/164 Hình Đồ thị có hướng Thí dụ Xét đồ thị cho hình Ta có deg - (a)=1, deg - (b)=2, deg - (c)=2, deg - (d)=2, deg - (e) = deg + (a)=3, deg + (b)=1, deg + (c)=1, deg + (d)=2, deg + (e)=2 Do cung (u, v) tính lần bán bậc vào đỉnh v lần bán bậc đỉnh u nên ta có: Định lý Giả sử G = (V, E) đồ thị có hướng Khi 2m = ? deg+(v) + ? deg-(v) v∈ V v∈ V Rất nhiều tính chất đồ thị có hướng khơng phụ thuộc vào hướng cung Vì vậy, nhiều trường hợp thuận tiện ta bỏ qua hướng cung đồ thị Đồ thị vô hướng thu cách bỏ qua hướng cung gọi đồ thị vơ hướng tương ứng với đồ thị có hướng cho 8/164 Các tập khác Bài 1: Một khóa học gồm N môn học, môn học i phải học ti ngày Giữa mơn học có mối quan hệ trước/sau: có mơn học học sau học số môn học khác Mối quan hệ thể mảng hai chiều A[i, j]; i, j = 1, …, N A[i, j] = 1/0 A[i, i] với i, A[i, j] = môn học i phải dạy xong trước học môn j (ngày kết thúc môn i phải trứơc ngày bắt đầu môn j) Môn học i phải dạy trước môn học j có dãy mơn học i1, i2, …, ik cho a[it, it+1] = 1,