Полные системы функций. Теорема Поста о полной системе функций — различия между версиями
(использован вики-шаблон, переформулированы определения, исправлены мелкие ошибки, источники литературы, ссылка на "полные сис. функ.") |
м (исправлены мелкие ошибки) |
||
Строка 1: | Строка 1: | ||
== Полная система функций == | == Полная система функций == | ||
− | Система [[Определение булевой функции|булевых функций]] называется ''полной'', если можно построить их [[Суперпозиции|суперпозицию]], тождественную любой другой заранее заданной функции. Говорят ещё, что замыкание данной системы совпадает с множеством < | + | {{Определение |
− | + | |definition=Система [[Определение булевой функции|булевых функций]] называется '''полной''', если можно построить их [[Суперпозиции|суперпозицию]], тождественную любой другой заранее заданной функции. Говорят ещё, что замыкание данной системы совпадает с множеством <tex>P_2</tex>. | |
+ | }} | ||
Американский математик Эмиль Пост ввёл в рассмотрение следующие замкнутые классы булевых функций: | Американский математик Эмиль Пост ввёл в рассмотрение следующие замкнутые классы булевых функций: | ||
* Функции, сохраняющие константу <math>T_0</math> и <math>T_1</math>; | * Функции, сохраняющие константу <math>T_0</math> и <math>T_1</math>; | ||
Строка 9: | Строка 10: | ||
Заметим, что существуют функции, не входящие ни в один из классов Поста. Любая такая функция сама по себе образует полную систему. В качестве примеров можно назвать штрих Шеффера или стрелку Пирса. | Заметим, что существуют функции, не входящие ни в один из классов Поста. Любая такая функция сама по себе образует полную систему. В качестве примеров можно назвать штрих Шеффера или стрелку Пирса. | ||
− | |||
− | |||
− | |||
== Замкнутые классы булевых функций == | == Замкнутые классы булевых функций == | ||
Класс функций <tex>T_0</tex>. | Класс функций <tex>T_0</tex>. | ||
{{Определение | {{Определение | ||
− | |definition=Говорят, что функция сохраняет константу 0, если <tex>f(0, 0, \dots, 0) = 0</tex>. | + | |definition=Говорят, что функция '''сохраняет константу 0''', если <tex>f(0, 0, \dots, 0) = 0</tex>. |
}} | }} | ||
Строка 22: | Строка 20: | ||
Класс функций <tex>T_1</tex>. | Класс функций <tex>T_1</tex>. | ||
{{Определение | {{Определение | ||
− | |definition=Говорят, что функция сохраняет константу 1, если <tex>f(1, 1, \dots, 1) = 1</tex>. | + | |definition=Говорят, что функция '''сохраняет константу 1''', если <tex>f(1, 1, \dots, 1) = 1</tex>. |
}} | }} | ||
Строка 28: | Строка 26: | ||
Класс самодвойственных функций <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=Говорят, что функция '''самодвойственна''', если <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\le b_i) \Rightarrow f(a_1,\dots,a_n)\le f(b_1,\dots,b_n)</tex>. | + | |definition=Говорят, что функция '''монотонна''', если <tex>\forall i (a_i\le b_i) \Rightarrow f(a_1,\dots,a_n)\le 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=Говорят, что функция '''линейна''', если существуют такие <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>. | ||
}} | }} | ||
Строка 44: | Строка 42: | ||
Функция является линейной тогда, и только тогда, когда в ее полиноме [[Полином_Жегалкина|Жегалкина]] присутствуют слагаемые, каждое из которых зависит не более чем от одной переменной. Построить полином Жегалкина можно с помощью [[Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина|преобразования Мебиуса]]. | Функция является линейной тогда, и только тогда, когда в ее полиноме [[Полином_Жегалкина|Жегалкина]] присутствуют слагаемые, каждое из которых зависит не более чем от одной переменной. Построить полином Жегалкина можно с помощью [[Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина|преобразования Мебиуса]]. | ||
+ | |||
+ | == Критерий Поста == | ||
+ | Критерий Поста — одна из центральных теорем в теории булевых функций, устанавливающая необходимое и достаточное условие для того, чтобы некоторый набор булевых функций обладал достаточной выразительностью, чтобы представить любую булеву функцию. Впервые сформулирован американским математиком Эмилем Постом в 1941г. | ||
== Формулировка и доказательство критерия == | == Формулировка и доказательство критерия == | ||
Строка 103: | Строка 104: | ||
== Примеры полных систем булевых функций от двух переменных == | == Примеры полных систем булевых функций от двух переменных == | ||
− | Широко известна [[Представление функции формулой, полные системы функций|полная система функций]] <tex>\left\{\land,\lor,\neg\right\}</tex>. Однако, эта система функций не является безызбыточной, т. к. функцию <tex>\land</tex> можно выразить через <tex>\lor</tex> и <tex>\neg</tex>. Система функций <tex>\left\{\lor,\neg\right\}</tex> | + | Широко известна [[Представление функции формулой, полные системы функций|полная система функций]] <tex>\left\{\land,\lor,\neg\right\}</tex>. Однако, эта система функций не является безызбыточной, т. к. функцию <tex>\land</tex> можно выразить через <tex>\lor</tex> и <tex>\neg</tex>. Система функций <tex>\left\{\lor,\neg\right\}</tex> полная, т. к. функция <tex>\lor</tex> является несамодвойственной и нелинейной, а функция <tex>\neg</tex> не сохраняет 0, не сохраняет 1 и немонотонна. Система функций <tex>\left\{\land,\neg\right\}</tex> также является полной, т. к. функция <tex>\land</tex> является несамодвойственной и нелинейной, а функция <tex>\neg</tex> не сохраняет 0, не сохраняет 1 и немонотонна. Система функций <tex>\left\{\land,\lor,\neg\right\}</tex> используется для представления функций в [[СДНФ|СДНФ]] и [[СКНФ|СКНФ]]. |
− | Также существуют полные системы функций, состоящие только из одной функции. Это <tex>\triangledown</tex> и <tex>\downarrow</tex>. | + | Также существуют полные системы функций, состоящие только из одной функции. Это штрих Шеффера (<tex>\triangledown</tex>) и стрелка Пирса(<tex>\downarrow</tex>). |
Версия 01:44, 17 октября 2011
Содержание
Полная система функций
Определение: |
Система булевых функций называется полной, если можно построить их суперпозицию, тождественную любой другой заранее заданной функции. Говорят ещё, что замыкание данной системы совпадает с множеством . |
Американский математик Эмиль Пост ввёл в рассмотрение следующие замкнутые классы булевых функций:
- Функции, сохраняющие константу и ;
- Самодвойственные функции ;
- Монотонные функции ;
- Линейные функции .
Заметим, что существуют функции, не входящие ни в один из классов Поста. Любая такая функция сама по себе образует полную систему. В качестве примеров можно назвать штрих Шеффера или стрелку Пирса.
Замкнутые классы булевых функций
Класс функций
.Определение: |
Говорят, что функция сохраняет константу 0, если | .
Класс функций
.Определение: |
Говорят, что функция сохраняет константу 1, если | .
Класс самодвойственных функций
.Определение: |
Говорят, что функция самодвойственна, если | . Иными словами, функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения.
Класс монотонных функций .
Определение: |
Говорят, что функция монотонна, если | .
Класс линейных функций .
Определение: |
Говорят, что функция линейна, если существуют такие
| , где , что для любых имеет место равенство:
Очевидно, что количество линейных функций от
переменных равно .Функция является линейной тогда, и только тогда, когда в ее полиноме Жегалкина присутствуют слагаемые, каждое из которых зависит не более чем от одной переменной. Построить полином Жегалкина можно с помощью преобразования Мебиуса.
Критерий Поста
Критерий Поста — одна из центральных теорем в теории булевых функций, устанавливающая необходимое и достаточное условие для того, чтобы некоторый набор булевых функций обладал достаточной выразительностью, чтобы представить любую булеву функцию. Впервые сформулирован американским математиком Эмилем Постом в 1941г.
Формулировка и доказательство критерия
Теорема: |
Система булевых функций F является полной тогда и только тогда, когда она не содержится полностью ни в одном из классов , т.е. когда в ней имеется хотя бы одна функция, не сохраняющая 0, хотя бы одна функция, не сохраняющая 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция. |
Доказательство: |
Заметим, что необходимость этого утверждения очевидна, так как если бы все функции из набора К входили в один из перечисленных классов, то и все суперпозиции, а значит, и замыкание набора входило бы в этот класс и класс К не мог быть полным. Докажем достаточность этого утверждения. Рассмотрим функцию, несохраняющую 0 — . . может принимать два значения:а) , тогда .б) , тогда .Рассмотрим функцию, несохраняющую 1 — . . может принимать два значения:а) , тогда .б) , тогда .Возможны 4 варианта: 1) Мы получили функцию НЕ. Используем несамодвойственную функцию .По определению найдется такой вектор , что . .Возьмем , где , при и , при .Нетрудно заметить, что . Таким образом мы получили одну из констант.2)Мы получили НЕ и . .3)Мы получили НЕ и . .4)Мы получили и .Рассмотрим немонотонную функцию . Существуют такие , что , , зафиксируем все , тогда .В итоге имеем три функции: НЕ, , .Используем нелинейную функцию . Среди нелинейных членов , выберем тот, в котором минимальное количество элементов, все элементы, кроме двух, в этом члене, сделаем равными 1, оставшиеся 2 назовем и , а все элементы, не входящие в данный член, сделаем равными 0. Тогда , где в квадратных скобках указаны члены, которые могут и не присутствовать.Рассмотрим несколько вариантов:
|
Примеры полных систем булевых функций от двух переменных
Широко известна полная система функций . Однако, эта система функций не является безызбыточной, т. к. функцию можно выразить через и . Система функций полная, т. к. функция является несамодвойственной и нелинейной, а функция не сохраняет 0, не сохраняет 1 и немонотонна. Система функций также является полной, т. к. функция является несамодвойственной и нелинейной, а функция не сохраняет 0, не сохраняет 1 и немонотонна. Система функций используется для представления функций в СДНФ и СКНФ.
Также существуют полные системы функций, состоящие только из одной функции. Это штрих Шеффера (
) и стрелка Пирса( ).