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

Thiết kế và phân tích hệ thống, Luồng cực đại

62 526 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Luồng cực đại
Tác giả Nguyễn Văn Sửu, Nguyễn Đề, Nguyễn Thị Thu, Nguyễn Đức Nghĩa, Nguyễn Đức Quê
Người hướng dẫn TS. Hoàng Quang
Trường học Đại Học Huế
Chuyên ngành Khoa học máy tính
Thể loại Tiểu luận
Năm xuất bản 2011
Thành phố Huế
Định dạng
Số trang 62
Dung lượng 2,87 MB

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

Nội dung

Thiết kế và phân tích hệ thống, Luồng cực đại

Trang 1

TIỂU LUẬN

Đề tài:

LUỒNG CỰC ĐẠI

Giáo viên hướng dẫn : TS Hoàng Quang

Học viên thực hiện: Nguyễn Văn Sửu (Nhóm trưởng)

Nguyễn Đề Nguyễn Thị Thu Nguyễn Đức Nghĩa Nguyễn Đức Quê

Lớp : Khoa học máy tính B 2010-2012

Huế, 2011

Trang 2

Mục lục

Hu , 2011 ế 1

M c l c ụ ụ 1

Phân công th c hi n ti u lu n: ự ệ ể ậ 1

1.Nguy n Văn S u: ph n 26.1 ễ ử ầ 1

2.Nguy n Đ : ph n 26.2 ễ ề ầ 2

3.Nguy n Đ c Nghĩa: ph n 26.3 ễ ứ ầ 2

4.Nguy n Đ c Quê: ph n 26.4 ễ ứ ầ 2

5.Nguy n Th Thu: ph n 26.5 ễ ị ầ 2

26 Lu ng C c Đ i ồ ự ạ 3

26.1 Các m ng lu ng ạ ồ 4

26.2 Ph ng pháp Ford - Fulkerson ươ 12

26.3 So kh p hai nhánh c c đ i ớ ự ạ 32

26.4 Các thu t toán đ y lu ng tr c ậ ầ ồ ướ 37

27.5 Thu t toán nâng t i tr c ậ ớ ướ 50

Phân công thực hiện tiểu luận:

1 Nguyễn Văn Sửu: phần 26.1

Trang 3

2 Nguyễn Đề: phần 26.2

3 Nguyễn Đức Nghĩa: phần 26.3

4 Nguyễn Đức Quê: phần 26.4

5 Nguyễn Thị Thu: phần 26.5

Trang 4

di chuyển" (flow) của vật chất tại một điểm bất kỳ trong hệ thống theo trực giác là tốc độ

và vật chất di chuyển Có thể dùng các mạng luồng để lập mô hình các chất lỏng chảy qua các ống dẫn, các linh kiện qua các dây chuyền lắp ráp, dòng điện qua các mạng lưới điện, thông tin qua các mạng truyền thông, và …

Mỗi cạnh có hướng trong một hạng luồng có thể được xem như một ống dẫn cho vật chất Mỗi ống dẫn có một dung lượng đã định, được nêu dưới dạng tốc độ cực đại qua đó vật chất có thể lưu chuyển qua ống dẫn, như 200 gallon chất lỏng mỗi giờ qua một ống dẫn hoặc 20 ampere dòng điện qua một dây dẫn Các đỉnh là các khớp nối của ống dẫn, và khác với nguồn và bồn, vật chất chảy qua các đỉnh mà không ứ đọng lại trong chúng Nói cách khác, tốc độ mà vật chất này là "sự bảo toàn luồng lưu", và nó giống như Luật Dòng Điện [Current Law] của Kirchhoff khi vật chất là dòng điện

Bài toán luồng cực đại là bài toán đơn giản nhất liên quan đến các mạng luồng Nó đặt vấn đề, Đâu là tốc độ lớn nhất mà vật có thể chuyển đi từ nguồn đến bồn mà không vi phạm bất kỳ hạn chế dung lượng nào? Như sẽ thấy trong chương này, bài toán này có thể được giải quyết bằng các thuật toán hiệu quat Hơn nữa, ta có thể thích ứng các kỹ thuật căn bản mà các thuật toán này sử dụng để giải quyết các bài toán luồng mạng khác

Chương này trình bày hai phương pháp chung để giải quyết bài toán luồng cực đại Đoạn 26, trình bày các khái niệm về các mạng luồng và các luồng lưu chuyển, chính thức định nghĩa bài toán luồng cực đại Đoạn 26.2 mô tả phương pháp cổ điển của Ford và Fulkerson để tìm các luồng cực đại Đoạn 26.3 mô tả một ứng dụng của phương pháp này: tìm một so khớp cực đại trong một đồ thị hai nhánh không hướng Đoạn 26.4 trình bày

Trang 5

để giải quyết các bài toán luồng mạng Đoạn 26.5 đề cập thuật toán "nâng tới trước" [lift -

to - front], một thực thi cụ thể của phương pháp đẩy luồng trước chạy trong thời gian

) Tuy thật toán này không phải là thuật toán nhanh nhất được biết, song nó minh họa vài kỹ thuật được dùng trong các thuật toán nhanh nhất theo tiệm cận, và nó tương đối hiệu quả trong thực tế

26.1 Các mạng luồng

Trong đoạn này, ta nêu một định nghĩa về các mạng luồng theo lý thuyết đồ thị, đề cập các tính chất chúng, và định nghĩa bài toán luồng cực đại một cách chính xác Ta cũng giới thiệu một hệ ký hiệu hữu ích

Các mạng luồng và các luồng

Một mạng luồng [flow network] G = (V, E) là một đồ thị có hướng ở đó mỗi cạnh

= 0 Ta phân biệt hai đỉnh trong một mạng luồng: một nguồn [source] s và một bồn

[sink] t Để tiện dụng, ta mặc nhận rằng mọi đỉnh nằm trên một lộ trình nào đó từ nguồn

đến bồn Nghĩa là, với mọi đỉnh v ∉ V, ta có một lộ trình s ~> v~ > t Do đó, đồ thị được

liên thông, và |E| ≥ |V| - 1 Hình 26.1 có nêu một ví dụ của một mạng luồng.

Giờ đây, ta đã sẵn sàng để định nghĩa các luồng chính thức hơn Cho G = (V,E) là một mạng luồng (với một hàm dung lượng mặc định c) Cho s là nguồn của mạng, và cho

t là bồn Một luồng trong G là một hàm có giá trị thực f: V x V R thỏa ba tính chất

