
- •Конспект лекций
- •Лекция 1. Множества и алгебра логики
- •1.1. Основные определения
- •1.2. Операции над множествами
- •1.3. Свойства операций
- •1.4. Декартово произведение множеств
- •1.5 Основные определения алгебры логики
- •1.6 Простейшие функции
- •1.7 Дизъюнктивные нормальные формы
- •1.8 Минимизация функций в классе днф
- •1.9 Минимизация функций. Метод минимизации по картам Карно
- •1.10 Функциональная полнота.
- •Лекция 2. Графы
- •2.1. Основные определения
- •2.2. Частичный граф
- •2.3. Неориентированные графы
- •2.4. Расширения модели
- •2.5. Оптимизационные задачи на графах
- •2.5.1. Поиск путей в графе
- •2.5.1.1. Кратчайшие пути
- •2.5.1.2. Нахождение максимального пути
- •3.5.1.3. Циклы Эйлера
- •2.5.6. Поток в транспортной сети
- •2.5.7. Транспортная задача
1.4. Декартово произведение множеств
Декартовым произведением множеств А и В называют множество М, содержащее все возможные пары, в которых на первом месте стоит элемент из А, на втором – элемент из В. Формально АхВ = М, М={(ai , bj )| ai ÎA, bj ÎB}. Элементы декартова произведения являются кортежами.
Пример. Пусть А={1,2,b} и B={a, b, 2}, тогда AxB={(1, a), (2, a), (b, a), (1, b), (2, b), (b, b), (1, 2), (2, 2), (b, 2)}.
Если |A| =na и |B|=nb, то |AxB|=na×nb
Аналогично вводится произведение трех, четырех и т.д. множеств как множество троек, четверок и так далее, в которых на первом месте записан элемент первого множества, на втором - элемент второго и т.д.. Если все сомножители в произведении одинаковы, оно называется декартовой степенью: А=А1; АхА=А2; АхАхА=А3; АхАх А...А = Аk, k>0.
Результат декартова произведения не является подмножеством универсального множества.
Для декартова произведения не выполняются условия коммутативности и ассоциативности. Действительно, множество АхВ содержит в качестве элементов пары (аi ,bj ), а множества ВхА — пары (bi ,aj ), т.е. результирующие множества содержат различные элементы. Элементы произведения (АхВ )хС - пары ((ai ,bj ),ck ), а Ах(ВхС)пары (ai ,(bj ,ck)). Элементами множества АхВхС являются тройки (ai ,bj ,ck). Значит, (АхВ)хС ¹ А х ( ВхС ) ¹ АхВхС.
1.5 Основные определения алгебры логики
Булевой (логической) переменной называют переменную, принимающую значение из множества {0,1}. Название «логическая» следует из того, что её значения трактуются чаще всего как «истина» (для 1) и «ложь» (для 0).
Функцией алгебры логики (переключательной или булевой функцией) от n переменных называют однозначное отображение множества всевозможных наборов значений n булевых переменных в множество {0,1}.
Такую функцию можно представить в виде таблицы из n+1 столбцов и 2n строк. Эта таблица называется таблицей истинности.
Наборы значений переменных располагают в лексикографическом порядке (в порядке возрастания), как в примере в табл. 1.1 для n = 3.
Число всевозможных наборов значений переменных составляет N=2n. Число различных функций, которые могут быть записаны в таблице, равно 2N.
Таблица
1.1 x1 x2 x3 f 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1
Для приведённого примера функцию можно представить как Т1={001,010,100, 111}.
Третий способ описания – представление функций в виде вектора. Так как порядок перечисления наборов входных переменных установлен, то достаточно указать только столбец функции. Для приведенного примера это будет вектор <01101001> .
Определение. Булева функция существенно зависит от переменной хi, если найдутся два набора значений переменных, отличающиеся только i-й компонентой, на которых значения функции не совпадают. Переменная, от которой функция существенно не зависит, называется несущественной или мнимой для данной функции.
Пример. Пусть функция на наборах значений переменных <00110> и <01110> равна, соответственно, 1 и 0. Эта функция существенно зависит от второй переменной, потому что её значение на этих наборах определяется только значением этой переменной.
Будем считать, что функция не изменится, если в нее добавить или из нее убрать любое количество несущественных переменных.
Таблица
1.2 x
0 x
`x
1
0
0
0
1
1
1
0
1
0
1
Пусть [n] – число функций, существенно зависимых от n переменных. Тогда [1] = 2, [0] = 2. Для любого n это число можно подсчитать по рекуррентной формуле
[n] = 2N- [0] - Cn1[1] - Cn2[2] - .... Cnn-1[n-1].
Здесь N=2n, первая компонента – число функций от n переменных, из которого последовательно для i=0,1,..., n-1 вычитаются произведения числа функций, существенно зависимых от i переменных, на число способов, которыми можно выбрать i переменных из n.
Так, для n = 2 [2]=16-2-2×2=10. Для n=3 [3]=256-2-3×2-3×10=218.