Скачиваний:
132
Добавлен:
02.05.2014
Размер:
1.21 Mб
Скачать

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

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

Элементарной конъюнкцией называется логическое произведение неповторяющихся переменных или их инверсий.

Пример.

Q = X12 X3 4 X5.

Элементарной дизъюнкцией называется логическая сумма не повторяющихся переменных или инверсий.

Пример.

D = X1 + X3 + X4 +5 + X7.

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

Дизъюнктивной нормальной формой называется дизъюнкция элементарных конъюнкций, которые могут быть выражены либо переменными, либо их отрицаниями.

Пример.

f (X1, X2, X3) = 1X2X3 + X2X3.

Конъюнктивной нормальной формой называется конъюнкция элементарных дизъюнкций, которые могут быть выражены либо переменными, либо их отрицаниями.

Пример.

f (X1, X2, X3) = (X1 + 2) (X1 + X3).

В результате эквивалентных преобразований любую логическую функцию можно представить различными ДНФ или КНФ. На практике большое значение имеют совершенные нормальные формы, обеспечивающие единственность представления любой функции. Сформулируем необходимые и достаточные условия того, чтобы она была совершенной (СДНФ):

отсутствие одинаковых слагаемых;

отсутствие в слагаемых одинаковых переменных;

в слагаемых нет одновременно переменных и их инверсий;

каждое слагаемое содержит все переменные функции, которые могут быть инверсиями.

Произвольная логическая функция, заданная аналитическим выражением, может быть приведена к ДНФ путем:

использования правила инверсии, если операция отрицания применена к логическому выражению;

раскрытия скобок;

исключения в конъюнкции повторяющихся переменных или их отрицаний;

удаления всех одинаковых элементарных конъюнкций, кроме одной;

исключения всех конъюнкций, в которых одновременно содержатся переменная и ее отрицание.

Справедливость перечисленных операций вытекает из основных законов и тождественных соотношений алгебры логики.

Пример. Преобразовать к ДНФ логическую функцию

f (X1, X2, X3) = 1 (X2 + X13) +

Используем правило инверсии и раскрываем скобки, тогда

f (X1, X2, X3) = 1 (X2 + X13) + = 1 (X2 + X13) +

+ X2 (1 + ()) = 1 (X2 + X13) + X2 (1 + X23) = 1X2 +

+ X11X3 + 2X1 + 2X3.

Исключаем повторяющиеся конъюнкции, содержащие переменные и их инверсии, а также повторяющиеся одинаковые переменные, входящие в конъюнкцию.

В результате ДНФ имеет вид f (X1, X2, X3) = X1X2 + X2X3.

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

использования правил инверсии;

использования распределительного закона;

использования операции поглощения;

исключения в дизъюнкции повторяющихся переменных или отрицаний;

удаления всех одинаковых элементарных дизъюнкций, кроме одной;

удаления всех дизъюнкций, в которые одновременно входят переменная и ее отрицание.

Справедливость перечисленных операций вытекает из основных аксиом и тождественных соотношений алгебры логики.

Пример. Преобразовать в КНФ логическую функцию

f (X1, X2, X3) = 1(X2 + X1 X3) + .

Используем правило инверсии, тогда

f (X1, X2, X3) = 1 (X2 + X13) + X2 (1 + X23).

Применим распределительный закон, тогда

f (X1, X2, X3) = [X1 + 2 (X1 + 2X3)] [X2 + X13 + X2 (1 +

+ X23)] = (X1 + X2) (1 + 1 + X23) (X2 + X13 + X2) (X2 +

+ X13 + 1 + X13).

Исключим в дизъюнкции повторяющиеся переменные или их отрицания и воспользуемся операцией поглощения. В результате

f (X1, X2, X3) = (1 + X2) (1 + X23) (X2 + X13) (X1 + X2 + X13).

Применим еще раз распределительный закон, исключим из полученного выражения дизъюнкцию, содержащую одновременно переменную X1 и ее отрицание Х1, а также исключим повторяющиеся дизъюнкции, в результате получим КНФ функции

f (X1, X2, X3) = (1 + X2) (1 + 3) (X1 + X2) (X2 + 3) (X1 + X2 + X3).

Условия образования совершенной конъюнктивной нормальной формы (СКНФ) аналогичны, но вместо слагаемых фигурируют множители, а вместо элементарных конъюнкций - элементарные дизъюнкции.

Пример. Преобразовать в СДНФ логическую функцию