dưới đây:

Ràng buộc dung lượng: Với tất cả u,v V, ta yêu cầu f (u ,v) ≤ c (u, v).

Tính đối xứng ghềnh: Với tất cả u,v V, ta yêu cầu f (u ,v) = -f (u, v).

Bảo toàn luồng lưu: Với tất cả u V - [s,t], ta yêu cầu:

f( , ) 0

Khối lượng f (u,v), có thể là dương hoặc âm, được gọi là luồng mạng [net flow] từ đỉnh

u đến đỉnh v Giá trị của một luồng f được định nghĩa là:

|f| =

V

v

v s

Trang 6

Nghĩa là, tổng luồng rời nguồn (Ở đây, hệ ký hiệu |.| thể hiện giá trị luồng, chứ

không phải là giá trị tuyệt đối hoặc bản số.) Trong bài toán luồng cực đại, ta có một mạng

luồng G với nguồn s và bồn t, và ta muốn tìm một luồng của giá trị cực đại từ s đến t, và ta muốn tìm một luồng của giá trị cực đại từ s đến t.

Hình 26.1 (a) Một mạng luồng G = (V,E) cho bài toán vận chuyển của công ty

Lucky Puck Nhà máy Vancouver là nguồn s, và nhà khoa Winnipeg là bồn t Các quả khúc côn cầu được chuyển đi qua các thành phố trung gian, nhưng chỉ c (u,v) thùng hàng mỗi ngày có thể đi từ thành phố u đến thành phố v Mỗi cạnh được gán nhãn with của nó dung

lượng (b) A flow f trong G with giá trị Nếu /f/ = 19 Chỉ các mạng luồng được nêu Nếu f

(u,v) > 0, cạnh (u,v) > 0, cạnh (u,v) được gắn nhãn bẵng f (u,v)/c (u,v) (Hệ ký hiệu dấu sổ

(/) được dùng để đơn thuần tách biệt luồng với dung lượng; nó không biểu hiện phép chia.)

Nếu f (u,v) ≤, cạnh (u,v) chỉ được gắn nhãn bằng dung lượng của nó.

Trước khi xem một ví dụ về bài toán luồng mạng, ta hãy khảo sát ngắn gọn ba tính chất luồng Sự ràng buộc dung lượng đơn giản muốn nói luồng mạng từ đỉnh này đến đỉnh khác không được vượt quá dung lượng đã cho Tính đối xứng ghềnh nói rằng luồng mạng

từ một đỉnh u đến một đỉnh v là âm của luồng mạng theo hướng nghịch đảo Như vậy,

luồng mạng từ một đỉnh đến chính nó sẽ là 0 Tính chất bảo toàn luồng lưu nói rằng tổng luồng mạng rời một đỉnh khác với nguồn hoặc bồn sẽ là 0 Theo tính đối xứng ghềnh, ta có thể viết lại tính chất bảo toàn luồng lưu là

f( , ) 0

với tất cả v V - [s,t] Nghĩa là, tổng luồng mạng vào một đỉnh là 0.

Cũng quan sát thấy có thể không có luồng mạng nào giữa u và v nếu không có cạnh

Trang 7

mạng phi zero từ xứng ghềnh, ta có f (u,v) = f (v,u) = 0 Như vậy, luồng mạng phí zero từ đỉnh đến u đến đỉnh v hàm ý rằng (u,v) E hoặc (v,u)E (hoặc cả hai).

Nhận xét cuối cùng của chúng ta về các tính chất luồng có liên quan đến luồng mạng

dương Luồng mạng dương nhập một đỉnh v được định nghĩa bởi.

v

V

u

v u

f

(26.2)Luồng mạng dương rời một đỉnh được định nghĩa một cách đối xứng Một diễn dịch

về tính chất bảo toàn luồng lưu đó là luồng mạng dương nhập một đỉnh khác với nguồn hoặc bồn phải bằng với luồng mạng dương rời đỉnh

Một ví dụ về luồng mạng

Một mạng luồng [flow network] có thể lập mô hình bài toán vận chuyển nêu trong

Hình 26.1 Công ty Lucky Puck có một nhà myas (nguồn s) ở Vancouver chế tạo các quả bóng khúc côn cầu, và có một nhà kho (bồn t) ở Winnipeg lưu trữ chúng Lucky Puck thuê

không gian trên các xe tải một hãng khác để vận chuyển các quả bóng khúc côn cầu từ nhà máy đến nhà kho Do các xe tải di chuyển trên các tuyến đường đã định giữa các thành phố

và có một dung lượng hạn chế, Lucky Puck có thể vận chuyển tối đa c(u,v) thùng hàng mỗi ngày giữa mỗi cặp thành phố u và y trong Hình 26.1 (a) Mục tiêu của họ đó là xác định khối lượng lớn nhất p thùng hàng mỗi ngày có thể chuyển đi để rồi tạo ra khối lượng này,

bởi không cần gì phải chế tạo số lượng quả bóng khúc côn cầu nhiều hơn mức có thể chuyển chúng đến nhà kho

Tốc độ mà các quả bóng khúc côn cầu được chuyển đi dọc theo một tuyến đường vận chuyển bất kỳ được xem là một luồng Các quả bóng khúc côn cầu xuất phát từ nhà máy

với tốc độ p thùng hàng mỗi ngày, và p thùng hàng phải đến nhà kho mỗi ngày Lucky

Puck không quan tâm đến thời gian mà một quả bóng đã cho di chuyển từ nhà máy đến nhà

kho; học chỉ quan tâm rằng p thùng hàng mỗi ngày đến nhà kho Các hạn chế dung lượng

bị khống chế bởi mức hạn chế mà luồng f (u,v) từ thành phố u đến thành phố v tối đa là

c(u,v) thùng hàng mỗi ngày Trong một trạng thái ổn định, tốc độ mà các quả bóng khúc

côn cầu nhập một thành phố trung gian trong mạng vận chuyển phải bằng tốc độ mà chúng rời đi; bằng không, chúng sẽ ùn đống Do đó, sự bảo toàn luồng được tuân thủ Như vậy,

một luồng cực đại trong mạng xác định số lượng cực đại p thùng hàng mỗi ngày có thể

Trang 8

Hình 26.1 (b) nêu một luồng khả dĩ trong mạng được biểu thị cho một cách tương

ứng tự nhiên với các chuyến hàng Với bất kỳ hai đỉnh u và v trong mạng, luồng mạng

