Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_2_Vosstanovlen.docx
Скачиваний:
47
Добавлен:
19.12.2018
Размер:
520.19 Кб
Скачать

16. Двудольные графы и паросочетания. Свойства двудольных графов. Теорема Холла о совершенном паросочетании.

Рассмотрим задачу о назначениях на работу. Пусть имеется n вакансий и m претендентов на эти вакансии, каждый из которых может выполнять определенное количество работ. Для определенности пусть m>n, иначе мы все вакансии ни при каких условиях не заполним.

Рассмотрим граф G, который отображает такую ситуацию (рис.3.12). Обозначим множество кандидатов – V2, |V2|=m, множество вакансий – V1, |V1|=n. Ребро e=(vi,vj) , viV1, vjV2 означает, что кандидат vj по своей квалификации может претендовать на вакансию vi.

Определение. Граф G называется двудольным, если существуют подмножества V1,V2, V1V2=, V1V2=V, и ребро e=(vi,vj) существует, только если viV1, vjV2. Т.е. концевыми вершинами ребра обязательно являются представители разных множеств.

Произвольный двудольный граф обозначается G(V1,V2,E). Двудольные графы обладают одним важным свойством, которое нам еще понадобится в будущем.

Теорема. В двудольном графе все циклы имеют четную длину.

Доказательство. Если начинаем обход цикла из одной доли и заканчиваем в ней, а ребер внутри доли нет, то каждый переход между вершинами одной доли требует выхода в другую долю и возвращения в исходную, то есть для каждого перехода нужна пара ребер. Что и означает четность цикла.

Для графа, содержащего циклы, четность всех циклов – необходимое и достаточное условие его «двудольности». Теперь введем еще одно определение, касающееся задачи о назначениях на работу.

Определение. Паросочетанием (или независимым множеством ребер) называется такое подмножество E’E, в котором никакие два ребра не смежны. Совершенным паросочетанием из V2 в V1 называется паросочетание, покрывающее все вершины из V1 (в общем случае, все вершины минимального из пары множеств V1,V2).

Задачу о назначениях на работу тогда можно поставить так: существует ли совершенное паросочетание из V2 в V1?

Ответ на этот вопрос дает теорема Холла.

Определение. Множество вершин, смежных с вершиной vi, называется множеством смежности этой вершины и обозначается Г+(vi). Если множество смежности включает и саму вершину vi, то его обзначают Г(vi)= Г+(vi){vi}. Для некоторого подмножества вершин A множеством смежности Г(А) будет объединение Г+(vi) по всем viA.

Теорема Холла. Пусть G(V1,V2,E) – двудольный граф. Совершенное паросочетание из V2 в V1 существует тогда и только тогда, когда  AV1 |A||Г(A)|.

Доказательство. Необходимость очевидна. Если совершенное паросочетание существует, то, по самому определению такового, каждая вершина из V1 связана, как минимум, с одной вершиной из V2. , и любое их объединение дает требуемое соотношение |A||Г(A)|.

Достаточность. Пусть теперь известно, что |A||Г(A)|. Это означает, что каждая вершина из V1 связана хотя бы с одной вершиной из V2, так как множество A может состоять и из одной вершины. Покажем теперь, что в этом случае существует совершенное паросочетание из V2 в V1 .

Сделаем дополнительное построение. Стянем вершины из V1 к вершине u, а вершины из V2 – к вершине v. Рассмотрим все пути между вершинами u и v. Ясно, что если каждая вершина из V1 связана хотя бы с одной вершиной из V2, то через нее проходит какая-то цепь S(u,v). Но нас интересуют только несмежные ребра, следовательно, вершинно непересекающиеся простые цепи. Максимальное число таких цепей по теореме Менгера равно мощности минимального разделяющего множества вершин. По построению V1 является для u и v разделяющим множеством вершин. Покажем теперь, что оно является минимальным. Если бы это было не так, то существовала бы цепь S’, проходящая мимо множества V1 (рис.3.13), что противоречит нашему исходному построению.

Значит, V1 минимально. Итак, мы имеем | V1| вершинно непересекающихся простых цепей, каждая из которых проходит через какое-то из ребер множества E, причем это ребро не имеет смежных ребер. Это и означает существование совершенного паросочетания.В качестве примера на применение теоремы Холла выясним, существует ли совершенное паросочетание в следующем двудольном графе:

1) 6,7; 2) 6,7; 3) 6,7; 4) 6,7,8,9; 5) 8,9,10; 6) 1,3,4; 7)1,2,3,4; 8) 4,5; 9) 4,5; 10) 5 .

Диаграмма этого графа будет выглядеть так, как показано на рис. 3.14.

Вершины 1-5 отнесем к множеству V1, вершины 6-7 к множеству V2. По условию теоремы для существования совершенного паросочетания любая комбинация вершин из множества V1 должна быть связана с не меньшим количеством вершин из множества V2. В данном случае это не выполняется для вершин{1,2,3} из V1. То есть совершенного паросочетания из V1 в V2 не существует. Аналогично можно убедиться, что не существует совершенного паросочетания и из V2 в V1, рассмотрев подмножество {8,9,10} из множества V2.