MathLabs
Định lýĐã chứng minh

Định lý Max-flow min-cut

Phát biểu

Trong một mạng luồng bất kỳ với nguồn ss và đích tt cùng các dung lượng cạnh không âm, giá trị luồng lớn nhất từ ss đến tt bằng dung lượng nhỏ nhất trong số mọi lát cắt từ ss đến tt.

Vì sao đúng?

Định lý biến một bài toán tối đa hoá (tìm luồng lớn nhất) thành một bài toán tối thiểu hoá tương đương (tìm điểm nghẽn nhỏ nhất), nên chỉ một lát cắt cũng cho ta một chứng nhận tức thời, kiểm tra được rằng luồng đã tối ưu — cùng ý tưởng đối ngẫu gốc-đối ngẫu làm nền cho đối ngẫu LP và việc cắt tỉa trong branch-and-bound.

Phác thảo chứng minh

Trước tiên là đối ngẫu yếu. Lấy một lát cắt ss-tt bất kỳ SS,TT với ss thuộc SS và tt thuộc TT, và một luồng khả thi bất kỳ ∣f∣|f|. Mỗi đơn vị luồng rời khỏi ss cuối cùng phải đi từ SS sang TT để tới được tt, và theo tính bảo toàn, luồng ròng qua lát cắt bằng đúng tổng giá trị luồng. Vì các cạnh từ TT quay ngược về SS chỉ có thể làm giảm lượng ròng này, giá trị luồng không bao giờ vượt quá tổng dung lượng các cạnh rời khỏi SS, tức là ∣f∣|f| luôn nhỏ hơn hoặc bằng cap(S,T)\mathrm{cap}(S,T) với mọi lát cắt.

Bây giờ chạy thuật toán Ford-Fulkerson đến khi kết thúc: lặp lại việc tìm một đường từ ss đến tt trong đồ thị thặng dư (dung lượng còn lại cộng với luồng có thể đảo ngược đã gửi) và đẩy thêm luồng đúng bằng cạnh hẹp nhất trên đường đó cho phép. Vì dung lượng được giả sử là số nguyên hoặc hữu tỉ và giảm chặt sau mỗi lần dùng đường tăng luồng, quá trình này kết thúc sau hữu hạn bước.

Khi kết thúc, không còn đường tăng luồng nào. Gọi SS là tập các nút có thể đến được từ ss trong đồ thị thặng dư cuối cùng, và TT là phần còn lại (vậy tt thuộc TT vì không có đường nào đến được nó). Mọi cạnh từ SS sang TT trong mạng gốc phải bão hoà hoàn toàn (nếu không nó vẫn còn dung lượng thặng dư, mở rộng thêm SS), và mọi cạnh từ TT quay lại SS phải mang luồng bằng không (nếu không cạnh thặng dư ngược của nó sẽ mở rộng thêm SS).

Cộng dồn tính bảo toàn luồng trên mọi nút trong SS cho thấy tổng giá trị luồng bằng đúng dung lượng của các cạnh thuận đã bão hoà trừ đi luồng ngược bằng không, chính là cap(S,T)\mathrm{cap}(S,T) cho lát cắt này. Kết hợp với cận trên ở đoạn đầu, lát cắt này đạt dung lượng nhỏ nhất có thể, nên giá trị luồng lớn nhất bằng đúng dung lượng lát cắt nhỏ nhất.

Chủ đề chứa định lý này

Chứng minh từng bước

Chưa có chứng minh từng bước cho định lý này.

Tài liệu tham khảo

  1. Alexander Schrijver (2003). Combinatorial Optimization: Polyhedra and Efficiency
  2. Anna R. Karlin, Nathan Klein, Shayan Oveis Gharan (2021). A (Slightly) Improved Approximation Algorithm for Metric TSP · arXiv:2007.01409