Формально, если задан двудольный граф G = ( X + Y , E ) , то нарушителем Холла в X является подмножество W из X , для которого | N G ( W ) | < | W | , где N G ( W ) — множество соседей W в G.
Если W является нарушителем Холла, то не существует паросочетания , которое насыщает все вершины W. Следовательно, не существует и паросочетания, которое насыщает X. Теорема Холла о браке утверждает, что обратное также верно: если нет нарушителя Холла, то существует паросочетание, которое насыщает X.
Алгоритмы
Поиск нарушителя Холла
Нарушитель Холла может быть найден эффективным алгоритмом. Алгоритм ниже использует следующие термины:
M - чередующийся путь для некоторого паросочетания M — это путь, в котором первое ребро не является ребром M , второе ребро принадлежит M , третье не принадлежит M и т. д.
Вершина z является M -достижимой из некоторой вершины x , если существует M -чередующийся путь из x в z .
В качестве примера рассмотрим рисунок справа, где вертикальные (синие) ребра обозначают соответствие M. Множества вершин Y 1 , X 1 , Y 2 , X 2 являются M -достижимыми из x 0 (или любой другой вершины X 0 ), но Y 3 и X 3 не являются M -достижимыми из x 0 .
Алгоритм поиска нарушителя Холла выглядит следующим образом.
Если все вершины X сопоставлены, то возвращается «Нет нарушителя Холла».
В противном случае пусть x 0 будет непарной вершиной.
Пусть W — множество всех вершин X , которые M -достижимы из x 0 (его можно найти с помощью поиска в ширину ; на рисунке W содержит x 0 , X 1 и X 2 ).
Возврат W.
Этот W действительно является нарушителем правил Холла по следующим фактам:
Все вершины N G ( W ) соответствуют M . Предположим от противного, что некоторая вершина y в N G ( W ) не соответствует M . Пусть x будет ее соседом в W . Путь от x 0 до x до y является M -увеличивающим путем - он является M -чередующимся и начинается и заканчивается несоответствующими вершинами, поэтому, "инвертируя" его, мы можем увеличить M , что противоречит его максимальности.
W содержит все совпадения N G ( W ) по M. Это потому, что все эти совпадения M -достижимы из x 0 .
W содержит другую вершину — x 0 — котораяпо определению не совпадает с M.
Следовательно, | W | = | N G ( W )| + 1 > | N G ( W )| , поэтому W действительно удовлетворяет определению нарушителя Холла.
Выявление минимальных и минимальных нарушителей Холла
Нарушитель Холла с минимальным включением — это нарушитель Холла, каждый из подмножеств которого не является нарушителем Холла.
Вышеуказанный алгоритм, по сути, находит минимальный по включению нарушитель Холла. Это происходит потому, что если удалить любую вершину из W , то оставшиеся вершины могут быть идеально сопоставлены с вершинами N G ( W ) (либо ребрами M , либо ребрами M-альтернирующего пути из x 0 ). [2]
Вышеуказанный алгоритм не обязательно находит нарушителя Холла с минимальной мощностью . Например, на рисунке выше он возвращает нарушителя Холла размером 5, тогда как X 0 — нарушитель Холла размером 3.
На самом деле, нахождение нарушителя Холла с минимальной мощностью является NP-трудным. Это может быть доказано сведением к задаче Клики . [3]
Нахождение нарушителя Зала или пути увеличения
Следующий алгоритм [4] [5] принимает в качестве входных данных произвольное паросочетание M в графе и вершину x 0 в X , которая не насыщена M.
В качестве выходных данных он возвращает либо нарушитель Холла, содержащий x 0 , либо путь, который можно использовать для увеличения M .
Положим k = 0 , W k := { x 0 }, Z k := {} .
Утверждать:
W k = { x 0 ,..., x k }, где x i — различные вершины X ;
Z k = { y 1 ,..., y k }, где y i — различные вершины Y ;
Для всех i ≥ 1 y i сопоставляется с x i с помощью M .
Для всех i ≥ 1 точка y i соединена с некоторой точкой x j < i ребром, не принадлежащим M .
Если N G ( W k ) ⊆ Z k , то W k является нарушителем Холла, так как | W k | = k +1 > k = | Z k | ≥ | N G ( W k )| . Верните нарушитель Холла W k .
В противном случае пусть y k +1 будет вершиной в N G ( W k ) \ Z k . Рассмотрим следующие два случая:
Случай 1: y k +1 соответствует M .
Так как x 0 не имеет соответствия, а каждый x i в W k соответствует y i в Z k , партнер этого y k +1 должен быть некоторой вершиной X, которая не находится в W k . Обозначим ее как x k +1 .
Пусть W k +1 := W k U { x k +1 } и Z k +1 := Z k U { y k +1 } и k := k + 1 .
Вернитесь к шагу 2 .
Случай 2: y k +1 не имеет соответствия с M .
Так как y k +1 находится в N G ( W k ) , он соединен с некоторым x i (для i < k + 1 ) ребром, не принадлежащим M . x i соединен с y i ребром, не принадлежащим M . y i соединен с некоторым x j (для j < i ) ребром, не принадлежащим M , и так далее. Следование этим соединениям должно в конечном итоге привести к x 0 , который не имеет соответствия. Следовательно, у нас есть M-увеличивающий путь. Верните M-увеличивающий путь .
На каждой итерации W k и Z k растут на одну вершину. Следовательно, алгоритм должен завершиться не позднее, чем через | X | итераций.
Процедуру можно использовать итеративно: начать с M , представляющего собой пустое паросочетание, вызывать процедуру снова и снова, пока либо не будет найден нарушитель Холла, либо пока паросочетание M не заполнит все вершины X. Это дает конструктивное доказательство теоремы Холла.
^ Ган, Цзяруй; Суксомпонг, Варут; Вудурис, Александрос А. (01 сентября 2019 г.). «Свобода от зависти в вопросах распределения жилья». Математические социальные науки . 101 : 104–106 . arXiv : 1905.00468 . doi :10.1016/j.mathsocsci.2019.07.005. ISSN 0165-4896. S2CID 143421680.
^ Адитья Кабра. "Параметризованная сложность задачи минимального k-объединения". Диссертация магистра. Теорема 3.2.5. Это также упражнение 13.28 в [4] Марек Цыган, Федор В. Фомин, Лукаш Ковалик, Даниэль Локштанов, Дэниел Маркс, Марчин Пилипчук, Миха Пилипчук и Сакет Саурабх, "Параметризованные алгоритмы", Springer, 2016. См. также этот пост на CS stackexchange.
^ Мордехай Дж. Голин (2006). «Двудольное сопоставление и венгерский метод» (PDF) .
^ Сегал-Халеви, Эрель; Айгнер-Хорев, Элад (28.01.2019). «Сочетания без зависти в двудольных графах и их применение к справедливому делению». arXiv : 1901.09527v2 [cs.DS].
^ Элфферс, Ян; Гохт, Стефан; Маккриш, Сиаран; Нордстрём, Якоб (2020-04-03). «Обоснование всех различий с помощью псевдобулевых рассуждений». Труды конференции AAAI по искусственному интеллекту . 34 (2): 1486–1494 . doi : 10.1609/aaai.v34i02.5507 . ISSN 2374-3468. S2CID 208242680.