f(u,v) tương ứng với một chuyến hàng gồm f (u,v) thùng hàng mỗi ngày từ u đến v Nếu f (u,v) là 0 hoặc âm, thì không có chuyến hàng nào từ u đến v Như vậy, trong Hình 26.1 (b),

chỉ có các cạnh có luồng mạn dương mới được nêu, theo sau là một dấu sổ ngả trước và dung lượng của cạnh

Để hiểu rõ mối quan hệ giữa các luồng mạng và các chuyến hàng, ta tập trung vào

v 1 và v 2 , kết quả được nêu trong Hình 26.2 (b): luồng mạng từ v 1 đến v 2 là 8 thùng hàng mỗi

đến v 1 Nói chung, luồng mạng từ v 1 đến v 2 trừ số lượng mỗi ngày được chuyển đi từ v 2 đến

bởi chúng nêu rõ các chuyến hàng thực tế: như vậy, chỉ một 8 xuất hiện trong hình, mà không có -8 tương ứng

Hình 26.2 Sự khử (a) Các đỉnh v 1 và v 2 và v 2 , với c (v 1 - v 2 )) = 10 và c (v 2 - v 1 ) = 4

(b) Các nêu rõ luồng mạng khi 8 thùng hàng mỗi ngày được chuyển đi từ v 1 đến v 2 (c) Một

khử luồng đi theo các hướng ngược lại, ta có thể biểu diễn tình huống trong (c) bằng luồng mạng dương theo chỉ một hướng (e) Một chuyến 7 thùng hàng mỗi ngày khác được

chuyển đi từ v 2 đến v 1

Trang 9

huống ở đó có các chuyến hàng theo cả hai giữa v 1 và v 2 Ta chuyển 8 thùng hàng mỗi ngày

từ v 1 đến v 2 và 3 thùng hàng mỗi ngày từ v 2 đến v 1 Đâu là các luồng mạng giữa hai đỉnh?

Luồng mạng từ v 1 đến v 2 là 8 - 3 = 5 thùng hàng mỗi ngày, và luồng mạng từ v 2 các v 1 là 3 -

8 = -5 các thùng hàng mỗi ngày

Tình huống tương đương trong kết quả của nó với tình huống nêu trong Hình 26.2

được thực hiện từ v 2 đến v 1 Trên thực tế, 3 thùng hàng mỗi ngày từ v 2 đến v 1 được khử bởi

3 trong số 8 thùng hàng mỗi ngày từ v 1 đến v 2 Trong cả hai tình huống, luồng mạng từ v 1

chỉ một hướng

Nói chung, phép cho phép ta biểu diễn các chuyến hàng giữa hai thành phố bằng một luồng lạng dương dọc theo tối đa một trong hai cạnh giữa các đỉnh tương ứng Nếu có luồng mạng zero hoặc âm từ đỉnh này đến đỉnh khác, ta không cần thực hiện chuyến hàng nào theo hướng đó Nghĩa là, bất kỳ tình huống nào ở đó các quả bóng khúc côn cầu được chuyển đi theo cả hai hướng giữa hai thành phố đều có thể dùng phép hủy để biến đổi thành một tình huống tương đương ở đó các quả bóng khúc côn cầu được chuyển đi theo chỉ một hướng: hướng của luồng mạng dương Các hạn chế dung lượng không bị vi phạm bởi phép biến đổi này, bởi ra rút gọn các chuyến hàng trong cả hai hướng, và các hạn chế bảo toàn không bị vi phạm, bởi luồng mạng giữa hai đỉnh là giống nhau

Tiếp tục với ví dụ của chúng ta, hãy xác định hiệu ứng của việc chuyển một chuyến 7

thùng hàng mỗi ngày khác từ v 2 đến v 1 Hình 26.2 (e) nêu kết quả dùng quy ước chỉ biểu thị

đến v 1 trở thành 7 - 5 = 2 Bởi luồng mạng từ v 2 đến v 1 là dương, nó biểu diễn một chuyến 2

thùng hàng mỗi ngày từ v 2 đến v 1 Luồng mạng từ v 1 đến v 2 là - 2 thùng hàng mỗi ngày, và bởi luồng mạng không dương, nên không có các quả bóng khúc côn cầu được chuyển đi

chuyến hàng thực tế mỗi ngày từ v 2 đến v 1

Trang 10

Hình 26.3 Chuyển đổi một bài toán luồng cực đại đa nguồn, đa bồn thành một bài

s 2 ,s 3 ,s 4 ,s 5 ] và ba bồn T = [t 1 ,t 2 ,t 3] (b) Một mạng luồng nguồn đơn, bồn đơn tương đương

Ta bổ sung một siêu nguồn [supersource] s' và một cạnh có dung lượng vô hạn từ s' đến mỗi trong số nhiều nguồn Ta cũng bổ sung một siêu bồn [supersink] t' và một cạnh có dung lượng vô hạn từ mỗi trong số nhiều bồn đến t'.

Các mạng có nhiều nguồn và bồn

Một bài toán luồng cực đại có thể có nhiều nguồn và bồn, thay vì chỉ có một Ví dụ,

công ty Lucky Puck có thể thực tế có một tập hợp m nhà máy [s 1 ,s 2 , s m ] và một tập hợp n nhà kho [t 1 ,t 2 ,t n], như đã nêu trong hình 26.3 (b) nêu cách chuyển đổi mạng từ (a) thành mạng luồng cực đại bình thường

Ta có thể rút gọn bài toán xác định một luồng cực đại trong một mạng có nhiều nguồn và nhiều bồn thành bài toán luồng cực đại bình thường Hình 26.3 (b) nêu cách chuyển đổi mạng từ (a) thành mạng luồng bình thường với chỉ một nguồn đơn và một bồn

c(s,s i ) = cho mỗi i = 1,2, ,m Ta cũng tạo một siêu bồn mới t và bổ sung một cạnh có

hướng (t j ,t) cho mỗi i = 1, 2, n Theo trực giác, bất kỳ luồng nào trong mạng của (a) tương ứng với một luồng trong mạng của (b), và ngược lại Nguồn đơn s đơn giản cung

Trang 11

luồng theo như mong muốn của nhiều bồn t cũng vậy, nó tiêu thụ luồng theo như mong

toàn là tương đương

Làm việc với các luồng

Ta sẽ đề cập đến vài hàm (như f) tiếp nhận hai đỉnh trong một mạng luồng làm đối số

