Потоки-4 (8 апреля)
- Историческая справка
- Ф.Ф., 1955
- Edmonds-Karp., 1969 (идея кратчайших путей)
- Dinic, 1970 (блокирующий поток на сети кратчайших путей)
- Edmonds-Karp, Dinic, 1972 (масштабирование потока)
- Malhotra-Kumar-Maheshwari, 1978 (оптимизация Диница до V3) (в нашем курсе этого нет)
- Goldberg, Rao, 1998, Лучшее время на текущий момент: E*min(V2/3, E1/2)*log(V2/E) (в нашем курсе этого нет)
- Орлин и компания (Рао, Тарьян, Кинг). Поток за O(VE) и ещё более хорошие времена в отдельных случаях [сайт Орлина]
- Техника preflow push (Karzanov, 1974)
- Определение preflow. Инициализация. Операции push & relabel.
- Корректность тривиального алгоритма (в конце мы получим поток, данный поток максимальный).
- Алгоритм за O(V3): while (1) for(v) if (ex[v]) { try to push, try to relabel } (если пробегать лишь очередь вершин с избытком, получаем round robin; move-to-front, fifo − излишне усложнённые той же идеи)
- Техника preflow push - 2
- Queue optimization
- Global-Relabeling optimization
- Короткий и быстрый алгоритм: while (1) { for(e) try to push ; global relabeling }
- High-Level optimization (Cherkassky, 1977, O(n2sqrt(m)))
- Ahuja : масштабирование потока + preflow (Ahuja, Orlin, 1986)
- Глобальный разрез
- Алгоритм Штор-Вагнера за O(V3) (Wagner, Stoer, 1997)
- Алгоритм Каргера-Штейна, версия за O(V4)
- Алгоритм Каргера-Штейна, версия за O(V2logV) (Karger, Stein, 1993)