Пятая лекция (потоки)
- Форд-Фалкерсон
- Теорема
- Конструктивно получили поток за O(|f|×E) и разрез по потоку умеем строить за O(E)
- Декомпозиция потока за min(O(VE), O(|f|×E))
- Разрез минимального веса -- это тоже самое, что и обычный разрез
- Ориентированный граф, неориентированный граф
- Вершинный поток, разрез
- Задача про k непересекающихся путей. Разбор в ориентированном/неориентированном, вершинном/реберном случаях.
- Хранение графа списком ребер
- Минусы матрицы смежности: V2 и неудобно поддерживать кратные ребра
- Фишечки
- Несколько истоков и стоков
- Избытки и недостатки в вершинах
- [L,R]-циркулция (с нижними и верхними ограничениями)
- [L,R]-поток
- MinCost
- O(|f|×MinPath)
- Доказательство корректностипоиск (рассмотрели разность k+1 и k)
- Отрицательные циклы. Как их искать, что с ними делать?
- Форд-Беллман (обычный, с очередью, Левит)
- Дейкстра и потенциалы
- Реализации Дейкстры: set, куча, k-ичная куча, дерево отрезков
- Случай ориентированного (2E ребер) и неориентированного графа (4E ребер)
- Задачи
- Паросочетание в двудольном
- Выделение k-регулярного подграфа из двудольного
- Покрытие грида с дырками доминошками
- Покрытие грида с дырками горизонтальными и вертикальными отрезками
- Паросочетание минимального веса в двудольном
- Восстановление матрицы
- Округление матрицы
- Турнирная таблица
- Ориентация графа
- Удаление графа за минимальноую стоимость
- Поиск цикла через s и t в неор графа, в ор графе
- Поиск A-B и C-D путей
- Люди (отрезок времени) и самолеты (вместимость)
- K автоматов, выполнить i-заказ = занять один из автоматов в отрезок [Li..Ri]
- K автоматов, у каждого заказа есть стоимость (построим два графа, в одном много ребер, в другом мало)
- Работы и инструемнты
- Поиск подграфа максимальной плотности в неор графе
- Матан (поиск замкнутого подграфа в орграфе максимального веса)
- Алгоритмы поиска потока
- Форд-Фалкерсон -- O(|f|×E)
- Эдмондс-Карп -- O(E2V)
- Масштабирование -- O(E2)
- Диниц + Масштабирование -- O(VElogU)
- Хопкрофт-Карп = Диниц для графа паросочетания, работает за O(E√ V )
- Push and Relabel -- O(V3), O(V2√ E )
- Global Relabeling -- Just very fast
- Relabeling with Scaling -- O(VE + V2logU)
- Алгоритмы поиска mincost потока
- Форд-Беллман или Дейкстра
- Последовательное вычеркивание циклов минимального среднего веса
- Венгерский алгоритм для задачи о паросочетании макс веса