Россия, Москва |
Способы представления ФАЛ. Переход от одной формы представления ФАЛ к другой
Пример 2.3
Пусть ФАЛ задана сокращенной записью СКНФ:
![f(x,y,z)_{СКНФ} = \Pi (2,3,4,5,7)](/sites/default/files/tex_cache/5321ea5fe0eac0fbd1ac3ff52d209432.png)
Получить полную и сокращенную записи СДНФ этой функции.
Решение
Так как получение ТИ в данном примере не требуется, то можно использовать следующий подход.
Этап 1.
Получить сокращенную запись СДНФ этой функции. Для этого под знаком обобщенной дизъюнкции Σ перечислить все наборы, не входящие в сокращенную запись СКНФ:
![f(x,y,z)_{СДНФ} = \sum (0,1,6)](/sites/default/files/tex_cache/287541455b99f4bfc17b8766c3cb7219.png)
Этап 2.
Получить полную запись СДНФ согласно указаниям примера 2.1. Результатом будет:
![f(x,y,z)_{СДНФ} =\overline{x}\overline{y}\overline{z} \vee \overline{x}\overline{y} z \vee x y\overline{z}](/sites/default/files/tex_cache/f9a2bc9b50ea2561acf8bffaa6527be5.png)
Пример 2.4
Пусть ФАЛ задана в виде СДНФ:
![f(x,y,z)_{СДНФ} =x \overline{y}\overline{z} \vee \overline{x}\overline{y} z \vee \overline{x} y\overline{z} \vee xyz](/sites/default/files/tex_cache/c95b23aee1f5a4875975d3dc2209d918.png)
Получить полную и сокращенную записи СКНФ этой функции.
Решение
Получим сокращенную запись СДНФ функции, для чего сначала определим двоичные эквиваленты наборов, соответствующих каждому конъюнктивному члену в полной записи СДНФ этой функции, поставив 1 под переменными, входящими в запись в прямом виде, и 0 под переменными, представленными в инверсном виде:
Затем представим эти наборы в десятичном коде и перечислим их под знаком обобщенной дизъюнкции Σ:
![f(x,y,z)_{СДНФ}=\sum (4,1,2,7)](/sites/default/files/tex_cache/3efcd5f0bd2b315cdac77fd181c90588.png)
По полученной сокращенной записи СДНФ функции получим сокращенную запись СКНФ, перечислив под знаком обобщенной конъюнкции Π номера наборов, не вошедших в сокращенную запись СДНФ:
![f(x,y,z)_{СКНФ}=\Pi (0,3,5,6)](/sites/default/files/tex_cache/623a961215c673cfa87c0e0ea2000b96.png)
По сокращенной записи СКНФ получим ее полную запись согласно методике, изложенной в примере 2.1.
![f(x,y,z)_{СКНФ} =(x \vee y \vee z) \And (x \vee \overline{y} \vee \overline{z}) \And (\overline{x} \vee y \vee \overline{z}) \And (\overline{x} \vee \overline{y} \vee z)](/sites/default/files/tex_cache/9db34b71f8345993365dce906efbaf2a.png)
Пример 2.5
Пусть ФАЛ задана в виде СКНФ:
![f(x,y,z)_{СКНФ} =(x \vee \overline{y} \vee z) \And (x \vee \overline{y} \vee \overline{z}) \And (\overline{x} \vee y \vee \overline{z})](/sites/default/files/tex_cache/dd451a2eaf7cbeb3331e1ba6675e643a.png)
Получить полную и сокращенную записи СДНФ этой функции.
Решение
Получим сокращенную запись СКНФ этой функции. Для этого сначала определим двоичные эквиваленты наборов, соответствующих каждому дизъюнктивному члену в полной записи СДНФ этой функции, поставив 0 под переменными, входящими в запись в прямом виде, и 1 под переменными, представленными в инверсном виде:
Затем представим эти наборы в десятичном коде и перечислим их под знаком обобщенной конъюнкции Π:
![f(x,y,z)_{СКНФ}=\Pi (2,3,5)](/sites/default/files/tex_cache/f4cac3dc1ae016a57ec1f93171216a5d.png)
По полученной сокращенной записи СКНФ функции получим сокращенную запись СДНФ, перечислив под знаком обобщенной дизъюнкции Σ номера наборов, не вошедших в сокращенную запись СКНФ:
![f(x,y,z)_{СДНФ}=\sum (0,1,4,6,7)](/sites/default/files/tex_cache/7d3b888bc857d13e577ed60071dcb549.png)
По сокращенной записи СДНФ получим ее полную запись согласно методике, изложенной в примере 2.1:
![f(x,y,z)_{СКНФ}=\overline{x}\overline{y}\overline{z} \vee \overline{x}\overline{y} z \vee x\overline{y}\overline{z} \vee x y\overline{z} \vee x y z](/sites/default/files/tex_cache/626debee77cb0c5f167b337c96ca293b.png)
Пример 2.6
Пусть ФАЛ задана в виде дизъюнктивной нормальной формы, не являющейся совершенной. Например:
![f(x,y,z)=x \vee xy \vee xyz](/sites/default/files/tex_cache/44f53b41dd8adf46810061477a4ed595.png)
Получить полную и сокращенную записи СКНФ этой функции.
Решение
Для решения этой задачи можно сначала получить СДНФ функции.
Для получения СДНФ необходимо обеспечить зависимость каждого конъюнктивного терма от всех переменных, от которых зависит функция. Необходимые преобразования базируются на следующей эквивалентности:
![a =a b \vee a\overline{b}](/sites/default/files/tex_cache/2ead6f519220285b9fb96bcb2bbb0f3d.png)
Тогда, последовательно повышая ранг для термов, зависящих не от всех переменных, получим:
![\overline{x} =\overline{x} y \overline{x}\overline{y} =\overline{x}yz \vee \overline{x} y\overline{z} \vee \overline{x}\overline{y} z \vee \overline{x}\overline{y}\overline{z}](/sites/default/files/tex_cache/4c22058d60320811027c3853c0f7b127.png)
![xy = xyz \vee x y\overline{z}](/sites/default/files/tex_cache/0fde239256402238c776a123add54833.png)
![f(x,y,z) =\overline{x} \vee xy \vee x\overline{y}\overline{z} = \overline{x}yz \vee \overline{x} y\overline{z} \vee \overline{x}\overline{y} z \vee \overline{x}\overline{y}\overline{z} \vee xyz \vee x y\overline{z} \vee x y\overline{z}](/sites/default/files/tex_cache/a10ff976108e10c46580ff18cad6a6ad.png)
После выполнения преобразования на основе эквивалентности
![a \vee a = a](/sites/default/files/tex_cache/6ce73f0dc1f39ebfa41742d4614d0480.png)
получим полную, а затем и сокращенную записи СДНФ:
![f(x,y,z)_{СДНФ} =\overline{x}yz \vee \overline{x} y\overline{z} \vee \overline{x}\overline{y} z \vee \overline{x}\overline{y}\overline{z} \vee xyz \vee x y\overline{z}](/sites/default/files/tex_cache/ec4e110b4f566c606b5953f006e4d62c.png)
![f(x,y,z)_{СДНФ} = \sum (3,2,1,0,7,6)](/sites/default/files/tex_cache/6a82b43352617181c7e724e5fbb171d9.png)
Последующие шаги по решению поставленной задачи рассмотрены ранее.
В результате получим:
![f(x,y,z)_{СКНФ} = \Pi (4,5)](/sites/default/files/tex_cache/3d3b03384bc994eb2ca4a54e06fcd30f.png)
![f(x,y,z)_{СКНФ} = (\overline{x} \vee y \vee z) \And (\overline{x} \vee y \vee \overline{z})](/sites/default/files/tex_cache/c353147ac76619b5f098b2c98168c42e.png)
Пример 2.7
Пусть ФАЛ задана в виде конъюнктивной нормальной формы, не являющейся совершенной. Например:
![f(x,y,z)= (\overline{x} \vee y) \And (\overline{x} \vee \overline{z} )](/sites/default/files/tex_cache/2a304c2eb7889cda24df213d6304b917.png)
Получить полную и сокращенную записи СДНФ этой функции.
Решение
Решение этой задачи аналогично предыдущей.
Для получения СКНФ необходимо использовать следующие эквивалентности:
![a = (a \vee b) \And (a \vee \overline{b})](/sites/default/files/tex_cache/5dcaad75c2f5c7b072ae96cf4c24331c.png)
![a \And a = a](/sites/default/files/tex_cache/7a2fb9ceb71f6ac9c7156a6c5e9a9ca5.png)
Тогда получим:
![\overline{x}Vy = (\overline{x} \vee y \vee z) \And (\overline{x} \vee y \vee \overline{z})](/sites/default/files/tex_cache/b50a4f79aa07446778357a011e3a32f3.png)
![\overline{x} \vee \overline{z} = (\overline{x} \vee y \vee \overline{z}) \And (\overline{x} \vee \overline{y} \vee \overline{z})](/sites/default/files/tex_cache/46a51cd9521f7b487a5908a2eeb4bf40.png)
![f(x,y,z) = (\overline{x} \vee y \vee z) \And (\overline{x} \vee y \vee \overline{z}) \And (\overline{x} \vee y \vee \overline{z}) \And (\overline{x} \vee \overline{y} \vee \overline{z})](/sites/default/files/tex_cache/8d118b76dce4c2cb64eb8b57552d0db4.png)
![f(x,y,z)_{СКНФ} = (\overline{x}VyVz) \And (\overline{x}VyV\overline{z}) \And (\overline{x} \vee \overline{y} \vee \overline{z})](/sites/default/files/tex_cache/5ba699cd25cf272dc063d62fc019d7e9.png)
![f(x,y,z)_{СКНФ} = \Pi (4,5,7)](/sites/default/files/tex_cache/f417de8ce2c4bc104852ccc94175972b.png)
Исходя из полученной СКНФ функции, определим ее СДНФ:
![f(x,y,z)_{СДНФ} = \sum (0,1,2,3,6)](/sites/default/files/tex_cache/f40797c0f8642828f4c44c522618127f.png)
![f(x,y,z)_{СДНФ} =\overline{x}\overline{y}\overline{z} \vee \overline{x}\overline{y} z \vee \overline{x} y\overline{z} \vee \overline{x} y z \vee x y\overline{z}](/sites/default/files/tex_cache/bfdfa1d937a4e0ec6d15b8f2ccf8ed22.png)
Пример 2.8
![Пусть ФАЛ задана в виде совершенной дизъюнктивной нормальной формы:](/sites/default/files/tex_cache/1af20488dd1e2f56136deb4f7aef08fd.png)
![f(x,y,z)_{СДНФ} =\overline{x}\overline{y} z \vee x\overline{y} z \vee \overline{x} y\overline{z}](/sites/default/files/tex_cache/6313282ffc5349546e18484446caaf0b.png)
Представить запись этой функции в базисе "Штрих Шеффера".
Решение
Для перехода от представления ФАЛ в виде СДНФ к базису "Штрих Шеффера" необходимо выполнить следующее.
Этап 1.
Заменить все знаки дизъюнкции и конъюнкции на знак функции "Штрих Шеффера". При этом вследствие невыполнения для данной функции ассоциативного закона (см. (1.32)) каждый конъюнктивный член должен быть заключен в скобки:
![f(x,y,z) = (\overline{x} /\overline{y} / z ) / (x /\overline{y} / z) / (x / y /\overline{z})](/sites/default/files/tex_cache/efd2756e119818449b63bf9289eb4f24.png)
Этап 2.
Выразить функцию отрицания через функцию "Штрих Шеффера" согласно (1.29), также заключая эту операцию в скобки:
![f(x,y,z) = ((x / x) / (y / y) / z) / (x / (y / y) / z) / (x / y / (z / z))](/sites/default/files/tex_cache/ac4e43c111ee8572c42f3d6918bed3b6.png)
Пример 2.9
Пусть ФАЛ задана в виде:
![f(x,y,z)_{СДНФ} = x \vee x\overline{y} \vee \overline{x} y\overline{z}](/sites/default/files/tex_cache/0620d05b1942fac7841161a6cbb7a7dc.png)
Представить запись этой функции в базисе "Штрих Шеффера".
Решение
Особенность выполнения первого этапа обусловлена наличием в записи функции члена x, не являющегося конъюнкцией каких-либо переменных. Для приведения этой функции к дизъюнктивной нормальной форме воспользуемся выражением (1.10):
![f(x,y,z)_{СДНФ} = xx \vee x\overline{y} \vee \overline{x} y\overline{z}](/sites/default/files/tex_cache/703d54b3ee1de39af0595777ba9c1cb4.png)
Дальнейшие действия в этом примере полностью совпадают с примером 2.8.
Результатом выполнения этапа 1 будет
![f(x,y,z) = (x / x) / (x /\overline{y}) / (\overline{x} / y /\overline{z}),](/sites/default/files/tex_cache/eb0ecb9eb710f54c072ff81e4d12eb74.png)
а окончательный результат:
![f(x,y,z) = (x / x) / (x / (y / y)) / ((x / x) / y / (z / z))](/sites/default/files/tex_cache/50aa5b4f4854a12d399fcc7e2087582a.png)
Краткие итоги
В лекции рассматриваются различные формы представления логических функций. Если представление ФАЛ в виде таблицы истинности используется, как правило, на начальном этапе проектирования с целью дать возможность разработчику как можно более точно сформулировать свои требования к проектируемому узлу вычислительной техники, то представление логической функции в аналитическом виде в совершенной дизъюнктивной или конъюнктивной нормальной форме позволяет в дальнейшем провести минимизацию этой функции. В лекции показаны многочисленные примеры перехода от одной формы представления функции к другой, а также методы получения совершенных нормальных форм в том случае, если аналитическая запись ФАЛ не является совершенной формой.
Контрольные вопросы и упражнения
- Назовите формы представления логических функций.
- Каким образом составляется таблица истинности ФАЛ?
- Для каких целей используется представление логической функции в виде таблицы истинности?
- Для каких целей используются совершенные формы представления логических функций?
- Как можно получить совершенную дизъюнктивную нормальную форму, используя таблицу истинности этой ФАЛ?
- Представьте СДНФ функции "суммы по модулю 2".
- Как можно получить совершенную конъюнктивную нормальную форму, используя таблицу истинности этой ФАЛ?
- Как можно получить совершенную конъюнктивную нормальную форму, используя таблицу истинности ФАЛ на основе ее совершенной дизъюнктивной нормальной формы?
- Получите СДНФ ФАЛ, СКНФ которой выглядит следующим образом: f(a,b,c,d) = Π(2, 4, 6, 7, 8, 10 , 11, 14).
- Составьте таблицу истинности логической функции, совершенная дизъюнктивная форма которой имеет вид: f(x, y, z) = Σ(1, 2, 6, 7).