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

chương 6 bài toán luồng cực đại

83 1,3K 2

Đ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 83
Dung lượng 1,27 MB

Nội dung

Chương Bài toán luồng cực đại Maximum Flow Problem χ v 4/6 1/1 3/3 s 3/5 3/3 w 1/1 u 2/2 t 4/7 1/9 3/5 z BM Khoa học Máy tính • TOÁN RỜI RẠC • Fall 2005 • Nguyễn Đức Nghĩa Bài toán luồng cực đại Maximum Flow Problem χ v 4/6 1/1 3/3 s 3/5 3/3 w 1/1 u 2/2 t 4/7 1/9 3/5 z BM Khoa học Máy tính • TOÁN RỜI RẠC • Fall 2005 • Nguyễn Đức Nghĩa NỘI DUNG ■ Bài toán luồng cực đại mạng ■ Lát cắt, Đường tăng luồng ■ Định lý luồng cực đại lát cắt hẹp ■ Thuật toán Ford-Fulkerson ■ Thuật toán Edmond-Karp ■ Các ứng dụng Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT L R Ford; D R Fulkerson (1962) Flows in Networks Princeton, NJ: Princeton University Press Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT Lester Randolph Ford, Jr (1927 ~) Lester Randolph Ford, Jr (born September 23, 1927), son of Lester R Ford, Sr., is an American mathematician specializing in network flow programming His 1956 paper with D R Fulkerson on the maximum flow problem established the maxflow-mincut theorem Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT Delbert Ray Fulkerson (August 14, 1924 - January 10, 1976) Delbert Ray Fulkerson was a mathematician who co-developed the Ford-Fulkerson algorithm, one of the most used algorithms to compute maximal flows in networks Ph.D, Univ of Wisconsin-Madison, 1951 In 1956, he published his famous paper on the FordFulkerson algorithm together with Lester Randolph Ford In 1979, the renowned Fulkerson Prize was established which is now awarded every three years for outstanding papers in discrete mathematics jointly by the Mathematical Programming Society and the American Mathematical Society Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT Network Flows Ravindra K Ahuja, Thomas Magnanti and James Orlin Network Flows Prentice Hall, 1993 11 21 s 32 t 31 11 Toán rời rạc – Fall 2005 42 864 pages! NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 2008/5/2 Mạng luồng mạng Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT MẠNG (Network) Mạng đồ thị có hướng G = (V,E) : ■ ■ Có đỉnh s cung vào gọi đỉnh phát (nguồn) đỉnh t cung gọi đỉnh thu (đích) Mỗi cung e G gắn với số không âm c(e) gọi khả thông qua e Ví dụ: v w u t s Toán rời rạc – Fall 2005 z NGUYỄN ĐỨC NGHĨA Bộ môn KHMT LUỒNG TRONG MẠNG Định nghĩa Luồng f mạng G=(V,E) phép gán số f(e) cho cạnh e ( f(e) gọi luồng cạnh e) thoả mãn điều kiện: 1) Hạn chế khả thông qua (Capacity Rule): Với cung e, ≤ f (e) ≤ c(e) 2) Điều kiện cân luồng (Conservation Rule): Với v ≠ s, t ∑ f (e ) = e∈E − ( v ) ∑ f ( e) e∈E + ( v ) E−(v) E+(v) tương ứng tập cung vào khỏi đỉnh v Định nghĩa Giá trị luồng f val ( f ) = ∑ e∈E + ( s ) (*) f ( e) = ∑ f ( e) e∈E − ( t ) (Đẳng thức (*) thu cách cộng tất điều kiện cân luồng.) Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 10 Ví dụ Trên G (1) không tìm đường từ s đến t Thuật toán kết thúc f 10 10 s 109 t 109 Gf(1) 109 109 109 109 s 109 109 t 109 109 G Do Gf(1) ≡ Gf nên Gf không tìm đường từ s đến t Vậy luồng có mạng cực đại Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 69 Chọn đường tăng luồng nào? Cần cẩn thận lựa chọn đường tăng, ■ Một số cách chọn dẫn đến thuật toán hàm mũ ■ Cách chọn khôn khéo dẫn đến thuật toán đa thức ■ Nếu kntq số vô tỷ, thuật toán không dừng Mục đích: chọn đường tăng cho: ■ Có thể tìm đường tăng cách hiệu ■ Thuật toán đòi hỏi thực bước lặp tốt Chọn đường tăng với (Edmonds-Karp 1972, Dinitz 1970) ■ khả thông qua lớn (đường béo - fat path) ■ khả thông qua đủ lớn (thang độ hoá kntq – capacity scaling) ■ số cạnh đường (đường ngắn - shortest path) Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 70 Edmonds – Karp Algorithm Edmonds and Karp, JACM 1972 ■ Nếu đường tăng chọn đường ngắn từ s đến t, thời gian tính thuật toán O(|E|2 |V|) Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 2008/5/2 Jack Edmonds Jack Edmonds is a Canadian mathematician, regarded as one of the most important contributors to the field of combinatorial optimization He was the recipient of the 1985 John von Neumann Theory Prize From 1969 on, with the exception of 1991-1993, he held a faculty position at the Department of Combinatorics and Optimization at the University of Waterloo's Faculty of Mathematics Edmonds retired in 1999 Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 2008/5/2 Richard Karp, 1935~  “Reducibility Among Combinatorial Problems”, 1972  Turing Award in 1985  Harvard University,Bachelor's degree in 1955, Master's degree in 1956, and Ph.D in applied mathematics in 1959  IBM's Thomas J Watson Research Center  Professor, UC Berkeley, 1968 Apart from a 4-year period as a professor at the University of Washington, he has remained at Berkeley Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 2008/5/2 Thuật toán đường tăng ngắn Ý tưởng: Tìm đường tăng luồng nhờ thực BFS ■ Dễ thực ■ Đường tăng có cạnh ShortestAugmentingPath(V, E, s, t) FOREACH e ∈ E f(e) ← Gf ← đồ thị tăng luồng (residual graph) WHILE (tồn đường tăng) tìm đường tăng P BFS f ← augment(f, P) hiệu chỉnh Gf RETURN f Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 74 Đường tăng ngắn nhất: Các kết Bổ đề Trong suốt thuật toán, độ dài đường tăng ngắn không bị giảm ■ CM sau Bổ đề Sau nhiều m đường tăng ngắn nhất, độ dài đường tăng ngắn tăng ngặt ■ CM sau Định lý Thuật toán đường tăng luồng ngắn đòi hỏi thời gian tính O(m 2n) ■ ■ ■ ■ ■ CM O(m+n) thời gian để tìm đường ngắn nhờ sử dụng BFS O(m) lần tăng đường có k cung Nếu có đường tăng tìm đường tăng đơn ⇒ 1≤k[...]... cực đại Luồng trong mạng G được gọi là luồng cực đại nếu trong số tất cả các luồng trong mạng G nó là luồng có giá trị lớn nhất v 2 /6 Bài toán tìm luồng cực đại trong mạng G được gọi là bài toán luồng cực đại 1/1 3/3 s 1/3 w 1/1 3/5 t 3/7 2/9 4/5 z 2/2 Luồng với giá trị 8 = 2 + 3 + 3 = 1 + 3 + 4 u v 4 /6 1/1 3/3 s 3/3 1/1 3/5 t 3/7 w 2/9 4/5 z 2/2 Luồng cực đại có giá trị 10 = 4 + 3 + 3 = 3 + 3 + 4 u Toán. .. NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 15 Luồng Luồng có giá trị 24 trong mạng: 10 10 s kntq Luồng Toán rời rạc – Fall 2005 3 5 15 11 2 6 9 4 4 0 15 3 8 8 4 0 1 6 5 15 0 6 10 6 8 10 15 0 10 10 t Giá trị = 24 4 30 11 7 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 16 Luồng Luồng có giá trị 28 trong mạng: 10 10 s kntq Luồng Toán rời rạc – Fall 2005 4 5 15 14 2 9 9 4 0 1 15 3 8 8 4 0 4 6 5 15 0 9 10 6 9 10 15 0 10 10 t Giá trị =... 4 0 15 3 4 8 4 0 0 6 4 30 0 f (v, w) w : ( v , w) ∈ E e∈E ( v ) 0 9 ∑ 5 15 0 0 10 6 4 10 15 0 0 10 7 t NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 14 Luồng Bài toán luồng cực đại: Tìm luồng có tổng luồng trên các cạnh đi ra khỏi đỉnh phát là lớn nhất: val ( f ) = ∑ f (e) = e∈E + ( s ) 4 10 s kntq Luồng Toán rời rạc – Fall 2005 0 5 15 0 ∑ f (e ) e∈E − (t ) 2 0 9 4 4 0 15 3 4 8 4 0 0 6 5 15 0 0 10 6 4 10 15 0 0 10 t... Giả sử f là luồng, và (S, T) là lát cắt Khi đó giá trị luồng chảy qua lát cắt chính bằng giá trị của luồng: Giá trị = 24 s 10 10 4 5 15 10 2 6 9 4 4 0 15 3 8 8 4 0 0 6 4 Toán rời rạc – Fall 2005 30 10 5 15 0 6 10 6 8 10 15 0 10 10 t 7 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 26 Luồng và lát cắt Bổ đề 1 Giả sử f là luồng, và (S, T) là lát cắt Khi đó giá trị luồng chảy qua lát cắt chính bằng giá trị của luồng: Giá... ={s,2,3,4}, T={5 ,6, 7,t) có khả năng thông qua 62 : 1 1 1 10 s 5 15 Toán rời rạc – Fall 2005 2 9 5 4 15 15 10 3 8 6 10 4 6 15 10 4 30 7 t cap(S1,T1)= 62 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 23 Lát cắt Lát cắt (S , T ), S ={s,3,4,7}, T ={2,5 ,6, t) có khả năng thông qua 28: 2 2 2 2 10 s 5 15 Toán rời rạc – Fall 2005 2 9 5 4 15 15 10 3 8 6 10 4 6 15 10 4 30 7 t cap(S2,T2) = 28 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 24 Luồng và lát... cap(S, T), thì f là luồng cực đại còn (S, T) là lát cắt hẹp nhất CM Xét f’ là luồng bất kỳ và (S’,T’) là lát cắt bất kỳ Theo bổ đề ta có val(f’) ≤ cap(S,T) = val(f) ≤ cap(S’,T’) 10 10 s 4 5 15 14 2 9 9 4 0 1 15 15 0 9 10 3 8 8 6 9 10 4 0 4 6 15 0 10 10 4 kntq của lát cắt = 28 Toán rời rạc – Fall 2005 5 30 14 t 7 Giá trị luồng = 28 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 30 Định lý về luồng cực đại và lát cắt nhỏ... (Ford-Fulkerson, 19 56) : Trong mạng bất kỳ, giá trị của luồng cực đại luôn bằng khả năng thông qua của lát cắt nhỏ nhất ■ Proof (muộn hơn) 10 10 s 4 5 15 15 2 9 9 4 0 1 15 3 8 8 4 0 4 6 4 Cut capacity = 28 Toán rời rạc – Fall 2005 30 15 5 15 0 9 10 6 9 10 15 0 10 10 t 7 Flow value = 28 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 31 Ý tưởng thuật toán Thuật toán tham lam: ■ Bắt đầu từ luồng 0 (Luồng có giá trị = 0)...LUỒNG TRONG MẠNG – Ví dụ Ví dụ: v 2 /6 1/1 3/3 s w 1/1 3/5 u ■ 1/3 2/2 t 3/7 2/9 4/5 z Trong 2 số viết bên mỗi cạnh: giá trị luồng trên cạnh là số màu đỏ, số còn lại là khả năng thông qua ■ Các điều kiện 1) và 2) được thoả mãn => f là luồng trên mạng ■ Giá trị luồng là: 8 = f(s,v) + f(s,u) + f(s,w) = f(v,t) + f(w,t) + f(z,t) Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 11 Bài toán luồng cực. .. 10 t Giá trị luồng = 10 Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 33 Ý tưởng thuật toán Thuật toán tham lam: ■ Bắt đầu từ luồng 0 (Luồng có giá trị = 0) ■ Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e) ■ Tăng luồng dọc theo đường đi P ■ Lặp lại cho đến khi gặp bế tắc 4 0 4 s 10 10 0 4 2 5 0 4 0 4 10 13 3 10 10 t Thuật toán tham lam cho luồng với giá trị 10 Toán rời rạc... môn KHMT 34 Ý tưởng thuật toán Thuật toán tham lam không cho lời giải tối ưu 4 0 4 s 10 10 0 4 2 4 4 4 s Toán rời rạc – Fall 2005 10 10 0 4 10 13 3 5 4 4 4 4 2 5 0 4 TT tham lam: Giá trị luồng = 10 10 10 t Tối ưu: Giá trị luồng = 14 4 4 6 13 3 10 10 t NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 35 Đồ thị tăng luồng – Đường tăng luồng Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 36 ... cực đại số tất luồng mạng G luồng có giá trị lớn v 2 /6 Bài toán tìm luồng cực đại mạng G gọi toán luồng cực đại 1/1 3/3 s 1/3 w 1/1 3/5 t 3/7 2/9 4/5 z 2/2 Luồng với giá trị = + + = + + u v 4 /6. .. lý luồng cực đại lát cắt nhỏ Định lý đường tăng luồng (Ford-Fulkerson, 19 56) : Luồng cực đại không tìm đường tăng luồng Định lý luồng cực đại lát cắt nhỏ (Ford-Fulkerson, 19 56) : Giá trị luồng cực. .. f luồng mạng ■ Giá trị luồng là: = f(s,v) + f(s,u) + f(s,w) = f(v,t) + f(w,t) + f(z,t) Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 11 Bài toán luồng cực đại Luồng mạng G gọi luồng cực

Ngày đăng: 10/11/2015, 10:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w