Trong chương này, ta sẽ dùng một hệ ký hiệu phép lấy tổng ẩn ở đó một trong hai, hoặc cả

hai, đối số có thể là một tập hợp các đỉnh, và giá trị được biểu hiện được hiểu là tổng của tất cả cách thay thế các đối số khả dĩ bằng các phần tử của chúng Ví dụ, nếu X và Y là

f( , )

Để lấy một ví dụ khác, ta có thể diễn sự ràng buộc bảo toàn luồng như là điều kiện f (u,V) = 0 với tất cả u V - [s,t] Ngoài ra, để tiện dụng, ta thường bỏ qua các dấu ngoặc ôm tập hợp khi chúng được dùng trong hệ ký hiệu phép lấy tổng ẩn Ví dụ, trong chương trình

f (s, V - s) = f (s,V), số hạng V - s có nghĩa là tập hợp V - [s].

Ký hiệu tập hợp ẩn thường đơn giản hóa các phương trình có liên quan đến các luồng Bổ đề dưới đây, mà phần chứng minh của nó được để lại làm Bài tập 26.1-4, sẽ chốt giữ vài đồng nhất thức thường gặp nhất có liên quan đến các luồng và ký hiệu tập hợp ẩn

Trang 12

Theo trực giác điều này là đúng, bởi tất cả các đỉnh khác với nguồn và bồn đều có một luồng mạng 0 do sự bảo toàn luồng lưu, và như vậy bồn là đỉnh duy nhất khác có thể

có một luồng mạng phi zero để so khớp luồng mạng phi zero của nguồn Phần chứng minh hình thức của chúng ta sẽ như sau:

Ở phần sau trong chương trình này, ta sẽ tổng quát hóa kết quả này (Bổ đề 26.5)

Bài tập

26.1-1

Cho các đỉnh u và v trong một mạng luồng, ở đó c (u,v) = 5 và c (v,u) = 8, giả sử 3 đơn vị của luồng được chuyển đi từ u đến v và 4 đơn vị được chuyển đi từ v đến u Đâu là luồng mạng từ u đến v? Vẽ tình huống theo kiểu dáng của Hình 26.2.

26.1-4

Chứng minh Bổ đề 26.1

26.1-5

Với mạng luồng G = (V,E) và luồng f nêu trong Hình 27.1 (b), hãy tìm một cặp tập

(X,Y) ≠ - f (V - X,Y).

26.1-6

Trang 13

Căn cứ vào một mạng luồng G = (V,E), cho f 1 và f 2 là các hàm từ V x V đến R tổng

luồng f 1 + f 2 là hàm từ V x X đến R được định nghĩa bởi.

với tất cả u,vV Nếu f 1 và f 2 là các luồng trong G, tổng luồng f 1 + f 2 phải thỏa tính chất nào trong số ba tính chất luồng, và có thể vi phạm tính chất nào?

26.1-7

α f là một hàm từ V x V đến R được định nghĩa bởi

f) (u,v) = α (u,v).

Chứng minh các luồng trong một mạng hình thành một tập hợp lồi bằng cách chứng

tỏ nếu f 1 và f 2 là các luồng, thì như vậy là một f 1 + (1-α) f 2 với tất cả α trong miền giá trị 0

≤ α ≤ 1.

26.1-8

Phát biểu bài toán luồng cực đại dưới dạng một bài toán lập trình tuyến tính

26.1-9

Mô hình mạng luồng đã giới thiệu trong đoạn này hỗ trợ luồng của một mặt hàng;

một mạng luồng nhiều mặt hàng hỗ trợ luồng p mặt hàng giữa một tập hợp p đỉnh nguồn

S = [s 1 ,s 2 , ,s p ] và một tập hợp p đỉnh bồn T = [t 1 ,t 2 , ,t p] Luồng mạng của mặt hàng thứ i

từ u đến v được ký hiệu là f i (u,v) Với mặt hàng thứ i, nguồn duy nhất là s i và bồn duy nhất

rời mỗi đỉnh là zero trừ phi đỉnh là nguồn hoặc bồn cho mặt hàng đó Tổng các luồng mạng

của tất cả các mặt hàng từ u đến v không được vượt quá c (u,v), và các luồng mặt hàng

tương tác theo cách này Giá trị của luồng mỗi mặt hàng là luồng mạng rời nguồn cho mặt

hàng đó Tổng giá trị luồng là tổng các giá trị của tất cả p luồng mặt hàng Chứng minh có

một thuật toán thời gian đa thức giải quyết bài toàn tìm tổng giá trị luồng cực đại của một mạng luồng đa mặt hàng bằng cách trình bày toán dưới dạng một chương trình tuyến tính

26.2 Phương pháp Ford - Fulkerson

Phần này sẽ trình bày phương pháp Ford - Fulkerson để giải quyết bài toán luồng cực đại Ta gọi nó là “phương pháp” thay vì một “thuật toán” bởi nó bao hàm vài thực thi

Trang 14

có các thời gian thực hiện khác nhau Phương pháp Ford-Fulkerson tuỳ thuộc vào ba ý tưởng quan trọng vượt trên phương pháp và có nhiều liên quan đến thuật toán và bài toán luồng: các mạng thặng dư, các lộ trình tăng cường và các phần cắt Các ý tưởng này là thiết yếu đối với định lý max-flow min-cut quan trọng (Định lý 26.7), định rõ đặc điểm đối với giá trị của một luồng cực đại theo dạng các phần cắt của mạng luồng Để kết thúc đoạn này, ta trình bày một kiểu thực thi cụ thể của phương pháp Ford-Fulkerson và phân tích thời gian thực hiện của nó.

cho ra một luồng ban đầu có giá trị 0 Vào mỗi lần lặp lại, ta tăng giá trị luồng bằng cách

tìm một “lộ trình tăng cường” mà ta có thể đơn giản xem nó như một lộ trình từ nguồn s đến bồn t dọc theo đó ta có thể đẩy thêm luồng, rồi tăng cường luồng dọc theo lộ trình này

Ta lặp lại tiến trình này cho đến khi không tìm thấy lộ trình tăng cường nào Định lý flow min-cut sẽ chứng tỏ khi kết thúc, tiến trình này cho ra một luồng cực đại

max-FORD-FULKERSON-METHOD(G,s,t)

1 Khởi tạo luồng ƒ theo 0

2 while ở đó tồn tại một lộ trình tăng cường p

3 do tăng cường luồng ƒ dọc theo p

4 return ƒ

Các mạng thặng dư

