BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI

55 648 0
BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI

Đ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

BÀI TOÁN MAXIMUM FLOW (LUỒNG CỰC ĐẠI) Trình bày: Nhóm 6- KHMT B Nguyễn Văn Sửu Nguyễn Đề Nguyễn Đức Nghĩa Nguyễn Đức Quê Nguyễn Thị Thu Nội dung trình bày  Một số khái niệm, định lý  Bài toán luồng cực đại  Thuật toán Ford-Fulkerson  Thuật toán Edmonds-Karp  Một số ứng dụng mạng luồng Một số khái niệm, định lý Mạng vận tải Là đồ thị có hướng, khuyên có trọng số G=(V,E) gồm n đỉnh, m cạnh thỏa mãn: - Mỗi cung e=(u,v)∈ E (u,v∈ V) có trọng số c(e)=c[u,v] số nguyên không âm gọi khả thông qua cung e -Có đỉnh s cung vào gọi lối vào hay đỉnh phát - Có đỉnh t cung gọi lối hay đỉnh thu mạng Một số khái niệm, định lý (tt) Trọng số 15 s Đỉnh phát 15 11 15 15 15 31 15 17 t 10 Đỉnh thu Ví dụ: hình mạng vận tải với đỉnh phát s đỉnh thu t Một số khái niệm, định lý (tt) Luồng Cho mạng G=(V,E)  Luồng ϕ G phép gán cho cung e=(u,v) số thực ϕ (e)= ϕ [u,v] ≥ 0, thỏa mãn: • Luồng không vượt khả cung ≤ ϕ [u,v] ≤ c[u,v], ∀ (u,v)∈ E •Nếu v ≠ s,t tổng luồng vào v tổng luồng khỏi v (v∈ V\{s,t}) Giá trị luồng tổng luồng cung khỏi s, tổng luồng vào t Một số khái niệm, định lý (tt) a c Mạng vận tải G t s b a d c Một luồng f = 6 t s b 1 d Một số khái niệm, định lý (tt) Lát cắt  Lát cắt (X,Y) phân hoạch tập đỉnh V mạng thành hai tập rời X,Y X chứa đỉnh phát Y chứa đỉnh thu Khả thông qua lát cắt (X,Y) tổng tất khả thông qua cung (u,v) có u∈X v∈Y Lát cắt với khả thông qua nhỏ lát cắt cực tiểu Luồng f(X,Y) tổng luồng cung (u,v) với (u∈X,v∈Y) tổng luồng cung (w,z) với z∈X,w∈Y Một số khái niệm, định lý (tt) Ví dụ: Lát cắt χ=(X,Y): Khả thông qua: c(χ) = 6+7+9+2 = 24 Luồng : f(χ) = 2+(-1)+3+2+2 = Y X 2/6 1/1 3/7 3/3 1/3 4/5 3/5 2/2 2/9 Một số khái niệm, định lý (tt) Định lý Cho mạng G=(V,E), luồng f, luồng thông qua lát cắt (X,Y) |f| a c 5 t s b G d a c t s b 1 d Một số khái niệm, định lý (tt) Định lý Cho mạng G=(V,E), luồng f, f(X,Y)≤c(X,Y) f(X,Y) = ≤ c(X,Y) = 13 G a c 5 t s b d a 5/6 c 1/3 s t 0/3 b 1/1 d Nhận xét: • Thuật toán Ford-Fulkerson có độ phức tạp O(e) (e số cung đồ thị) lần thực • Thời gian thực thuật toán phụ thuộc vào số cạnh (e) số đỉnh (n) đồ thị Người ta gọi “phụ thuộc đa thức mạnh” Thuật toán Edmonds-Karp Xét đồ thị: dùng thuật toán Ford-Fulkerson (FF) tìm luồng cực đại 100.000 a 100.000 s 100.000 c t 100.000 Lần P=(s,a,c,t); f=1 P=(s,a,c,t) a 100.000(1) 1(1) s 100.000 s t 100.000 t 100.000 100.000(1) c a 99.999 100.000 99.999 c Lần 99.999 s t c a 99.999 1 99.999 99.999 a 99.999 s 100.000(1) 100.000(1) 1(1) t c 99.999 P=(s,c,a,t); f=2 … lặp 100.000 lần ta thu đc luồng cực đại 100.000 Nhược điểm thuật toán FordFulkerson  Dùng đường có khả  Các đường đưa vào luồng chứa nhiều cung ⇒Khắc phục nhược điểm: Khi chọn đường bản, ta chọn đường ngắn theo nghĩa số cung bé (vd: sử dụng BFS để tìm đường ngắn Ví dụ 5(2) 7(2) 8(0) 7(4) 5(4) 9(6) 5(3) 7(3) Bước khởi tạo f=0 5(0) 7(0) 8(0) 7(0) 5(0) 9(0) 5(0) 7(0) Bước tăng luồng 5(0) 7(0) 8(0) 7(0) P1 = (1,2,5,6) P2 = (1,3,5,6) 5(0) P3 = (1,3,2,5,6) P4 = (1,4,6) 9(0) 5(0) 7(0) 7(0) 5(0) P4 = (1,4,6) 8(0) 7(0) 5(0) ∆P = 9(0) 5(5) 7(5) 7(0) 5(0) 8(0) 7(0) 5(0) P1 = (1,2,5,6) 9(0) 5(5) P2 = (1,3,5,6) P3= (1,3,2,5,6) 7(0) 5(0) P2 = (1,3,5,6) 8(0) 7(5) 5(5) ∆P = 9(5) 5(5) 7(0) 5(0) 8(0) P1 = (1,2,5,6) P3= (1,3,2,5,6) 5(5) 5(5) 5(4) 7(4) 8(0) 7(5) P1 = (1,2,5,6) 5(5) ∆P = 9(9) 5(5) 7(5) 4 1 8(0) 5 5(5) Đến không đường đồ thị tăng luồng nên thuật toán kết thúc 9(9) 5(5) Bước 3: Luồng cực đại fmax=14 Luồng cực đại có giá trị 14, lát cắt cực tiểu (X,Y): X = {1,2,3,5}; Y = {4,6} 5(4) 7(4) 8(0) 7(5) 5(5) 9(9) 5(5) 7(5) 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  Bài toán đám cưới vùng quê  Bài toán lập lịch cho hội nghị Bài toán phân nhóm sinh hoạt Phát biểu toán 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 ý Giải vấn đề 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 Thí dụ 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 G2, G4 G1 1 T1 1 s T2 1 G3 1 G2 T4 1 T3 1 G4 G5 luồng cực đại đồ thị có giá trị Vmax = m t [...]... P={1,3,4,2,5,6} ∆p=2 2 2 1 1 ∈ ∉ 4 3 3 6 3 3 - =3 2 6 2 2 6/1 4 1 1 6 5 5 2 5 Bài toán luồng cực đại Phát biểu bài toán Cho mạng vận tải G = (V,E) Tìm luồng f* với giá trị luồng lớn nhất (Luồng f* gọi là luồng cực đại) Định lý Ford-Fulkerson Giá trị luồng cực đại trên mạng bằng khả năng thông qua của lát cắt cực tiểu Bài toán luồng cực đại Thuật toán Ford-Fulkerson • Khởi tạo một luồng bằng 0 • Trong khi đồ thị... tìm một đường và nâng luồng dọc theo đường này • Khi không còn đường đi cơ bản nữa thì f là luồng cực đại Sơ đồ khối thuật toán Ford-Fullkerson tổng quát Begin Mạng với luồng =0 TimThay:= False Tăng luồng True not TimThay False True Find_Path Path-Found False TimThay:= True Mạng với luồng cực đại End thuật toán Find_Path Procedure Findpath(u:int); var v:int; Begin Trace[s]:=n+1; {Trace[v]=0: v chưa được... 3(3) 6(5) 6 1 3(3) 5(4) 6(4) 3 5 1(1) Đồ thị tăng luồng 2 2 4 5 3 5 1 6 1 3 1 4 4 2 3 1 5 4 Đến đây do không còn đường đi cơ bản nào trên đồ thị tăng luồng nên thuật toán kết thúc Bước 3: Luồng cực đại Luồng cực đại có giá trị là 9, lát cắt cực tiểu (X,Y): X = {1,3}; Y = {2,4,5,6} 5(5) 2 6(2) 4 3(3) 6(5) 6 1 3(3) 5(4) 6(4) 3 1(1) 5 Ví dụ 2 0 0/10 0/9 0/8 3 0/4 0/8 0/1 6 0/10 s 1 0/8 4 0/1 0/9 0/3 7 0/5... Begin If(trace[v]=0)And(c[u,v]>fu,v]) Begin Then {Xét v kề u} Trace[v]:=u; If v=t Then {Nếu đến đích thì dừng} Begin path:=True;Exit; End; Findpath(v); End; If path=true Then exit; End; Sơ đồ khối thuật toán tăng luồng Begin v:= P[t] ; u:= t ; delta=maxint End False u≠s True v:= -v f[v,u]:=f[v,u] - delta False v>0 u:=v; v:=P[u] True f[v,u]:=f[v,u] + delta Ví dụ: cho mạng G = (V,E) Ký hiệu 6(5): khả năng

Ngày đăng: 23/01/2016, 16:19

Mục lục

  • BÀI TOÁN MAXIMUM FLOW (LUỒNG CỰC ĐẠI)

  • Nội dung trình bày

  • Một số khái niệm, định lý

Tài liệu cùng người dùng

Tài liệu liên quan