Пономарев В.Ф. Основы дискретной математики. Учебное пособие / Основы дискретной математики - 3ч
.doc
Алгоритм преобразования формулы к виду СКНФ.
Шаг 1: преобразовать формулу так, чтобы в ней были только операции дизъюнкции, конъюнкции и отрицания, воспользовавшись формулами эквивалентных преобразований (см. табл. 26);
Шаг 2: преобразовать формулу так, чтобы операция отрицания была применима только к двоичным переменным, воспользовавшись теоремой де Моргана;
Шаг 3: если в некоторую дизъюнкцию не входит переменная xi, то дополнить её выражение (xiixii) и выполнить преобразование по закону дистрибутивности:
F= x11x22……. . . xkk(xiixii)= (x11x22. . . …xkkxii) (x11x22. . .…xkkxii);
Шаг 4: если в некоторую дизъюнкцию не входит переменная xj, то повторить шаг 3, иначе конец.
Пусть необходимо привести формулу F=(x1x2)(x1x2x3x4) к виду СКНФ. Согласно алгоритму имеем:
-
F=(x1x2x3x3)(x1x2x3x4);
-
F=(x1x2x3)(x1x2x3)(x1x2x3x4);
-
F=(x1x2x3x4x4)(x1x2x3x4x4)(x1x2x3x4);
-
F=(x1x2x3x4)(x1x2x3x4)(x1x2x3x4)(x1x2x3x4) (x1x2x3x4).
Контрольные вопросы и задачи.
-
Преобразовать формулы к виду ДНФ
-
F=(x1x2x3)(x1x2);
-
F=((x1x2x3)(x2x4x3)x1x4)x1);
-
F=(x1x2x3x4)((x2x4)x1x3x4)x2x3)(x1x4).
-
Преобразовать формулы задачи 1 к виду СДНФ.
-
Преобразовать формулы задачи 1 к виду КНФ.
-
Преобразовать формулы задачи 3 к виду СКНФ.
4.4. Двойственность логических функций.
Функция fi(x1;x2;……;xn) называется двойственной к функции fj(x1;x2;……;xn), если fi(x1;x2;……;xn)=fj(x1;x2;……;xn). Взяв отрицание обеих частей равенства и подставляя x1;x2;……;xn вместо x1;x2;……;xn, получим fi(x1;x2;……;xn)=fj(x1;x2;……;xn)=fj(x1;x2;……;xn). В частном случае функция может быть двойственна самой себе. В этом случае её называют самодвойственной.
Например, функция f0(x1;x2)=0 двойственна к функции f15(x1;x2)=1. Функция f1(x1;x2)=x1x2 двойственна к функции f7(x1;x2)=x1x2, так как f7(x1;x2)=(x1x2)=x1x2=f1(x1;x2). Функция f8(x1;x2)=(x1x2) двойственна к функции f14(x1;x2)=(x1x2), т.к. f14(x1;x2)=(x1x2)=(x1x2)=f8(x1;x2).
Функции f3(x1;x2)=x1, f5(x1;x2)=x2, f10(x1;x2)=x2 и f12(x1;x2)=x1 самодвойственны.
Принцип двойственности гласит: если в формуле Fi, представляющей функцию fi(x1;x2;……;xn), все знаки функций заменить соответсвенно на знаки двойственной функции, то полученная формула Fj будет представлять функцию fj(x1;x2;……;xn), двойственную к функции fi(x1;x2;……;xn).
Принцип двойственности применим и к разложению логической функции: дизъюнктивная нормальная форма логической функции двойственна к конъюктивной нормальной форме, а совершенная дизъюнктивная нормальная форма двойственна к совершенной конъюнктивной нормальной форме.
Любая функция, полученная с помощью операций суперпозиции из самодвойственных булевых функций, сама является самодвойственной. Класс самодвойственных булевых функций не позволяет формировать недвойственные логические функции, т.е. не является полным.
Контрольные вопросы и задачи.
-
Являются ли функции f2 двойственными к функциям f1:
-
f1(x1;x2)=x1x2 и f2(x1;x2)=x1x2;
-
f1(x1;x2)=x1x2 и f2(x1;x2)=x1 x2;
-
f1(x1;x2;x3)=x1x2x1x3 x2x3 и f2(x1;x2;x3)=x1x2 x1x3 x2x3;
-
f1(x1;x2;x3)=x1x2x3x1(x2x3) и
-
f2(x1;x2;x3)=x1x2x3x1x2x2x3 x1x3;
-
Самодвойственны ли функции:
-
f(x1;x2;x3)=((x1x2 )x1x3)(x2x3);
-
f(x1;x2;x3;x4)=(x1x2x3)x4)x1x2x3;
-
f(x1;x2;x3)=x1x2x3x1x2x1x3x2x3x1x2x3;
-
f(x1;x2;x3)=(x1x2)(x1x3).
4.5. Монотонность логических функций.
Функция f(x1;x2;……;xn) называется монотонной, если для некоторых наборов значений двоичных переменных (11;12;……;1n) и (21;22;……;2n) выполнено условие: если 1i2i, то f(11;12;…;1i;…;1n)f(21;22;…;2i;…;2n).
Например, для функций от двух двоичных переменных монотонными функциями являются функции, удовлетворяющие условию:
если (0;0)(0;1), то f(0;0)f(0;1),
если (0;0)(1;0), то f(0;0)f(1;0),
если (0;1)(1;1), то f(0;1)f(1;1),
если (1;0)(1;1), то f(1;0)f(1;1).
Таким условиям удовлетворяют следующие функции: f0(x1;x2)=0; f1(x1;x2)=x1x2; f3(x1;x2)=x1; f5(x1;x2)=x2; f7(x1;x2)=x1x2; f1(x1;x2)=1.
Любая функция, полученная с помощью операции суперпозиции из монотонных булевых функций, сама является монотонной. Класс всех монотонных функций не позволяет формировать немонотонные логические функции, т.е. не является полным.
Контрольные вопросы и задачи.
-
Какие функции являются монотонными:
-
f(x1;x2)=(x1(x1x2));
-
f(x1;x2)=(x1(x2x1));
-
f(x1;x2)=x1x2(x1x2);
-
f(x1;x2;x3)=x1x2x2x3x1x3x3.
4.6. Линейность логических функций. Алгебра Жегалкина.
Анализ возможностей логических связок в формировании логических функций позволяет выделить алгебру Жегалкина, опирающуюся на базис F4={;;1}. Использование этого базиса формирует структуру формулы в виде полиномов, каждый член которого есть конъюнкция двоичных переменных:
P(x1;x2;……;xn)=01 1in ixi 1jknjxjxk …… 2n-1x1x2…. . .xn.
Например, для логической функции f8(x1;x2) полином Жегалкина имеет вид: F8=P(x1;x2)=1x1x2x1x2 .
Основные свойства операции сложения по модулю 2 приведены в таблице 29.
Таблица 29. |
|
Наименование закона |
Эквивалентные формулы |
1. коммутативности |
x1x2=x2x1; |
2. ассоциативности |
x1(x2x3)=(x1x2)x3; |
3. дистрибутивности |
x1(x2x3)=x1x2x1x3; |
4. свойство “1” |
11=0; x1=x; |
5. свойство “0” |
00=0; x0=x; |
6. сложение по модулю 2 |
xx=0; |
7. отрицания |
x=x1. |
Если логическая функция задана таблицей или формулой в любом базисе, т.е. известны значения логической функции для различных наборов двоичных переменных, то можно вычислить все коэффициенты i для полинома Жегалкина, составив систему уравнений по всем известным наборам двоичных переменных.
Пусть f(x1;x2)=x1x2
f(0;0)=0=01102030;
f(0;1)=1=01102130;
f(1;0)=1=01112030;
f(1;1)=1=01112131;
0=0; 1=1; 2=1; 3=1.
Тогда,
F=P(x1;x2)=x1x2x1x2.
Откуда,
(x1x2)=x1x2x1x2.
Пусть f(x1;x2)=x1x2
f(0;0)=1=01102030;
f(0;1)=1=01102130;
f(1;0)=0=01112030;
f(1;1)=1=01112131;
0=1; 1=1; 2=0; 3=1.
Тогда,
F=P(x1;x2)=1x2x1x2.
Откуда
(x1x2)=1x1x1x2.
В таблице 30 приведены полиномы Жегалкина для основных представителей логических функций из таблицы 23.
Таблица 30.
Функция
Эквивалентные формулы
f7
(x1x2)=x1x2x1x2;
f8
(x1x2)=(x1x2)=1x1x2x1x2;
f9
(x1x2)=(x1x2x1x2)=1x1x2;
f12
x1=1x1;
f13
(x1x2)=(x1x2)=1x1x2x1x2;
f14
(x1x2)=(x1x2)=1x1x2.
-
Пусть f(x1;x2)=(x1x2):
-
F=(x1x2)=((x11)(x21))1=x1x2x11x21111=x1x2x1x2.
-
Пусть f(x1;x2)=x1 x2:
-
F=(x1x2)=(x1x2)=x1(x21)1=x1x2x111=(1x1x1x2).
-
Пусть f(x1;x2)=x1 x2:
F=(x1x2x1x2)=((x1x2)(x1x2))=(((x11)(x21))1)(x1x2)1= (x1x2x1x211)(x1x21)1=x1x2x1x2x1x2x1x1x2x21= (1x1x2).
Преимущества алгебры Жегалкина состоят в “арифметизации” преобразований логических формул, а недостатки - в сложности формул, особенно при большом числе двоичных переменных.
Полиномы Жегалкина, не содержащие конъюнкции двоичных переменных, т.е. P(x1;x2;…;xn)=(011x1…nxn) называются линейными.
Например, f9(x1;x2)=1x1x2, f12(x1;x2)=1x1.
Любая функция, полученная с помощью операции суперпозиции из линейных логических функций, сама является линейной. Класс всех линейных функций не позволяет формировать нелинейные логические функции, т.е. не является полным.
Контрольные вопросы и задачи.
-
Линейны ли нижеприведённые функции:
-
f(x1;x2;x3)=(x1x2x1x2)x3;
-
f(x1;x2)=x1x2(x1x2);
-
f(x1;x2;x3;x4)=x1x2x2x3x3x4x4x1;
-
f(x1;x2;x3)=(x1x2)(x2x1)x3.
4.7. Функции, сохраняющие “0”.
Функция f(x1;x2;…;xn) называется сохраняющей “0”, если для наборов значений двоичных переменных (0;0;…;0) функция принимает значение f(0;0;…;0)=0.
Например, f0(0;0)=0, f3(0;0)=0, f7(0;0)=0 и др.
Любая функция, полученная с помощью операции суперпозиции из функций, сохраняющих “0”, сама является функцией, сохраняющей “0”, т.е. класс функций сохраняющих “0” является замкнутым и не позволяет формировать логические функции, несохраняющие “0”.
Контрольные вопросы и задачи.
-
Какие функции сохраняют “0”?
-
f(x1;x2)=(x1x2)x1x2;
-
f(x1;x2;x3)=((x1x2)(x2x3))(x1x3);
-
f(x1;x2;x3)=(x1x2x3)((x1x2)(x3x1x2);
-
f(x1;x2;x3)=(x1x2)(x2x3)(x3x2).
4.8. Функции, сохраняющие “1”.
Функция f(x1;x2;…;xn) называется сохраняющей “1”, если для наборов значений двоичных переменных (1;1;…;1) функция принимает значение f(1;1;…;1)=1.
Например, f1(1;1)=1, f3(1;1)=1, f5(1;1)=1 и др.
Любая функция, полученная с помощью операции суперпозиции из функций, сохраняющих “1”, сама является функцией, сохраняющей “1”, т.е. класс функций сохраняющих “1” является замкнутым и не позволяет формировать логические функции, несохраняющие “1”.
Контрольные вопросы и задачи.
-
Какие из нижеперечисленных функций сохраняют “1”?
-
f(x1;x2)=(x1x2)(x1x2);
-
f(x1;x2;x3)=x1x2x1x2x31;
-
f(x1;x2;x3)=(x1x2)(x1x3)(x2x3);
-
f(x1;x2;x3)=((x1x2)(x1(x2x3)))((x2x3)x1.
4.9. Функционально полные системы.
Свойства логических функций (самодвойственность, монотонность, линейность, сохранение “1” и “0”) представлены в таблице (см. табл. 31). Знаком “1” обозначены функции, обладающие одним из перечисленных свойств.
Таблица 31.
y=f(x1;x2)
x1
x2
f0
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
с в о й с т в а ф у н к ц и й
сохр. “0”
1 1 1
1 1 1 1
0
0
0
0
0
0
0
0
0
сохр. “1”
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
само- двойст
0
0
0
1
0 1
0
0
0
0
1
0 1
0
0
0
моно- тонная
1 1
0
1
0 1
0
1
0
0
0
0
0
0
0 1
линей- ная 1
0
0 1
0 1 1
0
0 1 1
0 1
0
0 1