Theo trực giác, cho một mạng luồng và một luồng, mạng thặng dư bao gồm các

cạnh có thể tiếp nhận thêm luồng mạng Chính thức hơn, giả sử ta có một mạng luồng G =

Khối lượng của một luồng mạng bổ sung mà ta có thể đẩy từ u đến v trước khi vượt quá

dung lượng c(u, v) là dung lượng thặng dư của (u, v), căn cứ vào

Trang 15

Ví dụ nếu c(u, v) = 16 và ƒ(u, v) = 11, thì ta có thể chuyển đi thêm (u, v) = 5 đơn

vị của luồng trước khi vượt quá sự ràng buộc dung lượng trên cạnh (u, v).

Khi luồng mạng ƒ(u, v) là âm, dung lượng thặng dư (u, v) sẽ lớn hơn dung lượng

c(u, v) Ví dụ, nếu c(u, v) = 16 và ƒ(u, v) = -4, thì dung lượng thặng dư (u, v) là 20 Ta có

thể diễn dịch điều này như sau: Ta có một luồng mạng 4 đơn vị từ v đến u, mà ta có thể khử bằng cách đẩy một luồng mạng 4 đơn vị từ u đến v Sau đó, ta có thể đẩy một lượng

16 đơn vị khác từ u đến v trước khi vi phạm sự ràng buộc dung lượng trên cạnh (u, v) Như vậy, ta đẩy một lượng bổ sung 20 đơn vị của luồng, bắt đầu bằng một luồng mạng ƒ(u, v) =

-4, trước khi đụng sự ràng buộc dung lượng

Cho một mạng luồng G = (V, E) và một luồng ƒ, mạng thặng dư của G được cảm

sinh bởi ƒ là = (V, ), ở đó

= {(u, v) V V : (u, v) > 0}.

Nghĩa là, mỗi cạnh của mạng thặng dư, hoặc cạnh thặng dư, có thể tiếp nhận một

luồng mạng hoàn toàn dương Hình 26.4(a) lặp lại luồng mạng G và luồng ƒ của hình

26.1(b) nếu mạng thặng dư tương ứng

Trang 16

Hình 26.4 (a) Mạng luồng G và luồng ƒ của Hình 26.4(b)

(b) Mạng thặng dư với lộ trình tăng cường p được tô bóng; dung lượng

(c) Luồng trong G là kết quả từ sự tăng cường dọc theo lộ trình p bởi dung

lượng thặng dư 4 của nó

(d) Mạng thặng dư được sinh cảm bởi luồng trong (c)

Lưu ý, (u, v) có thể là một cạnh thặng dư trong cho dù nó không phải là một cạnh trong E Nói cách khác, rất có thể là trường hợp E Mạng thặng dư trong Hình 26.4(b) bao gồm vài cạnh như vậy không nằm trong mạng luồng ban đầu, như ( , s) và ( , )

Trang 17

v đến u Bởi luồng mạng ƒ(u, v) từ u đến v là âm, nên (u, v) = c(u, v) ƒ(u, v) là dương

một trong số (u, v) và (v, u) xuất hiện trong mạng ban đầu, ta có cận

≤ 2

Nhận thấy mạng thặng dư chính là một mạng luồng có các dung lượng căn cứ

vào Bổ đề dưới đây nêu rõ một luồng trong một mạng thặng dư có liên quan với một luồng trong mạng luồng ban đầu như thế nào

Bổ đề 26.2

Cho G = (V, E) là một mạng luồng với nguồn s và bồn t, và choƒ là một luồng trong

G Cho là mạng thặng dư của G được cảm sinh bởi ƒ và cho ƒ là một luồng trong

Như vậy, tổng luồng ƒ + ƒ được định nghĩa bởi phương trình (26.4) chính là một luồng

(ƒ + ƒ’) (u, v) = ƒ(u, v) + ƒ’(u, v)

Trang 18

Cho một mạng luồng G = (V, E) và một luồng ƒ, một lộ trình tăng cường p là một

lộ trình đơn giản từ s đến t trong mạng thặng dư Theo định nghĩa về mạng thặng dư, mỗi cạnh (u, v) trên một lộ trình tăng cường tiếp nhận vài luồng mạng dương bổ sung từ u đến v mà không vi phạm sự ràng buộc dung lượng trên cạnh.

Lộ trình tô bóng trong Hình 26.4(b) là một lộ trình tăng cường Nếu xem mạng

mạng bổ sung qua mỗi cạnh của lộ trình này mà không vi phạm sự ràng buộc dung lượng, bởi dung lượng thặng dư nhỏ nhất trên lộ trình này là ( , ) = 4 Ta gọi lượng luồng

Trang 19

mạng cực đại mà ta có thể di chuyển đi dọc theo các cạnh của một lộ trình tăng cường p là

dung lượng thặng dư của p, căn cứ vào

(p) = min{ (u, v) : (u, v) nằm trên p}

Bổ đề dưới đây cho phép đối số trên đây chính xác hơn

Bổ đề 26.3

Cho G =(V, E) là một mạng luồng, cho là một luồng trong và cho p là một lộ

trình tăng cường trong Định nghĩa một hàm : V � V → R với

(27.6)

Hệ luận dưới đây chứng tỏ nếu bổ sung vào ƒ, ta có một luồng khác trong G mà

giá trị của nó sát với cực đại hơn Hình 27.4(c) nêu kết quả của việc bổ sung trong Hình 27.4(b) vào ƒ của Hình 27.4(a)

Hệ luận 26.4

Cho G =(V, E) là một mạng luồng, cho ƒ là một luồng trong G, và cho p là một lộ

trình tăng cường trong Cho được định nghĩa như trong phương trình (27.6) Định

Trang 20

nghĩa một hàm ƒ’: V � V → R với ƒ’ = ƒ + Như vậy, ƒ là một luồng trong G có giá trị

Một phần cắt (S, T) của mạng luồng G = (V, E) là một phân hoạch của V vào S và T

