Я шукаю швидкий алгоритм для обчислення максимального потоку в динамічних графіках. тобто з урахуванням графіка і s , t ∈ V маємо максимальний потік F в G від s до t . Потім новий / старий вузол u додається / видаляється відповідними краями, щоб утворити графік G 1 . Який максимальний потік у новоствореному графіку? Чи є спосіб запобігти перерахунку максимального потоку?
Оцінюється будь-яка попередня обробка, яка не дуже забирає час / пам'ять.
Найпростіша ідея - це перерахунок потоку.
Інша проста ідея полягає в тому, щоб зберегти всі шляхи збільшення, які використовувались у попередньому обчисленні максимального потоку, для додавання вершини ми можемо знайти прості шляхи (в оновленому графіку ємності за попереднім кроком), які починаються від джерела, йде до v, потім йде до місця призначення, але проблема полягає в тому, що цей шлях повинен бути простим, я не міг знайти кращий за O ( n ⋅ m ) для цього випадку, для m = | Е | . (Також зауважте, що якби це був лише один шлях, це можна зробити в O ( n + m ), але це не так.)
Також для видалення вузла вище ідея не працює.
Також я вже бачив документи, такі як « Інкрементальний підхід до країв» , але, здається, вони недостатньо хороші в цьому випадку, це більше, ніж для кожного краю, і, здається, не підходить розширення в цьому випадку (ми просто перераховуємо потік). Також зараз я використовую алгоритм максимального потоку Ford-Fulkerson. Якщо є кращий варіант для онлайн-алгоритмів, це добре знати.