Способы представления логических функций

Логическая функция (функция алгебры высказываний) f(X1, X2, …, Xn) от n переменных – n-арная операция на множестве [0; 1]. В этой функции логические переменные X1, X2, …, Xn представляют собой высказывания и принимают значения 0 или 1.

Существует Способы представления логических функций - student2.ru различных логических функций от n переменных.

Логические операции, рассмотренные в предыдущем разделе, можно рассматривать как логические функции от двух переменных.

Набор функций, с помощью которого можно представить (выразить) все логические функции, называется функционально-полным или базисом. Основными базисами являются:

1) булевый базис, состоящий из конъюнкции, дизъюнкции и отрицания;

2) базис NOR, состоящий из стрелки Пирса;

3) базис NAND, включающий штрих Шеффера.

Рассмотрим некоторые способы представления логических функций.

Аналитический. Функция задается в виде алгебраического выражения, состоящего из функций одного или нескольких базисов, применяемых к логическим переменным.

Табличный. Функция задается в виде таблицы истинности (соответствия), которая содержит 2n строк (по числу наборов аргументов), n столбцов по числу переменных и один столбец значений функции. В такой таблице каждому набору аргументов соответствует значение функции.

Числовой. Функция задается в виде десятичных (восьмеричных, шестнадцатеричных) эквивалентов номеров тех наборов аргументов, на которых функция принимает значение 1. Нумерация наборов начинается с нуля. Аналогичным образом логическая функция может быть задана по нулевым значениям.

Пример 6.1. Функция задана аналитически:

f(X, Y, Z) = Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru .

Записать функцию в табличном и числовом представлениях.

Решение. Переход к другому представлению возможен и в таком виде. Однако лучше преобразовать функцию, чтобы упростить процесс перехода к другому представлению.

Опустим отрицание до переменных по законам де Моргана (6.8)-(6.9):

f(X, Y, Z) = Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru = Способы представления логических функций - student2.ru Z + X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z.

Сократим одинаковые слагаемые по формуле (6.10) и перегруппируем их:

f(X, Y, Z) = Способы представления логических функций - student2.ru Z + X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z = X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z.

По полученному выражению построим таблицу истинности, путем подстановки значений переменных в строке и записи значения функции в эту строку (табл. 6.2)

Таблица 6.2. Таблица истинности
функции f(X, Y, Z) = X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z

Номер набора X Y Z f(X, Y, Z) = X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z

Чтобы представить функцию в числовом представлении, выпишем номера наборов, на которых функция принимает значение 1: 1, 2, 4, 5, 6, 7 и номера наборов, на которых функция принимает значение 0: 0, 3.

Тогда функция f(X, Y, Z) = X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z имеет два числовых представления. В первом случае перечисляются все наборы, на которых функция равна 1:

f(1, 2, 4, 5, 6, 7) = 1.

Во втором случае перечисляются все наборы, на которых функция равна 0:

f(0, 3) = 0.

Все эти представления эквивалентны и описывают одну функцию. □

Правило 6.2. (переход от табличного к аналитическому представлению функции в ДНФ) Необходимо в тех строках таблицы истинности, где функция равна 1, выписать набор переменных и соединить их конъюнкцией. Причем, если переменная в наборе равна 0, то к переменной добавляется отрицание. Конъюнкции переменных соединить дизъюнкцией.

Пример 6.2. Функция задана таблично (табл. 6.3).

Таблица 6.3. Таблица истинности некоторой функции

Номер набора X Y Z f(X, Y, Z)

Записать функцию в аналитическом представлении ДНФ и числовом представлении.

Решение. Выпишем те наборы переменных, на которых функция принимает значение 1, и запишем их в виде конъюнкции переменных:

набор 3: X = 0, Y = 1, Z = 1 ® Способы представления логических функций - student2.ru YZ;

набор 6: X = 1, Y = 1, Z = 0 ® XY Способы представления логических функций - student2.ru ;

набор 7: X = 1, Y = 1, Z = 1 ® XYZ.

Соединим полученные конъюнкции переменных дизъюнкцией и получим аналитическое представление функции:

f(X, Y, Z) = Способы представления логических функций - student2.ru YZ + XY Способы представления логических функций - student2.ru + XYZ.

Функция принимает значение 1 на наборах 3, 6, 7 и значение 0 на наборах 0, 1, 2, 4, 5, поэтому в числовом представлении функция будет иметь вид

f(3, 6, 7) = 1.

f(0, 1, 2, 4, 5) = 0. □

Правило 6.3. (переход от табличного к аналитическому представлению функции в виде КНФ) Необходимо в тех строках таблицы истинности, где функция равна 0, выписать набор переменных и соединить их дизъюнкцией. Причем, если переменная в наборе равна 1, то к переменной добавляется отрицание. Дизъюнкции переменных соединить конъюнкцией.

Пример 6.3. Функцию, заданную таблично в примере 6.2, записать в аналитическом представлении КНФ.

Решение. Выпишем наборы, на которых функция принимает значение 0 и преобразуем их в дизъюнкции переменных:

набор 0: X = 0, Y = 0, Z = 0 ® X + Y + Z;

набор 1: X = 0, Y = 0, Z = 1 ® X + Y + Способы представления логических функций - student2.ru ;