= V S sao cho s S và t T (Định nghĩa này cũng giống như định nghĩa “phần cắt” mà

ta dùng cho các cây toả nhánh cực tiểu trong Chương 24, ngoại trừ, ở đây ta đang cắt một

là ƒ(S, T) Dung lượng của phần cắt (S, T) là c(S, T).

Hình 26.5 nêu phần cắt ({s, v 1 , v 2 }, {v 3 , v 4 , t}) trong mạng luồng của Hình 26.1(b)

Luồng mạng qua phần cắt này là

ƒ(v1, v3) + ƒ(v2, v3) + ƒ(v2, v4) = 12 + (−4) + 11 = 19,

Và dung lượng của nó là: c(v1, v3) + c(v2, v4) = 12 + 14 = 26

Trang 21

Hình 26.5 Một phần cắt (S, T) trong mạng luồng của Hình 26.1(b), ở đó S =

{s, v 1 , v 2 } và T = {v 3 , v 4 , t} Các đỉnh trong S mang màu đen, và các đỉnh trong T mang

màu trắng Luồng mạng qua (S, T) là ƒ(S, T) = 19, và dung lượng là c(S, T) = 26.

Nhận thấy luồng mạng qua một phần cắt có thể gộp các luồng mạng âm giữa các đỉnh, nhưng dung lượng của một phần cắt hoàn toàn được hình thành bởi các giá trị không âm

Bổ đề dưới đây chứng tỏ giá trị của một luồng trong một mạng là luồng mạng qua bất kỳ phần cắt nào của mạng

Chứng minh Cho (S, T) là một phần cắt bất kỳ của G và cho là một luồng bất kỳ

Theo Bổ đề 26.5 và các hạn chế dung lượng

|ƒ| = ƒ(S, T)

Trang 22

Nếu ƒ là một luồng trong một mạng luồng G = (V, E) với nguồn s và bồn t, thì các

điều kiện dưới đây là tương đương:

1 ƒ là mạng luồng cực đại trong G.

2 Mạng thặng dư không chứa các lộ trình tăng cường

3 |ƒ| = c(S, T) với vài phần cắt (S, T) của G.

Chúng minh (1) (2): Vì sự mâu thuẫn, ta giả sử ƒ là một luồng cực đại trong G

căn cứ vào phương trình (26.6), là một luồng trong G với giá trị hoàn toàn lớn hơn |ƒ|, mâu

thuẫn với giả thiết rằng ƒ là một luồng cực đại

(2) (3): Giả sử rằng không có lộ trình tăng cường nào, nghĩa là không

chứa lộ trình từ s đến t Định nghĩa

S = {v V: ở đó tồn tại lộ trình từ s đến v trong }

Và T = V S Phân hoạch (S, T) là một phần cắt: ta có s S theo lẽ thường và t

S bởi có không lộ trình từ s đến T trong Với mỗi cặp đỉnh u và v sao cho u S và v T,

Trang 23

ta có ƒ(u, v) = c(u, v), mặc khác (u, v) ∈ và v nằm trong tập hợp S nên theo Bổ đề 26.5,

ta có |ƒ| = ƒ(S, T) = c(S, T).

(3) (1): Theo Hệ luận 26.6, |ƒ| ≤ c(S, T) với tất cả các phần cắt (S, T) Như vậy, điều kiện |ƒ| = c(S, T) hàm ý rằng ƒ là một luồng cực đại.

Thuật toán Ford-Fulkerson căn bản

Trong mỗi lần lặp lại của phương pháp Ford-Fulkerson, ta tìm bất kỳ lộ trình tăng cường p nào và tăng cường luồng ƒ dọc theo p theo dung lượng thặng dư (p) Kiểu thực thi dưới đây của phương pháp tính toán luồng cực đại trong mỗi đồ thị G = (V, E) bằng cách nhập luồng mạng ƒ[u, v] giữa mỗi cặp u, v của các đỉnh được nối bằng một cạnh Nếu

u và v không được nối bằng một cạnh theo một trong hai hướng, ta mặc định rằng ƒ(u, v] =

0 Mã mặc định dung lượng từ u đến v được cung cấp bởi một hàm thời gian bất biến c(u,

v), với c(u, v) = 0 nếu (u, v) E (Trong một kiểu thực thi điển hình, c(u,v) có thể phát sinh

từ các trường được lưu trữ trong các đỉnh và các danh sách kề của chúng) Dung lượng

thặng dư (u, v) được tính toán theo công thức (26.5) Biểu thức (p) trong mã thực thi

chỉ là một biến tạm thời lưu trữ dung lượng thặng dư của lộ trình p.

FORD-FULKERSON-METHOD (G,s,t)

1 for mỗi cạnh (u, v) E[G]

2 do ƒ [u, v] ← 0

4 While ở đó tồn tại một lộ trình p từ s đến t trong mạng thặng dư

5 do (p) ← min { (u, v) : (u, v) nằm trong p }

Trang 24

7 do ƒ[u, v] ← ƒ[u, v] + (p)

Thuật toán FULKERSON đơn giản mở rộng trên mã giải FULKERSON-METHOD đã cho trên đây Hình 26.6 nêu kết quả của mỗi lần lặp lại trong

FORD-một đợt chạy mẫu Các dòng 1-3 khởi tạo luồng ƒ theo 0 Vòng lặp While của các dòng

4-8 liên tục tìm một lộ trình tăng cường p trong và tăng cường luồng ƒ dọc theo p theo

dung lượng thặng dư (p) Khi không có lộ trình tăng cường nào tồn tại, luồng ƒ là một

luồng cực đại

Phân tích Ford-Fulkerson

Thời gian thực hiện của FORD-FULKERSON tuỳ thuộc vào cách xác định lộ trình

tăng cuòng p trong dòng 4 Nếu nó được chọn tồi, thuật toán có thể không kết thúc: giá trị

của luồng sẽ gia tăng cùng với các lần tăng cường liên tục, nhưng thậm chí nó không cần hội tụ theo giá trị cực đại luồng Tuy nhiên, nếu lộ trình tăng cường được chọn bằng cách tìm một thuật toán tìm kiếm độ rộng đầu tiên (Đoạn 23.2), thuật toán chạy trong thời gian

đa thức Tuy nhiên, trước khi chứng minh điều này, ta được một cận đơn giản cho trường hợp ở đó lộ trình tăng cường được chọn một cách tuỳ ý và tất cả các dung lượng là số nguyên

Đa phần trong thực tế, bài toán luồng cực đại nảy sinh với các dung lượng tích phân Nếu các dung lượng này là số hữu tỷ, ta có thể dùng một phép biến đổi định tỷ lệ thích hợp để chuyển tất cả thành tích phân Dưới giả thuyết này, một thực thi đơn giản của

FORD-FULKERSON sẽ chạy trong thời gian O(S|ƒ*|), ở đó ƒ* là luồng cực đại mà thuật

toán tìm thấy Phân tích sẽ như sau: Các dòng 1-3 chiếm thời gian Θ(E) Vòng lặp while

của các dòng 4-8 được thi hành tối đa |ƒ*| lần, bởi giá trị luồng gia tăng ít nhất theo một

Trang 25

Hình 26.6 thực thi thuật toán Ford-Fulkerson (a) - (d) Các lần lặp lại liên tục của

vòng lặp while Cạnh trái của từng phần sẽ nêu mạng thặng dư từ dòng 4 bằng một lộ

Trang 26

trình tăng cường p được tô bóng Cạnh phải của từng phần sẽ nêu luồng mới ƒ kết quả của

việc bổ sung vào ƒ Mạng thặng dư trong (a) là nhập liệu mạng G (e) Mạng thặng dư

tại lần trắc nghiệm vòng lặp while Nó không có các lộ trình tăng cường, và do đó luồng ƒ

nêu trong (d) là một luồng cực đại

Hình 26.7 (a) Một mạng luồng mà FORD-FULKERSON có thể mất Θ(E|ƒ*|) thời

gian, ở đó ƒ* là một luồng cực đại, được nêu ở đây bằng |ƒ*| = 2,000,000 Một lộ trình tăng cường với dung lượng thặng dư 1 được nêu (b) Mạng thặng dư kết quả Một lộ trình tăng cường khác với dung lượng thặng dư 1 đuợc nêu (c) Mạng thặng dư kết quả

Công việc thực hiện trong vòng lặp while có thể sẽ hiệu quả nếu ta quản lý một

cách hiệu quả cấu trúc dữ liệu được dùng thực thi mạng G = (V, E) Hãy mặc định rằng ta duy trì một cấu trúc dữ liệu tương ứng với một đồ thị có hướng G’ = (V, E’), ở đó E’ = {(u,

v) : (u, v) E hoặc (v, u) E} Các cạnh trong mạng G cũng là các cạnh trong G’ và do đó

ta cần duy trì các dung lượng và các luồng trong cấu trúc dữ liệu này Cho một luồng ƒ trên

G, các cạnh trong mạng thặng dư bao gồm tất cả các cạnh (u, v) của G’ sao cho c(u, v) -

[u, v] ≠ 0 Do đó, thời gian để tìm một lộ trình trong một mạng thặng dư là O(E’) = O(E)

nếu ta dùng thuật toán tìm kiếm độ sâu đầu tiên hoặc tìm kiếm độ rộng đầu tiên Như vậy,

mỗi lần lặp lại của vòng lặp while sẽ mất O(E) thời gian, khiến tổng thời gian thực hiện

Trang 27

Khi các dung lượng là tích phân và giá trị luồng tối ưu |ƒ*| nhỏ, thời gian thực hiện của thuật toán Ford-Fulkerson tỏ ra thích hợp Hình 26.7(a) có nêu một ví dụ về nội dung

có thể xảy ra trên một mạng luồng đơn giản mà |ƒ*| là lớn Một luồng cực đại mạng này có

giá trị 2,000,000: 1,000,000 đơn vị của luồng băng ngang lộ trình s → u → t, và một 1,000,000 đơn vị khác băng ngang lộ trình s → v → t Nếu lộ trình tăng cường đầu tiên mà FORD-FULKERSON tìm thấy là s → u → v → t, xem Hình 26.7(a), luồng có giá trị 1 sau

lần lặp lại đầu tiên Mạng thặng dư kết quả được nêu trong Hình 26.7(b) Nếu lần lặp thứ

hai tìm thấy lộ trình tăng cường s → v → u → t, như đã nêu trong hình 26.7(b), thì luồng

sẽ giá trị 2 Hình 26.7(c) nêu mạng thặng dư kết quả Ta có thể tiếp tục chọn lộ trình tăng

cường s → u → v → t trong các lần lặp lại đánh số lẻ và lộ trình tăng cường s → u → v →

t trong các lần lặp lại đánh số chẵn Ta sẽ thực hiện một tổng 2,000,000 lần tăng cường,

mỗi lần chỉ tăng giá trị luồng lên 1 đơn vị

Có thể cải thiện cận trên FORD-FULKERSON nếu ta thực thi phép tính của lộ trình

tăng cường p trong dòng 4 bằng một thuật toán tìm kiếm độ rộng đầu tiên, nghĩa là, nếu lộ trình tăng cường là một lộ trình ngắn nhất từ s đến t trong mạng thặng dư, ở đó mỗi cạnh

có một khoảng cách đơn vị (trọng số) Ta gọi phương pháp Ford-Fulkerson đó là đã thực

thi thuật toán Edmonds-Karp Giờ đây ta chứng minh thuật toán Edmonds-Karp chạy trong

O(VE2) thời gian

Phần phân tích tuỳ thuộc vào các khoảng cách đến các đỉnh trong mạng thặng dư

Bổ đề dưới đây sử dụng hệ ký hiệu (u, v) với khoảng cách lộ trình ngắn nhất từ u đến v

trong ở đó mỗi cạnh có khoảng cách đơn vị

Bổ đề 26.8

Trang 28

Nếu thuật toán Edmonds-Karp chạy trên mạng luồng G = (V, E) với nguồn s và bồn

t, thì với tất cả các đỉnh v V {s, t}, khoảng cách lộ trình ngắn nhất (s, t) trong mạng

thặng dư sẽ tăng đơn điệu với mỗi phép tăng cường luồng

Chứng minh Vì sự mâu thuẫn, ta giả sữ với một đỉnh v V {s, t}, ta có một phép tăng cường luồng khiến (s, v) giảm Cho ƒ’ là luồng ngay trước phép tăng cường và cho

ƒ là luồng ngay sau đó Thì,

(s, v) < (s, v)

cả các đỉnh u V {s, t} sao cho (s, u) < (s, u) Tương đương, ta có thể mặc nhận rằng với tất cả các đỉnh u V {s, t},

(s, u) < (s, v) hàm ý (s, u) ≤ (s, u) (26.7)

v) là một cạnh trên p’, chính là một lộ trình ngắn nhất từ s đến v Do đó, theo giả thuyết

