Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная математика (теория по Коротееву).doc
Скачиваний:
36
Добавлен:
03.11.2018
Размер:
844.29 Кб
Скачать

Пример 2.9

1. Задача о различных представителях множеств. Пусть задано множество U  и W = {U1, U2, …, Uk} – некоторое семейство его подмножеств.  Требуется в наибольшем числе множеств этого семейства выбрать ui Ui так, чтобы попарно различным множествам семейства W соответствовали бы попарно различные представители этих множеств. Эта задача решается на двудольном графе G = (V1 , V2 , E), где V1 = U, V2 = W, E – отношение принадлежности элемента из U множеству из W.

2. Задача о взаимно однозначных соответствиях.   Пусть заданы произвольные множества V1 , V2  и отношение  V1 V2 . Требуется найти однозначные соответствия  .

Эти и некоторые другие задачи дискретной математики являются представителями задач отыскания  наибольших паросочетаний в двудольных графах.

Наибольшее паросочетание в двудольном графе

Пусть X произвольное подмножество множества V некоторого графа, т.е.    X V. Обозначим через  (X) множество всех вершин, смежных  вершинам из X, то есть множество (X) = {y | для всех x X, y (x)}.

Пусть теперь  G = (V1, V2, E) – двудольный граф. Тогда, если X    V1, то (X)    V2 и, если X    V2,  то (X)    V1.

Пример 2.10

На рис. 2.18 приведен двудольный граф, показано множество вершин X и соответствующее ему множество (X) смежных с ними вершин.

 

 

Рис.2.18. Множества смежных вершин

 

Теорема 2.12. Если G = (V1, V2, E) – двудольный граф, то (G) = |V1| , где максимум берется по всем подмножествам X V1, включая пустое; |V1|, |X|, |(X)|количество вершин в соответствующих  множествах.

Доказательство. Пусть (X1, X2, R) – часть графа G такая, что X1 V1, X2 V2,   R E, образованная каким-либо наибольшим паросочетанием R  (| R | = (G)) и всеми вершинами, инцидентными его ребрам. Для произвольного X V1 имеем:

  •       |X (V1\ X1)| ≤ |V1 \ X1| (справедливо, так как для произвольных множеств A, B имеет место соотношение  (A B) B);

  •       |X X1| ≤ |X| ≤ |(X)| (так как для каждой вершины из X V1 существует хотя бы одна смежная ей вершина из V2).  

Следовательно, |X| = |X (V1\X1)| + |X X1| ≤ |V1\X1| + |(X)| =

= |V1| – |X1| + |(X)| = |V1| – (G) + |(X)|, т.е. |X| – |(X)| ≤ |V1|(G).

Теперь найдем:  X = X0, на котором достигается равенство. Если  (G) = |V1|, то в качестве  X0,  в частности, можно взять пустое множество. Пусть (G) < |V1|, положим:  X0 = (V1\ X1) Y, где Y X1 – множество тех вершин v, которые достижимы из V1 \ X1 по R-чередующимся цепям. Убедимся в том, что X0 – это и есть искомое множество.

Пусть существует вершина v2 (V1\ X1), но v2 (Y), тогда это тонкая вершина. Выбрав некоторую вершину v1 V1 \ X1, смежную для вершины v2 в графе GR, построим  R-увеличитель v1 {v1, v2} v2 , что невозможно из-за максимальности R.

Следовательно, (V1\ X1) (Y). Так как (X0)= ((V1\ X1) Y) = (V1\ X1) (Y), то с учетом предыдущего, получим:  (X0)= (Y), т.е. |(X0)| = |(Y)|.

Между множествами Y  и  (Y)  существует взаимно однозначное соответствие. Так как множество Y X1, то все его вершины толстые (иначе существовал бы R-увеличитель), следовательно, |Y| |(Y)|.  Пусть существует тонкая вершина w (Y), смежная с  y Y, тогда чередующаяся цепь: v0 e1 v1 e2ek y {y, w} w, где v0 V1\ X1, является  R- увеличителем, что противоречит условию теоремы (R – наибольшее паросочетание) и, следовательно,  |Y| = |(Y)|.

