Я ищу быстрый алгоритм для вычисления максимального потока в динамических графах (добавление / удаление узла со связанными ребрами к графу). т.е. у нас есть максимальный поток в G, теперь новый узел добавлен / удален со связанными ребрами, я не люблю пересчитывать максимальный поток для нового графа, фактически я хочу использовать предыдущие доступные результаты для этого графа.
Любая предварительная обработка, которая не очень потребляет время / память, присваивается.
Простейшая идея - пересчитать поток.
Еще одна простая идея заключается в том, чтобы сохранить все пути расширения, которые использовались в предыдущем расчете максимального потока, теперь для добавления вершины v
, мы можем найти простые пути (в обновленном графике пропускной способности на предыдущем шаге), которые начинаются с источника и переходят к v
затем идет к месту назначения, но проблема в том, что этот путь должен быть простым, я не мог найти лучше, чем O (n * E) для этого случая. (если это был только один путь или пути были непересекающимися, это можно сделать в O (n + E), но это не так).
Также для удаления узла выше идея не работает.
Также мой вопрос не связан с другим вопросом, который касается динамических ребер, добавляя / удаляя .