Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
1,07 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC ĐOÀN NGỌC LÀNH MỘT SỐ BÀI TOÁN TỐI ƯU TỔ HỢP TRÊN ĐỒ THỊ LUẬN VĂN THẠC SĨ TOÁN HỌC Thái Nguyên - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Tai ngay!!! Ban co the xoa dong chu nay!!! http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC ĐOÀN NGỌC LÀNH MỘT SỐ BÀI TOÁN TỐI ƯU TỔ HỢP TRÊN ĐỒ THỊ Chuyên ngành: TOÁN ỨNG DỤNG Mã số : 60.46.36 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học: TS VŨ MẠNH XUÂN Thái Nguyên - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mục lục Mở đầu Tối ưu tổ hợp 1.1 Thuật toán độ phức tạp thuật toán 1.1.1 Thuật toán 1.1.2 Độ phức tạp thuật toán 1.1.3 Đánh giá thời gian tốt nhất, tồi thuật toán 1.2 Tối ưu tổ hợp 1.2.1 Bài toán tối ưu tổ hợp 1.2.2 Một số toán cụ thể 1.2.3 Bài toán lớp P lớp N P trung bình Một số toán tối ưu tổ hợp đồ thị 2.1 Một số khái niệm 2.1.1 Đồ thị vô hướng 2.1.2 Đồ thị có hướng 2.1.3 Đường đi, chu trình Đồ thị liên thơng 2.2 Thuật tốn tìm kiếm đồ thị 2.2.1 Thuật tốn tìm kiếm theo chiều sâu đồ thị 2.2.2 Tìm kiếm theo chiều rộng đồ thị 2.3 Bài toán đường ngắn 2.3.1 Đường ngắn xuất phát từ đỉnh đến đỉnh lại_Thuật toán Dijkstra 2.3.2 Đường ngắn tất cặp đỉnh_Thuật toán Floyd 2.4 Bài toán luồng cực đại mạng ứng dụng 2.4.1 Mạng Luồng mạng Bài tốn luồng cực đại Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 5 10 13 13 14 16 18 18 18 19 20 22 22 25 29 31 37 41 41 2.4.2 2.4.3 2.4.4 2.4.5 Lát cắt Đường tăng luồng Định lí Ford - Fulkerson Thuật tốn tìm luồng cực đại mạng Một số toán luồng tổng quát Một số ứng dụng tổ hợp từ toán luồng 43 46 54 57 Kết luận 64 Tài liệu tham khảo 65 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Mở đầu Lý thuyết đồ thị lĩnh vực nghiên cứu có ý nghĩa thực tiễn cao lâu Tuy nhiên, việc tính tốn đồ thị thường cần khối lượng tính tốn khơng gian nhớ lớn, gần với phát triển mạnh mẽ kỹ thuật máy tính điện tử, toán tối ưu đồ thị ngày quan tâm đạt nhiều kết khả quan Đáng ý, việc chứng minh giả thuyết bốn màu xem minh chứng rõ nét việc chứng minh tốn nhờ máy tính điện tử Mặc dù có ý nghĩa thực tiễn cao lý thuyết đồ thị đưa vào chương trình giảng dạy nói chung cịn sơ sài Đề tài đặt vấn đề nghiên cứu vấn đề thuật toán, độ phức tạp thuật toán, m ột số toán tối ưu cụ thể đồ thị trình bày thuật tốn kết tính tốn với tốn cụ thể Nội dung Luận văn gồm chương Chương trình bày khái qt thuật tốn, độ phức tạp thuật tốn, nêu số tốn có độ phức tạp đa thức không đa thức Chương trình bày số thuật tốn giải lớp tốn: duyệt đồ thị, tốn tìm đường ngắn nhất, toán luồng cực đại minh họa ví dụ cụ thể Dù cố gắng, chắn nội dung trình bày luận văn khơng tránh khỏi thiếu sót định, em mong nhận góp ý thầy cô giáo bạn Luận văn hoàn thành bảo hướng dẫn tận tình TS Vũ Mạnh Xuân Thầy dành nhiều thời gian hướng dẫn giải đáp thắc mắc tơi suốt q trình làm luận văn Em xin bày tỏ lòng biết ơn sâu sắc đến Thầy Tôi xin cảm ơn Sở Nội vụ, Sở Giáo dục Đào tạo Tuyên Quang, trường THPT Xuân Vân, Tổ Toán trường THPT Xuân Vân giúp đỡ tạo điều kiện cho tơi hồn thành khóa học Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Em xin gửi tới thầy cô khoa Tốn, phịng đào tạo sau đại học Trường Đại học Khoa Học, Đại học Thái Nguyên Thầy tham gia giảng dạy khóa cao học 2010 - 2012, lời cảm ơn sâu sắc cơng lao dạy dỗ suốt q trình giáo dục, đào tạo Nhà trường Thái Nguyên, ngày 15 tháng năm 2012 Người thực Đoàn Ngọc Lành Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Chương Tối ưu tổ hợp Chương trình bày lớp tốn tối ưu tổ hợp, thuật tốn mơ tả thuật tốn ngơn ngữ tựa Passcal, đánh giá độ phức tạp thuật toán Nêu số toán cụ thể thuộc lớp tốn tối ưu tổ hợp, từ đưa khái niệm toán lớp P lớp NP 1.1 1.1.1 Thuật toán độ phức tạp thuật toán Thuật toán Khái niệm thuật toán thuật ngữ “Algorithm” (thuật toán) tên nhà toán học Arập: Aba Ja’fa Mohamedibn Musaal Khowarizmi, người viết sách chữ số Hindu - sở kí hiệu số thập phân đại Ban đầu từ algorism dùng để quy tắc thực phép tính số học với số viết hệ thập phân Sau đó, Algorism chuyển thành Algorithm vào kỷ XIX Với quan tâm ngày tăng máy tính, khái niệm thuật tốn định nghĩa cách hình thức xác thông qua máy Turing Tuy nhiên Luận văn khái niệm thuật toán hiểu trực quan sau Định nghĩa 1.1.1 Thuật toán để giải toán (P) thủ tục xác định, chia thành phép toán bản, biến đổi dãy dấu hiệu diễn tả liệu, không quan trọng chỗ thuộc chất tốn (P) thành dãy dấu hiệu đặc trưng cho kết (P) Thuật tốn có đặc trưng sau: • Đầu vào (Input): Một thuật tốn nhận giá trị đầu vào từ tập hợp rõ (tập xác định) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn • Đầu (Output): Từ tập có giá trị đầu vào, thuật toán tạo giá trị đầu tương ứng Các giá trị đầu nghiệm (lời giải) tốn • Tính xác (Precision): Các bước thuật tốn phải mơ tả xác Ở bước, thao tác phải rõ ràng, không gây nên nhập nhằng, lộn xộn, tùy tiện, đa định nghĩa Nói rõ hơn, điều kiện hai xử lý thực bước thuật toán phải cho kết • Tính hữu hạn hay tính dừng (Finiteness): Sau số hữu hạn bước thuật toán phải cho kết với đầu vào • Tính đơn trị (Uniqueness): Các kết trung gian bước thực thuật toán xác định cách đơn trị, phụ thuộc đầu vào kết bước trước Với hai liệu giống cho trước làm input, thuật toán đơn định thi hành mã lệnh giống cho kết giống nhau, cịn thuật tốn ngẫu nhiên thực theo mã lệnh khác cho kết khác • Tính tổng qt (Generality): Thuật tốn giải toán lớp toán xét Với thuật tốn có đầu vào liệu khác miền xác định vận dụng thuật tốn • Tính hiệu (The effectiveness): Hiệu thời gian: Thuật toán phải thực thời gian cho phép, điều khác với lời giải toán (chỉ cần chứng minh kết thúc sau hữu hạn bước) Tính hiệu nhớ: Kích thước thuật tốn phải đủ nhỏ để phù hợp với khả lưu trữ Mô tả thuật tốn: Có nhiều cách trình bày thuật tốn, dùng ngôn ngữ tự nhiên, ngôn ngữ lưu đồ (sơ đồ khối), ngơn ngữ lập trình, ngơn ngữ trình Trong đề tài thuật tốn trình bày ngơn ngữ tựa Pascal, cho phép vừa mơ tả thuật tốn ngơn ngữ thơng thường, vừa sử dụng cấu trúc lệnh tương tự ngơn ngữ lập trình Pascal Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Ví dụ 1.1.2 Mơ tả thuật tốn tìm phần tử lớn dãy hữu hạn số nguyên a) Dùng ngôn ngữ tự nhiên để mô tả bước cần thực Đặt giá trị cực đại tạm thời số nguyên dãy (Cực đại tạm thời số nguyên lớn kiểm tra giai đoạn thủ tục.) So sánh số nguyên tiếp sau với giá trị cực đại tạm thời, lớn giá trị cực đại tạm thời đặt cực đại tạm thời số nguyên Lặp lại bước trước số nguyên dãy Dừng khơng cịn số ngun dãy Cực đại tạm thời điểm số nguyên lớn dãy b) Thuật tốn mơ tả tựa Passcal Input: Dãy gồm n số nguyên a1 , a2 , , an Output: Max số lớn dãy Procedure Max(a1 , a2 , , an : integer); Begin Max:= a1 ; for i:= to n (* Nếu lớn Max gán lại Max *) if M ax < then M ax := ; End; Thuật toán trước hết gán số hạng a1 dãy cho biến M ax Vòng lặp for dùng để kiểm tra số hạng dãy Nếu số hạng lớn giá trị thời M ax gán làm giá trị M ax 1.1.2 Độ phức tạp thuật toán Để đánh giá khả ứng dụng chương trình ta cần phân tích tính hiệu thuật tốn Phân tích thuật tốn trình tìm đánh giá thời gian tính dung lượng nhớ cần thiết để thực thuật tốn Để đo tính hiệu thuật toán cho, ta thiết lập mối quan hệ thời gian tiến hành thuật toán, diễn tả số phép tốn với kích thước toán xét, diễn tả số dấu hiệu cần thiết để mã hóa liệu tốn Có ba câu hỏi đặt đánh giá thuật toán: Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn 1) Những phép tốn nói đến phép tốn nào? 2) Bộ mã hóa liệu cho phép ta đo kích thước toán? 3) Những hàm liên kết kích thước với số phép tốn mà giúp ta nói thuật tốn hiệu quả? Có thể cho việc trả lời câu hỏi thứ ba cho phép ta trả lời hai câu hỏi đầu Thước đo hiệu thuật toán thời gian mà máy tính sử dụng để giải toán theo thuật toán xét, giá trị đầu vào có kích thước xác định Một thước đo thứ hai dung lượng nhớ đòi hỏi để thực thuật toán giá trị đầu vào có kích thước xác định Các vấn đề liên quan đến độ phức tạp tính tốn thuật toán Định nghĩa 1.1.3 Độ phức tạp tính tốn thuật tốn lượng thời gian nhớ cần thiết để thực thuật toán (ta gọi thời gian tính thuật tốn) Vì việc xem xét độ phức tạp không gian gắn liền với cấu trúc liệu đặc biệt dùng để thực thuật toán nên ta tập trung xem xét độ phức tạp thời gian tính thuật tốn Chúng ta quan tâm đến: • Thời gian tính tốt thuật tốn với đầu vào kích thức n, thời gian tối thiểu cần thiết để thực thuật tốn • Thời gian tính tồi thuật tốn với đầu vào kích thước n, thời gian nhiều cần thiết để thực thuật tốn • Thời gian tính trung bình thuật tốn, thời gian trung bình cần thiết để thực thuật toán, tập hữu hạn đầu vào kích thước n Để tính tốn thời gian tính thuật toán ta đếm số câu lệnh mà phải thực hiện, số trường hợp cụ thể đếm số phép tính số học, so sánh, gán, mà thuật tốn địi hỏi thực Đây tiêu chuẩn khách quan để đánh giá tính hiệu thuật tốn Ví dụ 1.1.4 Kiểm tra số ngun dương n có phải ngun tố khơng? Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn cách gán nhãn cho luồng zero Hình 2.16 Hình 2.16: Hình 2.17: Mạng G với luồng ban đầu Bước lặp 1: s → a → b → t, δ1 = Tương tự ta có Bước lặp 2: s → a → b → t, δ2 = Bước lặp 3: s → c → e → t, δ3 = Bước lặp 4: s → d → e → t, δ4 = Bước lặp 5: s → c → d → e → t, δ5 = Bước lặp 6: Khơng cịn đường tăng luồng, V al(f ) = + + = 16 Đồ thị tăng luồng hình 2.18 51 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Vậy giá trị luồng cực đại f = 16 Lát cắt hẹp Hình 2.18: Đồ thị tăng luồng tương ứng VΓ = {a, b, t}, V\VΓ = {s, c, d, e} Giả sử khả thông qua tất cung đồ thị số nguyên Khi sau lần tăng luồng, giá trị luồng tăng lên Từ suy thuật tốn Ford - Fulkerson dừng không val(f ∗ ) lần tăng luồng cho ta luồng cực đại mạng Rõ ràng f ∗ (u, v) số nguyên cung (u, v) ∈ E Từ ta có kết sau Định lý 2.4.12 (Định lí tính nguyên) Nếu tất khả thơng qua số ngun ln tìm luồng cực đại với luồng cung số nguyên Nhận xét 2.4.13 Nếu khả thơng qua số lớn giá trị luồng cực đại lớn thuật tốn mơ tả địi hỏi nhiều bước tăng luồng Thí dụ hình 2.19 minh họa cho điều Hình 2.19 (a) mơ tả mạng cần xét với khả thông qua cung Hình 2.19 (b) mơ tả luồng cung (số thứ hai bên cạnh cung) sau thực tăng luồng dọc theo đường tăng luồng (s, a, b, t) Hình 2.24 (c) mơ tả luồng cung sau thực tăng luồng dọc theo đường tăng luồng (s, b, a, t) Rõ ràng, sau 2.106 lần tăng luồng theo đường (s, b, a, t) (s, b, a, t) cách luân phiên ta thu luồng cực đại 52 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Hình 2.19: Ví dụ tồi tệ với thuật tốn Ford - Fulkerson Hơn khả thông qua số vơ tỷ, người ta cịn xây dựng ví dụ thuật tốn khơng dừng, tệ dãy giá trị luồng xây dựng theo thuật tốn hội tụ cịn khơng hội tụ đến giá trị luồng cực đại Như vậy, muốn thuật toán làm việc hiệu quả, việc lựa chọn đường tăng luồng cần tiến hành cẩn thận Độ phức tạp thuật toán: Edmonds Karp đường tăng luồng chọn đường ngắn từ s đến t đồ thị Gf Điều thực hiện, ta dùng thủ tục tìm đường tăng luồng M ax_F low, danh sách VΓ tổ chức dạng QUEUE (nghĩa ta thực tìm đường tăng thủ tục |E|.|V| tìm kiếm theo chiều rộng) thuật tốn kết thúc sau không lần sử dụng đường tăng luồng Nếu để ý rằng, tìm kiếm theo chiều rộng đồ thị địi hỏi thời gian O(|E| + |V|), thuật tốn thu có độ phức tạp tính tốn O(|V|.|E|2 ) Nhờ cách tổ chức tìm đường tăng khéo léo hơn, người ta xây dựng thuật tốn với độ phức tạp tính tốn tốt như: O(n2 m)(Dinic, 1970), O(n3 ) (Karzanov, 1974), O(n2 m1/2 ) (Cherkasky, 1977), O(nmlogn) (Sleator - Tarjan, 1980) với m = |V|, n = |E| Trong phương pháp Ford - Fulkerson, dùng đường ngắn (qua cạnh nhất) từ đỉnh phát tới đỉnh thu đồ thị tăng luồng cần 53 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn n.m lần chọn đường để tìm luồng cực đại Edmonds Karp chứng minh tính chất đề nghị phương pháp cải tiến: Tại bước, ta nên tìm đường tăng luồng cho giá trị tăng luồng gia tăng nhiều Nói chung thuật toán Ford - Fulkerson, đánh giá lý thuyết bị lệch nhiều so với thực tế, với phân tích trường hợp xấu, chi phí thời gian thực thuật tốn lớn Nhưng thực tế thuật tốn hoạt động nhanh hiệu 2.4.4 Một số toán luồng tổng quát Trong phần ta nêu số dạng toán luồng tổng quát mà việc giải chúng dẫn tốn luồng cực đại trình bày Bài tốn 2.4.14 Mạng với nhiều điểm phát điểm thu Xét mạng G với p điểm phát s1 , s2 , , sp q điểm thu t1 , t2 , , tq Giả sử luồng từ điểm phát đến tất điểm thu Bài tốn tìm luồng cực đại từ điểm phát đến điểm thu đưa toán với điểm phát điểm thu cách đưa vào điểm phát giả s điểm thu giả t, cạnh nối s với tất điểm phát cạnh nối điểm thu với t Hình 2.20 minh họa cho cách đưa mạng với nhiều điểm phát nhiều Hình 2.20: Mạng với nhiều điểm phát nhiều điểm thu điểm thu mạng có điểm phát điểm thu Khả thông qua cung nối s với điểm phát sk +∞ khơng có hạn chế lượng phát điểm phát sk , lượng phát sk bị hạn chế bk cung (s, sk ) có khả thơng qua bk Cũng vậy, 54 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn cung nối tk với điểm thu t, giả sử khả thông qua (tk , t) giới hạn không giới hạn tùy theo lượng thu điểm thu có bị giới hạn hay không Trường hợp số điểm thu nhận "hàng" từ số điểm phát ta có tốn nhiều luồng toán phức tạp nhiều so với toán luồng cực đại điểm phát s điểm thu t Bài toán 2.4.15 Bài tốn với khả thơng qua cung đỉnh Giả sử đồ thị G, khả thông qua cung c(u, v), đỉnh v ∈ V cịn có khả thơng qua đỉnh d(v), đòi hỏi tổng luồng vào đỉnh v không vượt d(v), tức X f (v, w) ≤ d(v) w∈V Cần tìm luồng cực đại s t mạng Xây dựng Hình 2.21: Mạng G với khả thông qua cung đỉnh mạng G0 cho: đỉnh v G tương ứng với đỉnh v + , v − G0 , cung (u, v) G ứng với cung (u− , v + ) G0 , cung (v, e) G ứng với cung (v − , w+ ) G0 Ngoài ra, cung (v + , v − ) G0 có khả thơng qua d(v), tức khả thông qua đỉnh v G Do luồng vào đỉnh v + phải qua cung (v + , v − ) với khả thông qua d(v), nên luồng cực đại G0 luồng cực đại G với khả thông qua cung đỉnh Bài tốn 2.4.16 Mạng khả thơng qua cung bị chặn hai phía 55 Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn Hình 2.22: Mạng G0 tương ứng có khả thông qua cung Xét mạng G mà cung (u, v) có khả thông qua (cận luồng cung) c(u, v) cận luồng d(u, v) Bài tốn đặt có tồn luồng tương thích từ s đến t, tức luồng {f (u, v) : u, v ∈ V} thoả mãn thêm ràng buộc d(u, v) ≤ f (u, v) ≤ c(u, v), ∀(u, v) ∈ E, hay khơng? Hình 2.23: Mạng G với khả thông qua cung bị chặn hai phía Đưa vào mạng G đỉnh phát giả sa đỉnh thu giả ta xây dựng mạng Ga theo quy tắc: Mỗi cung (u, v) mà d(u, v) 6= tương ứng với cung (sa , v) (u, ta ) với khả thông qua d(u, v) Giảm c(u,v) d(u,v), tức thay khả thông qua cung (u,v) c(u, v) − d(u, v) cịn cận 56 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn đặt Ngồi thêm vào cung (t,s) với c(t, s) = ∞ Hình 2.23 (a) cho ví dụ mạng G với khả thơng qua cung bị chặn hai phía Đồ thị Ga tương ứng cho hình 2.23 (b) Ký hiệu: X ∗ d = d(u, v) d(u,v)6=0 Từ ta có kết sau Định lý 2.4.17 1) Nếu luồng lớn mạng Ga từ sa đến ta d∗ tồn luồng tương thích G 2) Nếu luồng lớn mạng Ga từ sa đến ta khác d∗ khơng tồn luồng tương thích G 2.4.5 Một số ứng dụng tổ hợp từ tốn luồng Bài tốn luồng cực đại có nhiều ứng dụng việc giải lớp toán tối ưu tổ hợp Khó khăn phải xây dự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 Mục giới thiệu số toán Bài toán 2.4.18 Đám cưới vùng quê: Có m chàng trai là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 dun với 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 gái Khi ta thu đồ thị hai phía Ví dụ 2.4.19 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 , G5 T4 G2 , G4 Đồ thị tương ứng cho hình 2.24 Đư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 Cung (Gi , Tj ) 57 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Hình 2.24: Mạng tương ứng với Bài toán đám cưới vùng quê đồ 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 Bước 1: s → T1 → G1 → t; Bước 2: s → T2 → G2 → t; 1 1 Bước 3: s → T3 → G3 → t; 1 1 Bước 4: s → T4 → G5 → t 1 1 Giá trị luồng cực đại: f = Luồng cực đại có là: xsT1 = 1, xsT2 = 1, xsT3 = 1, xsT4 = 1, xT1 G1 = 1, xT2 G2 = 1, xT3 G3 = 1, xT4 G5 = 1, xG1 t = 1, xG2 t = 1, xG3 t = 1, xG5 t = Vậy tổ chức đám cưới thỏa mãn điều kiện đặt với giá trị luồng cực đại f = Tức tổ chức đám cưới với cặp sau T1 với G1 ; T2 với G2 ; T3 với G3 ; T4 với G5 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, tố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, tốn có lời giải Vmax = m tốn đám cưới vùng quê trường hợp riêng tốn cặp ghép đồ thị hai phía mà để giải xây dựng thuật tốn hiệu Bài tốn 2.4.20 Bài tố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 có i nguyện vọng tham gia vào nhóm j, * aij = 0, ngược lại, 58 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn * pi số lượng nhóm chuyên đề mà sinh viên i phải tham dự, i = 1, m; j = 1, 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ỏ Phân tích: Đư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, m; j = 1, n dễ thấy mơ hình tốn học cho tốn đặt tốn tối ưu rời rạc sau f (x1 , x2 , , xn ) = max 1≤i≤m n X xij → min; (2.1) j=1 với điều kiện n X aij xij = pi , i = 1, m; (2.2) j=1 xij = xij = 1, 1, n; (2.3) aij ∈ {0, 1}, i = 1, m; j = 1, n, pi ∈ N Bài giải: Giả sử có m sinh viên SV1 , SV2 , , SVm n nhóm sinh hoạt N1 , N2 , , Nn Gọi A = (aij ), i = 1, m, j = 1, n, ma trận đăng ký sinh hoạt theo nguyện vọng sinh viên N1 N2 Nn