Введем понятие степени:
Х
=Х, если =1;
=Х, если =0.
Рассмотрим конъюнкцию вида:
Х11 * Х22 * Х33... Хn n
Существует 2n наборов вида < 1, 2,... n >. Поставим в соответствие каждой конъюнкции (*) номер набора i и образуем дизъюнкцию всех конъюнкций:
iA(Х11 * Х22 * Х33... Хnn)
Теорема (без доказательства):
Любая ФАЛ, зависящая от 'n' аргументов, может быть представлена в форме:
F(Х1, Х2,... Хi... Хn)= Х11 * Х22... Хii F(1, 2,... i, Xi+1,...Xn)
Из этой теоремы вытекает ряд важных следствий:
- Она дает возможность перейти от табличного задания функции к аналитической форме и сделать обратный переход.
- Устанавливает так называемую функциональную полноту связок (базиса) ", , -", т.к. позволит построить в этом базисе произвольную ФАЛ от произвольного числа аргументов.
Примечание:
- Если in, то соответствующая форма функции называется дизъюнктивной нормальной (ДНФ).
- Если i=n, то каноническая форма функции носит название совершенной ДНФ (СДНФ). Дизъюнкции берутся по тем наборам, на которых функция f(X1,X2,...,Xn)=1
Пример: ДНФ
f(Х1, Х2, Х3)= Х1 Х2 Х3 Х1Х2 Х3
Пример: СДНФ
f(Х1, Х2, Х3)= Х1Х2 Х3 Х1Х2 Х3
В ДНФ в каждый член любая переменная входит в прямом виде или с отрицанием.
Аналогичная теорема справедлива и для представления функции в конъюктивной нормальной форме (КНФ):
f(Х1, Х2,..., Хn)=&(Х11 Х22 ... Хii) f(1, 2,... i, Xi+1...Xn)
или при представлении в совершенной КНФ (СКНФ):
f(Х1, Х2,…, Хn)=&(Х11 Х22 Х33... Хnn)
где: & означает, что конъюнкции берется по тем наборам, на которых
f(Х1, Х2,... Хn)=0.
Дадим на основании этих теорем правило перехода от табличной формы функции к СДНФ и СКНФ.
Переход от табличной формы функции к СДНФ или правило записи функции по единицам:
- Выбрать те наборы аргументов, на которых f(Х1, Х2,... Хn)=1.
- Выписать все конъюнкции для этих наборов. Если при этом Хi имеет значение '1', то этот множитель пишется в прямом виде, если '0', то с отрицанием.
- Все конъюнктивные члены соединить знаком дизъюнкции .
Пример:
f(Х1, Х2)= Х1Х2 Х1Х2 Х1Х2
Правило перехода от табличной формы задания функции к СКНФ или правило записи функции по нулям.
- Выбрать те наборы аргументов, на которых f(Х1, Х2,... Хn)=0.
- Если при этом Хi имеет значение '0', то остается без изменений. Если '1', то с отрицанием.
- Все дизъюнктивные члены соединить знаком конъюнкции.
Пример:
f(Х1, Х2)= (Х1 Х2) (Х1 Х2)
Пример:
СДНФ f(Х1, Х2, Х3)= Х1Х2Х3 Х1Х2Х3 Х1Х2Х3 Х1Х2Х3 Х1Х2Х3
СКНФ f(Х1, Х2, Х3)= (Х1 Х2 Х3) & (Х1 Х2 Х3) & (Х1 Х2 Х3)
Рассмотрим способ получения СДНФ из СКНФ и обратно.
Из таблицы 2.1 с помощью способа записи функции по нулям следует, что СКНФ той же функции дизъюнкции будет иметь вид:
f(Х1, Х2)= Х1 Х2
Итак, имеем две формы одной и той же функции:
f(Х1, Х2)= Х1Х2 Х1Х2 Х1Х2 =Х1Х2
Итак, видно, что общее число членов в этих двух формах равно сумме нулей и единиц функции, то есть равно 2n.
Если в исходной форме функции, записанной в СКНФ или СДНФ, содержится z членов, то в другой ее форме (т.е. СДНФ или СКНФ) их будет (2n- z).
Поскольку в функцию мы включаем дизъюнктивные или конъюнктивные члены и берем их по наборам, на которых функция или обращается в '0', или в '1', то для перехода от одной формы задания функции к другой нужно выписать все недостающие члены и поставить над каждой переменной отрицание, а также заменить знаки конъюнкции на дизъюнкцию и обратно.
f(Х1, Х2)= Х1 Х2
f(Х1, Х2)СДНФ= Х1Х2 Х1Х2 Х1Х2
т.е. получили СДНФ.
Практический смысл перехода заключается в том, что можно определить, реализация какой формы потребует меньший объем оборудования.
|