Полные системы функций. Теорема Поста о полной системе функций — различия между версиями
Hekagami (обсуждение | вклад) м (→Полные системы функций) |
Hekagami (обсуждение | вклад) (→Замкнутые классы булевых функций) |
||
Строка 39: | Строка 39: | ||
Класс самодвойственных функций <tex>S</tex>. | Класс самодвойственных функций <tex>S</tex>. | ||
{{Определение | {{Определение | ||
− | |definition=Говорят, что функция '''самодвойственна''', если <tex>f(\overline{x_1},\dots,\overline{x_n})=\overline{f(x_1,\dots,x_n)}</tex>. Иными словами, функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения. | + | |definition=Говорят, что функция '''самодвойственна''' (англ. ''self-dual''), если <tex>f(\overline{x_1},\dots,\overline{x_n})=\overline{f(x_1,\dots,x_n)}</tex>. Иными словами, функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения. |
}} | }} | ||
Класс монотонных функций <tex>M</tex>. | Класс монотонных функций <tex>M</tex>. | ||
{{Определение | {{Определение | ||
− | |definition=Говорят, что функция '''монотонна''', если <tex>\forall i (a_i\ | + | |definition=Говорят, что функция '''монотонна''' (англ. ''monotonic function'') , если <tex>\forall i (a_i \leqslant b_i) \Rightarrow f(a_1,\dots,a_n)\leqslant f(b_1,\dots,b_n)</tex>. |
}} | }} | ||
Класс линейных функций <tex>L</tex>. | Класс линейных функций <tex>L</tex>. | ||
{{Определение | {{Определение | ||
− | |definition=Говорят, что функция '''линейна''', если существуют такие <tex>a_0, a_1, a_2, \dots, a_n</tex>, где <tex>a_i \in \{0, 1\}, \forall i=\overline{1,n}</tex>, что для любых <tex>x_1, x_2, \dots, x_n</tex> имеет место равенство: | + | |definition=Говорят, что функция '''линейна''' (англ. ''linear function''), если существуют такие <tex>a_0, a_1, a_2, \dots, a_n</tex>, где <tex>a_i \in \{0, 1\}, \forall i=\overline{1,n}</tex>, что для любых <tex>x_1, x_2, \dots, x_n</tex> имеет место равенство: |
:<tex>f(x_1, x_2, \dots, x_n) = a_0\oplus a_1\cdot x_1\oplus a_2\cdot x_2 \oplus\dots\oplus a_n\cdot x_n</tex>. | :<tex>f(x_1, x_2, \dots, x_n) = a_0\oplus a_1\cdot x_1\oplus a_2\cdot x_2 \oplus\dots\oplus a_n\cdot x_n</tex>. | ||
}} | }} |
Версия 17:24, 12 декабря 2015
Содержание
Полные системы функций
Определение: |
Если любая булева функция, являющаяся суперпозицией функций некоторого множества, принадлежит этому множеству, то такое множество называют замкнутым (англ. closed set). |
Определение: |
Замыканием (англ. сlosure) множества функций называется такое подмножество всех булевых функций, что любую из этих функций можно выразить через функции исходного множества. |
Определение: |
Множество булевых функций называется полной системой (англ. complete set), если замыкание этого множества совпадает с множеством всех функций. |
Определение: |
Полная система функций называется безызбыточной (англ. irredundant functions), если она перестает быть полной при исключении из неё любого элемента. |
Американский математик Эмиль Пост сформулировал необходимое и достаточное условие полноты системы булевых функций. Для этого он ввел в рассмотрение следующие замкнутые классы булевых функций:
- Функции, сохраняющие константу и
- Самодвойственныые функции
- Монотонные функции
- Линейные функции
Замкнутые классы булевых функций
Класс функций сохраняющих ноль
.Определение: |
Говорят, что функция сохраняет ноль, если | .
Класс функций сохраняющих единицу
.Определение: |
Говорят, что функция сохраняет один, если | .
Класс самодвойственных функций
.Определение: |
Говорят, что функция самодвойственна (англ. self-dual), если | . Иными словами, функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения.
Класс монотонных функций .
Определение: |
Говорят, что функция монотонна (англ. monotonic function) , если | .
Класс линейных функций .
Определение: |
Говорят, что функция линейна (англ. linear function), если существуют такие
| , где , что для любых имеет место равенство:
Количество линейных функций от
переменных равно .Функция является линейной тогда, и только тогда, когда в ее полиноме Жегалкина присутствуют слагаемые, каждое из которых зависит не более чем от одной переменной. Построить полином Жегалкина можно с помощью преобразования Мебиуса.
Формулировка и доказательство критерия Поста
Теорема: |
Набор булевых функций K является полным тогда и только тогда, когда он не содержится полностью ни в одном из классов , т.е. когда в нем имеется хотя бы одна функция, не сохраняющая ноль, хотя бы одна функция, не сохраняющая один, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция. |
Доказательство: |
Заметим, что необходимость этого утверждения очевидна, так как если бы все функции из набора К входили в один из перечисленных классов, то и все суперпозиции, а значит, и замыкание набора входило бы в этот класс и набор К не мог быть полным. Докажем достаточность этого утверждения. Рассмотрим функцию, не сохраняющую ноль — . . может принимать два значения:а) , тогда .б) , тогда .Рассмотрим функцию, не сохраняющую один — . . может принимать два значения:а) , тогда .б) , тогда .Возможны четыре варианта: 1) Мы получили функцию НЕ. Используем несамодвойственную функцию .По определению найдется такой вектор , что . .Возьмем , где , при и , при .Нетрудно заметить, что . Таким образом мы получили одну из констант.2) Мы получили НЕ и . .3) Мы получили НЕ и . .4) Мы получили и .Рассмотрим немонотонную функцию . Существуют такие , что , , зафиксируем все , тогда .В итоге имеем три функции: НЕ, , .Используем нелинейную функцию полинома Жегалкина), выберем тот, в котором минимальное количество элементов. Все аргументы, кроме двух, в этом члене, приравняем единице, оставшиеся два назовем и , а все элементы, не входящие в данный член, сделаем равными нулю. Тогда эта функция будет представима в виде , где в квадратных скобках указаны члены, которые могут и не присутствовать (остальные слагаемые будут равны нулю, поскольку в них есть как минимум один аргумент не входящие в выбранный член, т. к. мы выбрали член, в котором минимальное число элементов). . Среди нелинейных членов (ее представления в видеРассмотрим несколько вариантов:
|
Примеры
Согласно критерию Поста система булевых функций полна тогда и только тогда, когда она не содержится целиком ни в одном из классов
, , , , .В частности, если функция не входит ни в один из классов Поста, она сама по себе формирует полную систему. В качестве примера можно назвать штрих Шеффера или стрелку Пирса.
Широко известны такие полные системы булевых функций:
- (конъюнкция, дизъюнкция, отрицание);
- (конъюнкция, сложение по модулю два, константа один).
Первая система используется, например, для представления функций в виде дизъюнктивных и конъюнктивных нормальных форм, вторая — для представления в виде полиномов Жегалкина.
Первая из упоминавшихся выше полных систем безызбыточной не является, поскольку согласно законам де Моргана либо дизъюнкцию, либо конъюнкцию можно исключить из системы и восстановить с помощью остальных двух функций. Вторая система является безызбыточной — все три её элемента необходимы для полноты. Максимально возможное число булевых функций в базисе — четыре.
Иногда говорят о системе функций, полной в некотором замкнутом классе, и соответственно о базисе этого класса. Например, систему
можно назвать базисом класса линейных функций.