Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Способы представления логических функций
Логическая функция (функция алгебры высказываний) f(X1, X2, …, Xn) от n переменных – n-арная операция на множестве [0; 1]. В этой функции логические переменные X1, X2, …, Xn представляют собой высказывания и принимают значения 0 или 1. Существует различных логических функций от n переменных. Логические операции, рассмотренные в предыдущем разделе, можно рассматривать как логические функции от двух переменных. Набор функций, с помощью которого можно представить (выразить) все логические функции, называется функционально-полным или базисом. Основными базисами являются: 1) булевый базис, состоящий из конъюнкции, дизъюнкции и отрицания; 2) базис NOR, состоящий из стрелки Пирса; 3) базис NAND, включающий штрих Шеффера. Рассмотрим некоторые способы представления логических функций. Аналитический. Функция задается в виде алгебраического выражения, состоящего из функций одного или нескольких базисов, применяемых к логическим переменным. Табличный. Функция задается в виде таблицы истинности (соответствия), которая содержит 2n строк (по числу наборов аргументов), n столбцов по числу переменных и один столбец значений функции. В такой таблице каждому набору аргументов соответствует значение функции. Числовой. Функция задается в виде десятичных (восьмеричных, шестнадцатеричных) эквивалентов номеров тех наборов аргументов, на которых функция принимает значение 1. Нумерация наборов начинается с нуля. Аналогичным образом логическая функция может быть задана по нулевым значениям. Пример 6.1. Функция задана аналитически: f(X, Y, Z) = + . Записать функцию в табличном и числовом представлениях. Решение. Переход к другому представлению возможен и в таком виде. Однако лучше преобразовать функцию, чтобы упростить процесс перехода к другому представлению. Опустим отрицание до переменных по законам де Моргана (6.8)-(6.9): f(X, Y, Z) = + = Z + X + Y + Z. Сократим одинаковые слагаемые по формуле (6.10) и перегруппируем их: f(X, Y, Z) = Z + X + Y + Z = X + Y + Z. По полученному выражению построим таблицу истинности, путем подстановки значений переменных в строке и записи значения функции в эту строку (табл. 6.2) Таблица 6.2. Таблица истинности
Чтобы представить функцию в числовом представлении, выпишем номера наборов, на которых функция принимает значение 1: 1, 2, 4, 5, 6, 7 и номера наборов, на которых функция принимает значение 0: 0, 3. Тогда функция f(X, Y, Z) = X + Y + 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. Таблица истинности некоторой функции
Записать функцию в аналитическом представлении ДНФ и числовом представлении. Решение. Выпишем те наборы переменных, на которых функция принимает значение 1, и запишем их в виде конъюнкции переменных: набор 3: X = 0, Y = 1, Z = 1 ® YZ; набор 6: X = 1, Y = 1, Z = 0 ® XY ; набор 7: X = 1, Y = 1, Z = 1 ® XYZ. Соединим полученные конъюнкции переменных дизъюнкцией и получим аналитическое представление функции: f(X, Y, Z) = YZ + XY + 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 + ; набор 2: X = 0, Y = 1, Z = 0 ® X + + Z; набор 4: X = 1, Y = 0, Z = 0 ® + Y + Z; набор 5: X = 1, Y = 0, Z = 1 ® + Y + . Запишем функцию в виде КНФ (произведения сумм): f(X, Y, Z) = (X + Y + Z)(X + Y + )(X + + Z) ´ ´ ( + Y + Z)( + Y + ). □ 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)= = ; XYZ=(XY+XY)Z= = = . 2. Преобразовать конъюнкции по формуле (6.24): X× Y= . 3. Преобразовать отрицание над переменными по формуле (6.25): = . 4. Заменить полученные операции стрелкой Пирса по формуле (6.26): =X¯ Y. Пример 6.4. Привести упрощенную функцию из примера 6.1 к базису NOR. Решение. Приведем формулу к произведению сумм и т. д. по формуле (6.7): f(X, Y, Z) = X + Y + Z = (X + Y + )(X + Y + Z) = = ((X + Y)(X + ) + )((X + Y)(X + ) + Z). Преобразуем конъюнкции: ((X + Y)(X + ) + )((X + Y)(X + ) + Z) = = . Преобразуем отрицания над переменными: = = . Заменим операции стрелкой Пирса: = = ((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= = ; XYZ=XYZ+XYZ=(XY+XY)Z+(XY+XY)Z= = . 2. Преобразовать дизъюнкции формуле X+Y= . (6.27) 3. Преобразовать отрицание над переменными по формуле: = . (6.28) 4. Заменить полученные операции штрихом Шеффера по формуле: =X½ Y. (6.29) Пример 6.5. Привести функцию из примера 6.2 к базису NAND. Решение. Упростим выражение и приведем к виду суммы произведений и т. д.: f(X, Y, Z) = YZ + XY + XYZ = Y( Z + X + XZ) = = Y( Z + X( + Z)) = Y( Z + X) = Y(Z + X) = YZ + YX. Преобразуем дизъюнкции: YZ + YX = . Отрицания над переменными отсутствуют, поэтому приведем операции к штриху Шеффера: = (Y ½ Z) ½ (Y ½ X). Формула приведена к базису NAND. □ Популярное:
|
Последнее изменение этой страницы: 2017-03-03; Просмотров: 966; Нарушение авторского права страницы