(26.7) của chúng ta,

(s, u) ≤ (s, u)

Trang 29

Như vậy, với các đỉnh v và u được thiết lập, ta có thể xát luồng mạng ƒ từ u đến v trước khi phép tăng cường của luồng trong Nếu ƒ[u, v] < c(u, v), thì ta có

Như vậy, ta phải có ƒ[u, v] = c(u, v), có nghĩa là (u, v) Giờ đây, lộ trình tăng

luồng dọc theo lộ trình p đẩy luồng trở lại dọc theo (u, v) và v xuất hiện trước u trên p Bởi

Trang 30

< (s, v),

mâu thuẫn với giả thuyết ban đầu của chúng ta

Định lý dưới đây định cận số lần lặp lại của thuật toán Edmonds-Karp

Định lý 26.9

Nếu thuật toán Edmonds-Karp chạy trên một mạng luồng G = (V, E) với nguồn s và bồn t, thì tổng số lần tăng cường luồng mà thuật toán thực hiện sẽ tối đa là O(VE).

Chứng minh Ta nói một cạnh (u, v) trong một mạng thặng dư là tới hạn trên một

lộ trình tăng cường p nếu dung lượng thặng dư của p là dung lượng thăng dư của (u, v), nghĩa là, nếu (p) = (u, v) Sau khi đã tăng cường luồng dọc theo một lộ trình tăng

