Содержание
- 2. Ограничение на эвристики Допустимость h(v) -- для любой вершины эвристика не превосходит реальное кратчайшее расстояние Монотонность
- 3. Остовные деревья
- 4. Остовное дерево Ациклический связный подграф, включающий все вершины графа. Как найти?
- 5. Минимальное остовное дерево Остовное дерево, обладающее минимальным суммарным весом рёбер
- 6. Лемма о безопасном ребре Пусть G’ -- подграф миностова G Ребро не из G’ -- безопасное,
- 7. Лемма о безопасном ребре Рассмотрим граф G -- взвешенный неориентированный. G’ -- подграф его миноста, --
- 8. Алгоритм Прима Похож на Дейкстру Пытаемся построить миностов, начиная с любой вершины. Когда есть несколько вершин
- 9. Асимптотика алгоритма Прима
- 10. Алгоритм Крускала Отсортируем все рёбра в порядке возрастания и будем последовательно добавлять в остов. Если ребро
- 11. Система непересекающихся множеств Каждое множество -- дерево, корень -- его “представитель”. В каждой вершине -- ссылка
- 12. Эвристики СНМ Объединение по рангу. Подвешиваем дерево с меньшей высотой к дереву с большей. Чтобы не
- 13. Асимптотика алгоритма Крускала Сортировка рёбер -- O(ElogE) СНМ -- O(E*alpha(V)) Общая асимптотика -- O(ElogE)
- 14. Алгоритм Борувки Каждая вершина графа -- дерево Для каждого дерева найдём минимальноe инцидентное ему ребро. Добавим
- 15. Алгоритм Борувки. Асимптотика На каждом шаге количество деревьев сокращается как минимум вдвое. То есть шагов --
- 16. Максимальный поток в сети. RMQ & LCA
- 17. Определение сети и потока Сеть -- орграф, с:E->R+, с(e) -- пропускная способность. В сети есть исток
- 18. Разрез. Поток через разрез Разрез -- знаем Пропускная способность разреза -- сумма всех рёбер, пересекающих разрез
- 19. Лемма о величине потока f(S,T) = |f|
- 20. Лемма о минимальном разрезе Если f(S,T) = c(S,T), то поток f максимален, а разрез -- минимален
- 21. Ещё определения
- 22. Теорема Форда-Фалкерсона Если f -- поток в сети G = (V,E), то следующие утверждения эквивалентны: Поток
- 23. Алгоритм Форда-Фалкерсона Положим f(u,v) = 0 Далее поток увеличивается итеративно через поиск увеличивающего пути Поиск можно
- 24. Алгоритм Эдмонса-Карпа Улучшение алгоритма Форда-Фалкерсона, в качестве дополняющего пути берём кратчайший по рёбрам Асимптотика O(VE^2) Найти
- 25. Алгоритм Диница Слоистая сеть Определим для каждой вершины v длину кратчайшего s->v. В слоистую сеть включаем
- 26. Поиск блокирующего потока Можно просто искать все пути s->t по одному и наполнять(по крайней мере одно
- 27. Алгоритм Диница Инициализируем f(u,v) = 0 Построим вспомогательную сеть для остаточной данного графа. Если пустая --
- 28. Паросочетания Паросочетание -- набор попарно несмежных рёбер в двудольном графе. Максимальное паросочетание -- паросочетание с наибольшим
- 29. Теорема Бержа Паросочетание максимально тогда и только тогда, когда не существует увеличивающих относительно него цепей. Пусть
- 30. Теорема Бержа Пусть парсоч M не содержит ув. пути, но есть парсоч M’, который больше чем
- 31. Алгоритм Куна поиска паросочетаний Возьмём пустое паросочетание, пока в графе находим увеличивающую цепь -- выполняем “чередование”
- 32. Алгоритм Куна Возьмём пустое паросочетание Пока удаётся найти увеличивающую цепь -- выполняем чередование Массив matching[v] --
- 34. Скачать презентацию