- •Конспект лекций
- •Лекция 1. Множества
- •1.1. Основные определения
- •1.2. Операции над множествами
- •1.3. Свойства операций
- •1.4. Уравнения на множествах
- •1.5. Декартово произведение множеств
- •Лекция 2. Отображения и отношения
- •2.1. Способы описания бинарного отношения
- •2.2. Виды бинарных отношений
- •2.3. Эквивалентность
- •2.4. Отношение порядка
- •2.5. Замыкание отношений
- •Лекция 3. Графы
- •3.1. Основные определения
- •3.2. Частичный граф
- •3.3. Неориентированные графы
- •3.4. Расширения модели
- •3.5. Оптимизационные задачи на графах
- •3.5.1. Поиск путей в графе
- •3.5.1.1. Кратчайшие пути
- •3.5.1.2. Нахождение максимального пути
- •3.5.1.3. Циклы Эйлера
- •3.5.6. Поток в транспортной сети
- •3.5.7. Транспортная задача
- •4.1. Основные определения
- •4.2. Простейшие функции
- •4.3. Дизъюнктивные нормальные формы и теорема о разложении
- •4.4 Минимизация функций в классе днф
- •4.5. Минимизация функций
- •4.5.1. Метод минимизации по картам Карно
- •4.5.2. Метод неопределенных коэффициентов
- •4.5.3. Метод Квайна — Мак-Класки
- •4.6. Классы функций алгебры логики
- •4.6.1. Монотонные функции
- •4.6.2. Самодвойственные функции
- •4.6.3. Линейные функции.
- •4.6.4. Функции, сохраняющие константу
- •4.7. Функциональная полнота.
4.6.2. Самодвойственные функции
Определение. Для функции f(x1,x2,…,xn) функция f(`x1,`x2,…,`xn) называется двойственной к ней.
Обозначим двойственную функцию какf*.
Пример. Для функции (х×у) двойственной будет функция (`хÚ`у) =xÚy.
Можно показать, что двойственной функцией к f* будет функция f, значит для хÚу двойственной будет х×у.
Двойственной к х будет функция, равная х, двойственной к 0 будет 1.
Определение. Функция называется самодвойственной, если она равна своей двойственной.
Переменная х служит примером самодвойственной функции, так же как и функция инверсии переменной.
Свойства самодвойственных функций.
Самодвойственная функция полностью определяется своим видом на верхней половине таблицы истинности. Действительно, если, например, значение функции на наборе <a1, a2, …, an> равно 0, то значение функции на инверсном наборе <`a1,`a2, …,`an> должно быть равно 1.
Из первого свойства вытекает, что число различных функций от n переменных равно 2m, где m=2n-1.
Таблица 4.11
х
у
f1
f2
f3
f4
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
СДНФ самодвойственной функции будет иметь ровно 2n-1 конъюнкций.
Суперпозиция самодвойственных функций будет функция самодвойственная. Множество самодвойственных функций образуют класс, который принято обозначать как D. Базисом класса является функция трёх переменных {x×`y Úx×`z Ú`y×`z}.
4.6.3. Линейные функции.
Рассмотрим класс функций, порождённый множеством F={x×y, xÅy, 1}.
Из того, что xÅ1=`х, следует, что в данном базисе реализуется инверсия, которая вместе с конъюнкцией даёт возможность построить любую функцию. Значит, данный базис порождает класс всех функций – класс С.
Сравним таблицы функции сложения по модулю два и дизъюнкции (табл.4.12).
Таблица 4.12
a |
b |
aÚb |
aÅb |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
Из таблицы видно, что аÚb=(а Å b) Úа×b.
Если а и b такие, что имеет место равенство a×b=0, то такие переменные называются ортогональными. Для ортогональных переменных aÚb=(aÅb).
Если рассматривать СДНФ любой функции, то можно показать, что в ней любая пара конъюнкций ортогональна. Это приводит к следующему алгоритму построения записи функции в рассматриваемом базисе.
записать функцию в СДНФ;
заменить в СДНФ символы дизъюнкции на символы сложения по модулю два;
заменить все инверсии по формуле `х =(хÅ1);
раскрыть скобки, пользуясь свойством дистрибуции х×(yÅz)=x×yÅx×z;
сделать сокращения, используя свойство хÅх=0, хÅ0=x.
В результате получается запись функции в форме, которую представим в общем виде
f=C0 ÅC1×x1Å C2×x2 Å… ÅCn×xnÅ C(n+1)×x1×x2Å…ÅCm×x1×x2×…×xn , где С0,С1,С2,…, принимают значения 0 или 1.
Это представление называется полиномом Жегалкина, а алгебра с сигнатурой {F={x×y, xÅy, 1}} – алгеброй Жегалкина.
Пример. Построим полином Жегалкина для функции импликации. По её таблице истинности запишем СДНФ этой функции
a®b =`a`b Ú`abÚ ab,
после замены дизъюнкций на сложение по модулю два имеем a®b = =`a`b Å`abÅ ab = (aÅ1)(bÅ1)Å(aÅ1)×bÅa×b = a×bÅaÅbÅ1Åa×bÅbÅa×b = = a×bÅaÅ1.
Определение. Функция называется линейной, если её полином Жегалкина не содержит конъюнкций. Общий вид линейной функции f = C0 ÅC1×x1Å C2×x2 Å… ÅCn×xn.
Число различных линейных функций от не более чем n переменных определяется формулой N = 2n+1.
Суперпозиция линейных функций есть функция линейная, следовательно, множество линейных функций образуют класс линейных функций, обозначаемый как L. Базисом класса L служит множество {xÅy, 1}.