cường, mọi cạnh tới hạn trên lộ trình đều sẽ biến mất khỏi mạng thặng dư Hơn nữa, ít nhất một cạnh trên bất kỳ lộ trình tăng cường nào đều phải tới hạn

Cho u và v là các đỉnh trong V được liên thông bởi một cạnh trong E (u, v) có thể là

một cạnh tới hạn bao nhiêu lần trong khi thi hành thuật toán Edmonds-Karp? Bởi các lộ

trình tăng cường là các lộ trình ngắn nhất, khi (u, v) tới hạn đầu tiên, nên ta có

(s, v) = (s, u) + 1

Một khi luồng được tăng cường, cạnh (u, v) biến mất khỏi mạng thặng dư Nó

không thể tái xuất hiện về sau trên một lộ trình tăng cường khác cho đến sau khi luồng

mạng từ u đến v giảm và đều này chỉ xảy ra nếu (v, u) xuất hiện trên một lộ trình tăng cường Nếu ’ là luồng trong G khi sự kiện này xảy ra, thì ta có

(s, u) = (s, v) + 1

Trang 31

Bởi (s, v) ≤ (s, u) theo Bổ đề 26.8, ta có

(s, u) = (s, v) + 1

Kết quả là, từ lúc mà (u, v) trở thành tới hạn đến lúc đó nó trở thành tới hạn sau đó,

khoảng cách của u từ nguồn sẽ gia tăng ít nhất 2 Thoạt đầu khoảng cách của u từ nguồn ít nhất là 1 và cho đến khi nó trở thành bất khả dụng từ nguồn, nếu như có thì khoảng cách

của nó tối đa là |V| - 2 Như vậy, (u, v) có thể trở thành tới hạn tối đa O(V) lần Bởi có O(E)

cặp đỉnh có thể có một cạnh giữa chúng trong một đồ thị thặng dư, nên tổng các cạnh tới

hạn trong nguyên cả tiến trình thi hành thuật toán Edmonds-Karp là O(E) Mỗi lộ trình tăng

cường có ít nhất một cạnh tới hạn và do đó định lý đứng vững

Bởi mỗi lần lặp lại của FORD-FULKERSON có thể được thực thi trong O(E) Thời

gian khi thuật toán tìm kiếm độ rộng đầu tiên tìm thấy lộ trình tăng cường, nên tổng thời

) Thuật toán trong đoạn 26.4 cho ta

O(V3

) thời gian của Đoạn 26.5

Bài tập

26.2-1

Trong Hình 26.1(b), nêu luồng qua phần cắt ({s, v 2 , v 4 } , {v1, v3, t})? Đâu là dung

lượng của phần cắt này?

26.2-2

Nêu tiến trình thi hành thuật toán Edmonds-Karp trên mạng luồng của Hình 26.1(a)

26.2-3

Ngày đăng: 05/04/2013, 08:27

HÌNH ẢNH LIÊN QUAN

Hình 26.1.  (a) Một mạng luồng G = (V,E) cho bài toán vận chuyển của công ty - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.1. (a) Một mạng luồng G = (V,E) cho bài toán vận chuyển của công ty (Trang 6)
Hình 26.1 (b) nêu một luồng khả dĩ trong mạng được biểu thị cho một cách tương  ứng tự nhiên với các chuyến hàng - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.1 (b) nêu một luồng khả dĩ trong mạng được biểu thị cho một cách tương ứng tự nhiên với các chuyến hàng (Trang 8)
Hình 26.3 Chuyển đổi một bài toán luồng cực đại đa nguồn, đa bồn thành một bài - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.3 Chuyển đổi một bài toán luồng cực đại đa nguồn, đa bồn thành một bài (Trang 10)
Hình 26.4 (a) Mạng luồng G và luồng ƒ của Hình 26.4(b). - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.4 (a) Mạng luồng G và luồng ƒ của Hình 26.4(b) (Trang 16)
Hình 26.5 nêu phần cắt ({s, v 1 , v 2 }, {v 3 , v 4 , t}) trong mạng luồng của Hình 26.1(b) - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.5 nêu phần cắt ({s, v 1 , v 2 }, {v 3 , v 4 , t}) trong mạng luồng của Hình 26.1(b) (Trang 20)
Hình 26.6 thực thi thuật toán Ford-Fulkerson. (a) - (d) Các lần lặp lại liên tục của - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.6 thực thi thuật toán Ford-Fulkerson. (a) - (d) Các lần lặp lại liên tục của (Trang 25)
Hình 26.7 (a) Một mạng luồng mà FORD-FULKERSON có thể mất Θ(E|ƒ*|) thời - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.7 (a) Một mạng luồng mà FORD-FULKERSON có thể mất Θ(E|ƒ*|) thời (Trang 26)
Hình 26.8 minh họa khái niệm của một so khớp. - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.8 minh họa khái niệm của một so khớp (Trang 34)
Hình 26.9. Mạng luồng tương ứng với một đồ thị hai nhánh. (a) Đồ thị hai nhánh G - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.9. Mạng luồng tương ứng với một đồ thị hai nhánh. (a) Đồ thị hai nhánh G (Trang 35)
Hình 26.10 rà qua vài lần lặp lại của vòng lặp while trong các dòng 1-8, thi hành  đến khi nào đỉnh u có phần thặng dư dương - Thiết kế và phân tích hệ thống, Luồng cực đại
Hình 26.10 rà qua vài lần lặp lại của vòng lặp while trong các dòng 1-8, thi hành đến khi nào đỉnh u có phần thặng dư dương (Trang 54)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w