Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА ч2 КЛ.doc
Скачиваний:
27
Добавлен:
20.08.2019
Размер:
16.45 Mб
Скачать

5.2 Основные свойства и алгоритм получения сднф, скнф

5.2.1 Общие свойства сднф

Анализируя функции логики записанные в СДНФ можно выделить ряд свойств:

-все конъюнктивные термы СДНФ являются конституентами 1, т.е. минтермами;

-в СДНФ нет двух одинаковых минтермов;

-в СДНФ ни один минтерм не содержит двух одинаковых множителей (переменных);

-в СДНФ ни один минтерм не содержит вместе с переменной и её отрицание;

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

5.2.2 Алгоритм записи сднф

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

Таблица 5.2-Таблица функционирования ЦА

x1

x2

x3

f(x)

x1

x2

x3

f(x)

0

0

0

0

0

0

1

1

0

1

0

1

0

0

0

1

1

1

1

1

0

0

1

1

0

1

0

1

1

0

1

0

Алгоритм записи ЛФ в СДНФ имеет следующую последовательность:

-выбрать из таблицы истинности первую строку, в которой f(x)= l;

-сформировать из переменных этой строки конъюнктивный терм (минтерм) в соответствии с правилом

-поставить оператор разделения + и перейти к поиску следующей строки, где f(x)=1;

-если строк с f(x) = l больше нет, то перейти к окончанию записи СДНФ;

-конец.

Для таблицы 5.2, в соответствии с этим алгоритмом, имеем следующую СДНФ:

fсднф(x1, x2, x3) = x2 x3 + x1 + x1 x2 .

Для записи ЛФ использовались операции И, ИЛИ, НЕ.

5.2.3 Свойства скнф

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

-все дизъюнктивные термы СКНФ являются конституэнтами 0, т.е. макстермами;

-в СКНФ нет двух одинаковых макстермов;

-в СКНФ макстермы не содержат двух одинаковых переменных;

-в СКНФ макстерм не содержит вместе с переменной и её отрицание;

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

5.2.4 Алгоритм записи скнф

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

-выбрать из таблицы первую строку, где f(x)= 0;

-сформировать дизъюнктивный терм (макстерм) в соответствии с правилом

-поставить разделяющие макстермы круглые скобки и оператор логического умножения и перейти к следующей строке где f(x)=0;

-если строк с f(x) = 0 нет, то перейти к окончанию записи СКНФ;

-конец.

Решение для таблицы 5.2. В соответствии с алгоритмом имеем СКНФ:

fскнф(x1,x2,x3)=(x1+x2+x3)(x1+x2+ )(x1+ +x3

·( +x2+ )( + + ).

Для представления СКНФ использовались операции И, ИЛИ, НЕ.

5.3 Способы преобразования днф и кнф в сднф и скнф

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

Произвольная ДНФ переводится в СДНФ по правилу

fсднф = Fi(xi + ) (5.5),

где - переменная, которая не входит в данный терм.

Например, логическую функцию, заданную в ДНФ

f(x1, x2, x3, x4) = x1 + x2

необходимо преобразовать в СДНФ.

Решение. Преобразуем термы в соответствии с 5.5.

F1=x1 (x3+ )(x4+ )=(x1 x3+x1 )(x4+ )=

=x1 x3x4+x1 x3 +x1 x4+x1 ;

F2=x2 (x1+ )=x1x2 + x2

тогда,

f(x1,x2,x3,x4)=x1 x3x4+x1 x3 +x1 x4+

+x1 +x1 x2 + x2 .

Произвольная нормальная конъюнктивная форма КНФ преобразуется в СКНФ по формуле:

fскнф=Fi+xi =(Fi+xi)(Fi+ ),

где xi - переменная, которой нет в данном терме.

Например, преобразовать в СКНФ функцию:

f(x1,x2,x3)=(x1+x2)(x1+x2+x3)=[(x1+x2)+x3 ](x1+x2+x3)=

=(x1+x2+x3)(x1+x2+ )(x1+x2+x3)=(x1+x2+x3)(x1+x2+ ).