J =
Представим, например, в виде полинома выражение вида X1 X2. Для этого проведем следующие рассуждения.
Пусть
X1 X2 = aX1X2+bX1+cX2+k,
где а, b, с, k– неопределенные коэффициенты.
При X1 = X2 = 0 имеем k = 0. При Х1 = 1, X2= 0 имеем b= 1. При Х1= 0, Х2= 1 имеем с= 1. При X1=Х2= 1 имеем а + b + с = 1, т. е. а = -1. Таким образом, получаем:
X1 X2 = – X1X2+ X1+ X2.
СПНФ образуется путем замены в СДНФ:
1
В последнем случае выражение для
Подобное упрощение, которое называется минимизацией логической функции, можно осуществить и по отношению к СДНФ и СКНФ.
Таблица 6
| | | y |
0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 |
1 | 1 | 0 | 1 |
0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 |
Применение законов алгебры логики позволяет найти более компактные аналитические выражения для заданной функции у, т. е. минимальную дизъюнктивную нормальную форму
и для СКНФ, т. е. минимальную КНФ:
После того, как найдены минимальные нормальные формы (МНФ), их рекомендуется проверить на всех наборах аргументов
Как мы только что убедились на примере, импликанты появляются в результате склейки смежных конституент, различающихся одним термом.
1. Дайте определение логической функции многих переменных.
2. Что такое вектор значений булевой функции? Приведите пример построения таблицы истинности логической функции многих переменных.
3. Сколько существует булевых функций от n переменных?
4. Что такое ДНФ и КНФ?
5. Каков алгоритм построения СДНФ? Приведите пример построения СДНФ.
6. Каков алгоритм построения СКНФ? Приведите пример построения СКНФ.
7. Составьте СКНФ и СДНФ для функции
8. Приведите пример построения СПНФ.
Система булевых функций {f1, f2,…, fm} называется полной, если любая булева функция может быть выражена через функции f1, f2,…, fm с помощью суперпозиций.
Пусть К0={f1(x1,…,xk1), f2(x1,…,xk2),…, fm(x1,…,xkm)} – конечная система булевых функций. Функция fназывается элементарной суперпозицией (суперпозицией ранга 1) функций f1, f2,…, fm, если f может быть получена одним из следующих способов:
а) переименованием некоторой переменной xj какой-нибудь функции fi;
б) подстановкой некоторой функции
Суперпозиции ранга 1 образуют класс функций К1. Класс функций, получающийся из функций класса Ks-1 суперпозицией ранга s‑1 с помощью элементарных суперпозиций, называется классом функций Ks суперпозиций ранга s. Суперпозициями функций из К0 называются функции, входящие в какой-то из классов Ks.
Согласно введенным определениям, можно говорить, что система булевых функций полна. Тогда любую булеву функцию можно представить в виде многочлена от своих переменных.
В современном компьютере цифрами являются ноль и единица. Следовательно, команды, которые выполняет процессор, суть булевы функции. Мы уже видели, что любая булева функция реализуется через конъюнкцию, дизъюнкцию и отрицание. Следовательно, можно построить нужный процессор, имея в распоряжении элементы, реализующие
1. Класс функций, сохраняющих константу нуль (обозначается T0 или P0):
T0:={f | f (0,0,…, 0)=0}.
К этому классу относятся, например, функции
2. Класс функций, сохраняющих константу единица (обозначается T1 или P1):
T1:={f | f (1,1,…, 1)=1}.
К нему относятся все нечетные функции.
3. Класс самодвойственных функций (обозначается T* или S):
T*:={f | f*};
Пример
Функция
Пример. Двойственной к функции
Принцип двойственности:
Если
то
Таким образом, функция, двойственная суперпозиции функций, есть соответствующая суперпозиция двойственных функций.
Этот принцип удобен при нахождении двойственных функций, представленных формулами, содержащими лишь конъюнкции, дизъюнкции и отрицание. В этом случае в исходной формуле конъюнкции заменяются на дизъюнкции, а дизъюнкции – на конъюнкции. Таким образом, ДНФ соответствует КНФ, КНФ – ДНФ, СДНФ – СКНФ, СКНФ – СДНФ.