Bài giảng Toán rời rạc - Bài: Luồng cực đại - Trần Nguyễn Minh Thư
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Toán rời rạc - Bài: Luồng cực đại - Trần Nguyễn Minh Thư", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_toan_roi_rac_bai_luong_cuc_dai_tran_nguyen_minh_th.pdf
Nội dung text: Bài giảng Toán rời rạc - Bài: Luồng cực đại - Trần Nguyễn Minh Thư
- 1 TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CNTT & TRUYỀN THÔNG BỘ MÔN KHOA HỌC MÁY TÍNH TOÁN RỜI RẠC (DISCRETE MATHEMATICS) 08/2013 GV: Trần Nguyễn Minh Thư (tnmthu@ctu.edu.vn)
- 2 Luồng cực đại 8/3/2015
- Khái niệm mạng Đồ thị có hướng G=(X,E) được gọi là mạng khi: Tồn tại duy nhất một đỉnh s X mà tại s không có cung đi vào, chỉ có cung đi ra. Gọi s là điểm phát. Tồn tại duy nhất một đỉnh t X mà tại t không có cung đi ra, chỉ có cung đi vào. Gọi t là điểm thu. Mỗi cung e=(i,j) đều được gán một giá trị không âm c(e) hay c(i,j), gọi là khả năng thông qua của cung. Nếu không tồn tại cung từ đỉnh i đến đỉnh j thì khả năng thông qua của cung đó được qui ước là bằng không.
- Khái niệm mạng Mạng G=(X,E): Ánh xạ f từ E vào R+ được gọi là một luồng trong mạng, cần thỏa các điều kiện: 1) Giới hạn của luồng Với mỗi cung e, gọi f(e) là luồng Luồng trên cung không vượt quá khả năng thông qua của cung: 0 f(e) c(e)
- Khái niệm mạng Mạng G=(X,E): Ánh xạ f từ E vào R+ được gọi là một luồng trong mạng, cần thỏa các điều kiện: 2) Cân bằng luồng Với mỗi đỉnh i không là đỉnh thu, cũng không là đỉnh phát (i s và i t) thì tổng luồng trên các cung đi vào i bằng tổng luồng trên các cung từ i đi ra f (j,i) f (i,k) ( j,i) (i,k)
- Khái niệm mạng Mạng G=(X,E): Ánh xạ f từ E vào R+ được gọi là một luồng trong mạng, cần thỏa các điều kiện: 3) Giá trị luồng Tổng luồng trên các cung phát ra từ điểm phát s bằng với tổng luồng trên các cung thu vào tại điểm thu t, f (s,i) f (j, t) (s,i) ( j,t)
- Tìm luồng cực đại trong mạng Thuật toán Ford-Fulkerson Gán nhãn cho các đỉnh Tăng luồng 7
- Tìm luồng cực đại trong mạng Thuật toán Ford-Fulkerson Gán nhãn cho các đỉnh Trước tiên các đỉnh đều chưa có nhãn Mỗi đỉnh sẽ có một trong 3 trạng thái: Đỉnh chưa có nhãn Đỉnh có nhãn nhưng chưa được xét Đỉnh có nhãn và đã được xét Nhãn của một đỉnh xi có dạng xi : [ xi-1 ,(xi)] +xi cho biết cần tăng luồng theo cung (xi-1, xi) -xi cho biết cần giảm luồng theo cung (xi, xi-1) 8
- 1.Luồng cực đại 2.Lát cắt 3.Tìm luồng cực đại Thuật toán Ford-Fulkerson 4.BT tổng quát Gán nhãn cho các đỉnh Bước 1: Tất cả các đỉnh khác chưa có nhãn Gán nhãn cho đỉnh phát s : [+s, ] Đỉnh s có nhãn nhưng chưa xét 9
- 1.Luồng cực đại 2.Lát cắt 3.Tìm luồng cực đại Thuật toán Ford-Fulkerson 4.BT tổng quát Gán nhãn cho các đỉnh Bước 2: Chọn một đỉnh xi có nhãn nhưng chưa xét xi: [ xi-1 ,(xi)] Mọi đỉnh u đi ra từ xi, chưa có nhãn mà f(xi,u) 0 được gán nhãn v : [-x, (v)], với (v) = min {(x) , f(v,x)} xi là đỉnh có nhãn và đã được xét, Các u và v là những đỉnh có nhãn nhưng chưa được xét. 10
- 1.Luồng cực đại 2.Lát cắt 3.Tìm luồng cực đại Thuật toán Ford-Fulkerson 4.BT tổng quát Gán nhãn cho các đỉnh Bước 3: Lặp lại bước 2 cho đến khi: Hoặc đỉnh thu t được gán nhãn t: [±y, (t)] bước 4. Hoặc là không thể gán nhãn cho đỉnh thu t: kết thúc thuật toán, 11
- 1.Luồng cực đại 2.Lát cắt 3.Tìm luồng cực đại Thuật toán Ford-Fulkerson 4.BT tổng quát Tăng luồng (dựa vào đường dẫn P: s= x1, x2, , xk=t) Bước 4: Với t : [xk-1, (t)] Xét lần lượt các x từ t=xk => x1=s Nếu x: [+u, (x)] thì tăng luồng trên cung (u,x): f(u,x) = f(u,x) + (t) Nếu x: [-u, (x)] thì giảm luồng trên cung (u,x): f(u,x) = f(u,x) - (t) Trở về bước 1 12
- Bài tập 13 Đề thi năm 2012 (lần 2)
- Bài tập 14 Gán nhãn Đề thi năm 2012 (lần 2)
- Bài tập 15 Tăng luồng Đề thi năm 2012 (lần 2)
- Bài tập 16 Gán nhãn Đề thi năm 2012 (lần 2)
- Bài tập 17 Tăng luồng
- Bài tập 18 Gán nhãn Đề thi năm 2012 (lần 2)
- Bài tập 19 Tăng luồng Đề thi năm 2012 (lần 2)
- Bài tập 20 Gán nhãn Đề thi năm 2012 (lần 2)
- Bài tập 21 Tăng luồng
- Bài tập 22 Gán nhãn Đề thi năm 2012 (lần 2) 0
- Bài tập 23 Tăng luồng Đề thi năm 2012 (lần 2)
- Bài tập 24 Gán nhãn
- Bài tập 25 Tăng luồng
- Bài tập 26 Lát cắt hẹp nhất: X0 = { s=x1 }, Y0 = { x2, x3, x4, x5, x6, x7, t=x8 } Luồng cực đại = 16 + 10 + 5 = 31
- Bài tập 27 Đề thi năm 2013, đợt 2 2, 0 x2 x3 4, 0 5, 0 6, 0 4, 0 12, 0 9, 0 6, 0 s=x1 x4 x5 t=x8 8, 0 4,0 8,0 14, 0 x6 x7 12, 0
- Bài tập 28 Gán nhãn Lặp 1
- Bài tập 29 Tăng luồng
- Bài tập 30 Gán nhãn Lặp 2
- Bài tập 31 Tăng luồng
- Bài tập 32 Gán nhãn Lặp 3
- Bài tập 33 Tăng luồng
- Bài tập 34 Gán nhãn Lặp 4
- Bài tập 35 Tăng luồng
- Bài tập 36 Gán nhãn Lặp 5
- Bài tập 37 Tăng luồng
- Bài tập 38 Gán nhãn Lặp 6
- Bài tập 39 Tăng luồng
- Bài tập 40 Lát cắt hẹp nhất: X = {x1, x2, x3, x4, x5, x6, x7}, Y = {x8} Luồng cực đại = 5 + 6 + 14 = 25