- •Г.С. Розаренов, в.А. Шаруда дискретная математика Учебное пособие
- •Воронеж 2008
- •Воронеж 2008
- •Введение
- •1. Множества
- •1.1. Основные понятия
- •Упражнения
- •1.2. Операции над множествами
- •Упражнения
- •1.3. Диаграммы Венна
- •Упражнения
- •1.4. Доказательства
- •Упражнения
- •1.5. Векторы, прямые произведения, проекции векторов
- •Упражнения.
- •2. Алгебра логики
- •2.1. Функции алгебры логики
- •2.2. Формулы. Реализация функций формулами
- •2.3. Эквивалентность формул. Свойства элементарных функций. Принцип двойственности
- •2.4. Разложение булевых функций по переменным. Совершенная дизъюнктивная нормальная форма
- •2.5. Полнота и замкнутость
- •2.6. Проблема минимизации булевых функций
- •Упражнения.
- •2.7. Упрощение д.Н.Ф. Тупиковые (относительно упрощения) д.Н.Ф.
- •Упражнения.
- •3. Язык логики предикатов
- •3.1. Основные понятия логики предикатов
- •3.2. Истинные формулы и эквивалентные соотношения
- •Упражнения.
- •4. Теория графов
- •4.1.Основные понятия
- •Г раф изоморфен
- •4.2. Способы задания графов
- •Матрица инцидентности (ij)
- •4.3. Операции над частями графа
- •4.4. Маршруты, пути, цепи, циклы
- •4.5. Дерево и лес
- •4.6. Сети
- •Упражнения.
- •5. Введение в теорию алгоритмов
- •5.1. Предварительные обсуждения
- •5.2. Блок-схемы алгоритмов
- •5.3. Машины Тьюринга
- •5.4. Некоторые операции над машинами Тьюринга
- •5.5. Рекурсивные функции
- •6. Автоматы
- •6.1. Определение основных понятий
- •6.2. Изоморфизм и эквивалентность автоматов
- •6.3. Сети из автоматов
- •6.4. Синхронные сети
- •6.5. Программная реализация логических функций
- •Заключение
- •394026 Воронеж, Московский просп., 14
Упражнения.
1. Определить проекции v: пр1 v, пp3 v, пp1,3 v, если:
a) v = (2,3,1,1); б) v = (2,2,3,1).
2. Определить проекции множества векторов V: пр1 V, пp3 V, пp1,3 V, если:
а) {(2, 3,1,1), (2,2,3,1), (1,2, 3,1)};
б) {(1,3, 5), (2, 4, 6), (3,5, 7)}.
3. Пусть X = {а,с}, Y = {a,d,f}. Найти X Y, Y2, Y X Y.
4.Проиллюстрировать на конкретном примере справедливость соотношения А (В С) = (А В) (A x C).
5.Пусть Al = А2 = {a,b,с}, А3 = А4 = {d,е} и V=A1 A2 А3 An. Найти: пр1 V, пр1,3 V.
6. Сравнить векторные оценки множества V = {(3,1,2,3), (2,2,1,3), (1,2,3,2), (3,1,2,2), (1,2,2,3), (3,2,3,2), (2,2,2,2), (2,3,1,3)} с использованием правила 1 сравнения векторов по предпочтению и определить подмножество V ’ наилуч-ших – парето-оптимальных – векторных оценок, V ’ V [см. пример 7].
2. Алгебра логики
2.1. Функции алгебры логики
Будем рассматривать функции f(ui1, ui2, …, uin) (uik≠uim при k≠m), аргументы которых определены на множестве E2={0; 1} и такие, что f(α1, α2, …, αn)εE2, если αiεE2. Эти функции называются функциями алгебры логики или булевыми функциями.
Чтобы избежать двойной индексации, будем употреблять символы x, y, z, … с индексами или без них, т.е. f(x1, x 2, …, x n). Из определения функции f(x1, …, x n) следует, что для ее задания достаточно указать, какое значение функции соответствует каждому из наборов значений аргументов, т.е. выписать таблицу.
Таблица 1
X1 |
… |
xn-1 |
xn |
f(x1, x 2, …, x n-1, x n) |
0 |
… |
0 |
0 |
f(0, …, 0, 0) |
0 |
… |
0 |
1 |
f(0, …, 0, 1) |
0 |
… |
1 |
0 |
f(0, …, 1, 0) |
… |
… |
… |
… |
… |
1 |
… |
1 |
1 |
f(1, …, 1, 1) |
Нетрудно видеть, что набор из n переменных принимает 2n значений. Для удобства употребляется стандартное расположение наборов: если набор рассматривается как запись числа в двоичной системе исчисления, то расположение наборов соответствует порядку следования чисел 0, 1, …, 2n-1.
Обозначим через Р2 систему всех функций алгебры логики над алфавитом U={ u1, u2, …, um, …}, содержащую также константы
0 и 1.
Если фиксировать n переменных x1, x 2, …, x n, то различные таблицы будут различаться только значениями правого столбца.
Имеет место следующая теорема.
Теорема. Число p2(n) всех функций из P2 , зависящих от n переменных x1, x 2, …, x n, равно .
Замечание I. Число функций алгебры логики, зависящих от n аргументов конечно, поэтому изучить их в принципе можно перебором, однако p2(1)=4; p2(2)=16; p2(3)=256; p2(4)=65536; …, следовательно при больших n (n≥6) перебор становится практически невозможным даже с использованием вычислительной техники.
Замечание II. С ростом n таблица, задающая функцию, сильно усложняется, так при n=10 в ней уже 1024 строки, а при n=20 она практически необозрима.
Введенное выше определение функции имеет существенный недостаток: оно не позволяет рассматривать функции от меньшего числа аргументов. Для устранения этого недостатка введем следующее определение.
Определение. Функция f(x1, …, x i-1, x i, x i+1, …, x n) из P2 зависит существенным образом от аргумента xi, если найдутся такие значения α1, …, α i-1, α i, α i+1, …, α n переменных x1, …, x i-1, x i, x i+1, …, x n, что f(α1, …, α i-1, 0, α i+1, …, α n)≠ f(α1, …, α i-1, 1, α i+1, …, α n).
В этом случае переменная xi называется существенной. Если переменная xi не является существенной, то она называется несущественной или фиктивной.
Пусть xi является фиктивной переменной. Возьмем таблицу для функции f(x1, …, x n) и по ней построим новую таблицу, вычеркивая все строки вида α1, …, α i-1, 1, α i+1, …, α n и столбец xi. Полученная таблица будет определять некоторую функцию g(x1, …, x i-1, xi+1, …, x n).
Будем говорить, что g(x1, …, x i-1, x i+1, …, x n) получена из f(x1, …, x n) путем удаления фиктивной переменной xi, а f получена из g путем введения фиктивной переменной xi.
Определение. Функции f1 и f2 будем называть равными, если функцию f2 можно получить из f1 путем изъятия или добавления фиктивных аргументов.
Существуют 2 типа функций, не имеющих существенных переменных. Это 0 и 1. Ввиду этого целесообразно включить в рассмотрение константы 0 и 1, рассматривая их как функции от пустого множества переменных.
Рассмотрим примеры «элементарных» функций алгебры логики:
1) f1(x)=0 – константа 0;
2) f2(x)=1 – константа 1;
3) f3(x)=x – тождественная функция;
4) f4(x)= – отрицание х (читается «не х»);
5) f5(x1, x2)= (x1Λx2) – конъюнкция x1 и x2 (читается «х1 и x2»). Вместо знака Λ употребляется знак “·”. Эту операцию называют логическим умножением.
6) f6(x1, x2)= (x1Vx2) – дизъюнкция x1 и x2 (читается «х1 или x2»). Эту операцию называют логическим сложением.
7) f7(x1, x2)= (x1→x2) – импликация x1 и x2 (читается «из х1 следует x2»). Эту операцию называют логическим следованием.
8) f8(x1, x2)= (x1+x2) – сложение х1 и x2 по mod2.
9) f9(x1, x2)= (x1/x2) – функция Шеффера (понимается как отрицание конъюнкции).
Функции f1- f4 – монарные функции, f5- f9 – бинарные функции.
Выпишем таблицы значений этих функций.
Таблица 2
-
х
0
1
х
0
0
1
0
1
1
0
1
1
0
Таблица 3
-
x1
x2
(x1Λx2)
(x1Vx2)
(x1→x2)
(x1+x2)
(x1/x2)
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
Заметим, что
(x1Λx2)= (x1·x2)= min(x1, x2);
(x1Vx2)= max(x1, x2).