Это не официальный сайт wikipedia.org 01.01.2023

Совершенная дизъюнктивная нормальная форма — Википедия

Совершенная дизъюнктивная нормальная форма

(перенаправлено с «СДНФ»)

Соверше́нная дизъюнкти́вная норма́льная фо́рма (СДНФ) — одна из форм представления функции алгебры логики (булевой функции) в виде логического выражения. Представляет собой частный случай ДНФ, удовлетворяющий следующим трём условиям[1]:

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

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

Краткая теорияПравить

ДНФ представляет собой «сумму произведений», причём в качестве операции «умножения» выступает операция И (конъюнкция), а в качестве операции «сложения» — операция ИЛИ (дизъюнкция). Сомножителями являются различные переменные, причём они могут входить в произведение как в прямом, так и в инверсном виде.

Ниже приведён пример ДНФ:

F ( A , B , C , D , E ) = A ¯ B + A B ¯ E + B C ¯ D .  

В составе ДНФ, вообще говоря, могут присутствовать повторяющиеся слагаемые, а в составе каждого слагаемого — повторяющиеся сомножители, например:

F ( A , B , C , D , E ) = A ¯ B B ¯ + A B ¯ E A + B C ¯ D + B C ¯ D .  

С математической точки зрения такое клонирование бессмысленно, так как в булевой алгебре умножение любого выражения на само себя и сложение выражения с самим собой не меняет результата ( x + x = x ; x x = x  ), а сложение выражения с собственной инверсией и умножение на собственную инверсию даёт константы ( x + x ¯ = 1 ; x x ¯ = 0  ). В последнем выражении можно удалить повторяющиеся слагаемые и сомножители следующим образом:

F ( A , B , C , D , E ) = A ¯ B B ¯ + A B ¯ E A + B C ¯ D + B C ¯ D = A ¯ ( B B ¯ ) + ( A A ) B ¯ E + B C ¯ D = A ¯ 0 + A B ¯ E + B C ¯ D = A B ¯ E + B C ¯ D .  

По этой причине ДНФ с повторяющимися слагаемыми и сомножителями используются обычно только со вспомогательными целями, например, при аналитическом преобразовании выражений.

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

Ниже приведён пример СДНФ:

F ( A , B , C , D , E ) = A ¯ B C D E + A B ¯ C D ¯ E + A B C ¯ D E ¯ .  

Значение СДНФ состоит в том, что

  • для каждой конкретной функции её СДНФ единственна и однозначна;
  • СДНФ имеет однозначное соответствие с таблицей истинности функции. Каждое слагаемое СДНФ соответствует одной строке в таблице истинности, где функция равна единице. Таким образом, число слагаемых в СДНФ равно числу единичных значений, которые принимает булева функция в своей области определения;
  • СДНФ элементарно получается из таблицы истинноcти функции;
  • СДНФ удобна в качестве базового выражения для минимизации функции, в ней особенно просто находятся слагаемые, пригодные для «склейки».

Пример нахождения СДНФПравить

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

x 1   x 2   x 3   f ( x 1 , x 2 , x 3 )  
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0

В ячейках результата f ( x 1 , x 2 , x 3 )   отмечаются лишь те комбинации, которые приводят логическое выражение в состояние единицы. Далее рассматриваются значения переменных, при которых функция равна 1. Если значение переменной равно 0, то она записывается с инверсией. Если значение переменной равно 1, то без инверсии.

Первая строка содержит 1 в указанном поле. Отмечаются значения всех трёх переменных, это:

  • x 1 = 0  
  • x 2 = 0  
  • x 3 = 0  

Нулевые значения — тут все переменные представлены нулями — записываются в конечном выражении инверсией этой переменной. Первый член СДНФ рассматриваемой функции выглядит так: x 1 ¯ x 2 ¯ x 3 ¯  

Переменные второго члена:

  • x 1 = 0  
  • x 2 = 0  
  • x 3 = 1  

x 3   в этом случае будет представлен без инверсии: x 1 ¯ x 2 ¯ x 3  

Таким образом анализируются все ячейки f ( x 1 , x 2 , x 3 )  . Совершенная ДНФ этой функции будет дизъюнкцией всех полученных членов (элементарных конъюнкций).

Совершенная ДНФ этой функции:

f ( x 1 , x 2 , x 3 ) = ( x 1 ¯ x 2 ¯ x 3 ¯ ) ( x 1 ¯ x 2 ¯ x 3 ) ( x 1 ¯ x 2 x 3 ¯ ) ( x 1 x 2 x 3 ¯ )  

См. такжеПравить

ПримечанияПравить

  1. Виноградова М.С., Ткачев С.Б. Булевы функции. — М.: Изд-во МГТУ им. Н.Э. Баумана, 2007. — 32 с.
  2. Математическая логика. — Пермь: Изд-во ПГТУ, 1998. — 17 с. Архивная копия от 9 апреля 2016 на Wayback Machine