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
Hình 2.3: Luồng lớn nhất trong mạng dạng cây tra dễ dàng tiêu chuẩn ở Định lý 2.1.3.