Saya mencari algoritma cepat untuk menghitung aliran maksimum dalam grafik dinamis. yaitu diberi grafik dan s , t ∈ V kita memiliki aliran maksimum F dalam G dari s ke t . Kemudian simpul baru / lama u ditambahkan / dihapus dengan tepi yang sesuai untuk membentuk grafik G 1 . Berapakah aliran maksimum dalam grafik yang baru dibuat? Apakah ada cara untuk mencegah penghitungan ulang aliran maksimum?
Setiap preprocessing yang tidak terlalu memakan waktu / memori dihargai.
Ide paling sederhana adalah menghitung ulang alurnya.
Gagasan sederhana lainnya adalah karena ini, simpan semua jalur penambahan yang digunakan dalam perhitungan aliran maksimum sebelumnya, untuk menambahkan vertex , kita dapat menemukan jalur sederhana (dalam grafik kapasitas yang diperbarui dengan langkah sebelumnya) yang dimulai dari sumber, pergi ke v kemudian pergi ke tujuan, tetapi masalahnya adalah, jalan ini harus sederhana, saya tidak dapat menemukan lebih baik daripada O ( n ⋅ m ) untuk kasus ini, untuk m = | E | . (Perhatikan juga bahwa jika hanya satu jalur, ini bisa dilakukan dalam O ( n + m ) tetapi tidak demikian.)
Juga untuk menghapus simpul di atas ide tidak berfungsi.
Saya juga sudah melihat makalah seperti pendekatan inkremental untuk edge , tetapi tampaknya mereka tidak cukup baik dalam hal ini, lebih dari untuk setiap edge dan sepertinya tidak cocok untuk kasus ini (kami hanya menghitung ulang aliran). Juga saat ini saya menggunakan algoritma aliran maksimum Ford-Fulkerson. Jika ada pilihan yang lebih baik untuk algoritma online, ada baiknya mengetahuinya.