
- •Г.И. Коротеев дискретная математика элементы тории множеств, отношений, графов, алгоритмов и булевых функций
- •Пример 1.1
- •Пример 1.2
- •Пример 1.3
- •Пример 1.4
- •Пример 1.5
- •Пример 1.6
- •Пример 1.7
- •Пример 1.8
- •Пример 1.9
- •Пример 1.12
- •Пример 1.13
- •Пример 1.15
- •Пример 1.16
- •Пример 1.17
- •Пример 1.18
- •Пример 1.19
- •Пример 1.20
- •Пример 1.21
- •Пример 1.22
- •Пример 1.23
- •Пример 1.25
- •1. Пусть (p,п) и (f,п) – множества упорядоченные по отношению п из примера 1.21. Диаграммы Хассе этих множеств представлены на рис. 1.6 и 1.7.
- •Пример 1.26
- •Пример 1. 27
- •Бинарная алгебраическая операция
- •Пример 1.28
- •Свойства, терминология
- •Пример 1.29
- •Пример 1.30
- •Пример 1.31
- •Пример 2.1
- •Пример 2.2
- •Пример 2.3
- •Пример 2.4
- •Пример 2.5
- •Пример 2.6
- •Пример 2.7
- •Пример 2.8
- •Пример 2.9
- •Пример 2.10
- •Пример 2.12
- •Пример 2.13
- •Пример 2.14
- •Доказательство
- •Пример 2.15
- •Пример 3.1
- •Пример 3.2
Пример 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 e2 … ek 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}, следовательно,X0 = V1 и (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.