Сформулировать условие, при котором можно сопоставить каждую левую вершину.
Найти подмножество, объясняющее, почему это невозможно.
Применить теорему к системе различных представителей.
Условие Холла
Для подмножества S⊆L пусть N(S) — множество всех правых вершин, смежных хотя бы с одной вершиной из S. Каждая правая вершина считается один раз, даже если у неё несколько соседей в S.
Теорема Холла утверждает, что паросочетание, насыщающее L, существует тогда и только тогда, когда
Здесь насыщение L означает, что каждая левая вершина насыщена. Условие говорит, что у каждого подмножества левых вершин различных соседей должно быть не меньше, чем вершин в нём.
Почему условие необходимо
Пусть каждая левая вершина насыщена. У вершин любого подмножества S есть ∣S∣ различных пар, и все они принадлежат N(S). Следовательно,
∣N(S)∣≥∣S∣.
Почему условие достаточно
Возьмём наибольшее паросочетание. Пусть оно оставляет q>0 левых вершин свободными.
Запустим поиск сразу из всех этих вершин. Переходим по рёбрам вне паросочетания из L в R и по рёбрам паросочетания из R в L, как при построении вершинного покрытия. Пусть ZL и ZR — посещённые вершины.
Каждый сосед ZL принадлежит ZR:
По ребру вне паросочетания поиск проходит.
В посещённую насыщенную левую вершину поиск пришёл через её правую пару.
Обратно, в каждую вершину из ZR поиск пришёл из соседа в ZL. Отсюда
N(ZL)=ZR.
Каждая вершина из ZR насыщена: если бы мы дошли до свободной правой вершины, получился бы увеличивающий путь. Эти правые вершины сопоставлены ровно насыщенным вершинам из ZL.
Остальные вершины ZL — это q свободных стартовых вершин. Таким образом,
∣ZL∣=∣ZR∣+q>∣ZR∣=∣N(ZL)∣.
Это противоречит условию Холла для S=ZL. Следовательно, если условие выполнено, наибольшее паросочетание насыщает L.
Ищем подмножество со слишком малым числом соседей
Найдём наибольшее паросочетание. Если его размер равен ∣L∣, каждую левую вершину можно сопоставить. Иначе запускаем описанный выше чередующийся поиск. Он находит
S=ZL,∣N(S)∣<∣S∣.
Это подмножество объясняет, почему полное распределение невозможно: у его вершин слишком мало различных возможных пар.
Система различных представителей
Для множеств A1,…,Akсистема различных представителей выбирает
xi∈Aiдлякаждогоi,
причём все выбранные значения различны.
Создадим левую вершину для каждого множества и правую вершину для каждого различного значения. Соединим множество Ai с каждым содержащимся в нём значением. Требуемый выбор — это ровно паросочетание, насыщающее левую долю.
Теорема Холла даёт условие
i∈J⋃Ai≥∣J∣длякаждогоJ⊆{1,…,k}.
Каждая группа множеств должна содержать не меньше различных значений, чем множеств в группе. Считаем объединение их вариантов: при сложении размеров отдельных множеств общие значения были бы посчитаны несколько раз.