logo search
discrete_math1

24. Разложение булевых функций в сднф и скнф.

Определение. Функцияотnаргументовназывается булевой функцией (или функцией алгебры логики), если каждому наборуона ставит в соответствие число.

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

Теорема.Каждую булеву функциюможно представить в виде дизъюнктивной формы:, где 1 ≤ m ≤ n.

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

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

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

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

Пример.Функция «голосования»всегда принимает то значение, которое принимает большинство её аргументов.

x y z

f (x,y,z)

0 0 0

0

0 0 1

0

0 1 0

0

0 1 1

1

1 0 0

0

1 0 1

1

1 1 0

1

1 1 1

1


Перейдя к табличному заданию этой функции, выделим те наборы, на которых она обращается в единицу. Это наборы (011), (101), (110) и (111). СДНФ функции «голосования» будет иметь четыре слагаемых:

.

На остальных четырех наборах функция h(x,y,z) обращается в ноль. СКНФ функции «голосования» будет иметь четыре множителя:

.