1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề cương toán rời rạc (ĐHCQ)

127 197 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 127
Dung lượng 1,87 MB

Nội dung

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƯƠNG TOÁN RỜI RẠC Trình độ đào tạo : Đại học Hệ đào tạo : Chính quy/Liên thông Mở đầu 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 toán như: Tìm đường ngắn hai thành phố mạng giao thông Chúng ta 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 Bộ môn Công nghệ Phần mềm Khoa Công nghệ Thông tin Trường Đại học Sư phạm Kỹ thuật Hưng Yên Trang Mục lục Bài Các khái niệm Lý thuyết đồ thị 1.1 Định nghĩa đồ thị 1.2 Đường - chu trình - Đồ thị liên thông 1.3 Phân loại đồ thị 13 1.3.1 Đồ thị vô hướng liên thông 13 1.3.2 Đồ thị có hướng liên thông 14 1.4 Một số loại đồ thị đặc biệt 15 Bài Biểu diễn đồ thị máy tính 20 2.1 Một số phương pháp biểu diễn đồ thị máy tính 20 2.2.1 Ma trận kề - Ma trận trọng số 20 2.2.2 Danh sách cạnh (cung) 22 2.2.3 Danh sách kề 22 Bài Đồ thị Euler 24 3.1 Định nghĩa 24 3.2 Các ví dụ 24 3.3 Định lý Euler thuật toán Flor 25 Bài Đồ thị Hamilton 28 4.1 Định nghĩa 29 4.2 Định lý thuật toán liệt kê tất chu trình Hamilton 29 Bài Thảo luận cài đặt đồ thị, thuật toán liệt kê chu trình Euler Hamilton 33 5.1 Cài đặt biểu diễn đồ thị máy tính 33 5.2 Cài đặt thuật toán liệt kê chu trình Euler 33 5.3 Cài đặt thuật toán liệt kê chu trình Hamilton 35 5.4 Thảo luận tập giáo trình tập 35 Bài Thuật toán tìm kiếm đồ thị ứng dụng 36 6.1 Duyệt đồ thị theo chiều rộng (BFS) 36 6.2 Duyệt đồ thị theo chiều sâu (DFS) 39 6.3 Thảo luận 42 Bài Cây khung 45 7.1 Cây khung 45 7.1.1 Cây 45 7.1.2 Cây khung đồ thị 46 7.2 Bài toán khung nhỏ 48 7.3 Xây dựng tập chu trình đồ thị 49 7.4 Thuật toán Prim 51 7.5 Thuật toán Kruskal 54 Bài Thảo luận cài đặt thuật toán tìm khung nhỏ đồ thị 57 8.1 Cài đặt xây dựng tập chu trình đồ thị 57 8.2 Cài đặt thuật toán Prim 59 8.3 Cài đặt thuật toán Kruskal 60 8.4 Một số thuật toán xây dựng khung(*) 61 Bài Bài toán tìm đường ngắn 63 9.1 Các khái niệm mở đầu 63 9.2 Đường ngắn xuất phát từ đỉnh Thuật toán ford-Bellman 64 9.3 Trường hợp ma trận trọng số không âm Thuật toán Dijkstra 66 Bài 10 Bài toán tìm đường ngắn (tiếp) 69 10.1 Đường đồ thị chu trình 69 Trang 10.2 Đường ngắn tất cặp đỉnh 73 10.3 Cài đặt thuật toán Dijkstra 75 Bài 11 Bài toán luồng cực đại mạng 76 11.1 Mạng - Luồng mạng 76 11.2 Bài toán luồng cực đại 77 11.3 Lát cắt đường tăng luồng Định lý ford_fulkerson 77 11.4 Thuật toán tìm luồng cực đại 80 Bài 12 Lý thuyết đồ thị ứng dụng 90 12.1 Các toán liên quan tới đồ thị 90 12.1.1 Các toán liên quan tới bậc đồ thị 90 12.1.2 Các toán liên quan đến tính liên thông đồ thị 92 12.1.3 Các toán liên quan tới chu trình 93 12.1.4 Các toán có liên quan đến đường chu trình Hamilton 94 12.1.5 Các toán liên quan đến đồ thị tô màu 99 12.1.6 Bài toán 108 12.1.7 Bài toán ghép cặp 109 12.1.8 Đồ thị Euler 109 12.1.9 Các toán có tính tổng hợp 110 12.2 Sự liên hệ tập đặc biệt đồ thị với toán bàn cờ 112 12.3 Duyệt rộng mảng hai chiều 116 Bài 13 Một số ứng dụng đồ thị 118 13.1 Bài toán đám cưới vùng quê 118 13.2 Bài toán hệ thống đại diện chung 119 13.3 Bài toán tối ưu rời rạc 119 Bài toán phân nhóm sinh hoạt 120 Bài toán lập lịch cho hội nghị 120 13.4 Một số toán liên quan đến việc tổ chức mạng vận chuyển bưu 121 Mô hình định tuyến mạng đường thư cấp 121 Bài toán lập kế hoạch vận chuyển bưu gửi 122 Mô hình mạng đường thư thành phố 124 TÀI LIỆU THAM KHẢO 127 Trang Danh mục hình vẽ Hình 1.1 Sơ đồ mạng máy tính Hình 1.2 Sơ đồ mạng máy tính với đa kênh thoại Hình 1.3 Sơ đồ mạng máy tính với kênh thoại thông báo Hình 1.4 Mạng máy tính với kênh thoại chiều Hình 1.5 Đường đồ thị 10 Hình 1.6 Đồ thị G H 11 Hình 1.7 Đồ thị liên thông mạnh G đồ thị liên thông yếu H 12 Hình 1.8 Đồ thị vô hướng 13 Hình 1.9 Đồ thị có hướng 15 Hình 1.10 Đồ thị đầy đủ 16 Hình 1.11 Đồ thị vòng C3, C4, C5, C6 16 Hình 1.12 Đồ thị bánh xe W3, W4, W5, W6 16 Hình 1.13 Đồ thị lập phương Q1, Q2, Q3 17 Hình 1.14 Đồ thị hai phía 17 Hình 1.15 Đồ thị K4 đồ thị phẳng 18 Hình 1.16 Các miền tương ứng với biểu diễn phẳng đồ thị 19 Hình 2.1 Đồ thị vô hướng G Đồ thị có hướng G1 21 Hình 3.1 Mô hình cầu Konigsberg 24 Hình 3.2 Đồ thị G1, G2, G3 25 Hình 3.3 Đồ thị H1, H2, H3 25 Hình 3.4 Minh hoạ cho chứng minh Định lý 3.1 26 Hình 4.1 Du lịch 20 thành phố 28 Hình 4.2 Đồ thị Hamilton G3, nửa Hamilton G2, G1 29 Hình 4.3 Đồ thị đấu loại D5, đấu loại liên thông mạnh D6 30 Hình 4.4 Đồ thị liệt kê chu trình Hamilton theo thuật toán quay lui 32 Hình 5.1 Đồ thị liệt kê chu trình Hamilton theo thuật toán quay lui 35 Hình 6.1 Đồ thị vô hướng 37 Hình 6.2 Đồ thị vô hướng 43 Hình 7.1 Cây rừng 45 Hình 7.2 Đồ thị khung 47 Hình 7.3 Đồ thị khung nhỏ 53 Hình 8.1 Hệ chu trình độc lập cho đồ thị vô hướng G 57 Hình 8.2 Hệ chu trình độc lập cho đồ thị có hướng G1 57 Hình 8.3 Minh họa bước thuật toán Prim tìm khung nhỏ 59 Hình 8.4 Minh họa bước thuật toán Kruskal tìm khung nhỏ 61 Hình 11.1 Đồ thị chu trình 69 Hình 11.2 Đồ thị minh hoạ PERT 73 Hình 12.1 Mạng G luồng f Đồ thị có trọng số Gf tương ứng 79 Hình 12.2 Mạng G minh họa bước thuật toán ford-Fullkerson 86 Hình 12.3 Mạng G với luồng cực đại lát cắt hẹp 87 Hình 12.4 Ví dụ tồi tệ thuật toán ford_Fulkerson 88 Hình 12.5 Tăng luồng dọc theo đường tăng 89 Hình 13.1 Kết thi đấu đội bóng chuyền A, B, C, B, E 95 Hình 13.2 Sơ đồ nhà học sinh 96 Hình 13.3 10 thành phố 96 Hình 13.4 bố trí lịch thi cho học sinh THPT với môn thi ngày 97 Hình 13.5 Vị trí nhà đường nối nhà học sinh 98 Hình 13.6 Bản đồ có miền 99 Hình 13.7 Lập lịch thi môn 102 Hình 13.8 Tô màu cho đồ thị lịch thi 103 Trang Hình 13.9 Phân chia kênh truyền hình 105 Hình 13.10 Tô màu cho đồ thị phân chia kênh truyền hình 105 Hình 13.11 Thanh ghi số CPU 107 Hình 13.12 Tô màu cho đô thị ghi số 108 Hình 13.13 Kết xếp hạng đội 109 Hình 13.14 Tuyển chọn biên dịch viên 112 Hình 13.15 Quy tắc quân mã 113 Hình 13.16 Quy tắc quân mã bàn cờ × 113 Hình 13.17 Quy tắc quân tượng bàn cờ × 114 Hình 13.18 Quy tắc quân xe bàn cờ × 114 Hình 13.19 Quy tắc quân hậu bàn cờ × 115 Hình 13.20 Hướng di chuyển robot 117 Hình 14.1 Mạng tương ứng với toán đám cưới vùng quê 118 Trang Bài Các khái niệm Lý thuyết đồ thị 1.1 Đị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 1.1 Hình 1.1 Sơ đồ mạng máy tính Nhận thấy mạng hình 1.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 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 1.1 Đơ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 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 nhiều kênh thoại Mạng với đa kênh thoại máy cho hình 1.2 Trang Hình 1.2 Sơ đồ mạng máy tính với đa kênh thoại Định nghĩa 1.2 Đa đồ 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 Hai cạnh e1 e2 gọi cạnh lặp chúng tương ứng với cặp đỉnh Hình 1.3 Sơ đồ mạng máy tính với kênh thoại thông báo 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 Khi đa đồ thị mô tả mạng vậy, có khuyên (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 1.3 Giả đồ 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ô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) Trang Hình 1.4 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 1.4 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 1.4 Đơ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: Định nghĩa 1.5 Đ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 1.2 Đường - chu trình - Đồ thị liên thông Định nghĩa 1.6 Đường độ dài n từ đỉnh u đến đỉnh v, n số nguyên dương, đồ thị vô hướng G = (V, E) dãy x0, x1,…, xn-1, xn u = x0, v = xn, (xi, xi+1) E, i = 0, 1, 2,…, n-1 Đường nói biểu diễn dạng dãy cạnh: Trang (x0, x1), (x1, x2), …, (xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn cạnh bị lặp lại Ví dụ 1.1 Trên đồ thị vô hướng cho Hình 1.5: a, d, c, f, e đường đơn độ dài Còn d, e, c, a không đường đi, (c,e) cạnh đồ thị Dãy b, c, f, e, b chu trình độ dài Đường a, b, e, d, a, b có độ dài là đường đơn, cạnh (a, b) có mặt lần Hình 1.5 Đường đồ thị Khái niệm đường chu trình đồ thị có hướng định nghĩa hoàn toàn tương tự trường hợp đồ thị vô hướng, khác ta có ý đến hướng cung Định nghĩa 1.7 Đường độ dài n từ đỉnh u đến đỉnh v, đó, n số nguyên dương, đồ thị có hướng G = (V, A) dãy x0, x1,…, xn-1, xn u = x0, v = xn, (xi, xi+1) E, i = 0, 1, 2,…, n-1 Đường nói biểu diễn dạng dãy cung: (x0, x1), (x1, x2), …, (xn-1, xn) Đỉnh u gọi đỉnh đầu, đỉnh v gọi đỉnh cuối đường Đường có đỉnh đầu trùng với đỉnh cuối (tức u = v) gọi chu trình Đường hay chu trình gọi đơn cạnh bị lặp lại Ví dụ 1.2 Trên đồ thị có hướng cho Hình 1.5: a, d, c, f, e đường đơn độ dài Còn d, e, c, a không đường đi, (c,e) cạnh đồ thị Dãy b, c, f, e, b chu trình độ dài Đường a, b, e, d, a, b có độ dài là đường đơn, cạnh (a, b) có mặt lần Xét mạng máy tính Một câu hỏi đặt hai máy tính mạng trao đổi thông tin với trực tiếp qua kênh nối chúng Trang 10 Xây dựng đồ thị tương ứng, đồ thị hóa (đưa toán thành đồ thị) Sử dụng kết lý thuyết đồ thị Đưa n2 thường *Bước 1: Ta dùng cách kí hiệu phần tử mặt trận để kí hiệu ô bàn cờ n × n: aij (i,j =1 đến n) - Đỉnh: Lấy đỉnh mặt phẳng ( ) tương ứng với ô bàn cờ Sử dụng kí hiệu ô bàn cờ để ghi đỉnh tương ứng - Cạnh: Qui tắc quân cờ 1) Con Mã có qui tắc đầu mút đường chéo thuộc hình chữ nhật: 3x2 + 2x3 + + Hình 12.15 Quy tắc quân mã Khi đỉnh tương ứng với ô đâù mút đường chéo hình chữ nhật × 3.(3 × 2) nối cạnh Ta kí hiệu GM đồ thị nhận GM mô tả toàn nước Mã bàn cờ n × n Ví dụ: Xác định GM cho bàn cờ × 4: a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 Hình 12.16 Quy tắc quân mã bàn cờ × 2) Qui tắc Tượng: GT Nước Tượng la đầu mút đường chéo hình vuông tùy ý Nên đỉnh tương ứng với đầu mút đường chéo hình vuông tùy ý nối cạnh Trang 113 Đồ thị nhận kí hiệu GT GT mô tả toàn nước tượng Ví dụ: Hãy xác định đồ thị xây dựng mô tả nước Tượng bàn cờ × 4? a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 Hình 12.17 Quy tắc quân tượng bàn cờ × 3) Qui tắc Xe: GX Con Xe có nước hàng ngang – (dọc) => Nên đỉnh tương ứng vớ ô bàn cờ nằm băng hàng ngang theo chiều dọc nối cạnh Kí hiệu đồ thịn nhận GX GX mô tả toàn nước Xe Ví dụ: Hãy xác định đồ thị mô tả nước Xe bàn cờ × 4? a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44 Hình 12.18 Quy tắc quân xe bàn cờ × 4) Qui tắc Hậu GH Con hậu có nước bao gồm nước Xe Tượng Bởi đỉnh tương ứng với cặp ô đầu mút hình vuông tùy ý nằm theo hàng dọc ( nằm hang ngang) nối cạnh Kí hiệu đồ thị nhận GH mô tả toàn nước Hậu bàn cờ Trang 114 Ví dụ: Xây dựng đồ thị mô tả nước Hậu bàn cờ × 3? a11 a12 a13 a21 a22 a23 a31 a32 a33 Hình 12.19 Quy tắc quân hậu bàn cờ × *Bước 2: Sử dụng kết lý thuyết đồ thị để suy đáp án Bài toán 25 Do cách xây dưng cạnh đồ thị GM (GT, GX, GH) Mã không ăn lẫn (2 Tượng, Xe, Hậu)  chúng đứng ô tương ứng với đỉnh không kề nhau, vậy: Số Mã ( Tượng, Xe, Hậu) không ăn lẫn chúng đứng ô thuộc tập OĐT =>Số Mã (Tượng, Xe, Hậu) tối đa đặt bàn cờ n x n số OĐT đồ thị GM (GT, GX, GH ) Số cách đặt số tập OĐT có l2 max GM (GT, GX, GH ) Bài toán 26 Theo tính chất tập OĐN Nếu A tập OĐN x thuộc A – A tồn y thuộc A để (x,y) có cạnh nối =>bất kỳ ô tương ứng với đỉnh nằm tập A luôn tồn ô ứng với đỉnh nằm A để ô nằm nước quân cờ Do đó: Nếu ta đặt tất quân cờ nằm ô tương ứng với tập QĐN khống chế tất ô lại bàn cờ  Bởi số Mã (Tượng, Xe, Hậu) tối thiểu cần đặt bàn cờ GM (GT – GX – GH ) = số OĐN đồ thị GM ( GT GT GH) Số cách đặt số tập OĐT có l2 số OĐN đồ thị GM (GT – GX – GH) Bài toán 27 Để số quân cờ ta đặt khống chế tất ô lại bàn cờ ô tương ứng với tập OĐN đồ thị để đáp ứng nhu cầu quân cờ không ăn lẫn chúng phải đặt ô tương ứng với đỉnh thuộc tập OĐT =>Bởi vậy: Để quân cờ không ăn lẫn khống chế tất ô lại bàn cờ chúng phải đặt ô tương ứng với tập nhân đồ thị Trang 115  Do số Mã (Tượng, Xe, Hậu) tối thiểu cần đặt bàn cờ để chúng không ăn lẫn nhâu khống chế toàn bàn cờ l2 nhân có phần tử đồ thị GM (GT - GX – GH) Số cách đặt số nhân có l2 bé đồ thị GM (GT - GX – GH) NX: Nếu ta thay tính chất T cho quy tắc chơi cờ xây dựng đồ thị GT mô tả toàn tính chất T tập M đồ thị nhận cho ta cách phân loại tập gồm phần tử đồng thời có tính chất T Ví dụ: M= {a1, a2, ….,an} a1 thuộc N (i thuộc đến n) T: Là tính chất có ước chung (hoặc nguyên tố nhau) Khi đó: Ta phân loại tập tập M theo tính chất có ước chung(nguyên tố nhau) 12.3 Duyệt rộng mảng hai chiều Trong số trường hợp, đơn cử toán robot xén cỏ, lưới ô vuông, hay toán bàn cờ, đưa toán đồ thị(như phần 13.2) ta thấy số đỉnh đồ thị tăng lên nhanh theo số ô cỏ-hoa hay tăng theo kích thước bàn cờ Một cách giải khác, ta duyệt mảng chiều Khi tên đỉnh (i,j) tương ứng với chiều Thậm chí, số trường hợp, ta duyệt mảng chiều, với tên đỉnh đồ thị (i,j,k) tương ứng với chiều(bài toán dế) Bây ta xét toán duyệt mảng chiều sau: Bài toán 28 Cho lưới ô vuông số có đặt vật cản Các ô lại trống Từ ô lưới robot đến ô khác theo quy tắc cho sẵn theo toán đặt (có thể đến ô chung cạnh, đến ô nằm đường chéo theo kiểu mã…) Yêu cầu tìm đường ngắn cho robot từ ô (xp1, xp2) đến ô (kt1; kt2) Phân tích toán Để trình bày toán đơn giản ta giả sử quan hệ kề ô lưới có chung cạnh Thuật toán hoàn toàn giống với thuật toán duyệt chiều rộng đồ thị bình thường Ta coi ô (i,j) lưới đỉnh Tuy nhiên có khác biệt lớn duyệt đỉnh kề với ô (i.j) biểu diễn quan hệ kề cách khó Trang 116 khăn Và để giảm bớt thời gian tính toán người ta đưa cách biểu diễn liệu qua hai mảng dh, dc Từ ô đến ô kề với ta xác định hướng Ví dụ: Theo quan hệ kề xác định từ ô (i,j) lưới đến ô: (i,j + 1); (i,j - 1); (i + 1; j); (i - 1; j ) Như ta quy ước hướng từ ô i, j đến ô khác hình vẽ: (i - 1; j ) hướng (i,j - 1) hướng (i,j + 1) (i,j) hướng (i + 1; j) hướng Hình 13.20 Hướng di chuyển robot Như ta quy định hướng biểu h, h = 1,2,3,4 - đh [h] độ tăng giảm số hàng ô kề với ô (i,j) - dc [h] độ tăng giảm số cột ô kề với ô (i,j); Đối với toán cụ thể mảng dh dc cố định thay đổi Khi duyệt đỉnh kề ô (i,j) ta cần duyệt tất hướng để tới Trong trường hợp mảng dh dc khai báo sau: int [] dh = {0,-1,0,1}; int[] dc = {1,0,-1,0}; Một thay đổi mảng trước mảng hai chiều Giá trị truoc[i,j] đánh dấu hướng để từ ô phía trước tới ô (i,j) Do lật ngược lại ta phải thay đổi hướng góc 1800 Vì phải coi đỉnh ô nên hàng đợi q duong phải thay đổi phần cài đặt Chú ý không bên lưới ta coi bên lưới đặt vật cản => Biểu diễn ma trận a[i,j] a[i,j] = ô vật cản; a[i,j] = ô có vật cản Trang 117 Bài 13 Một số ứng dụng đồ thị Bài toán luồng cực đại có nhiều ứng dụng việc giải toán tổ hợp Khó khăn phải xây dựng mạng tương ứng cho việc tìm luồng cực đại tương đương với việc giải toán tổ hợp đặt Mục giới thiệu số toán 13.1 Bài toán đám cưới vùng quê Có m chàng trai vùng quê Đối với chàng trai ta biết cô gái mà vừa ý Hỏi tổ chức đám cưới chàng trai sánh duyên với cô gái mà vừa ý Ta xây dựng đồ thị với đỉnh biểu thị chàng trai cô gái, cung biểu thị vừa ý chàng trai với cô gái Khi ta thu đồ thị hai phía Ví dụ 14.1 Có chàng trai { T1, T2, T3,T4} cô gái { G1, G2, G3,G4, G5} Sự vừa ý cho bảng sau Chàng trai Các cô gái mà chàng trai ưng ý T1 G1 , G4 , G5 T2 G2 T3 G2, G3,G4 T4 G , G4 Đồ thị tương ứng cho hình 14.1 Hình 13.1 Mạng tương ứng với toán đám cưới vùng quê Trang 118 Đưa vào điểm phát s điểm thu t Nối s với tất đỉnh biểu thị chàng trai, nối t với tất đỉnh biểu thị cô gái Tất cung đồ thị có khả thông qua Bắt đầu từ luồng 0, ta tìm luồng cực đại mạng xây dựng theo thuật toán ford-Fulkerson Từ định lý tính nguyên, luồng cung số Rõ ràng luồng cực đại đồ thị có giá trị Vmax = m, toán có lời giải, cung với luồng cách tổ chức đám cưới thoả mãn điều kiện đặt Ngược lại, toán có lời giải Vmax = m Bài toán đám cưới vùng quê trường hợp riêng toán cặp ghép đồ thị hai phía mà để giải xây dựng thuật toán hiệu 13.2 Bài toán hệ thống đại diện chung Cho tập m phần tử X={ z1, z2, ,zm} Giả sử hai dãy tập X Dãy gồm n phần tử khác X: gọi hệ thống đại diện chung hai dãy cho tìm hoán vị s tập {1, 2, .,n} cho < a1, a2, ,an> hệ thống đại diện phân biệt hai dãy , tức điều kiện sau thoả mãn:  Ai  Bs (i), i = 1, 2, ,n Xây dựng mạng G = (V, E) với tập đỉnh V = { s, t}  { x1, x2, ,xn}  {u1, u2, ,un}  { v1, v2, ,vn}  { y1, y2, ,yn} đỉnh xi tương ứng với tập Ai, đỉnh yi tương ứng với tập Bi, phần tử uj, yj tương ứng với phần tử zj Tập cung mạng G xác định sau E = { (s, xi): 1≤i≤n}  { (xi,uj): với zj  Ai, 1≤i≤n, 1≤j≤m}  { (uj,vj):1≤j≤m}  {(vj, yi): với zj  Bi, 1≤i≤n, 1≤j≤m}  { (yi, t): 1≤i≤n} Khả thông qua tất cung đặt Dễ dàng thấy hệ thống đại diện chung hai dãy tồn mạng G=(V,E) tìm luồng với giá trị n Để xét tồn luồng sử dụng thuật toán tìm luồng cực đại từ s đến t mạng G=(V, E) 13.3 Bài toán tối ưu rời rạc Trong mục ta trình bày thuật toán xây dựng dựa thuật toán tìm luồng cực giải toán tối ưu rời rạc mô hình toán học cho số toán tối ưu tổ hợp Xét toán tối ưu rời rạc: Trang 119 (1) f(x1,x2, ,xn) = với điều kiện (2) (3) aij  { 0,1}, i = 1, 2, , m; j=1, 2, n, pi –nguyên dương, i = 1, 2, ,m Bài toán (1)-(3) mô hình toán học cho nhiều toán tối ưu tổ hợp thực tế Dưới ta dẫn vài ví dụ điển hình Bài toán phân nhóm sinh hoạt Có m sinh viên n nhóm sinh hoạt chuyên đề Với sinh viên i, biết + aij =1, sinh viên i có nguyện vọng tham gia vào nhóm j, + aij =0, ngược lại, + pij số lượng nhóm chuyên đề mà sinh viên i phải tham dự, i = 1, 2, ,m; j=1, 2, ,n Trong số cách phân sinh viên vào nhóm chuyên đề mà họ có nguyện vọng tham gia đảm bảo sinh viên i phải tham gia pi nhóm, tìm cách phân phối với số người nhóm có nhiều sinh viên tham gia nhỏ Đưa vào biến số xij = 1, sinh viên i tham gia vào nhóm j, xij = 0, ngược lại, i = 1, 2, ,m, j=1, 2, .,n, dễ thấy mô hình toán học cho toán đặt toán (1)-(3) Bài toán lập lịch cho hội nghị Một hội nghị có m tiểu ban, tiểu ban cần sinh hoạt ngày phòng họp phù hợp với Có n phòng họp dành cho việc sinh hoạt tiểu ban Biết aij = 1, phòng họp i thích hợp với tiểu ban j, aij=0, ngược lại, Trang 120 i = 1, 2, ,m, j =1, 2, .,n Hãy bố trí phòng họp cho tiểu ban cho hội nghị kết thúc sau ngày làm việc Đưa vào biến số xij = 1, bố trí tiểu ban i làm việc phòng j, xij =0, ngược lại, i =1, 2, ,m, j =1, 2, .,n, dễ thấy mô hình toán học cho toán đặt toán (1)-(3), pi=1, i =1, 2, ,m 13.4 Một số toán liên quan đến việc tổ chức mạng vận chuyển bưu Các toán tối ưu mạng, phần lý thuyết đồ thị hữu hạn lý thuyết toán học ứng dụng rộng rãi kinh tế, quân Người đặt móng cho lý thuyết đồ thị nhà toán học Euler, với “bài toán bảy cầu” tiếng vào năm 1736 Trong trình khai thác khía cạnh khác toán, nhà toán học đặt sở lý luận cho lý thuyết toán học đời, lý thuyết đồ thị hữu hạn (lý thuyết Graph) Đến lý thuyết đồ thị hữu hạn nghiên cứu ứng dụng hầu hết lĩnh vực hoạt động kinh tế xã hội, công cụ toán học sắc bén nghiên cứu hệ thống kỹ thuật -công nghệ, hệ thống kinh tế -xã hội, hệ thống quân sự, hệ thống bưu viễn thông v.v Trong năm gần nhờ hỗ trợ công nghệ thông tin máy tính điện tử, lý thuyết graph trở thành công cụ hiệu quả, động giải nhiều toán liên quan đến nghiên cứu phân tích hệ thống Mô hình định tuyến mạng đường thư cấp Mạng đường thư cấp thực chất đồ thị có đỉnh nút trung tâm Bưu Bưu điện trung tâm Vận chuyển nút mạng qua đường trực tiếp qua nút trung gian Do xuất toán lựa chọn tuyến đường vận chuyển Tức phải cách vận chuyển từ nút tới nút khác cần phải qua nút trung gian Giữa đỉnh có cung liên kết chúng có đường vận chuyển trực tiếp với Để giải toán xác định đường vận chuyển bưu cần có khái niệm sau: Trang 121 Lưu lượng (luồng) vận chuyển bưu gửi: Số lượng bưu gửi xuất nút mạng cần phải chuyển tới nút mạng khác Đại lượng tính đơn vị thời gian (giờ, ngày, tuần, tháng), gọi tải trọng Do đặc điểm không đồng tải trọng theo ngày tuần tháng năm nên ta xét tải trọng trung bình ngày để lập kế hoạch vận chuyển (thống kê tháng tiêu biểu chia trung bình cho ngày) Trong mô hình, tải trọng nút mạng biểu diễn dạng ma trận mà phần tử (ij) hiểu tải trọng ngày từ nút mạng i tới nút mạng j Khả lưu thoát nút mạng số lượng bưu gửi khai thác nút mạng ngày Khả lưu thoát phụ thuộc vào nhiều yếu tố diện tích mặt bằng, mức độ giới hoá, tự động hoá, tổ chức sản xuất, mức độ không đồng tải trọng, tần số thời gian khởi hành phương tiện vận chuyển Giá trị cung (chiều dài cung) giá thành vận chuyển đơn vị sản phẩm theo cung liên kết, thời gian vận chuyển nút mạng Đơn vị sản phẩm túi thư, container bưu kiện tuỳ vào toán cụ thể Giá thành vận chuyển đơn vị sản phẩm biểu diễn qua chiều dài cung thời gian vận chuyển nút mạng Bài toán lập kế hoạch vận chuyển bưu gửi Trước tiên, xét hai nút mạng cần trao đổi bưu gửi, nút mạng nguồn ws, nút đích wt, luồng tải trọng từ nguồn tới đích là: (x1 , ,xj , ,xn) cung dj với xj > tạo thành tuyến vận chuyển tải trọng xj từ nguồn ws tới đích wt, tuyến vận chuyển xác định tập hợp nút mạng (hay tập hợp cung) tham gia vào tuyến vận chuyển Như vậy, toán định tuyến mạng vận chuyển bưu gửi cần xác định luồng bưu gửi từ nút mạng tới nút mạng khác cần phải qua nút trung gian để tối thiểu hoá chi phí vận chuyển toàn mạng, đồng thời việc lựa chọn tuyến đường cần thoả mãn điều kiện ràng buộc thời gian toàn trình khả lưu thoát nút mạng Trong mạng vận chuyển bưu chính, mạng đồng thời thực nhiều luồng trao đổi, luồng có nút khởi đầu nút kết thúc Do vậy, cần đưa vào ký hiệu luồng véc tơ xq: xq =(xq1, , xqj, ,xqn) Xq cần thoả mãn điều kiện không âm điều kiện bảo toàn luồng nghĩa là: Trang 122 AXq =Vq Xq ≥ Trong đó: Vq: véctơ tất phần tử 0, ngoại trừ hai phần tử tương ứng với nút mạng khởi đầu nút kết thúc có giá trị -vq Vq (vR lưu lượng cần vận chuyển luồng); A: Ma trận liên kết cung nút chứa m dòng n cột m số nút mạng n số cung Ma trận A mô hình định tuyến mạng vận chuyển luồng cần xác định Ma trận liên kết cung nút graph G = (W,D), ký hiệu A=[aij] có kích thước m x n với phần tử xác định sau: 1, wi đỉnh đầu cung dj −1, wi đỉnh cuối cung dj 0, wi không đỉnh đầu cuối cung dj aij = Ngoài luồng Xq phải thoả mãn điều kiện ràng buộc không vượt khả khai thác nút mạng wi Xét véc tơ Pi (Pi1, Pi2, Pin) Pi = l dj hướng tới đỉnh wi Pi = ngược lại Véc tơ Pi dòng i ma trận liên kết cung nút A mà tất phần tử -l thay Như vậy, điều kiện ràng buộc khả lưu thoát nút mạng là: Trong đó: hi: Khả Lưu thoát nút mạng W r: Số đôi nút mạng mạng có trao đổi bưu gửi Tiêu chí tối ưu toán vận chuyển bưu gửi sau: Giả sử C (C1,C2, Cn) Véctơ chi phí vận chuyển Cj cước vận chuyển l đơn vị sản phẩm qua cung dj (chiều dài cung dj) Khi chi phí vận chuyển là: Z = CX1 + + CXq + + CXr = C(X1 + + Xq + + Xr ) → Vậy mô hình vận chuyển tối ưu là: Trang 123 min[Z = C(X1 + + Xq + + Xr)] P1(X1 + + Xq + + Xr) ≤ h1 Pm(X1 + + Xq + + Xr) ≤ hm AX1 = V1 AXq = Vq AXr = Vr Trong trường hợp điều kiện hạn chế khả lưu thoát nút mạng, toán định tuyến mạng bưu đơn giản toán tìm đường ngắn đôi nút mạng Bài toán tìm đường ngắn giải thuật toán dán nhãn Dijkstra Mô hình mạng đường thư thành phố Mạng đường thư thành phố đồ thị đỉnh bưu cục Hai đỉnh đồ thị nối kết với cung liên kết chúng có tuyến đường Trong thành phố bưu cục có đường thư, nên đồ thị kết nối theo kiểu điểm nối điểm Đồ thị mạng đường thư thành phố đồ thị có hướng khoảng cách i tới j j tới i không trùng (đường chiều) Giá trị cung biểu diễn khoảng cách thời gian vận chuyển nút mạng chi phí vận chuyển nút mạng Ta có chi phí vận chuyển nút mạng là: cịj = krij rij: Khoảng cách nút i nút j (cần xác định theo khoảng cách thực tế phải lựa chọn rij đường ngắn nhất, tức phải thoả mãn điều kiện rij ≤ rik + rkj cạnh tam giác nhỏ tổng cạnh lại) k: Chi phí vận chuyển l km ô tô Thời gian vận chuyển cung ij Vij: Vận tốc vận chuyển ô tô từ nút i tới nút j t0j: Thời gian trao đổi nút mạng j Trang 124 Khi tổ chức mạng đường thư sử dụng phương thức đường thẳng, đường vòng hỗn hợp Mạng đường vòng có ưu điểm sử dụng phương tiện vận chuyển hiệu Do thành phố thường sử dụng đường vòng tính kinh tế Bài toán Bài toán tổ chức mạng đường thư thành phố xác định hành trình ô tô phải qua nút mạng nào, theo trình tự để đảm bảo chi phí vận chuyển toàn mạng nhỏ (hoặc tổng quãng đường hay tổng thời gian vận chuyển nhỏ nhất) đồng thời thoả mãn ràng buộc thời gian vận chuyển ô tô dung lượng vận chuyển ô tô Trong hệ thống khai thác tập trung tồn Bưu điện trung tâm Nếu chia nút mạng làm hai loại nguồn đích, nút mạng trung tâm nguồn, nút mạng lại đích ngược lại Trong mô hình vận chuyển bưu gửi thành phố, đỉnh đồ thị đặc trưng số lượng bưu gửi mà cần nhận từ qi ngược lại cần gửi ri Trong đó: 0: nút nguồn i = l ÷ N: đích Trong hệ thống khai thác phân tán đồ thị chia thành đồ thị con, đồ thị có nút mạng nguồn việc giải toán thực tế giải toán Nếu mạng vận chuyển thành phố chủ yếu ô tô, ta giả sử: M: số ô tô toàn mạng Qj - dung lượng j ô tô, phụ thuộc vào loại ô tô T - thời gian vận chuyển tối đa cho phép đường thư T xác định dựa định mức (T = giờ) Qj = (Pj / b, Vj / d) Trong Pj: tải trọng ô tô; Vj: thể tích vận chuyển ô tô; Trang 125 b: Khối lượng trung bình túi thư; d: thể tích trung bình túi thư Mô hình toán học Giả sử gọi xijk ẩn cần tìm, xijk = tuyên vòng k, đỉnh j tới sau đỉnh i, Xijk = trường hợp ngược lại, mô hình toán học toán mạng đường thư thành phố là: Biến Xijk cần thoả mãn ràng buộc sau: j=0÷N (1) k = ÷ M, p = ÷ N (2) k=1÷M (3) k=1÷M (4) Trong t0i: thời gian trao đổi nút mạng i (l): Do đỉnh đồ thị thuộc tuyến đường vòng; (2): Đối với đỉnh, số lượng cung vào phải đỉnh; (3): Ràng buộc dung lượng ô tô; (4): Ràng buộc thời hạn vận chuyển ô tô Đây toán tổng quát mạng vận chuyển thư thành phố Bài toán tìm hành trình bưu tá qua n điểm trường hợp riêng có tuyến đường vòng qua n điểm (M=1), toán cần xác định M tuyến đường cho M ô tô cần thoả mãn hạn chế (ràng buộc) tiêu thời gian dung lượng vận chuyển ô tô Trang 126 TÀI LIỆU THAM KHẢO [1] Lý thuyết tổ hợp đồ thị, Ngô Đắc Tân, Viện Toán Học, NXB Đại học Quốc Gia Hà Nội, 2003 [2] Toán rời rạc, Nguyễn Đức Nghĩa, Nguyễn Tô Thành, NXB Giáo dục, Hà nội 1997 [3] Lý thuyết đồ thị, Đặng Huy Ruận, NXB ĐHQG, 1997 [4] Discrete Mathematics && Its Applications, 6th Edition, Kenneth H Rosen, McGraw Hill, 2007 [5] Handbook of Discrete && Combinatorial Mathematics, Kenneth H.Rosen (chief of editor), CRC Press, 2000 Trang 127 ... Bài toán đám cưới vùng quê 118 13.2 Bài toán hệ thống đại diện chung 119 13.3 Bài toán tối ưu rời rạc 119 Bài toán phân nhóm sinh hoạt 120 Bài toán. .. 7.2 Bài toán khung nhỏ 48 7.3 Xây dựng tập chu trình đồ thị 49 7.4 Thuật toán Prim 51 7.5 Thuật toán Kruskal 54 Bài Thảo luận cài đặt thuật toán tìm... thị 57 8.2 Cài đặt thuật toán Prim 59 8.3 Cài đặt thuật toán Kruskal 60 8.4 Một số thuật toán xây dựng khung(*) 61 Bài Bài toán tìm đường ngắn

Ngày đăng: 24/10/2017, 15:52

TỪ KHÓA LIÊN QUAN

w