logo
флеров

Системы различных представителей

Пусть S - конечное множество из m элементов, |S| = m. P(S) - множество всех его подмножеств.

Определение.

Пусть M(S)=(S1 ,S2 ,...,Sn) некоторая совокупность подмножеств из P(S), необязательно различных, a = (a1 , ..., an) - последовательность элементов из S, такая, что все элементы ai , i = 1,2,...,n , различны: . Если при этом , то говорят, что элемент ai представляет множество Si, а вся совокупность (a1 , ..., an) называется системой различных представителей (с.р.п.) для M(S).

Заметим еще раз, что в с.р.п. если ij то ai  aj , если даже Si = Sj . Если множество появляется несколько раз, то всякий раз оно должно иметь представителя, отличного от всех других.

Сразу же оказывается, что с.р.п. может существовать не для всех совокупностей множеств. Если в конечной системе множества непусты и различны, то с.р.п., очевидно, существует. Возьмем более сложный случай:

S={a, b, c, d, f}

M(S): S1={a, b, c, d}, S2={a, b, f}, S3= S4={b, f}.

В этом случае существует две с.р.п.: (c, a, b, f), (d, a, f, b). Но стоит изменить лишь одно из подмножеств, например, вместо S2 взять S2 = (d, f) и мы уже не сможем получить ни одной с.р.п.

Теорема 1.20. Теорема о различных представителях.

Подмножества S1, S2 ,..., Sn имеют с.р.п. тогда и только тогда, когда удовлетворяется следующее:

условие С. Среди элементов любого конечного числа k множеств Si имеется по меньшей мере k различных элементов; иными словами множество состоит не менее чем из k элементов для всех k = 1, 2, ... ,n.

Замечание. Если общее число множеств конечно, а сами множества бесконечны, то теорема остается в силе, так как можно, очевидно, отбросить все элементы, кроме n, в каждом Si , не нарушая условия С.

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

Очевидно, что условие С есть необходимое условие, потому что если различные представители существуют, то для любых k множеств представителями будут k различных элементов, содержащихся в этих множествах.

В качестве доказательства достаточности приведем алгоритм, который позволяет построить с.р.п. или показать, что такой системы для данного набора множеств не существует.

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

Пронумеруем множества S1, ... , Sn и зафиксируем порядок, в котором они занумерованы. Выберем произвольный элемент a1 из S1 в качестве его представителя. Поочередно будем выбирать представителей других множеств: заботясь лишь о том, чтобы каждый из них был отличен от любого другого, выбранного в качестве представителя, элемента. Если этот процесс удастся довести до Sn , то мы получим с.р.п.

Мы можем, однако, достичь множества Sr , все элементы которого b1, b2, ... , bt были уже использованы как представители множеств S1 , S2 , ... , Sr-1 . Это, однако, еще не означает, что с.р.п. не существует. Тогда построим последовательность вспомогательных множеств T0, T1, ... .

Зафиксируем порядок нумерации элементов множества Sr :

Sr = {b1, b2, ... ,bt }{a1, a2, ... , ar-1}.

Определим множество T0 состоящим из элементов множества Sr с фиксированным выше порядком нумерации элементов:

T0 = {b1 ,b2, ... , bt}.

Будем двигаться по списку элементов множества T0 и последовательно строить вспомогательные множества T1, T2, ... , до тех пор, пока не обнаружим элемент, не использованный в качестве представителя или не исчерпаем все множества. Обозначим символом S(bi) множество, представителем которого является элемент bi .

Пусть теперь множество Т1 состоит из элементов множества, представителем которого является b1 , за исключением самого элемента b1 и всех остальных использованных в качестве представителей элементов:

T1 = S(b1) \ T0 .

Множество T1 может быть и пустым, но если оно не пусто, то модифицируем множество T0, припиcав к списку его элементов непосредственно за b1 , ... , bt элементы множества T1, обозначенные как bt+1 , ... , bs :

Далее, если i - ый элемент bi есть представитель множества Sj = S(bi), то мы построим множество Ti , состоящее из тех элементов Sj , которые еще не использованы, и запишем эти элементы после элементов, уже использованных:

Ti = S(bi)\ T0 ; T0 = T0 * Ti .

Так мы сможем поступать до тех пор, пока либо: 1) мы достигли некоторого элемента bi  Sj (i > t, j < r), либо : 2) последовательность T0 исчерпывается элементами b1, ... , bs как представителями множеств.

Во втором случае мы должны быть убеждены, что с.р.п. не существует. В самом деле, получена некоторая последовательность элементов b1, ... , bv , исчерпывающая множество всех различных представителей. Эти элементы являются представителями v множеств (v < n). По построению каждый элемент этих v множеств содержится в последовательности. Но тогда эти множества (v штук), а также множество Sr образуют v + 1 множество, которые содержат только v различных элементов, таким образом мы нашли множества, нарушающие условие C.

Если же имеет место случай 1), мы на некотором этапе находим элемент bi = bi1 (i1 > t), который входит во множество Sj1 , представителем которого является выбранный ранее другой элемент bi2 , причем i2 < i1 . Если i2 > t, то значит bi2  Sj2 , а представителем множества Sj2 является bi3  Sj3 (i3 < i2) и так далее. Таким образом, возникает последовательность , индексы которой убывают , причем в этой последовательности каждый ее член входит во множество, представителем которого является следующий член. Но теперь мы можем заменить представителей: возьмем в качестве представителя - в качестве представителя - для . Элемент в результате такой замены освобождается для выбора в качестве представителя . Итак , мы, действуя тем же путем, найдем представителя Sr+1 и так далее. Наши построения закончатся либо выбором системы различных представителей, либо мы обнаружим систему множеств, для которой нарушается условие С.

1.21. Пример.

Пусть имеется следующая система множеств:

S1 = {1, 2}; S2 ={2, 3}; S3 = {3, 4}; S4 ={5, 2}; S5 ={4, 6}; S6 = {1, 5}.

Будем обозначать выбор элемента b в качестве представителя множества S записью b = P(S).

Последовательно выберем следующих представителей множеств:

1 = P(S1); 2 = P(S2); 3 = P(S3); 5 = P(S4); 4 = P(S5).

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

Строим последовательность множеств T0 , T1 , ... :

T0 = {1, 5}

T1 = S(1)\T0 = {2} T0 = {1, 5, 2}

T2 = S(5)\T0 = 

T3 = S(2)\T0 = {3} T0 = {1, 5, 2, 3}

T4 = S(3)\T0 = {4} T0 = {1, 5, 2, 3, 4}

T5 = S(4)\T0 = {6} T0 = {1, 5, 2, 3, 4, 6}

Таким образом передвигаясь по элементам множества

мы, наконец, достигаем элемента 6, который не является представителем никакого множества. Мы нашли последовательность элементов 1, 5, 2, 3, 4, 6, такую что:

элемент 6S5, а P(S5)=4;

элемент 4 вошел в последовательность как элемент множества S3, 4S3 , а P(S3)= 3;

элемент 3 вошел в последовательность как элемент множества S2, 3S2 , а P(S2)= 2;

элемент 2 вошел в последовательность как элемент множества S1, 2S1 , а P(S1)= 1.

Теперь мы можем заменить представителей, положив

6 = P(S5); 4 = P(S3); 3 = P(S2); 2 = P(S1);

освободившийся элемент 1 может быть использован в качестве представителя множества S6.