Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 159 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
159
Dung lượng
3,19 MB
Nội dung
TRƢỜNG ĐẠI HỌC AN GIANG KHOA KỸ THUẬT - CÔNG NGHỆ - MÔI TRƢỜNG Tài liệu giảng dạy LÝ THUYẾT ĐỒ THỊ NGUYỄN THỊ LAN QUYÊN NGUYỄN MINH VI AN GIANG, 07-2016 Tài liệu giảng dạy “Lý thuyết đồ thị”, tác giả Nguyễn Thị Lan Quyên Nguyễn Minh Vi, công tác Khoa Kỹ thuật - Công nghệ - Môi trƣờng thực Tác giả báo cáo nội dung đƣợc Hội đồng Khoa học Đào tạo Khoa thông qua ngày …………… Tác giả biên soạn Nguyễn Thị Lan Quyên, Nguyễn Minh Vi Trƣởng Đơn vị Trƣởng Bộ môn ………………………… ………………………… Hiệu trƣởng ………………………… AN GIANG, 07-2016 LỜI NĨI ĐẦU Vào kỷ 18, nhà tốn học Leonhard Euler dùng đồ thị để giải toán “Bảy cầu Konigsberg”, đƣợc xem tƣ tƣởng lý thuyết đồ thị Đến kỷ 19, toán bốn màu – tơ đồ với bốn màu hay không – đƣợc đặt ra, giải đƣợc sau kỷ, khai sinh lý thuyết đồ thị Trong trình giải toán này, nhà toán học phát minh nhiều thuật ngữ khái niệm tảng cho lý thuyết đồ thị Lý thuyết đồ thị đƣợc ứng dụng rộng rãi nhiều lĩnh vực khác nhƣ tốn học, vật lý, tin học, Ta sử dụng đồ thị để giải toán lập lịch, thời khóa biểu, thiết kế mạng, phân chia tần số, Đồ thị có trọng số dùng để giải toán đƣờng đi, giao thông,… Đặc biệt, cấu trúc liệu giải thuật, đồ thị đƣợc ứng dụng vào thuật tốn tìm kiếm, xếp, nén liệu,… Để phù hợp với đặc trƣng chuyên ngành tin học, nhóm biên soạn chọn lựa, tổng hợp nội dung viết thành tài liệu giảng dạy “Lý thuyết đồ thị”, gồm chƣơng với nội dung nhƣ sau: Chƣơng Các khái niệm đồ thị Chƣơng Tính liên thơng đồ thị Chƣơng Cây khung Chƣơng Đồ thị phẳng tô màu đồ thị Chƣơng Bài toán đƣờng Chƣơng Đồ thị Euler Hamilton Chƣơng Luồng cực đại mạng Mặc dù nhóm biên soạn nỗ lực để hoàn thành tài liệu này, nhƣng khơng tránh khỏi sai sót Rất mong nhận đƣợc ý kiến đóng góp quý bạn đọc để tài liệu đƣợc hoàn chỉnh An Giang, ngày … tháng … năm …… Ngƣời thực Nguyễn Thị Lan Quyên, Nguyễn Minh Vi i LỜI CAM KẾT Chúng xin cam đoan tài liệu giảng dạy chúng tơi biên soạn Nội dung tài liệu có tham khảo sử dụng thông tin từ nguồn tài liệu đƣợc liệt kê danh mục tài liệu tham khảo An Giang, ngày … tháng … năm …… Ngƣời biên soạn Nguyễn Thị Lan Quyên, Nguyễn Minh Vi ii MỤC LỤC CHƢƠNG CÁC KHÁI NIỆM CƠ BẢN VỀ ĐỒ THỊ 1.1 Định nghĩa đồ thị 1.1.1 Đơn đồ thị vô hƣớng 1.1.2 Đa đồ thị vô hƣớng 1.1.3 Giả đồ thị vô hƣớng 1.1.4 Đơn đồ thị có hƣớng 1.1.5 Đa đồ thị có hƣớng 1.2 Bậc đỉnh 1.2.1 Định nghĩa bậc đồ thị vô hƣớng 1.2.2 Các tính chất bậc đồ thị vô hƣớng 1.2.3 Định nghĩa bậc đồ thị có hƣớng 1.2.4 Tính chất bậc đồ thị có hƣớng 1.3 Các dạng đồ thị 1.3.1 Đồ thị đơn 1.3.2 Đồ thị đủ (đồ thị đầy đủ) 1.3.3 Đồ thị vòng 1.3.4 Đồ thị bánh xe 1.3.5 Đồ thị lập phƣơng 1.3.6 Đồ thị lƣỡng phân (đồ thị hai phía) 1.3.7 Đồ thị lƣỡng phân đủ 1.4 Đẳng cấu đồ thị 1.4.1 Đẳng cấu đồ thị vô hƣớng 1.4.2 Đẳng cấu đồ thị có hƣớng 1.5 Đồ thị con, đồ thị phận 1.5.1 Đồ thị 1.5.2 Đồ thị phận 1.5.3 Đồ thị sinh tập đỉnh 10 1.6 Biểu diễn đồ thị máy tính 10 1.6.1 Ma trận kề 11 1.6.2 Ma trận trọng số 12 1.6.3 Danh sách cạnh, danh sách cung 13 1.6.4 Danh sách kề 14 iii 1.6.5 Ví dụ 16 BÀI TẬP CHƢƠNG 18 CHƢƠNG TÍNH LIÊN THƠNG CỦA ĐỒ THỊ 24 2.1 Phép duyệt đồ thị 24 2.1.1 Duyệt theo chiều sâu (depth-first search) 24 2.1.2 Duyệt theo chiều rộng (breadth-first search) 26 2.2 Đƣờng đi, chu trình 29 2.3 Tính liên thơng đồ thị 31 2.3.1 Đồ thị liên thông 31 2.3.2 Thành phần liên thông 31 2.3.3 Thuật tốn xác định thành phần liên thơng 33 BÀI TẬP CHƢƠNG 35 CHƢƠNG CÂY VÀ CÂY KHUNG 37 3.1 Định nghĩa 37 3.1.1 Cây 37 3.1.2 Rừng 37 3.1.3 Định lý (sự tồn đỉnh treo) 38 3.1.4 Định lý (điều kiện cần đủ cây) 38 3.2 Cây khung (cây bao trùm, phủ, tối đại) 40 3.2.1 Định nghĩa 40 3.2.2 Định lý 40 3.2.3 Thuật tốn tìm khung 42 3.2.4 Bài tốn tìm khung nhỏ 46 3.3 Thuật toán Prim 46 3.4 Thuật toán Kruskal 49 3.5 Cây có gốc 53 3.5.1 Định nghĩa 53 3.5.2 Cây nhị phân 54 BÀI TẬP CHƢƠNG 58 CHƢƠNG ĐỒ THỊ PHẲNG VÀ TÔ MÀU ĐỒ THỊ 62 4.1 CÁC ĐỊNH NGHĨA 62 4.1.1 Đồ thị phẳng 62 4.1.2 Đồ thị đồng phôi 64 iv 4.1.3 Các phép rút gọn 64 4.2 CÁC ĐỊNH LÝ KURATOWSKI 65 4.3 CÔNG THỨC EULER 67 4.3.1 Công thức Euler đồ thị phẳng liên thông 67 4.3.2 Hệ 68 4.3.3 Hệ 69 4.3.4 Hệ 70 4.4 BÀI TỐN TƠ MÀU 70 4.4.1 Định nghĩa tô màu đồ thị 71 4.4.2 Một số định lý tô màu đồ thị 72 4.4.3 Giải thuật tô màu đồ thị Welsh and Powell 76 4.5 MỘT SỐ ỨNG DỤNG CỦA BÀI TỐN TƠ MÀU ĐỒ THỊ 78 4.5.1 Bài toán lập lịch thi 78 4.5.2 Bài toán phân chia tần số 79 BÀI TẬP CHƢƠNG 80 CHƢƠNG TÌM ĐƢỜNG ĐI NGẮN NHẤT 82 5.1 Bài tốn tìm đƣờng ngắn 82 5.2 Thuật toán Dijkstra 83 5.3 Thuật toán Ford-Bellman 88 5.4 Thuật toán Floyd 91 BÀI TẬP CHƢƠNG 95 CHƢƠNG ĐỒ THỊ EULER VÀ HAMILTON 98 6.1 Đồ thị Euler 98 6.1.1 Định nghĩa 99 6.1.2 Các định lý, bổ đề hệ 100 6.1.3 Thuật tốn tìm chu trình Euler 106 6.1.4 Bài toán ngƣời phát thƣ Trung Hoa 112 6.2 Đồ thị Hamilton 114 6.2.1 Định nghĩa 115 6.2.2 Các định lý hệ 115 6.2.3 Qui tắc chu trình Hamilton H hay G khơng Hamilton 120 6.2.4 Thuật tốn liệt kê tất chu trình Hamilton đồ thị 121 BÀI TẬP CHƢƠNG 126 v CHƢƠNG LUỒNG CỰC ĐẠI TRÊN MẠNG 129 7.1 Các định nghĩa, định lý 129 7.1.1 Định nghĩa 129 7.1.2 Định nghĩa 130 7.1.3 Định nghĩa 131 7.1.4 Định lý 131 7.1.5 Hệ 132 7.1.6 Định nghĩa 132 7.1.7 Định lý 133 7.1.8 Định lý Ford-Fulkerson 134 7.2 Bài tốn tìm luồng cực đại mạng 134 7.2.1 Mơ tả tốn 134 7.2.2 Thuật toán Ford-Fulkerson 135 7.3 Một số toán luồng tổng quát 142 7.3.1 Mạng với nhiều điểm phát điểm thu 142 7.3.2 Bài toán đám cƣới vùng quê 142 BÀI TẬP CHƢƠNG 144 TÀI LIỆU THAM KHẢO 145 vi DANH SÁCH BẢNG Bảng 2.1 Minh họa hàng đợi (bƣớc 1) 27 Bảng 2.2 Minh họa hàng đợi (bƣớc 2) 27 Bảng 2.3 Minh họa hàng đợi (bƣớc 3) 27 Bảng 2.4 Minh họa hàng đợi (bƣớc 4) 27 Bảng 2.5 Minh họa hàng đợi (bƣớc 5) 27 Bảng 2.6 Minh họa hàng đợi (bƣớc 6) 28 Bảng 4.1 Các đỉnh theo thứ tự bậc giảm dần 77 Bảng 4.2 Thứ tự bậc giảm dần đỉnh 79 Bảng 4.3 Bảng kết xếp lịch 79 Bảng 5.1 Bảng minh họa ví dụ thuật toán Dijkstra 87 Bảng 5.2 Thuật toán Ford-Bellman 90 Bảng 5.3 Bảng khởi tạo giá trị ban đầu 93 Bảng 5.4 Bảng thể bƣớc lặp 93 Bảng 6.1 Tính bậc đỉnh G 103 Bảng 6.2 Bảng tính bậc đỉnh 107 Bảng 6.3 Bƣớc 107 Bảng 6.4 Bƣớc 108 Bảng 6.5 Bƣớc 108 Bảng 6.6 Bƣớc 108 Bảng 6.7 Bƣớc 108 Bảng 6.8 Bƣớc 108 Bảng 6.9 Bƣớc thứ n 109 Bảng 7.1 Bài toán đám cƣới vùng quê 143 vii DANH SÁCH HÌNH Hình 1.1 Đơn đồ thị vơ hƣớng Hình 1.2 Đa đồ thị vơ hƣớng Hình 1.3 Giả đồ thị vô hƣớng Hình 1.4 Đơn đồ thị có hƣớng Hình 1.5 Đa đồ thị có hƣớng Hình 1.6 Minh họa bậc đỉnh đồ thị vô hƣớng Hình 1.7 Minh họa bậc đỉnh (đồ thị có hƣớng) Hình 1.8 Các dạng đồ thị đủ Hình 1.9 Các dạng đồ thị vịng Hình 1.10 Các dạng đồ thị bánh xe Hình 1.11 Các dạng đồ thị lập phƣơng Hình 1.12 Các dạng đồ thị lƣỡng phân Hình 1.13 Các dạng đồ thị lƣỡng phân đủ Hình 1.14 Minh họa đẳng cấu đồ thị vô hƣớng Hình 1.15 Minh họa đẳng cấu đồ thị có hƣớng Hình 1.16 Minh họa đồ thị Hình 1.17 Minh họa đồ thị con, đồ thị phận 10 Hình 1.18 Minh họa ma trận kề đồ thị vô hƣớng 11 Hình 1.19 Minh họa ma trận kề đồ thị có hƣớng 12 Hình 1.20 Minh họa ma trận trọng số 12 Hình 1.21 Minh họa danh sách cạnh 13 Hình 1.22 Minh họa danh sách cung 14 Hình 1.23 Minh họa danh sách kề đồ thị vô hƣớng 14 Hình 1.24 Minh họa danh sách kề (đồ thị có hƣớng) 15 Hình 2.1 Minh họa duyệt đồ thị vô hƣớng theo chiều sâu 24 Hình 2.2 Minh họa duyệt đồ thị có hƣớng theo chiều sâu 25 Hình 2.3 Minh họa duyệt đồ thị vơ hƣớng theo chiều rộng 26 Hình 2.4 Minh họa duyệt đồ thị có hƣớng theo chiều rộng 28 Hình 2.5 Minh họa đƣờng đi, chu trình đồ thị vơ hƣớng 30 Hình 2.6 Minh họa đƣờng đi, chu trình đồ thị có hƣớng 30 Hình 2.7 Minh họa đồ thị liên thông 31 Hình 2.8 Minh họa thành phần liên thông 31 Hình 2.9 Minh họa đỉnh rẽ nhánh, cầu 32 Hình 2.10 Minh họa tính liên thơng mạnh, yếu 32 Hình 3.1 Minh họa 37 Hình 3.2 Minh họa rừng 37 Hình 3.3 Minh họa khung 40 Hình 3.4 Minh họa số khung đồ thị Kn 41 Hình 3.5 Các khung đồ thị K4 42 Hình 3.6 Minh họa tìm khung theo chiều sâu 42 Hình 3.7 Cây khung tìm đƣợc theo chiều sâu 43 Hình 3.8 Minh họa tìm khung theo chiều rộng 44 viii b c 2(2) 4(2) 4(3) 2(1) s t 6(3) 4(2) d 2(2) e Hình 7.2 Luồng mạng 7.1.3 Định nghĩa Ta gọi lát cắt (X,X*) cách phân hoạch tập đỉnh V mạng thành hai tập X X* = V\X, s X, t X* Khả thông qua lát cắt (X,X*) số c(X,X*) = c(v,w) vX w X* Lát cắt với khả thông qua nhỏ đƣợc gọi lát cắt hẹp Ví dụ: Lát cắt phân hoạch tập đỉnh X X* nhƣ hình 7.3 b 2(2) c 4(2) 4(3) s t 2(1) 4(2) 6(3) d 2(2) e Hình 7.3 Lát cắt 7.1.4 Định lý Giá trị luồng f mạng nhỏ khả thông qua lát cắt (X,X*) nó: val(f) ≤ c(X,X*) Chứng minh: Cộng điều kiện cân luồng Div f(v)=0 với v X Khi ta có 131 ( f(w,v ) - f(v,w) ) = -Val(f) w - (v) v X w + (v) Tổng gồm số hạng dạng f(u,v) với dấu cộng dấu trừ mà có hai đỉnh u, v phải thuộc tập X Nếu hai đỉnh u,v tập X, f(u,v) xuất với dấu cộng Div f(v) với dấu trừ Div f(u), thế, chúng triệt tiêu lẫn Do đó, sau giản ƣớc số hạng nhƣ vế trái, ta thu đƣợc - f(v,w) + f(v,w) = -val(f), vX w X* Hay v X* w X val(f) = f(v,w) - f(v,w) vX w X* Mặt khác f(v,w) vX w X* Nên ≤ c(v,w) vX w X* val(f) = f(v,w) - f(v,w) ≤ vX w X* Mà v X* w X vX w X * c(v,w) - f(v,w) vX w X* v X* w X - f(v,w) ≤ v X* w X Suy val(f) ≤ c(X,X*) Định lý đƣợc chứng minh 7.1.5 Hệ Giá trị luồng cực đại mạng không vƣợt khả thông qua lát cắt hẹp mạng 7.1.6 Định nghĩa Định nghĩa đồ thị tăng luồng: Giả sử f luồng mạng G = (V,E) Từ mạng G =(V,E) ta xây dựng đồ thị có trọng số cung Gf = (V, Ef), với tập cung Ef trọng số cung đƣợc xác định theo qui tắc sau: Nếu e=(v,w) E với f(v,w) =0, (v,w) Ef với trọng số c(v,w) Nếu e=(v,w) E với f(v,w) =c(v,w), (w,v) Ef với trọng số f(v,w) 132 Nếu e=(v,w) E với 0