logo search
методичка мат лог

Классы булевых функций.

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

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

Рассмотрим некоторые функционально замкнутые классы булевых функций.

  1. Через Т0 обозначается класс функций, сохраняющих 0, т.е. функций удовлетворяющих условию f(0,0,…,0)=0.

  2. Через Т1 обозначается класс функций, сохраняющих 1, т.е. функций, удовлетворяющих условию f(1,1,…,1)=1.

Заметим, что х1х2 Т0, а х1х2  Т1, х12  Т0, а х12  Т1, т.е. эти классы функций различны и не совпадают с классом всех булевых функций.

Поскольку элементарные суперпозиции не выводят из классов Т0 и Т1 соответственно, то они функционально замкнуты.

  1. Пусть f(x1, x2, …, xn) – булева функция. Функция f*(x1, x2,…,xn) называется двойственной f(x1, x2, …, xn), если f*(x1, x2, …, xn)=f(x1, x2, …, xn).Функция f(x1, …, xn) называется самодвойственной, если f(x1, …, xn)=f*(x1, …, xn).

Класс самодвойственных функций обозначается через S; он функционально замкнут.

  1. Функция f(x1, x2, …, xn) называется линейной, если f(x1, x2, …, xn)=a0+a1x1+a2x2+ … + anxn, где ai {0;1}.

Класс линейных функций обозначается через L. Класс L. Функционально замкнут.

  1. Введем отношение частичного порядка на множестве наборов значений переменных.

Говорят, что набор =(1, …, n) предшествует набору  =(1, …, n) , где i {0,1}, i {0,1}, i=1, …, n, если i  i для любого i. Обозначается   .

Например, (0, 1, 0, 1)  (0, 1, 1, 1), а наборы (0, 1, 1) и (1,0,1) несравнимы. Введенное отношение  есть отношение частичного порядка.

Функция f(x1, x2, …, xn) называется монотонной, если для любых наборов значений переменных  и  от таких, что   , имеем f()  f().

Класс монотонных функций обозначается через М.

Класс М функционально замкнут.

Классы Т0, Т1, S, L, M неполные и попарно различные, поскольку можно привести примеры булевых функций, не принадлежащих ни одному из этих классов, и примеры функций, принадлежащих одному из любых двух классов, но не принадлежащих другому. Кроме перечисленных классов можно указать и много других функционально замкнутых классов. Оказывается, что для проверки полноты системы булевых функций можно ограничиться рассмотренными пятью функциональными классами.

Выявление полных систем функций имеет важное теоретическое и практическое значение, в частности, при разработке автоматических устройств и электронных вычислительных машин.

Необходимые и достаточные условия полноты системы булевых функций были найдены в 1921 году американским математиком Э.Постом.

Теорема Поста: Для того, чтобы система булевых функций {f1, …, fn} была полной необходимо и достаточно, чтобы для каждого из классов Т0, Т1, L, M и S нашлась функция fi из системы, не принадлежащая этому классу.