1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

55 653 0

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 của mạng và luồng... ∆p được gọi là giá trị thặn

Trang 1

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

Trang 2

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 của mạng và luồng

Trang 3

- Có một và chỉ một đỉnh s không có cung đi vào được

gọi là lối vào hay đỉnh phát

- Có một và chỉ một đỉnh t không có cung đi ra được gọi

là lối ra hay đỉnh thu của mạng

Trang 4

31

15

15

8 15

17

15 15

Trang 5

Cho mạng G=(V,E)

2 Luồng

 Luồng ϕ trên G là một phép gán cho mỗi cung e=(u,v) một số thực ϕ (e)= ϕ [u,v] 0, thỏa mãn :

• Luồng không vượt quá khả năng của cung đó

0 ≤ ϕ [u,v] ≤ c[u,v], (u,v)E

• Nếu v ≠ s,t thì tổng luồng đi vào v bằng tổng luồng

đi ra khỏi v ( vV\{s,t} )

 Giá trị của 1 luồng bằng tổng luồng trên các cung đi ra khỏi s , và bằng tổng luồng đi vào t

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

Trang 6

13

2

10

Trang 7

 Lát cắt (X,Y) là một phân hoạch tập đỉnh V của mạng

thành hai tập rời nhau X,Y trong đó X chứa đỉnh phát và Y chứa đỉnh thu

 Khả năng thông qua của lát cắt (X,Y) là tổng tất cả các khả năng thông qua của các cung (u,v) có u ∈ X và v ∈ Y

 Lát cắt với khả năng thông qua nhỏ nhất là lát cắt cực tiểu

 Luồng f(X,Y) bằng tổng luồng trên các cung (u,v) với

(u ∈ X,v ∈ Y) và tổng luồng trên các cung (w,z) với z ∈ X,w ∈ Y

3 Lát cắt

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

Trang 9

Cho mạng G=(V,E) , và luồng f , khi đó luồng thông qua lát cắt (X,Y) bất kỳ bằng |f|

2

101

5

6

1s

5

13

Trang 10

Cho mạng G=(V,E) , và luồng f , khi đó f(X,Y)≤c(X,Y)

5

13

Trang 11

Cho mạng G=(V,E) , và luồng f bất kỳ, lát cắt (X,Y) bất kỳ.

5

13

Trang 12

Cho f là 1 luồng trên mạng G, Từ mạng G =(V,E) ta xây

dựng đồ thị có trọng số G1= (V,Ef) như sau:

• Nếu f[u,v]<c[u,v] thì ta thêm cung (u,v) vào Ef với trọng

số c[u,v]-f[u,v].

• Xét tiếp, nếu f[u,v]>0 thì thêm cung (v,u) vào Ef với

trọng số của cung là f[u,v]

Gf là đồ thị tăng luồng

Đồ thị tăng luồng

<

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

Trang 13

13

2

13

2

10

1G

G7s

Trang 14

• Cho f là 1 luồng trên mạng G, 1 đường đi cơ bản từ A ⇒ B trên Gf gọi là một đường tăng luồng.

• Với một đường tăng luồng P trên Gf, ta đặt ∆p=min{cf(u,v)| (u,v) ∈ P} ∆p được gọi là giá trị thặng dư của đường P

Đường tăng luồng

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

Trang 15

13

1

5

6

13

2

51

Mạng vận tải (1) và đồ thị tăng luồng (2) tương ứng cùng với một đường tăng luồng P=(1,3,4,2,5,6); ∆P = min(3,2,5,3,5) = 2

5/2

1/1

3/03/1

6/5

6/6

6/1

Trang 16

⇒Ta sẽ tăng giá trị của luồng f bằng cách

Định lý 4,5

f[u,v] =

f[u,v] + ∆ p nếu (u,v) ∈ P f[u,v] - ∆ p nếu (v,u) ∈ P f[u,v]

Trang 17

1/1

3/03/1

1

23

2

∉5

1

3

∈2

2

1+ =

42

∈5

2

- =

Trang 18

Bài toán luồng cực đại

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)

Phát biểu bài toán

Đị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.

Trang 19

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ăng luồng của f còn có đường đi cơ

bản (đường tăng luồng), 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

Trang 20

Sơ đồ khối thuật toán Ford-Fullkerson tổng quát

Trang 21

thuật toán Find_Path

Trang 22

u:=v; v:=P[u]

End u ≠ s

v > 0

v:= -v f[v,u]:=f[v,u] - delta

v:= P[t] ; u:= t ; delta=maxint

Sơ đồ khối thuật toán tăng luồng

Trang 23

1(1)

3(0)3(1)

6(5)

6(6)

6(1)

Ví dụ: cho mạng G = (V,E)

Ký hiệu 6 ( 5 ): khả năng thông qua ( luồng )

Bước 1: khởi tạo luồng f=0

5(0)

1(0)

3(0)3(0)

6(0)

6(0)

6(0)

Trang 24

Bước 2: Đồ thị tăng luồng Gf

5(0)

