Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 1. Множества .doc
Скачиваний:
8
Добавлен:
27.09.2019
Размер:
121.86 Кб
Скачать

1.4. Свойства операций над множествами

Пусть задан универсум U. Тогда для любых множеств A, B, C  U выполняются следующие свойства:

  1. идемпотентность: А  А = А, А  А = А

  2. коммутативность: А  В = В  А, А  В = В  А

  3. ассоциативность: А  (B  C) = (A  B)  C, А  (B  C) = (A  B)  C

  4. дистрибутивность:

А  (B  C) = (А  В)  (А  С), А  (B  C) = (А  В)  (А  С)

  1. поглощение: (А  В)  А = А, (А  В)  А = А

  2. свойства нуля: А   = А, А   = 

  3. свойства единицы: А  U = U, А  U = А

  4. инволютивность: (двойное отрицание)

  5. законы де Моргана: ,

  6. свойства дополнения: ,

  7. выражение для разности:

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

1.5. Разбиение и покрытия

Пусть  = - некоторое семейство подмножества М, . Семейство  называется покрытием множества М, если каждый элемент М принадлежит хотя бы одному множеству из :

Семейство  называется дизъюнктным, если элементы этого семейства попарно не пересекаются, то есть каждый элемент множества М принадлежит не более чем одному множеству из множеств :

Такое дизъюнктное покрытие называется разбиением множества М.

1.6. Булеан

Множество всех подмножеств множества М называется булеаном и обозначается :

Теорема: для конечного множества М,

1.7. Генерация всех подмножеств заданного универсума

Во многих переборных алгоритмах требуется последовательно рассмотреть все подмножества заданного множества. Мы знаем, что множество всех подмножеств (Булеан) имеет мощность . В данном случае |M|=3, =8. Т.е. необходимо сгенерировать 8 различных подмножеств множества М.

Предлагается пронумеровать элементы множества М. Например, M:= {a,b,c}, предлагается произвести замены: a = m1, b = m2, c = m3. Теперь M := {m1. m2, m3}. В большинстве современных компьютеров целые числа представляются кодами в двоичной системе счисления( ). Представим, что элемент(1 – входит, 0 – не входит), стоящий на i-ой позиции в двоичном представлении числа, отвечает за вхождение i-ого элемента исходного множества в генерируемое подмножество. То по двоичному представлению числа 5 будет сгенерировано множество А := {m1,m3}, при этом .

Исходя из вышеописанного метода следует вывод, что для построения всех подмножеств множества M, необходимо сгенерировать подмножества для двоичных представлений чисел . Чаще всего данный алгоритм реализуется в ЭВМ следующим образом: в цикле по i от 0 до , находится двоичное представление числа I, с помощью которого генерируется одно из подмножеств множества М.

Недостаток этого алгоритма состоит в том, что порядок генерации подмножеств никак не связан с их составом. Например вслед за подмножеством с кодом 011 следует подмножество с кодом 100. Но в некоторых задачах для ускорения вычислений требуется, чтобы код следующего подмножество отличался в одном разряде от кода предыдущего. В таких случаях применяется алгоритм построения бинарного кода Грея.