Паросочетания-2 и раскраски (25 марта)
- За сколько вообще умеют искать паросочетания?
- Двудольный граф: Хопкрофт-Карп, O(EV1/2).
- Произвольный граф: сжатие соцветий, реализации Габова, Тарьяна O(V3), O*(VE).
- Произвольный граф: алгоритм Вазирани, O(EV1/2).
- Произвольный граф: матрица Татта, O(V3).
- Теорема Дилворта
- Задача про покрытие ацикличного графа min числом цепей (или пути не пересекающиеся, или граф транзитивно замкнут).
- Сведение к максимальному паросочетанию в двудольном графе
- Классификация рёбер
- Какие рёбра могут лежать в паросочетании? Каждое можем проверить за O(E).
- Какие рёбра обязаны лежать в паросочетании? Таких не более V (рёбра паросочетания). Каждое можем проверить за O(E).
- Быстрый алгоритм за O(E) по готовому максимальному паросочетанию: (1) берём все рёбра, достижимые из свободных вершин, (2) берём все циклы
- Раскараска рёбер двудольных графов
- Раскраска = разбиение на паросочетания
- Лемма Холла, раскраска k-регулярных графов
- Алгоритм за O(k2V2) = O(kVE) = O(k*Matching)
- Алгоритм за O(logk*Matching) с использованием Эйлерова цикла
- Раскараска двудольных графов
- Достраиваем граф до регулярного
- [не успеем] Используем знание, что существует паросочетание, которое покрывает все вершины максимальной степени
- Теоремы и алгоритмы о раскарасках
- Брукс: теорема, существует алгоритм за O(E). Описание алгоритма для покраски в D+1.
- Vertex-List-Coloring: теорема, существует алгоритм за O(E). Описание алгоритма для покраски в D+1.
- Визинг: теорема, существует алгоритм за O(VE).
- Планарный граф, алгоритм за O(E) покраски в 6 цветов
- Планарный граф, алгоритм за O(VE) покраски в 5 цветов (на практике работает O(E))
- Планарный граф, можно покрасить в 4 цвета, покрасить можно (два алгоритма покраски, которые в среднем хорошо работают)
- Список трудных задач: D или D+1 в Визинге? Vertex-3-Coloring-4-Regular.
- Количество совершенных паросочетаний
- P#-трудное: перманент, количество совершенных паросочетаний в двудольном графе, количество совершенных паросочетаний в произвольном графе
- Перманент и определитель
- Перманент и количество совершенных паросочетаний в двудольном графе
- Алгоритм определения чётности за O(n3)
- Stable Matching
- У каждого есть список предпочтений, нет одновременно двух человек, которые больше хотят перейти друг к другу, чем к партнёрам.
- Стабильное паросочетание не обязательно максимальное.
- Алгоритм: мальчики предлагают, девочки отказыются.
- Доказательство корректности алгоритма
- [не успеем] Random matching (предполагаем, что граф двудольный)