Паросочетания-2 и раскраски (22 марта 2016)
- Ещё одна оптимизация Куна
- Произвольный граф
- Матрица Татта, Th о проверке за O(V3), алгоритм построения за O(V5)
- Рандомизированный алгоритм поиска паросочетания в произвольном графе: неправильная версия с раздвоением, правильная версия без раздвоения
- Классификация рёбер
- Задача: для каждого ребра графа определить "обязано", "может", "не может"
- Симметрическая разность, рассуждения для произвольного графа про чётные циклы и чётные пути
- Утверждение #2 про "рёбра из M, которые обязаны лежать". Утверждение #1 про "рёбра не из M, которые могут лежать".
- Алгоритм нахождения всех чётных циклов и путей для двудольного графа за O(E)
- Stable Matching
- Def: у каждого есть список предпочтений, нет одновременно двух человек, которые больше хотят перейти друг к другу, чем к партнёрам.
- Стабильное паросочетание не обязательно максимальное.
- Алгоритм: мальчики предлагают, девочки отказывают. Реализация за линейное от размера входных данных время.
- Доказательство корректности алгоритма (рассмотрим конечный момент, от противного)
- Раскараска рёбер двудольных графов
- Раскраска = разбиение на паросочетания
- Lm: x ≥ D. Th. Визинга x ≤ D+1
- Алгоритм покраски рёбер двудольного графа в D цветов: дополнили до регулярного, разбили регулярный на паросочетания.
- Дополнение до регулярного
- Разбиение регулярного на паросочетания: Д.З. (следует из леммы Холла)