Совершенное паросочетание в кубическом графе
Версия от 18:16, 28 января 2016; Profick (обсуждение | вклад)
Теорема (Петерсон): |
Кубический граф, у которого нет совершенного паросочетания, содержит как минимум моста. |
Содержание
Следствие теоремы Петерсона
Для любого двусвязного кубического графа существует совершенное паросочетание.
Теорема (Фринк): |
Пусть — двусвязный кубический граф.
Возьмём ребро Как минимум одно из двух сокращений графа . Пусть вершины и смежены с вершиной , а вершины и смежны с вершиной (рисунок ). , состоящее из удаления вершин и пересоединения вершин рёбрами или (рисунок ) сохранит двусвязность графа. |
Доказательство: |
Обозначим компоненты графа как , которые содержат вершины соответственно. Так как не имеет мостов (соответственно не является мостом) должно существовать ребро, соединяющее одну из компонент или , с одной из компонент или . Без потери общности предположим, что соединено с . Заметим, что рёбра так же не являются мостами, значит возможны три случая (с учётом изоморфизма) (рисунок ):
Во всех трёх случаях если расширить рёбрами (получим граф ), добавленные рёбра будут лежать на некотором цикле в (рисунок ). Так же, для любой пары вершин существует цикл в , содержащий данные вершины. Чтобы доказать, что двусвязен, нужно показать, что каждое ребро из лежит на некотором цикле в . Пусть цикл в содержит (такой цикл существует, так как двусвязен). Если не проходит через вершины тогда так же является циклом в , иначе построим цикл графа из следующим образом:
|
Алгоритм поиска совершенного паросочетания за O(n^2) (Frink's algorithm)
- будем сокращать данный граф вышеизложенным способом (на каждой итерации можем выбирать любое ребро) пока не удалим все вершины,
- когда все вершины закончились, создадим пустое совершенное паросочетание и начнём обратный процесс для всех сокращений, то есть восстановление графа (начиная с последних удалённых вершин). Каждый такой шаг будет приводить к одному из четырёх базовых случаев, представленных в рисунке или к одному из специальных случаев из рисунка . Восстановление для всех специальных случаев, а так же для первых трёх базовых выполняется по строгому алгоритму, т.е. разрешим за . Единственный проблемный случай, когда оба ребра принадлежат совершенному паросочетанию. В этой ситуации необходимо найти альтернативный цикл, содержащий как минимум одно из этих рёбер и обновить паросочетание с этим циклом. Эти действия сводят четвёртый базовый случай к одному из первых трёх.
Реализация
- двусвязный кубический граф,
- совершенное паросочетание .
ifthen return else if then else end if if then end if return end if
Время работы
Операция сокращения должна на каждом шаге проверять граф на наличие мостов
, кроме того, при возникновении четвёртого базового случая требуется найти альтернативный цикл за . В алгоритме операций сокращения и восстановления графа, причем каждая из этих операций требует времени. Таким образом, весь этот алгоритм исполняется за время .