Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)Bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (LV thạc sĩ)
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC HOÀNG THỊ CÚC BÀI TOÁN LUỒNG LỚN NHẤT VÀ LUỒNG CHI PHÍ NHỎ NHẤT TRÊN MẠNG LUẬN VĂN THẠC SĨ TOÁN HỌC Thái Nguyên - 2016 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC HOÀNG THỊ CÚC BÀI TOÁN LUỒNG LỚN NHẤT VÀ LUỒNG CHI PHÍ NHỎ NHẤT TRÊN MẠNG LUẬN VĂN THẠC SĨ TOÁN HỌC Chuyên ngành: Toán ứng dụng Mã số: 60 46 01 12 NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TS TRẦN VŨ THIỆU Thái Nguyên - 2016 i Mục lục Danh sách kí hiệu iii Danh sách hình vẽ v Lời nói đầu Chương Kiến thức chuẩn bị 1.1 Khái niệm đồ thị 1.1.1 Định nghĩa ký hiệu 1.1.2 Đồ thị đẳng cấu 1.1.3 Đồ thị liên thông 1.1.4 Đường chu trình đồ thị 1.1.5 Một số dạng đồ thị đặc biệt 1.2 Mạng luồng 12 1.3 Một số toán tối ưu đồ thị 13 1.3.1 Ghép cặp, phủ cạnh, phủ đỉnh, tập ổn định clique 13 1.3.2 Bài toán phủ đỉnh, phủ cạnh ghép cặp 14 Kết luận Chương 15 1.4 Chương Bài toán luồng lớn mạng 2.1 17 Nội dung toán 17 2.1.1 17 Mạng luồng ii 2.1.2 Luồng tương thích lớn 19 2.1.3 Bài toán luồng lớn mạng 19 2.1.4 Tiêu chuẩn tối ưu 20 2.2 Thuật toán tìm luồng lớn 22 2.3 Luồng lớn thiết diện nhỏ 25 2.3.1 Khả mạng 25 2.3.2 Thiết diện nhỏ 27 Kết luận Chương 29 2.4 Chương Bài toán luồng chi phí nhỏ mạng 30 3.1 Phát biểu toán 30 3.2 Tiêu chuẩn tối ưu 31 3.3 Thuật toán thu hẹp tắc 35 3.4 Trường hợp tổng quát (d(u) = +∞) 40 3.5 Kết luận Chương 41 Kết luận 42 Tài liệu tham khảo 43 iii Danh sách kí hiệu G = G(V, E) đồ thị vô hướng với tập đỉnh V , tập cạnh E G = (A,U, d(u)) mạng với tập đỉnh A, tập cung U, khả cung d(u) X = {x(u)} luồng mạng u = (i, j) cạnh (cung) từ đỉnh i đến đỉnh j c(u), di j khả thông qua cạnh (cung) u = (i, j) d(u), di j khả thông qua cạnh (cung) u = (i, j) x(u) cường độ luồng cạnh (cung) u Kn đồ thị hai phần đầy đủ n đỉnh Km,n đồ thị hai phần đầy đủ, phần m n đỉnh pi yêu cầu đỉnh i (đỉnh i trạm phát pi < 0, đỉnh i trạm thu pi > 0) αi = αi (X) thông lượng luồng đỉnh i Ui− tập hợp cung tới đỉnh i Ui+ tập hợp cung khỏi đỉnh i σ (X) trị số luồng X f (X) hàm cước phí luồng X µ dây chuyền hay chu trình mạng iv Danh sách hình vẽ 1.1 Sơ đồ khu phố 1.2 Sơ đồ mạch điện 1.3 Đồ thị đại diện 1.4 Cạnh kép đa đồ thị 1.5 Khuyên đa đồ thị 1.6 Đồ thị có hướng 1.7 Bậc đỉnh đồ thị 1.8 Các đồ thị đẳng cấu với đồ thị Hình 1.3 1.9 Đồ thị G1 , G2 hợp G1 ∪ G2 1.10 Đồ thị không liên thông 1.11 Ví dụ rừng 10 1.12 Đồ thị đầy đủ K4 K5 11 1.13 Đồ thị hai phần 11 1.14 Đồ thị hai phần đầy đủ: K1,3 , K2,3 , K3,3 , K4,3 11 1.15 Phủ đỉnh, phủ cạnh ghép cặp 15 2.1 Thông lượng đỉnh (αi = 18 − = 7) 18 2.2 Dây chuyền chưa bão hòa 20 2.3 Luồng lớn mạng dạng 25 v 3.1 Ví dụ 3.3.6: yêu cầu trạm, cước phí cung 39 3.2 Rút gọn đường nhánh 39 3.3 Luồng tối ưu: x(u) ghi cung u 39 Lời nói đầu Các sơ đồ giao thông, sơ đồ mạch điện hay sơ đồ tổ chức quan, trường học quen thuộc với nhiều người Đó hình ảnh sinh động cụ thể khái niệm toán học trừu tượng - khái niệm đồ thị (graph) Có thể hiểu đơn giản "đồ thị" cấu trúc toán học rời rạc, bao gồm hai yếu tố đỉnh cạnh với mối quan hệ chúng Nếu cạnh đồ thị có xét tới di chuyển lượng vật chất (nước, xăng dầu, hàng hóa ) đồ thị gọi mạng (network) Đồ thị mạng mô hình toán học cho nhiều vấn đề lý thuyết thực tiễn đa dạng Lý thuyết đồ thị mạng đề cập tới nhiều toán đa dạng có ý nghĩa thực tiễn thiết thực, nhiều phương pháp xử lý thuật toán giải độc đáo hiệu quả, giúp ích cho phát triển tư toán học nói chung khả vận dụng sống thường ngày nói riêng Trong số đáng ý hai toán sau đây: toán luồng lớn toán luồng chi phí nhỏ mạng Bài toán thứ tìm cách vận chuyển nhiều hàng từ (hay nhiều) đỉnh nguồn tới (hay nhiều) đỉnh đích mạng cho trước Bài toán thứ hai thực chất toán vận tải mạng vận chuyển hàng hóa từ điểm cung cấp tới điểm tiêu thụ với chi phí nhỏ Các toán nhiều nhà toán học tiếng quan tâm, nghiên cứu Ford-Fulkerson, Hoàng Tụy có lý thuyết đẹp luồng mạng Luận văn “Luồng lớn luồng chi phí nhỏ mạng” có mục đích tìm hiểu trình bày hai toán nói thuật toán giải hai toán Luận văn viết dựa chủ yếu tài liệu tham khảo có [1]-[5] Nội dung luận văn gồm ba chương: • Chương Kiến thức chuẩn bị nhắc lại số khái niêm đồ thị: đỉnh cạnh, đường chu trình, đồ thị đặc biệt (rừng cây, đồ thị đầy đủ, đồ thị hai phần), khái niệm mạng luồng mạng Giới thiệu số toán tối ưu đồ thị: tìm phủ đỉnh, phủ cạnh nhỏ nhất, tìm ghép cặp lớn • Chương Bài toán luồng lớn mạng trình bày nội dung toán luồng lớn mạng, dạng mở rộng toán luồn lớn mạng giao thông Ford -Fulkerson, nêu điều kiện cần đủ để có luồng lớn thuật toán tìm luồng lớn mạng Cuối chương giới thiệu định lý quan trọng cho biết trị số luồng lớn khả thiết diện nhỏ • Chương Bài toán luồng chi phí nhỏ mạng đề cập tới toán vận tải mạng trình bày "thuật toán thu hẹp tắc" giải toán Luận văn thực Trường Đại học Khoa học - Đại học Thái Nguyên hoàn thành với hướng dẫn GS.TS Trần Vũ Thiệu (Viện Toán học - Viện Hàn lâm Khoa học & Công nghệ Việt Nam) Tác giả xin bày tỏ lòng biết ơn chân thành sâu sắc tới người hướng dẫn khoa học mình, người đặt vấn đề nghiên cứu, dành nhiều thời gian hướng dẫn tận tình giải đáp thắc mắc tác giả suốt trình làm luận văn Tác giả xin trân trọng cảm ơn Ban Giám hiệu Trường Đại học Khoa học - Đại học Thái Nguyên, Ban Chủ nhiệm Khoa Toán–Tin, giảng viên tham gia giảng dạy tạo điều kiện tốt để tác giả học tập nghiên cứu Nhân dịp này, tác giả xin gửi lời cảm ơn tới tập thể Lớp B, cao học Toán khóa (2014-2016) động viên giúp đỡ tác giả nhiều suốt trình học tập Lời cuối, tác giả muốn dành lời cảm ơn đặc biệt đến đại gia đình động viên chia sẻ khó khăn để tác giả hoàn thành tốt luận văn Thái Nguyên, ngày 20 tháng năm 2016 Tác giả Hoàng Thị Cúc 29 Thành thử, với luồng X tương thích lớn thiết diện (S1 , S2 ) σ (X) = p− (S2 ) + p+ (S1 ) + d(US−2 ), tức trị số luồng khả thiết diện Do định lý chứng minh Trường hợp riêng Trong trường hợp toán luồng lớn mạng Ford-Fulkerson rõ ràng thiết diện (S1 , S2 ) có ∈ S1 , n ∈ S2 , p− (S1 ) = p+ (S2 ) = 0, nên khả thiết diện thu lại d(US−2 ), tức tổng số hàng hóa đưa từ vào S2 Định lý 2.3.3 trường hợp cụ thể Ford Fulkerson phát biểu chứng minh từ năm 1956 2.4 Kết luận Chương Chương trình bày nội dung toán luồng lớn mạng, dạng mở rộng toán luồn lớn mạng giao thông Ford -Fulkerson, nêu điều kiện cần đủ để có luồng lớn thuật toán tìm luồng lớn mạng Cuối chương giới thiệu định lý quan trọng cho biết trị số luồng lớn khả thiết diện nhỏ 30 Chương Bài toán luồng chi phí nhỏ mạng Chương đề cập tới toán luồng chi phí nhỏ mạng, nêu tiêu chuẩn tối ưu trình bày phương pháp thu hẹp tắc giải toán Nội dung chương tham khảo chủ yếu từ tài liệu tham khảo [2] [5] 3.1 Phát biểu toán Ở Chương ta xét toán vận chuyển với tên gọi toán luồng lớn mạng (maximum flow problem in a network), theo khả thông qua tuyến đường yêu cầu trạm Ở đây, ta ý thêm yếu tố thứ ba cước phí vận chuyển đoạn đường Cụ thể, ta xét toán sau đây, thường gọi toán luồng chi phí nhỏ mạng (minimum cost flow problem in a network), mà thực chất toán vận tải mạng Cho mạng G = (A,U, d(u)) với hệ yêu cầu {pi }, thỏa mãn điều kiện ∑i pi = (cân phát, thu) Bài toán vận tải đặt trường hợp ∑i pi = (không cân phát, thu) Khi cần thêm vào mạng đỉnh (đánh số 0) với yêu cầu p0 = − ∑i pi nối đỉnh với đỉnh khác cung có giá cước trở trường hợp cân phát, thu Ứng với cung u ∈ U cho biết số c(u) ≥ gọi giá cước cung 31 Hãy tìm luồng chấp nhận X = {x(u)} thỏa mãn đỉnh (tức có thông lượng vừa pi đỉnh i) đạt giá trị nhỏ hàm (cước phí) f (X) = ∑ c(u)x(u) (3.1) u∈U Để cho đơn giản dễ hiểu, ta giả thiết d(u) = +∞ với u ∈ U, tức xét “bài toán vận tải cổ điển”, trường hợp tổng quát nói qua phần cuối Về ký hiệu, ta viết di j , ci j , xi j thay cho d(u), c(u), x(u) với cung u = (i, j) 3.2 Tiêu chuẩn tối ưu Sau nói “luồng” ta luôn giả thiết: luồng chấp nhận thỏa mãn đỉnh (αi (X) = pi với i) Một luồng X đạt cực tiểu (3.1) gọi luồng tối ưu (hay luồng chi phí nhỏ nhất) Định lí 3.2.1 Muốn cho luồng X = {x(u)} tối ưu, điều kiện cần cà đủ dây chuyền đóng µ chưa bão hòa, ta có ∑ c(u) − ∑ c(u) ≥ (3.2) u∈K − (µ) u∈K + (µ) Để ý dây chuyền µ chưa bão hòa x(u) > cung u ∈ K − (µ) (vì cung u ∈ K + (µ) đương nhiên x(u) < d(u) = +∞) Chứng minh Phần “cần” hiển nhiên, có dây chuyền đóng µ chưa bão hòa, với ∑ c(u) − ∑ c(u) < u∈K − (µ) u∈K + (µ) việc sửa x(u) thành x(u) + u ∈ K + (µ) sửa x(u) thành x(u) − u ∈ K − (µ), làm cước phí K + (µ) tăng thêm ∑ u∈K + (µ) c(u), 32 cước phí K − (µ) giảm bớt ∑− c(u) > ∑+ c(u), u∈K (µ) u∈K (µ) ta luồng có cước phí nhỏ X Ta chứng minh phần “đủ” Cho X = {x(u)} luồng có điều kiện (3.2) dây chuyền đóng chưa bão hòa, X = {x (u)} luồng Mục đích ta chứng minh f (X) ≤ f (X ) Đặt ρ(X, X ) = ∑ x (u) − x(u) u∈U Ta giả thiết ρ(X, X ) > 0, ρ(X, X ) = X trùng với X Cho (i, j) cung có xi j = xi j , chẳng hạn xi j < xi j Vì thông lượng X X j (cùng p j ), nên phải có cung ( j, k) với x jk < x jk , cung (k, j) với xk j > xk j , thông lượng k nhau, nên phải có cung (k, l) với xkl < xkl , cung (l, k) với xlk > xlk , v.v Do số đỉnh hữu hạn nên tiếp tục thế, phải đến lúc ta trở lại đỉnh qua rồi: lúc ta dây chuyền đóng µ với tính chất: x (u) < x(u) u ∈ K + (µ) x (i) > x(u) u ∈ K − (µ) Ta sửa x (u) thành x (u) + cung u ∈ K + (µ), thành x (u) − cung u ∈ K − (µ) Có thể thấy dễ dàng làm ta không tăng cước phí X Thật vậy, cước phí K + (µ) tăng thêm ∑ c(u), ∑ c(u) u∈K + (µ) cước phí K − (µ) giảm bớt u∈K − (µ) ∑− c(u) ≥ u∈K (µ) ∑+ c(u) u∈K (µ) gọi µ dây chuyền µ đổi chiều điều kiện (3.2) µ cho ta ∑ u∈K − (µ) c(u) − ∑ u∈K + (µ) c(u) ≥ 33 (để ý K + (µ ) = K − (µ), K − (µ ) = K + (µ)) Vậy, gọi luồng X luồng X sau sửa, ta có f (X ) ≤ f (X ) Mặt khác, dĩ nhiên ρ(X , X ) < ρ(X , X) Thế nghĩa ta sửa X để giảm bớt ρ(X , X) mà không làm tăng f (X ) Sau số hữu hạn lần sửa ta luồng X(t) với ρ(X(t), X) = (tức X(t) trùng với X) f (X(t)) ≤ f (X ) Do f (X) ≤ f (X ) Đó điều cần chứng minh Chú ý 3.2.2 Đương nhiên, điều kiện (3.2) thỏa mãn dây chuyền sơ cấp thỏa mãn dây chuyền, Định lý 3.3.2, việc xét dây chuyền sơ cấp đủ Chú ý 3.2.3 Trên chu trình, cần xét nhiều hai dây chuyền: µ1 , tạo thành cung u hướng theo chiều thuận chu trình mà có x(u) > 0, tất cung hướng theo chiều ngược cạnh lại chu trình; µ2 , định nghĩa µ1 , thay “thuận” “ngược” Định lí 3.2.4 Muốn cho luồng X = {x(u)} tối ưu điều kiện cần đủ có tồn số λi với i = 1, 2, , n cho λ j − λi ≤ ci j với u = (i, j) ∈ U, (3.3) λ j − λi = ci j xi j > (3.4) Các số λi với điều kiện thường gọi vị Chứng minh Đủ Nếu có tồn vị dây chuyền đóng µ chưa bão hòa, qua đỉnh i1 , i2 , , is ta có ∑ c(u) − ∑ u∈K − (µ) u∈K + (µ) c(u) ≥ ∑(λ jr+1 − λ jr ) = r Do theo Định lý 3.3.2, X luồng tối ưu Cần Ngược lại giả sử X = {x(u)} luồng tối ưu Với dây chuyền µ ta cho ứng “ước lượng” l(µ) xác định sau: l(µ) = ∑ u∈K + (µ) c(u) − ∑ u∈K − (µ) x(u)>0 c(u) + ∑ u∈K − (µ) x(u)=0 c (u), (3.5) 34 c (u) = R, R số lớn Nếu µ chưa bão hòa số hạng sau (3.5) không có, µ đóng theo Định lý 3.3.2, l(µ) ≥ Ta xác định R đủ lớn dây chuyền đóng µ có ước lượng l(µ) ≥ 0, điều làm được, cần l(µ) ≥ với dây chuyền sơ cấp đóng µ đủ, mà số dây chuyền hữu hạn Sau ta đặt λ1 = cho đỉnh số ứng với đỉnh i ta đặt λi ước lượng nhỏ dây chuyền sơ cấp từ đỉnh tới đỉnh i Khi ấy, với dây chuyền µ, sơ cấp hay không sơ cấp, từ đỉnh tới đỉnh i, ta có λ1 ≤ l(µ) µ không sơ cấp sau bỏ dây chuyền sơ cấp đóng chứa µ ta lại dây chuyền sơ cấp µ với l(µ ) ≤ l(µ) (do ước lượng phần bỏ lớn 0) Ta chứng minh λi vị cần tìm Thật vậy, lấy cung tùy ý u = (i, j) gọi µi , µ j dây chuyền từ đỉnh tới i, j cho l(µi ) = λi , l(µ j ) = λ j Nếu j = xét dây chuyền cung u(i, j) tạo nên với µi , theo nhận xét ta có, λ j ≤ λi + ci j , hay λ j − λi ≤ ci j Còn j = (tức λ j = 0) dây chuyền vừa nói đóng, phải có ước lượng lớn 0, hệ thức vừa Nếu xi j > xét dây chuyền u = (i, j) tạo nên với µ j , ta lại có, cách tương tự λi ≤ λ j + ci j hay λ j − λi ≥ ci j , kết hợp với hệ thức trước, λ j − λi = ci j Vậy điều kiện (3.3) (3.4) thỏa mãn Đó điều cần chứng minh Chú ý 3.2.5 Định lý chứng minh trực tiếp cách đơn giản, mà không cần dựa vào Định lý 3.3.2 Thật vậy, phần thứ hai lập luận dựa vào phần “tất yếu” Định lý 3.3.2, mà phần chứng minh dễ Còn phần thứ chứng minh sau: Nếu có tồn vị λi ta có f (X) = ∑ c(u)x(u) = ∑ u∈U (λ j − λi )xi j (i, j)∈U = ∑λj j ∑ i, (i, j)∈U xi j − ∑ λi i ∑ j, (i, j)∈U xi j 35 = ∑ λi i x ji − ∑ j, ( j,i)∈U ∑ xi j j, (i, j)∈U = ∑ λi pi i với luồng X ta có f (X ) = ∑ c(u)x (u) ≥ ∑ u∈U (λ j − λi )xi j = ∑ λi pi , (i, j)∈U i f (X) ≤ f (X ), chứng tỏ X tối ưu 3.3 Thuật toán thu hẹp tắc Dựa theo Định lý 3.3.2, có phương pháp đơn giản (có gọi “phương pháp sơ đồ”) xuất phát từ luồng X = {x(u)} kiểm tra chu trình, xem có thỏa mãn tiêu chuẩn Định lý 3.3.2 không: có chu trình chưa thỏa mãn điều chỉnh X chu trình Bao chu trình thỏa mãn tiêu chuẩn, ta có luồng tối ưu Phương pháp dùng đồ thị có chu trình, trường hợp tổng quát không tiện Dưới trình bày phương pháp thu hẹp tắc, dựa vào Định lý 3.2.4 Phương pháp trực tiếp dựa vào lý thuyết mạng đề cập tới chương trước có nhiều phương diện bổ ích lý thuyết đồ thị Đại ý phương pháp xuất phát từ mạng G1 , thu hẹp mạng G cho, mở rộng dần G1 , cách có lợi nhất, khả G1 tổng số hàng hóa cần vận chuyển luồng tương thích lớn G1 lúc cho ta lời giải (luồng tối ưu) Một thu hẹp tắc mạng G = (A,U) mạng G1 = (A,U1 ) với U1 ⊂ U cho tìm số λi (i = 1, , n) thỏa mãn điều kiện λ j − λi ≤ ci j với cung u = (i, j) ∈ U, λ j − λi = ci j với cung u = (i, j) ∈ U1 36 Nếu X = {x(u), u ∈ U1 } luồng tương thích lớn thu hẹp tắc G1 bổ sung thêm x(u) = với u ∈ U \ U1 ta luồng G (để đơn giản ta luồng X gọi luồng tương thích lớn G1 ) Rõ ràng λi định nghĩa thu hẹp tắc hệ vị cho X, X thỏa mãn đỉnh lời giải toán Tuy nhiên, nói chung X chưa thỏa mãn hết đỉnh, tức khả G1 nhỏ Muốn tăng khả ấy, ta dựa vào Bổ đề 2.3.1 Định lý 2.3.2 (Chương 2) để mở rộng G1 cách thêm vào U1 cung thích hợp u0 ∈ U \U1 Như thấy Chương 2, luồng tương thích lớn X G1 đỉnh chia làm ba loại: thừa, thiếu, đủ Theo Bổ đề 2.3.1 vừa nhắc tới, cung có d(u) = +∞ nên có cung u ∈ U1 nối đỉnh với đỉnh yếu Vả lại, cung u ∈ U1 nối đỉnh với đỉnh mạnh ta phải có x(u) = cung loại khỏi U1 mà không hại gì, lúc G1 không cung nối hai đỉnh khác loại Ta gọi cung bắc cầu cung u ∈ U \ U1 , nối đỉnh thừa hay đủ với đỉnh thiếu Theo Định lý 2.3.2 (Chương 2), thêm cung vào G1 tăng khả nó, hay tăng số đỉnh yếu (mỗi cung u ∈ U \U1 xem có d(u) = G1 Thêm cung vào G1 tức cho d(u) = +∞) Đương nhiên, cần chọn cung để mạng thu hẹp tắc, nhờ trình lặp lại cần Ta chọn cung sau: với cung bắc cầu u = (i, j) ta tính δi j = ci j − (λ j − λi ) ≥ 0, lấy cung u0 = (i0 , j0 ) đạt cực tiểu δ (u) = δi j Bổ đề 3.3.1 Mạng G2 thu từ G1 cách thêm u0 vào U1 (và loại khỏi U1 cung nối đỉnh với đỉnh mạnh hơn) thu hẹp tắc G Chứng minh Ta đặt λi = λi +δ (u0 ) cho đỉnh thiếu i, λi = λi cho đỉnh khác, chứng minh λi hệ vị cho G2 Cho u = (i, j) cung Nếu i, j đỉnh thiếu, hai đỉnh thiếu, 37 dĩ nhiên λ j − λi = λ j − λi , điều kiện vị cung u = (i, j) thỏa mãn trước Nếu i đỉnh thiếu, λ j − λi = λ j − (λi + δ (u0 )) ≤ λ j − λi ≤ ci j ; j đỉnh thiếu ci j − (λ j − λi ) ≥ δ (u0 ), λ j − λi = (λ j + δ (u0 )) − λi ≤ ci j , ta có đẳng thức i = i0 , j = j0 Vậy hai trường hợp điều kiện vị thỏa mãn Tóm lại G2 thu hẹp tắc Thuật toán Do kết ta tới thuật toán sau đây: (1) Xuất phát từ thu hẹp tắc ban đầu G1 = (A,U1 ) Chẳng (1) hạn, đơn giản lấy U1 = 0, / hệ vị cho G1 λi = với i = 1, 2, , n, luồng tương thích lớn X1 = {x1 (u) = cho u ∈ U} (2) Sau bước thứ k ta có thu hẹp tắc Gk = (A,Uk ) với vị (k) {λi } luồng tương thích lớn Xk Nếu tất đỉnh thỏa mãn Xk lời giải (luồng tối ưu) Nếu không chuyển sang bước sau: (k) (k) (k) (k) Xác định đỉnh thừa, thiếu, đủ, cung u0 = (i0 , j0 ) cho δ (u0 ) đạt cực tiểu δ (u) = c(u) − (λ j − λi ) tập hợp cung bắc cầu (k) Thêm u0 vào Gk , đồng thời loại khỏi Gk tất cung nối đỉnh với (k) đỉnh mạnh Cộng δ (u0 ) vào vị đỉnh thiếu, cuối xác định luồng Xk+1 tương thích lớn mạng Gk+1 (Nếu (k) gốc cung u0 đỉnh đủ khả mạng không tăng, lấy Xk làm Xk+1 mà không cần sửa) Tiếp tục luồng tối ưu Định lí 3.3.2 Thuật toán đưa tới luồng tối ưu sau không σ × n bước, với σ = ∑ pi >0 pi Chứng minh Cho sk số đỉnh thiếu bước thứ k, σk khả mạng Gk (tức trị số luồng Xk ) Theo Định lý 2.3.2 (Chương 2), tổng σk + sk tăng theo 38 k, mặt khác σk + sk ≤ σ + n, số bước cần thiết vượt qua σ × n Chú ý 3.3.3 Nếu ta xuất phát từ thu hẹp tắc G1 = (A, 0), / nghiệm lại dễ dàng sau số bước tới thu hẹp Gk = (A,Uk ), Uk tập hợp cung u0 có c(u0 ) = δ , δ cực tiểu giá cước c(u) tất cung nối trạm phát với trạm thu bất kỳ: vị Gk (k) λi (k) = với trạm phát i, λi = δ với trạm thu Phải trực tiếp kiểm tra lại Gk thu hẹp tắc Vậy muốn cho nhanh, từ đầu ta xuất phát từ thu hẹp tắc Chú ý 3.3.4 Muốn xác định đỉnh thừa, thiếu, đủ, mạng Gk = (A,Uk ) tiến hành theo phương pháp đánh dấu nêu “Quy tắc thực hành” cuối tiểu mục 2.3.1 (Chương 2) Chú ý 3.3.5 Muốn xác định luồng tương thích lớn Xk Gk ta nhận xét Gk−1 chu trình Gk chu trình, chuyển từ Gk−1 sang Gk ta thêm cung nối hai đỉnh khác loại (một đỉnh thừa hay đủ với đỉnh thiếu), đồng thời bỏ cung cũ nối hai đỉnh khác loại Do mạng xuất phát G1 chu trình (điều làm được) mạng sau chu trình ta áp dụng phương pháp đơn giản nêu cho trường hợp mạng hình cuối Mục 2.2 (Chương 2) để tìm luồng tương thích lớn Xk mạng Gk Ví dụ 3.3.6 Giải toán tìm luồng chi phí nhỏ với kiện ghi Hình 3.1 (đồ thị đối xứng: cạnh hai chiều, với giá cước): Số ghi đỉnh yêu cầu đỉnh, số ghi cung cước phí Ở đồ thị có “đường nhánh” (cạnh treo) tạo thành cạnh không thuộc chu trình cả: ta giải trước “đường nhánh” để qui đồ thị Hình 3.2 Trạm phát (−) : pi < 0, trạm thu [+] : pi ≥ Các kết tính toán bước (5 bước) ghi lại bảng đây, 39 Hình 3.1: Ví dụ 3.3.6: yêu cầu trạm, cước phí cung Hình 3.2: Rút gọn đường nhánh Hình 3.3: Luồng tối ưu: x(u) ghi cung u cột thứ ghi cường độ cung thuộc Uk , cột thứ hai ghi loại đỉnh (hàng trên: dấu + đỉnh thừa, dấu − đỉnh thiếu), vị (hàng dưới) Để ý bước thứ ba, có hai cung đạt cực tiểu δ (u): cung (1, 6) (1, 4) nên ta chọn hai cung lúc (như gộp lại hai bước liên tiếp) Lời giải (luồng tối ưu) ghi lại đồ thị vẽ Hình 3.3 40 Uk , Xk (k) u0 (k) δ0 x25 = + − + − − − − (3, 7) 0 1 1 x25 = + − + − − − + (3, 6) x37 = 0 1 1 x25 = 6, x37 = + − − − − − − (1, 6) x36 = 4 (1, 4) x25 = 6, x37 = + − + + − + + (4, 5) x36 = 1, x16 = 4 5 x14 = x25 = 6, x37 = x36 = x16 = 4, x14 = x45 = 3.4 Trường hợp tổng quát (d(u) = +∞) Về nguyên tắc, cách xử lý trường hợp tổng quát khác trước lắm, có phức tạp Định lý 2.1.3 (Chương 2) đúng, miễn hiểu “dây chuyền chưa bão hòa” dây chuyền cho x(u) < d(u) với u ∈ K + (µ) x(u) > với u ∈ K − (µ) Định lý 3.2.4 cần mở rộng sau: Muốn cho luồng X = {x(u)} tối ưu điều kiện cần đủ có tồn số λi (i = 1, 2, , n) cho λ j − λi ≤ ci j xi j = 0, λ j − λi = ci j < xi j < di j , λ j − λi ≥ ci j xi j = di j 41 Cách chứng minh cũ, có khác ước lượng l(µ) xác định sau l(µ) = ∑ u∈K + (µ) x(u)0 ∑ u∈K + (µ) x(u)=d(u) c (u) + ∑ c (u) u∈K − (µ) x(u)=0 c (u) = R, R số lơn 0, chọn đủ lớn dây chuyền sơ cấp đóng µ có l(µ) ≥ 3.5 Kết luận Chương Chương trình bày nội dung toán vận tải mạng “thuật toán thu hẹp tắc” giải toán: xây dựng phương án có cước phí thấp để vận chuyển hàng hóa mạng giao thông Thuật toán dựa sở lý thuyết mạng có nhiều điểm giống với thuật toán tìm luồng lớn nhất, đề cập tới chương trước 42 Kết luận Luận văn tìm hiểu giới thiệu hai toán tiêu biểu lý thuyết đồ thị mạng: toán luồng lớn toán luồng chi phí nhỏ mạng thuật toán giải tương ứng Luận văn trình bày nội dung cụ thể sau • Khái niêm đồ thị, mạng luồng mạng Các toán tối ưu đồ thị mạng: phủ đỉnh, phủ cạnh nhỏ nhất, ghép cặp lớn • Bài toán luồng lớn mạng, nêu điều kiện cần đủ để có luồng lớn Thuật toán tìm luồng lớn mạng Định lý trị số luồng lớn khả thông qua thiết diện nhỏ • Bài toán luồng chi phí nhỏ mạng (bài toán vận tải mạng) Tiêu chuẩn tối ưu Thuật toán thu hẹp tắc giải toán 43 Tài liệu tham khảo Tiếng Việt [1] Trần Vũ Thiệu, Bùi Thế Tâm (1998), Các phương pháp tối ưu hóa, NXB Giao thông vận tải, Hà Nội [2] Hoàng Tụy (1964), Lý thuyết đồ thị hữu hạn ứng dụng vận trù học, NXB Khoa học Kỹ thuật, Hà Nội Tiếng Anh [3] Bazaraa M., Jarvis J., Sherali H (2010), Linear Programming and Network Flows, 4th edition, Wiley [4] Cook W.J., Cunningham W.H., Pulleyblank W.R, Schrijver A (1998), Combinatorial Optimization, University Press [5] Wilson R.J (1998), Introduction to Graph Theory, 4th edition, Addison Wesley Longman Limited ... niệm mạng luồng mạng Giới thiệu số toán tối ưu đồ thị: tìm phủ đỉnh, phủ cạnh nhỏ nhất, tìm ghép cặp lớn • Chương Bài toán luồng lớn mạng trình bày nội dung toán luồng lớn mạng, dạng mở rộng toán. .. NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC HOÀNG THỊ CÚC BÀI TOÁN LUỒNG LỚN NHẤT VÀ LUỒNG CHI PHÍ NHỎ NHẤT TRÊN MẠNG LUẬN VĂN THẠC SĨ TOÁN HỌC Chuyên ngành: Toán ứng dụng Mã số: 60 46 01 12 NGƯỜI HƯỚNG DẪN... điểm tiêu thụ với chi phí nhỏ Các toán nhiều nhà toán học tiếng quan tâm, nghiên cứu Ford-Fulkerson, Hoàng Tụy có lý thuyết đẹp luồng mạng Luận văn Luồng lớn luồng chi phí nhỏ mạng có mục đích