Trực giác nhìn thấy biểu đồ dư trong bài toán Lưu lượng cực đại được trình bày rất tốt trong bài giảng này . Giải thích như sau.
Giả sử rằng chúng tôi đang cố gắng giải quyết vấn đề luồng tối đa cho mạng (trong đó mỗi nhãn biểu thị cả luồng đẩy qua một cạnh và dung lượng của cạnh này):Gfe/cefeece
Một cách tiếp cận tham lam có thể là như sau:
- Chọn một đường dẫn tăng thêm tùy ý đi từ đỉnh nguồn đến đỉnh chìm sao cho ); nghĩa là, tất cả các cạnh trong đều có dung lượng khả dụng.s t ∀ ePst P∀e(e∈P→fe<ceP
- Đẩy lưu lượng tối đa có thể qua đường dẫn này. Giá trị của được xác định bởi nút cổ chai của ; đó là, cạnh với công suất tối thiểu có sẵn. Chính thức, .Δ P Δ = phút e ∈ P ( c e - f e )ΔΔPΔ=mine∈P(ce−fe)
- Chuyển đến bước 1 cho đến khi không còn đường dẫn tăng.
Đó là, tìm một đường dẫn có dung lượng khả dụng, gửi luồng dọc theo đường dẫn đó và lặp lại.
Trong , một thực thi có thể của heuristic ở trên tìm thấy ba đường dẫn tăng thêm , và , theo thứ tự này. Các đường dẫn này lần lượt đẩy 2, 2 và 1 đơn vị dòng chảy cho tổng lưu lượng là 5:P 1 P 2 P 3GP1P2P3
Chọn đường dẫn theo thứ tự này dẫn đến một giải pháp tối ưu; tuy nhiên, điều gì xảy ra nếu chúng ta chọn trước (nghĩa là trước và )?P 1 P 2P3P1P2
Chúng ta có được cái được gọi là luồng chặn : không còn đường dẫn tăng thêm nữa. Trong trường hợp này, tổng lưu lượng là 3, không tối ưu. Vấn đề này có thể được giải quyết bằng cách cho phép hoàn tác các thao tác (nghĩa là bằng cách cho phép dòng chảy được gửi ngược lại, hoàn tác công việc của các lần lặp trước): chỉ cần đẩy 2 đơn vị dòng chảy ngược từ đỉnh sang đỉnh như thế này:vwv
Mã hóa các hoạt động hoàn tác được phép này là mục tiêu chính của biểu đồ dư .
Một đồ thị còn lại của mạng có cùng tập hợp các đỉnh như và bao gồm, cho mỗi cạnh :G G e = ( u , v ) ∈ GRGGe = ( u , v ) ∈ G
Cạnh trước có dung lượng , nếu .c e - f e c e - f e > 0e′=(u,v)ce−fece−fe>0
Cạnh ngược có dung lượng , nếu .f e f e > 0e′′=(v,u)fefe>0
Ví dụ, hãy xem xét biểu đồ còn lại thu được sau lần lặp đầu tiên của heuristic tham lam khi heuristic chọn trước (nghĩa là khi nó có luồng chặn):P 3RP3
Lưu ý rằng thao tác hoàn tác đẩy 2 đơn vị luồng từ đến được mã hóa thành đường dẫn chuyển tiếp (tăng) từ đến trong :v s t RwvstR
Nói chung:
Khi đường dẫn tăng thêm được chọn trong biểu đồ dư : RP′R
- Mỗi cạnh trong tương ứng với cạnh chuyển tiếp trong tăng lưu lượng bằng cách sử dụng cạnh có dung lượng khả dụng. GP′G
- Mọi cạnh trong tương ứng với một cạnh đi ngược lại trong hoàn tác dòng chảy được đẩy theo hướng thuận trong quá khứ. GP′G
Đây là ý tưởng chính đằng sau phương pháp Fordk Fulkerson .
Phương pháp Fordk Fulkerson tiến hành theo cách chính xác giống như phương pháp tham lam được mô tả ở trên, nhưng nó chỉ dừng lại khi không còn đường dẫn tăng thêm trong biểu đồ dư (không phải trong mạng ban đầu). Phương pháp này đúng (nghĩa là luôn tính toán lưu lượng tối đa) vì biểu đồ dư thiết lập điều kiện tối ưu sau :
Cho một mạng , một luồng là tối đa trong nếu không có đường trong biểu đồ dư.f G s - tGfGs−t