Dây chuyền chưa bão hòa

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (Trang 27 - 32)

Giả sử có một dây chuyền chưa bão hòa µ đi từ một trạm phát i1 chưa thỏa mãn tới một trạm thu chưa thỏa mãn. Khi đó trạmi1chưa phát hết hàng hóa mà nó có thể cung cấp, trạm thu i0 thì lại chưa nhận đủ số lượng hàng hóa cần tiêu thụ. Nếu ta thay x(u) =x(u) +1 trên những cungu∈K+(µ)và thay x(u) =x(u)−1

trên những cung u∈K−(µ) thì một mặt, các cường độ vẫn còn chấp nhận được (vìµ chưa bão hòa); mặt khác thông lượng ởi1trở thànhαii−1, thông lượng ởi0 trở thànhαi0−1, tức là trạmi1 phát thêm được một đơn vị, trạmi0 thu thêm được một đơn vị, do đó trị số của luồng tăng thêm1.

trạm thu chưa thỏa mãn.

Chứng minh. Tính cần đã chứng minh rồi, ta chỉ còn xác lập tính đủ.

Giả sử không có dây chuyền nào như trên, ta phải chứng minh rằngX là luồng tương thích lớn nhất. muốn thế, chỉ cần lấy một luồng tương thích bất kỳ X0 =

{x0(u)}và chứng minh rằngσ(X0)≤σ(X). Ta hãy đặt ρ(X0,X) = ∑

u∈U

x0(u)−x(u).

Nếu ρ(X0,X) = 0 thì x0(u) =x(u) với mọi u ∈U, cho nên ta có thể giả thiết ρ(X0,X)>0, tức là có ít nhất một cungu0 vớix0(u0)6=x(u0), chẳng hạn x0(u0)<

x(u0). Gọi M là tập hợp tất cả các dây chuyền đơn giản µ đi qua u0 và sao cho x0(u)<x(u)với mọiu∈K+(µ), x0(u)>x(u)với mọiu∈K−(µ). Đương nhiên, tập hợpMlà hữu hạn và khác rỗng vì ít ra cũng có một phần tử, là dây chuyền tạo thành bởi bản thân cung u0 và hai đầu mút của nó. Vậy phải có một dây chuyền µ0∈M không chứa trong mọi dây chuyền khác thuộcM. Ta hãy sửa x0(u)thành x(u) +1 trên mọi cung u∈K+(µ0), và sửa x0(u) thành x(u)−1 trên mọi cung u∈K−(µ0). Vìx0(u)<x(u)≤d(u)với mọiu∈K+(µ0), vàx0(u)>x(u)≥0với mọi u∈K−(µ0), nên luồng X00 thu được từ X0 sau khi sửa như trên vẫn là chấp nhận được. Hơn nữa có thể thấy rằng X00 vẫn là tương thích và σ(X00)≥σ(X). Thật vậy, điều đó hiển nhiên nếu µ0 là một dây chuyền đóng, vì khi ấy việc sửa trên không làm thay đổi thông lượng của X0 tại đỉnh nào cả; cho nên ta chỉ cần xét trường hợp dây chuyền µ0 không đóng sơ cấp, và đi từ i1 đến is6=i1. Ta phải có x0(u)≥x(u) với mọi u∈Ui+

1 và x0(u)≥ x(u) với mọi u∈Ui−

1, vì nếu chẳng hạn có một cung u∈Ui−

1 và x0(u)<x(u)thì thêm cung đó vào µ0 ta sẽ được một dây chuyền thuộc M chứa , trái với định nghĩa của . Cũng như thế, ta phải

cóx0(u)≤x(u)với mọiu∈Ui−

1 vàx0(u)≥x(u)với mọiu∈Ui

1. Do đó theo định nghĩa các thông lượng tạii1 vàis

αi0

1 >αi1, αi0s <αis. (2.3) Nhưng khi sửaX0 thànhX00 thìαi0

