16. Паросочетания в двудольных графах
Паросочетанием в графе называется множество попарно несмежных ребер.
Паросочетание M называется совершенным, если каждая вершина графа является концом какого-то ребра из M.
Пусть A – подмножество вершин графа G=(V,E). Определим N(A) как множество вершин из V\A, смежных хотя бы с одной вершиной из A.
Теорема Холла. Пусть G – двудольный граф, X и Y – его доли. Тогда в G существует совершенное паросочетание если и только если для любого подмножества AÍ X , |A|£|N(A)|
Задача о наибольшем паросочетании
Вход: двудольный граф G с долями X и Y.
Найти: наибольшее паросочетание M в графе G.
Если |X| = |Y| = |M|, то M будет соверешнным паросочетанием . Пусть M – какое-то паросочетание в графе G. Вершины, инцидентные ребрам из M, назовем насыщенными.
Цепь, ребра которой поочередно входят и не входят в M, назовем чередующейся
относительно M. Чередующуюся цепь, у которой концы являются ненасыщенными вершинами, назовем увеличивающей.
Теорема. Паросочетание M является наибольшим тогда и только тогда, когда не существует увеличивающей относительно M цепи.
Алгоритм построения наибольшего паросочетания.
1. Взять какое-то начальное паросочетание M.
2. Попытаться найти увеличивающую относительно M цепь.
3. Если такой цепи нет, то M – наибольшее паросочетание.
4. Если такая цепь нашлась, то построить с ее помощью новое паросочетание M большего размера и перейти в 2.
Как найти увеличивающую цепь?
Орграф – это граф, у которого на каждом ребре
задана ориентация .
Орграф – это пара (V,A), где V – конечное множество,
а AÍV2 .
Из вершины u в вершину v в орграфе существует путь
тогда и только тогда, когда v получила метку в результате выполнения поиска в ширину с начальной вершиной u .
- 1.Трудоемкость алгоритмов
- 2.Алгоритмы сортировки
- 3.Сортировка слиянием
- 4.Бинарные поисковые деревья
- 5.2-3-4 Деревья
- 6.Хеширование
- 7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- 8. Графы. Структуры данных для представления графов
- 9. Алгоритм нахождения Эйлерова цикла
- 10 .Поиск в ширину(волновой алгоритм)
- 11.Поиск в глубину
- 12.Жадные алгоритмы и матроиды
- 13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- 14. Алгоритм Дийкстры
- 15. Алгоритм Флойда
- 16. Паросочетания в двудольных графах
- 17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- 18. Задача о рюкзаке
- 21. Классы p и np. Полиномиальное сведение.
- 22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- 23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- 24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- 25.Метод ветвей и границ. Задача коммивояжера.
- 26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- 27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- 28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- 31.Задача о раскраске хордальных графов
- 32.Генетические алгоритмы
- 33. Page Rank
- 34 Криптосистема с открытым ключом. Криптосистема rsa
- 35.Задача разделения секрета.
- 36. Алгоритмы сжатия информации