1(0)

3(0)3(0)

Trang 28

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

Trang 29

0/120/80/4 0/1

0/20/5 0/1 0/2 0/1 0/5 0/12

0/10

0/3 0/2

Trang 30

0/120/80/4 0/1

0/20/5 0/1 0/2 0/1 0/5 0/12

Trang 31

0/123/80/4 0/1

0/20/5 0/1 0/2 0/1 0/5 0/12

Trang 32

0/125/82/4 0/1

0/20/5 0/1 0/2 0/1 0/5 0/12

Trang 33

0/127/82/4 0/1

0/20/5 0/1 0/2 0/1 0/5 0/12

Trang 34

5/127/82/4 0/1

0/20/5 0/1 0/2 0/1 5/5 0/12

Trang 35

6/127/82/4 0/1

0/20/5 0/1 1/2 0/1 5/5 0/12

Trang 36

7/127/82/4 0/1

0/21/5 0/1 1/2 0/1 5/5 0/12

Trang 37

8/127/82/4 0/1

0/21/5 0/1 1/2 0/1 5/5 0/12

Trang 38

8/128/82/4 0/1

1/21/5 0/1 1/2 0/1 5/5 0/12

Trang 39

9/128/82/4 0/1

2/21/5 0/1 1/2 0/1 5/5 1/12

Trang 40

9/128/82/4 0/1

2/21/5 0/1 1/2 0/1 5/5 1/12

Trang 41

Nhận xét:

• Thuật toán Ford-Fulkerson có độ phức tạp là O(e) (e

là số cung của đồ thị) ở mỗi lần thực hiện.

• Thời gian thực hiện thuật toán phụ thuộc vào số cạnh (e) và số đỉnh (n) của đồ thị Người ta gọi là “phụ thuộc

đa thức mạnh”

Trang 42

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

1

Trang 43

1

P=(s,a,c,t)P=(s,a,c,t); f=1

Lần 1

Lần 2

Trang 44

Nhược điểm của thuật toán FordFulkerson

 Dùng các đường đi có ít khả năng

 Các đường đi đưa vào luồng chứa nhiều cung

⇒ Khắc phục nhược điểm:

Khi chọn 1 đường đi cơ bản, ta luôn chọn đường ngắn nhất theo nghĩa số cung bé nhất (vd: sử dụng BFS để tìm đường đi ngắn nhất.

Trang 45

9(6)

7(3)

Trang 48

9(0)

7(5)

P = 5

7(0)

9(0)

25

P1 = (1,2,5,6)

P2 = (1,3,5,6)

P3= (1,3,2,5,6)

Trang 49

9(5)

25

P2 = (1,3,5,6)

P = 5

7(0)

4

25

5

5

P1 = (1,2,5,6)

P3= (1,3,2,5,6)

Trang 50

Đế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

Trang 51

Bước 3: Luồng cực đại fmax=14

Luồng cực đại có giá trị là 14, lát cắt cực tiểu (X,Y):

7(4)

9(9)

7(5)

Trang 52

Bài toán luồng cực đại có rất nhiều ứng dụng trong việc giải bài toán tổ hợp Khó khăn chính ở đây là phải xây dựng mạng tương ứng sao cho việc tìm luồng cực đại trong nó sẽ tương đương với việc giải bài toán tổ hợp đặt ra

 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

Trang 53

Có m chàng trai ở một vùng quê nọ Đối với mỗi chàng trai ta biết các

cô gái mà anh ta vừa ý Hỏi khi nào thì có thể tổ chức các đám cưới trong đó chàng trai nào cũng sánh duyên với các cô gái mà mình vừa ý.

Ta có thể xây dựng đồ thị với các đỉnh biểu thị các chàng trai và các cô gái, còn các cung biểu thị sự vừa ý của các chàng trai với các cô gái Khi đó ta thu được một đồ thị hai phía

Phát biểu bài toán

Giải quyết vấn đề

Trang 54

Thí dụ Có 4 chàng trai { T1, T2, T3,T4} và 5 cô gái { G1, G2, G3,G4, G5} Sự vừa ý cho trong bảng sau

1

1 1 1 1 1

1

1

1

1 1

1 1

1

nếu luồng cực đại trong đồ thị

có giá trị Vmax = m

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

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối thuật toán Ford-Fullkerson tổng quát - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
Sơ đồ kh ối thuật toán Ford-Fullkerson tổng quát (Trang 20)
Sơ đồ khối thuật toán tăng luồng - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
Sơ đồ kh ối thuật toán tăng luồng (Trang 22)
Bước 2: Đồ thị tăng luồng G f - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
c 2: Đồ thị tăng luồng G f (Trang 24)
Đồ thị tăng luồng - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
th ị tăng luồng (Trang 25)
Đồ thị tăng luồng - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
th ị tăng luồng (Trang 26)
Đồ thị tăng luồng - BÀI TOÁN MAXIMUM FLOW(LUỒNG CỰC ĐẠI
th ị tăng luồng (Trang 27)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w