Потоки-1 (24 марта)
- Паросочетание: ещё 2 оптимизации
- Введение
- Определение потока, разреза, величины потока, величины разреза, циркуляция.
- Физический смысл: несколько непересекающихся путей.
- Дополняющий путь. Остаточная сеть.
- Основные теорема и алгоритм
- Lm #1: |f| = F(S,T) ≤ C(S,T)
- Lm #2: max|f| ≤ min C
- Алгоритм Форда-Фалкерсона
- По максимальному поток поиск минимального разреза за O(E)
- Теорема Форда-Фалкерсона, дополняющего пути нет ⇔ поток максимален
- Следствие: max|f| = min C (если max|f| существует!)
- Lm #3: существует max|f| − запустили Эдмондса-Карпа, применили Форда-Фалкерсона
- Применение потоков
- Декомпозиция потока на пути и циркуляцию: алгоритмы декомпозиции за O(|f|×E), O(E2), O(VE).
- Задача про поиск k рёберно не пересекающихся путей за O(kE)
- Задача про поиск k вершинно не пересекающихся путей за O(kE) (вершинный поток, раздвоение вершин)
- Поток в неориентированном графе. Два способа представления неориентированных рёбер. Задачи про k вершинно и рёбрно непересекающихся путях в неорграфе.
- Поиск максимального паросочетания через поток за O(VE). Связь разреза и контролирующего множества.
- Алгоритмы поиска потока
- Оптимизируем Форда-Фалкерсона: (1) максимум по пути, (2) random_shuffle
- Алгоритм масштабирования потока (Scaling), O(E2logU). Доказательство: смотрим на разрез после предыдущей фазы.
- Алгоритм Эдмондса-Карпа с помощью bfs за O(E2V).
- [не успеем] Доказательство Эдмондса-Карпа: смотрим на расстояние (s,v), оно не убывает, значит, каждое ребро насытится максимум V/2 раз.
- Замечания
- Вещественные пропускные способности: Ф.Ф., Э.К, Scaling
- Lm "целочисленность максимального потока": при целочисленных пропускных способоностях существует целочисленный максимальный поток
- [не успеем] Любой макс поток можно получить из другого макс потока добавлением циркуляции в остаточной сети
- Задача про 2 пути NP-трудна