Итак, |(X0)|= |(Y)| = |Y|. Ввиду того, что (V1\ X1) Y = , имеем: |X0| = |V1\ X1| + |Y|. Отсюда     |X0| – |(X0)|= |V1\ X1| = |V1| – |X1| = |V1| – (G).

Следствие. Все множество V1 двудольного графа  (V1, V2, Е) можно взаимно однозначно отобразить в V2 при помощи ребер из E тогда и только тогда, когда для любого X V1 выполняется неравенство: |(X)| ≥ |X|.

Пример 2.11

Пусть множество V1 = {a, b, c, d, e}, множество V2 представляет собой семейство подмножеств множества V1, то есть V2 = {{a, b, c, d}, {b, c, d, e}, {a, b}, {b, d, e}}. Требуется в каждом из подмножеств выбрать по одному представителю так, что бы все они были различны.

Решение. В качестве множества E  возьмем отношение принадлежности элементов V1 подмножествам V2. В результате задача сводится к отысканию наибольшего паросочетания R  в двудольном графе (V1, V2 , E), рис. 2.19, а.

Решение задачи можно начать с R = , однако, лучше начать с некоторого "наивного" выбора представителя, получаемого следующим образом: Выберем a для первого из множеств {a, b, c, d}, {b, c, d, e}, {a, b}, {b, d, e}, которому он принадлежит, затем выберем b для первого из множеств, которому он принадлежит и, в котором еще не выбран представитель, и т.д. Построенное, таким образом, паросочетание R содержит три ребра и показано на рис. 2.19, б.

Путем перебора вариантов, которые можно упорядочить, находим R-увеличитель с последовательными вершинами:  e, {b, d, e}, d, {b, c, d, e}, b, {a, b, c, d}, a, {a, b}; заменяя тонкие ребра в этой цепи на толстые и наоборот получим новое паросочетаниеR  с |R| = 4(рис. 2.20, а) и убеждаемся (опять с помощью перебора), что в рассматриваемом графе больше нет R-увеличителей.

 

 

Рис. 2.19. Выбор представителей на первом шаге

Теперь найдем множество: X0 = (V1\ X1) Y. Имеем: V1\ X1 = {c}, тогда Y – это все достижимые чередующимися цепями вершины V1 из вершины с, т.е. Y= {a, b, d, e}, следовательно,X= Vи  (X0 ) = V2. Отсюда |X0| –|(X0)| =5 4 = 1. Тогда по теореме 2.12:  (G) 5 1 = 4. Таким образом, одним из решений этой задачи будет  решение: {a, b, c, d}, {b, c, d, e}, {a, b}, {b, d, e}, в котором искомые представители выделены подчеркиванием.

 

Рис.2.20. Наибольшие паросочетания

 

Если бы вместо указанного R-увеличителя выбрали другой, например,    с, {a, b, c, d}, a, {a, b}, то получили бы другое решение (рис. 2.20, б): {a, b, c, d}, {b, c, d, e}, {a, b}, {b, d, e}.

Гамильтоновы цепи и циклы в двудольном графе

Напомним, что гамильтоновой цепью называется простая цепь, содержащая все вершины графа. Аналогично определяется гамильтонов цикл. Граф, обладающий гамильтоновым циклом, называется гамильтоновым.

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

Действительно, заметим, что в любые цепь или цикл двудольного графа вершины входят поочередно из разных классов. Пусть G = (V1, V2, E) –  гамильтонов граф, тогда любой его цикл содержит четное число ребер, а, следовательно, и вершин, то есть |V1| = |V2|. Пусть теперь рассматриваемый граф имеет гамильтонову цепь. Цепь может быть четной длины, концы принадлежат одному классу, или  нечетной, концы принадлежат разным классам. Учитывая, что число вершин в цепи на одну больше чем ребер, имеем ||V1| – |V2|| 1.