Tôi đang tìm kiếm một thuật toán nhanh để tính toán lưu lượng tối đa trong các biểu đồ động. tức là đã cho một đồ thị và chúng ta có luồng tối đa trong G từ s đến t . Sau đó mới / nút cũ u thêm / xóa với các cạnh tương ứng của nó để tạo thành một đồ thị G 1 . Lưu lượng tối đa trong biểu đồ mới được tạo là gì? Có cách nào để ngăn chặn tính toán lại lưu lượng tối đa?F
Bất kỳ quá trình tiền xử lý nào không tốn nhiều thời gian / bộ nhớ đều được đánh giá cao.
Ý tưởng đơn giản nhất là tính toán lại dòng chảy.
Một ý tưởng đơn giản khác là như vậy, lưu tất cả các đường dẫn tăng được sử dụng trong tính toán lưu lượng tối đa trước đó, để thêm một đỉnh , chúng ta có thể tìm thấy các đường dẫn đơn giản (trong biểu đồ dung lượng được cập nhật theo bước trước) bắt đầu từ nguồn, đi đến v rồi đi đến đích, nhưng vấn đề là, đường dẫn này phải đơn giản, tôi không thể tìm thấy tốt hơn O ( n ⋅ m ) cho trường hợp này, với m = | E | . (Cũng lưu ý rằng nếu đó chỉ là một con đường thì điều này có thể được thực hiện trong O ( n + m ) nhưng không phải vậy.)
Ngoài ra để loại bỏ nút trên ý tưởng không hoạt động.
Ngoài ra tôi đã thấy các bài báo như Cách tiếp cận tăng dần cho các cạnh , nhưng dường như chúng không đủ tốt trong trường hợp này, nó nhiều hơn cho mỗi cạnh và dường như không mở rộng phù hợp trong trường hợp này (chúng tôi chỉ tính toán lại một luồng). Hiện tại tôi cũng đang sử dụng thuật toán lưu lượng tối đa của Ford-Fulkerson Nếu có tùy chọn tốt hơn cho các thuật toán trực tuyến, thật tốt khi biết điều đó.