
- •Практикум по дискретной математике.
- •Содержание.
- •Введение.
- •1. Элементы математической логики. Логика высказываний.
- •1.1. Основные определения.
- •1.2. Разложение логических (булевых) функций по переменным. Дизъюнктивная и конъюнктивная нормальные формы.
- •1.3. Логические законы.
- •2. Множества и отношения.
- •2.1. Множества и операции над ними. Связь с логикой высказываний.
- •Доказать тождества:
- •2.2. Отношения на множествах. Бинарные отношения.
- •2.3. Однородные отношения.
- •2.4. Функции как специальный вид отношений.
- •2.5. Алгебраические системы. Алгебра множеств и булева алгебра.
- •3. Теория графов.
- •3.1. Основные понятия теории графов.
- •3.2. Представление графов в эвм.
- •1. Представление матрицей смежности.
- •3.3. Изоморфизм графов.
- •3.4. Подграфы и части. Операции над графами.
- •3.5. Методы обхода (просмотра) вершин графов.
- •3.6. Маршруты, цепи, циклы. Связность и достижимость.
- •3.7. Вершинная и реберная связность графов. Мосты, блоки и точки сочленения.
- •3.8. Двудольные графы. Паросочетания.
- •3.9. Алгоритмы расчета кратчайших путей между вершинами графа.
- •3.10. Деревья и леса.
- •3.11. Специальные виды деревьев.
- •3.12. Сети. Потоки в сетях.
- •3.13. Элементы цикломатики. Циклы и коциклы. Фундаментальная система циклов и цикломатическое число.
- •3.14. Эйлеровы графы и эйлеровы циклы.
- •3.15. Гамильтоновы графы и гамильтоновы циклы.
- •3.16. Независимые и покрывающие множества. Задачи о раскраске.
2.5. Алгебраические системы. Алгебра множеств и булева алгебра.
В современных информационных системах существует большое разнообразие типов данных и различных действий, которые необходимо с ними производить. При этом каждый раз необходимо быть уверенным, что, выполняя какие-то действия на множестве данных определенного типа, мы не зайдем в тупик и не получим абсурдный результат. Но если свойства наших данных и операций (отношений) над ними укладываются в некую известную структуру, мы можем заранее определить, какие действия можно выполнять в рамках такой структуры, чтобы не попасть в подобную ситуацию. Вот для этого и используется такое понятие как алгебраическая система или просто алгебра. Такая абстрактная система состоит из двух множеств: множества данных, которое называют носителем алгебры, и множества отношений на этих данных. Обозначают ее так: A=M,.
Любую бинарную операцию a o b, где a,bA, можно рассматривать как однородное бинарное отношение. Более того, такое отношение является функцией. Если a,bA результат некоторой операции c=a o b , сA, то говорят, что A замкнуто относительно этой операции, что обозначается как AAA. В дискретных алгебраических системах обычно подразумевается замкнутость носителя M относительно операций из множества . Если в системе A=M, все отношения из являются операциями (функциями), то такую систему, называют просто алгеброй, если нет, то моделью или реляционной алгеброй.
Рассмотрим уже известное нам множество всех подмножеств множества A (включая само множество и пустое множество ), то есть булеан B(A). Мы уже знаем, что результаты всех основных операций над множествами (объединение, пересечение и образование дополнения) будут принадлежать B(A). То есть можно сказать, что B(A) замкнуто относительно этих операций. Поэтому система А,B(A),,,\ называется алгеброй множеств.
Разновидности алгебр определяются частично характеристиками их носителей, но в большей степени свойствами операций.
Наиболее часто встречающиеся свойства операций мы уже рассматривали, когда говорили о логических законах. Будем обозначать абстрактную операцию белым кружком о. Поскольку же для рассмотрения свойств нам понадобятся две операции, ведем еще значок для второй операции.
Итак, пусть a,b,c – элементы множества-носителя, то есть a,b,cM. Операции {о, } , MMM. В алгебраических системах чаще всего рассматриваются следующие свойства операций.
Ассоциативность: (a o b) o c = a o (b o c).
Коммутативность: a o b = b o a.
Дистрибутивность слева: a ( b o c) = (a b) o (a c).
Дистрибутивность справа: (a o b ) c = (a c) o (b c).
Поглощение: (a o b ) a = a.
Идемпотентность: a o a = a.
Самым простым видом алгебры является полугруппа – алгебра с одной ассоциативной бинарной операцией. Полугруппами являются формальные (машинные) языки. Носителем полугруппы является допустимое множество символов A (алфавит языка), а бинарной операцией – операция конкатенации (сцепления) символов.
Если в полугруппе существует единица, то есть такой элемент e, что aA ea=ae=a, то это моноид. Чтобы получить моноид из такой полугруппы, как формальный язык, достаточно добавить в алфавит этого языка пустой символ.
Моноид с обратным элементом, то есть при выполнении условия aA a-1 | aa-1=e, называется группой. В группе можно однозначно решить уравнение вида ax=b: решение имеет вид x=ba-1.
В группе имеют место следующие свойства операций.
1. (a o b)-1 = b-1 o a-1.
2. a o b = a o c b=c.
3. b o a = c o a b=c.
4. (a-1)-1= a.
Коммутативная группа, то есть группа, в которой операция a o b коммутативна, называется абелевой. В абелевых группах операция обозначается или просто +, элемент, обратный к a, обозначается –a, а единица называется нулем.
Заметим, что операция + не обязательно арифметическое сложение. Хотя, например, множество всех целых чисел образует группу относительно сложения. Но, с другой стороны, множество положительных рациональных чисел образует группу относительно умножения.
Алгебраические системы с двумя операциями это уже так называемые линейные системы. Две операции – это умножение и сложение в обобщенном смысле. Что такое «в обобщенном смысле»? Для каждой из этих операций можно ввести свой единичный элемент, так, как мы его определили раньше. Один из этих единичных элементов будет называться нулем, другой – единицей. К линейным системам относятся кольцо и поле.
Кольцо – это алгебраическая система, которая является абелевой группой хотя бы по одной операции. Как уже говорилось, эту операцию условно определяют как «сложение» - . Для второй операции требуется только ассоциативность. То есть кольцо – это полугруппа по умножению . Умножение в кольце обладает свойством дистрибутивности слева и справа относительно сложения.
Если умножение обладает еще и свойством коммутативности, то это уже коммутативное кольцо. А если это коммутативное кольцо еще и с единицей (то есть моноид по умножению), то его прямо так и называют – кольцо с единицей.
Примером коммутативного кольца с единицей является машинная арифметика целых чисел (тип integer).
Если алгебраическая система является абелевой группой относительно обеих операций , , и умножение дистрибутивно относительно сложения, то мы получаем поле. Наиболее известный пример – поле действительных чисел: R,+,. Заметим, что множество рациональных чисел с теми же операциями тоже является полем и, следовательно, подалгеброй для R,+,. Можете проверить, что двоичная арифметика с одноразрядным сложением по модулю два и конъюнкцией в качестве операции умножения тоже является полем.
Более подробно про кольца и поля можно почитать, например, в [1].
Для многих компьютерных приложений наиболее важной алгеброй с двумя операциями является булева алгебра. Носителем такой алгебры является множество, которое называют решеткой. Решетка – это множество с двумя операциями: сложением и умножением. Сложение здесь обозначают , умножение . Единичный элемент для операции сложения - нуль, единичный элемент для операции умножения - единица.
Свойства операций сложения и умножения в решетке: идемпотентность, коммутативность, ассоциативность, поглощение. Решетка является абелевой группой.
Если для пары операций в решетке выполняется дистрибутивность, то решетка называется дистрибутивной. Ограниченная решетка имеет верхнюю и нижнюю грани, причем нижняя грань - это нуль, а верхняя – единица. Далее, если в ограниченной решетке a существует элемент a/ | , aa/=1 & aa/=0, который называется дополнением, то такая решетка называется ограниченной решеткой с дополнением.
Из самого определения решетки через свойства операций мы имеем первые четыре свойства булевой алгебры. Из дистрибутивности решетки следует пятое свойство булевой алгебры – дистрибутивность. Из свойства ограниченности и свойства дополнения следуют законы нуля и единицы. То есть получается, что булева алгебра – это дистрибутивная ограниченная решетка с дополнением.
Из взаимосвязи законов логики и свойств операций над множествами нетрудно понять, что ранее введенная алгебра множеств – это тоже булева алгебра. Единице здесь соответствует множество A, нулю – пустое множество. Другие интересные примеры булевых алгебр можно посмотреть в [1].
Упражнения.
1. Приведите примеры ассоциативных и неассоциативных операций над множествами.
2. Какие из логических операций обладают свойством коммутативности?
3. Обладает ли свойством коммутативности композиция отношений? Объясните.
4. Показать, что множество невырожденных квадратных матриц порядка n образует группу относительно операции умножения матриц.
5. Показать, что булеан B(A) на множестве A образует абелеву группу относительно операции симметрической разности .
6. Показать, что на элементах решетки можно ввести отношение нестрогого частичного порядка.