1 thành αi00 1 =αi0 1−1vàαi0 s thànhαi00 s =αi0 s+1. Vậy αi0 1 > αi00 1 ≥ αi1 và αi0s <αi00s ≤αis, chứng tỏ X00 vẫn là luồng tương thích. Mặt khác, vì thông lượng của X0 và X00 là bằng nhau tại mọi đỉnh, trừ tạii1 và is nên rõ ràng: nếu i1 vàis cùng là thu, hay cùng là phát (tức αi0

1 vàαi0

1s cùng đấu), thìσ(X00) =σ(X0) (xem lại định nghĩa trị số của một luồng); nếu i1 phát, is thu (tức αi0

1 <0,αi0s ≥0) thì σ(X00) =σ(X0) +1; còn trường hợp sau cùng: i1 thu,is phát thì không thể xảy ra vì khi đó, nếu gọiµ00 là dây chuyềnµ0 đổi chiều, thì ta có x(u)<x0(u)≤d(u)với mọiu∈K+(µ00),x(u)>x0(u)≥0với mọiu∈K−(µ00), cho nênµ00 sẽ là một dây chuyền chưa bão hòa trongX, đi từ trạm phátischưa thỏa mãn (vì theo (2.3) và doαi1<0ta sẽ có|αis|<|α0is| ≤ |pis|) đến trạm thui1 chưa thỏa mãn (vì theo (2.3) và doαi1≥0ta sẽ cóαi1<αi0

1≤pi1điều này sẽ trái với giả thiết vềX. Tóm lại, khi sửaX0thànhX00thìX00vẫn là tương thích và cóσ(X00)≥σ(X0). Đồng thời, dĩ nhiênρ(X00,X0)<ρ(X0,X). Nếuρ(X00,X0)>0thì ta lại có thể theo cách trên sửa X00 thành X000 với σ(X000)≥σ(X00), và ρ(X000,X00)<ρ(X00,X0), v.v . . . Vì ρ(X0,X) là một số tự nhiên hữu hạn nên cuối cùng ta sẽ đi tới một luồng tương thíchX(t)màσ(X(t))≥σ(X0)vàρ(X(t),X) =0, tức là trùng hoàn toàn với X. Do đóσ(X)≥σ(X0). Định lý được chứng minh xong.

2.2 Thuật toán tìm luồng lớn nhất

Từ Định lý 2.1.3 ta suy ra thuật toán như sau: xuất phát từ một luồng tương thích bất kỳX, kiểm tra xem có dây chuyền nào chưa bão hòa đi từ một trạm phát chưa thỏa mãn tới một trạm thu chưa thỏa mãn không, nếu có thì sửa lại các cường dộ của luồng trên dây chuyền đó như đã làm ở trên để tăng trị số của X, đến khi nào không còn dây chuyền nào như thế nữa thì đó là luồng tương thích lớn nhất.

được một trạm thu k chưa thỏa mãn thì sẽ có một dây chuyền từ s tớik mà mỗi đỉnh trên dây chuyền đều được đánh dấu bằng chỉ số (có thể khác dấu) của đỉnh trước nó. Rõ ràng dây chuyền đó là chưa bão hòa.

Xét hai trường hợp riêng, giúp dễ dàng xây dựng luồng tương thích lớn nhất.

Mạng giao thông Ford-Fulkerson. Giả sử trong mạng G có một đỉnh,

chẳng hạn đỉnh1, sao choU1−= /0 và một đỉnh, chẳng hạn đỉnhn, sao cho Un+ = /0. Khi đó mạng G gọi là một mạng giao thông Ford-Fulkerson với

1 là điểm xuất và n là điểm nhập. Nếu hệ yêu cầu là p1 = −∞, pn = +∞, pi=0với1<i<nthì bài toán trên đây trở thành bài toán luồng lớn nhất

mà Ford-Fulkerson đã đề xuất và nghiên cứu lần đầu tiên năm 1956: nội dung cụ thể của nó là hãy tìm một cách đưa hàng hóa với số lượng nhiều nhất có thể được từ một địa điểm (đánh số1) tới một địa điểm (đánh sốn) qua một lưới đường giao thông mà khả năng thông qua của từng đường đã biết trước.

Trong trường hợp riêng này, đỉnh1và đỉnh nluôn luôn chưa thỏa mãn, còn mọi đỉnh khác đều được thỏa mãn, cho nên theo Định lý 2.1.3, chỉ cần kiểm tra xem có dây chuyền chưa bão hòa nào từ đỉnh1tới đỉnhnkhông.

Mạng dạng cây. Một trường hợp đáng lưu ý khác là khi G không có chu

trình. Lúc đó có thể xây dựng luồng tương thích lớn nhất một cách rất đơn giản như sau:

Lấy một đỉnh treo tùy ý, chẳng hạn đỉnhI1. Nếu I1 là một trạm phát thì đặt x(u) =0 trên cung đi tới I1 (nếu có) và x(u) =e trên cung đi khỏi i1 (nếu

có), trong đóei1 là tổng số hàng tối đa có thể phát đi từi1 tới tất cả các trạm thu, nếu coi như không có trạm phát nào kháci1. Nếui1 là một trạm thu thì cũng làm tương tự (đặtx(u) =0trên cung đi khỏii1 vàx(u) =ei1 trên cung đi tới i1, trong đó ei1 là tổng số hàng tối đa có thể đưa tới i1 từ tất cả các trạm phát, nếu coi như không có trạm thu nào khác i1). Sau đó, xóa i1 (và các cung liên thuộc nó), rồi thay yêu cầu p2 của đỉnhi2 kề i1 bằng p2+ei1. Lặp lại các phép toán trên cho mạng mới (với các yêu cầu mới), v.v . . . cho đến khi dùng hết mọi đỉnh.

Nói một cách nôm na, phương pháp của ta là phân phối lần lượt theo thứ tự ưu tiên cho các đỉnh treo, và mỗi lần phân phối cho đỉnh nào thì phân phối tới mức tối đa có thể được. Có thể chứng minh dễ dàng rằng luồng X xây dựng như thế là luồng tương thích lớn nhất.

Thật vậy, nếu số đỉnh là n=2 thì điều đó là hiển nhiên. Ta hãy giả thiết rằng điều đó đúng với các mạng cón−1đỉnh, và chứng minh rằng nó cũng đúng với mạng cónđỉnh. GọiG1 và{p(i1)}là mạng và yêu cầu sau khi xóa i1,X1 là luồngX xét trênG1. Theo giả thiết qui nạpX1 là luồng tương thích lớn nhất trongG1 với hệ {p(i1)}, cho nên theo Định lý 2.1.3, không có dây chuyền chưa bão hòa trong X1 đi từ một trạm phát chưa thỏa mãn tới một trạm thu chưa thỏa mãn. Do đó một dây chuyền như thế cũng không thể tồn tại đối với X, vì nếu có, thì một đầu mút của nó ắt phải là một đỉnh i1 và lúc đó bằng cách sửaX trên dây chuyền đó, ta có thể làm tăng giá trị tuyệt đối của thông lượng tạii1, trái với tính chất của đỉnhi. VậyX là một luồng tương thích lớn nhất.

Ví dụ 2.2.1. Xét mạng dạng cây vẽ ở Hình 2.3 (các “khuyên tròn có dấu trừ” chỉ

các trạm phát, các “ô vuông có dấu cộng” chỉ các trạm thu, các số ghi bên cạnh các cung và các đỉnh chỉ khả năng thông qua của các cung và yêu cầu của các trạm). Theo phương pháp nêu trên có thể tìm thấy ngay một luồng tương thích lớn nhất với trị số bằng 12 (các số trong ngoặc đơn chỉ cường độ của luồng). Có thể kiểm

Một phần của tài liệu (LUẬN văn THẠC sĩ) bài toán luồng lớn nhất và luồng chi phí nhỏ nhất trên mạng (Trang 27 - 32)

Tải bản đầy đủ (PDF)

(50 trang)