Dinamik grafiklerde maksimum akışı hesaplamak için hızlı bir algoritma arıyorum. bir grafik verilmiş yani ve s , t ∈ V maximum akışına sahip F de G den s için t . Daha sonra yeni / eski düğüm u bir grafik G 1 oluşturmak için karşılık gelen kenarlarıyla eklenmiş / silinmiştir . Yeni oluşturulan grafikteki maksimum akış nedir? Maksimum akışı yeniden hesaplamayı önlemenin bir yolu var mı?
Çok zaman / bellek tüketmeyen herhangi bir önişleme takdir edilmektedir.
En basit fikir akışı yeniden hesaplamaktır.
Başka bir basit fikir, önceki maksimum akış hesaplamasında kullanılan tüm artırım yollarını kaydetmek, bir noktası eklemek için , kaynaktan başlayan basit yolları (önceki adımda güncellenmiş kapasite grafiğinde) bulabiliriz, sonra v'ye gider. hedefe, ama sorun, bu yol basit olmalıdır, ben daha iyi bulamadık O ( n ⋅ m ) Bu durum için, için m = | E | . (Ayrıca, yalnızca bir yol olsaydı, O ( n + m ) ' de yapılabileceğini, ancak böyle olmadığını unutmayın.)
Ayrıca yukarıdaki düğümü kaldırmak için fikir işe yaramaz.
Ayrıca zaten kenarlar için Artan yaklaşım gibi kağıtları gördüm , ancak bu durumda yeterince iyi görünmüyorlar, her kenar için den daha fazla ve bu durumda uygun bir uzantı gibi görünmüyor (sadece bir akışı yeniden hesaplıyoruz). Ayrıca şu anda Ford-Fulkerson maksimum akış algoritması kullanıyorum Çevrimiçi algoritmalar için daha iyi bir seçenek varsa, bunu bilmek iyidir.