1) Задание булевой функции таблицей истинности. Так называется таблица, состоящая из двух частей: в левой части перечисляются все наборы значений аргументов (булевы векторы пространства Bn) в естественном порядке, то есть по возрастанию значений чисел, представляемых этими векторами, а в правой части – значения булевой функции на соответствующих наборах.
Пример. Рассмотрим булеву функцию трех аргументов, называемую мажоритарной (или функцией голосования): она принимает значение 1 на тех и только тех наборах, в которых единиц больше, чем нулей (major – больший).
Так как левая часть таблицы истинности постоянна для всех функций с одинаковым числом аргументов, несколько таких функций могут быть заданы общей таблицей.
Пример. Таблица истинности для f1(x1, x2), f2(x1, x2) и f3(x1, x2).
Теорема о числе булевых функций. Число различных булевых функций, зависящих от n переменных, равно 22n.
Доказательство. Каждая булева функция определяется своим столбцом значений. Столбец является булевым вектором длины m=2n, где n – число аргументов функции. Число различных векторов длины m (а значит и число булевых функций, зависящих от n переменных) равно 2m=22n. •
2) Задание булевой функции характеристическими множествами. Так называются два множества:
M1f, состоящее из всех наборов, на которых функция принимает значение 1, то есть M1f = {α Bn:f(α) = 1};
M0f, состоящее из всех наборов, на которых функция принимает значение 0, то есть M0f = {α Bn:f(α) = 0}.
Пример (мажоритарная функция).
M1f = {011,101,110,111}, M0f = {000,001,010,100}. •
3) Задание булевой функции вектором ее значений.
φf=f(0,0, …, 0)f(0,0, …, 1) … f(1,1, …, 1).
Пример (мажоритарная функция).
φf=00010111. •
4) Задание булевой функции матрицей Грея. Булево пространство задается матрицей Грея, и наборы (клетки матрицы), на которых булева функция f(x1, …, xn) принимает значение 1, отмечаются и называются точками.
Пример (мажоритарная функция).
5) Интервальный способ задания булевой функции. Булеву функцию f(x1, …, xn) можно задать множеством интервалов If = {I1, I2, …, Ik}, объединение которых образует характеристическое множество M1f, то есть I1 I2
…
Ik = M1f. Множество интервалов If называется достаточным для функции f(x1, …, xn).
Пример. Мажоритарная функция может быть задана достаточным множеством If = {I1, I2, I3} интервалов:
Здесь интервалы представлены троичными векторами и изображены на матрице Грея.
В отличие от предыдущих, интервальный способ задания функций многовариантен (одну и ту же булеву функцию можно представить разными множествами интервалов).
Пример. Зададим мажоритарную функцию другим достаточным множеством I'f = {I1, I2, I3, I4} интервалов:
Очевидно, что это множество интервалов избыточно: первый интервал (011) можно удалить.
Определение. Интервал назовем допустимым для булевой функции, если на всех его наборах функция равна 1.
Примеры. I1= – 1 1 – допустимый интервал для мажоритарной функции, I2= 1 0 – – не допустимый.
Определение. Интервал I назовем максимальным для булевой функции f(x1, …, xn), если он является допустимым для этой функции, и не существует другого допустимого интервала I', такого что I I'.
Пример. I1= –11 является максимальным интервалом для мажоритарной функции, а допустимый интервал I2 = 111 не является максимальным, так как I2 I1.
Пример. Зададим мажоритарную функцию множеством I''f = {I1 I2, I3} всех максимальных интервалов.
Определение. Точку булевой функции f(x1, …, xn) назовем ядерной, если она принадлежит ровно одному максимальному для этой функции интервалу. Максимальный интервал называется ядерным, если он содержит ядерную точку.
Пример. Для мажоритарной функции ядерными точками являются 011 (принадлежит только интервалу –11), 101 (принадлежит только интервалу 1 –1) и 110 (принадлежит только интервалу 11 –). Все максимальные интервалы этой функции являются ядерными. •
Очевидно, что все ядерные интервалы входят в любое достаточное множество функции, состоящее из максимальных интервалов.
6) Задание булевой функции формулами будет рассмотрено несколько позже.