logo
discrete_math1

20. Элементарные булевы функции и способы их задания (табличный, векторный, формульный, графический, карта Карно).

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

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

–функция тождественный ноль (константа 0),

–функция тождественная единица (константа 1),

–тождественная функция,

–функция отрицание х (читается «не х»).

(011) (111)

(001) (101)

(010) (110)

(000) (100)

Элементы множества можно сопоставить вершинамn-мерного единич­ного куба (на рисунке изображена проекция 3-мерного куба на плос­кость). Элементы этого множества можно считать двоичной записью чисел 0, 1, 2,…, 2n–1. Это графический способ задания булевой функции.

х1 х2

g0

g1

g2

g3

g4

g5

g6

g7

g8

0 0

0

1

0

0

0

1

1

1

1

0 1

0

1

1

0

1

0

1

0

1

1 0

0

1

1

0

1

0

0

0

1

1 1

0

1

1

1

0

1

1

0

0

В таблице перечислены некоторые булевы функции от двух аргументов х1и х2:

–константа 0,

–константа 1,

–дизъюнкция (логическое сложение, «х1или х2»),

–конъюнкция (логическое умножение, «х1и х2»),

–сложение по модулю 2,

–эквиваленция,

–импликация (логическое следование),

–стрелка Пирса (антидизъюнкция),

–штрих Шеффера (антиконъюнкция).

С помощью таблицы можно задать булеву функцию от любого числа аргументов. Таблица для функции от nаргументов содержит 2nстрок. В каждой строке записан набор значений аргумента длиныnиз нулей и единиц, а также значение функции на этом наборе. При заполнении строк таблицы будем придерживаться правила: для каж­догоi= 1,2,3,…,2nнабор значений аргумента вi-й строке пред­став­ляет собой запись числа (i – 1) в двоичной системе счисления. Таким образом, значения самой функции в таблице будут записаны в виде столбца из нулей и единиц высоты 2n. Если этот столбец записать в виде отдельной строки, то получим так называемый векторный способ задания булевой функции. Например, штрих Шеффера можно задать векторным способом. Поскольку имеется ровноразличных наборов длины 2nиз нулей и единиц и каждый из них можно рассматривать как вектор, задающий некоторую булеву функцию отnаргументов, то существует ровноразличных булевых функций отnаргументов.

Карта Карно – это таблица, которая является ещё одним способом задания булевой функции. Каждому набору значений аргументов во внутренней части этой таблице соответствует одна клетка.

Пример.Карта Карно для функцииf(x,y,z) = (00110001)

ху

00

01

11

10

z

0

0

1

0

0

1

0

1

1

0

Внутренняя часть карты состоит из 8 клеток, в каждой из которых записано значение функции на определенном наборе значений аргументов. Данная функция обращается в единицу только на трех наборах – (010), (011) и (110)