f (X1, X2, X3) = X1X2 + X2X3.

Так как рассматриваемая функция зависит от трех переменных Х1, Х2, Х3, первую конъюнкцию умножим на выражение (X3 + 3) = 1, а вторую - на (Х1 + 1) = 1.

f (X1, X2, X3) = 1X2 (X3 + 3) + X23 (X1 + 1) = 1X2X3 +

+ X1X23 + X1X23 + X1X23 = 1X2X3 + 1X23 + X1X23.

В СДНФ может быть представлена любая функция, кроме тождественно равной нулю (f (X1, X2, X3) = 0). Замечательным свойством СДНФ является то, что представление в ней логической функции единственно. Элементарные конъюнкции, входящие в СДНФ функции, носят название конституент единицы (иногда в литературе используют термин минтерм). Так как конституенты единицы содержат в прямом или инверсном виде все переменные, от которых зависит функция, то она обращается в единицу на единственном наборе значений переменных.

Ранг определяется количеством переменных, входящих в данный минтерм.

Преобразование КНФ в СКНФ осуществляется путем выполнения следующих операций:

- прибавления к каждой элементарной дизъюнкции конъюнкций переменных или отрицаний, если они не входят в данную элементарную дизъюнкцию;

- использования распределительного закона;

- удаления всех одинаковых элементарных дизъюнкций, кроме одной.

Пример. Преобразовать в СКНФ логическую функцию

f (X1, X2, X3) = (1 + X2) (1 + X3) (X1 + X2) (X2 + 3) (1 + X2 + +3).

Так как рассматриваемая функция зависит от трех переменных (X1, X2, X3), в первую дизъюнкцию прибавим выражение 33, во - вторую - 22, в третью - Х33, в четвертую - Х11, т.е.

f(X1, X2, X3) = (1 + X2 + X33) (1 + 3 + X22) (X1 + X2 + X33)

(X2 + 3 + X11) (X1 + X2 + 3)

Применим второй распределительный закон к выражениям в четырех скобках и удалим повторяющиеся элементарные первые дизъюнкции. В результате получим искомую СКНФ функции

f (X1, X2, X3) = (1 + 2 + 3) (1 + X2 + X3) (X1 + X2 + X3

(X1 + X2 + 3) (1 + X2 + 3).

В СКНФ может быть представлена любая логическая функция, кроме тождественно равной единице f (X) = 1.

Замечательным свойством СКНФ является то, что представление в ней логической функции единственно.

Элементарные дизъюнкции, входящие в СКНФ функции, носят название конституент нуля. Каждая конституента, входящая в СКНФ, обращается в нуль на единственном наборе значений переменных, который является запрещенным набором функции. Следовательно, число запрещенных наборов логической функции совпадает с числом конституент нуля, входящих в ее СКНФ. В литературе конституенту нуля иногда называют макстермом.

При синтезе узлов дискретных автоматов их логические функции задаются таблицами истинности, на основании которых составляются аналитические выражения СДНФ или СКНФ. Правила составления этих совершенных нормальных форм сводятся к следующему.

1. Для составления СДНФ логической функции, заданной таблицей истинности, необходимо составить дизъюнкцию элементарных конъюнкций тех строк переменных, где функция принимает значение единицы. Здесь элементарные конъюнкции называют конституенты единицы.

2. Для составления СКНФ логической функции, заданной таблицей истинности, необходимо составить конъюнкцию элементарных дизъюнкций тех строк переменных, где функция принимает значение нуля. Здесь элементарные дизъюнкции называют конституентой нуля.

Пример. Составить СДНФ и СКНФ логической функции f (Х123), значения которой заданы таблицей 1.18.

Таблица 1.18

№ п/п

Х1

Х2

Х3

f (Х123)

0

1

2

3

4

5

6

7

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

1

0

0

1

1

1

0

1

В соответствии с правилами СДНФ представляется дизъюнкцией пяти элементарных конъюнкций

f (X1, X2, X3) = 123 + 1X2X3 + X123 + X12X3 + X1X2X3,

а СКНФ представляется конъюнкцией трех элементарных дизъюнкций, где функция принимает значение нуля

f (X1, X2, X3) = (X1 + X2 + 3) (X1 + 2 + X3) (1 + 2 + X3).

При этом, если переменная Xi равна нулю, она записывается - Xi, если же она равна единице, то пишут i.

Приведение функции, заданной в СДНФ, к СКНФ достигается многократным применением закона инверсии.