набор 2: X = 0, Y = 1, Z = 0 ® X + Способы представления логических функций - student2.ru + Z;

набор 4: X = 1, Y = 0, Z = 0 ® Способы представления логических функций - student2.ru + Y + Z;

набор 5: X = 1, Y = 0, Z = 1 ® Способы представления логических функций - student2.ru + Y + Способы представления логических функций - student2.ru .

Запишем функцию в виде КНФ (произведения сумм):

f(X, Y, Z) = (X + Y + Z)(X + Y + Способы представления логических функций - student2.ru )(X + Способы представления логических функций - student2.ru + Z) ´

´ ( Способы представления логических функций - student2.ru + Y + Z)( Способы представления логических функций - student2.ru + Y + Способы представления логических функций - student2.ru ). □

6.3.2. Способы перевода логических функций
из одного базиса в другой

Рассмотрим способы перевода функции из одного базиса в другие.

Правило 6.4. (переход от булевого базиса к базису NOR) Алгоритм перехода включает следующие этапы.

1. Упростить функцию и преобразовать ее к произведению сумм произведений и т. д. по формуле (6.7), причем в каждой сумме или произведении должно быть по два аргумента. Если невозможно свести формулу, где в каждой операции по два аргумента, то использовать следующие преобразования:

X+Y+Z=(X+Y+Z)(X+Y+Z)=((X+Y)(X+Y)+Z)((X+Y)(X+Y)+Z)=

= Способы представления логических функций - student2.ru ;

XYZ=(XY+XY)Z= Способы представления логических функций - student2.ru =

= Способы представления логических функций - student2.ru .

2. Преобразовать конъюнкции по формуле (6.24):

X×Y= Способы представления логических функций - student2.ru .

3. Преобразовать отрицание над переменными по формуле (6.25):

Способы представления логических функций - student2.ru = Способы представления логических функций - student2.ru .

4. Заменить полученные операции стрелкой Пирса по формуле (6.26):

Способы представления логических функций - student2.ru =X¯Y.

Пример 6.4. Привести упрощенную функцию из примера 6.1 к базису NOR.

Решение. Приведем формулу к произведению сумм и т. д. по формуле (6.7):

f(X, Y, Z) = X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru Z = (X + Y Способы представления логических функций - student2.ru + Способы представления логических функций - student2.ru )(X + Y Способы представления логических функций - student2.ru + Z) =

= ((X + Y)(X + Способы представления логических функций - student2.ru ) + Способы представления логических функций - student2.ru )((X + Y)(X + Способы представления логических функций - student2.ru ) + Z).

Преобразуем конъюнкции:

((X + Y)(X + Способы представления логических функций - student2.ru ) + Способы представления логических функций - student2.ru )((X + Y)(X + Способы представления логических функций - student2.ru ) + Z) =

= Способы представления логических функций - student2.ru .

Преобразуем отрицания над переменными:

Способы представления логических функций - student2.ru =

= Способы представления логических функций - student2.ru .

Заменим операции стрелкой Пирса:

Способы представления логических функций - student2.ru =

= ((X ¯ Y)(X ¯ (Z ¯ Z)) ¯ (Y ¯ Y)) ¯ ((X ¯ Y)(X ¯ (Z ¯ Z)) ¯ Z).

Формула приведена к базису NOR. □

Правило 6.5. (переход от булевого базиса к базису NAND) Алгоритм перехода включает следующие этапы.

1. Упростить функцию и преобразовать ее к сумме произведений сумм и т. д. по формуле (6.7), причем в каждой сумме или произведении должно быть по два аргумента. Если невозможно свести формулу, где в каждой операции по два аргумента, то использовать следующие преобразования:

X+Y+Z=(X+Y)(X+Y)+Z= Способы представления логических функций - student2.ru = Способы представления логических функций - student2.ru ;

XYZ=XYZ+XYZ=(XY+XY)Z+(XY+XY)Z=

= Способы представления логических функций - student2.ru .

2. Преобразовать дизъюнкции формуле

X+Y= Способы представления логических функций - student2.ru . (6.27)

3. Преобразовать отрицание над переменными по формуле:

Способы представления логических функций - student2.ru = Способы представления логических функций - student2.ru . (6.28)

4. Заменить полученные операции штрихом Шеффера по формуле:

Способы представления логических функций - student2.ru =X½Y. (6.29)

Пример 6.5. Привести функцию из примера 6.2 к базису NAND.

Решение. Упростим выражение и приведем к виду суммы произведений и т. д.:

f(X, Y, Z) = Способы представления логических функций - student2.ru YZ + XY Способы представления логических функций - student2.ru + XYZ = Y( Способы представления логических функций - student2.ru Z + X Способы представления логических функций - student2.ru + XZ) =

= Y( Способы представления логических функций - student2.ru Z + X( Способы представления логических функций - student2.ru + Z)) = Y( Способы представления логических функций - student2.ru Z + X) = Y(Z + X) = YZ + YX.

Преобразуем дизъюнкции:

YZ + YX = Способы представления логических функций - student2.ru .

Отрицания над переменными отсутствуют, поэтому приведем операции к штриху Шеффера:

Способы представления логических функций - student2.ru = (Y ½ Z) ½ (Y ½ X).

Формула приведена к базису NAND. □

Наши рекомендации