Полные системы функций. Теорема Поста о полной системе функций — различия между версиями
(→Формулировка и доказательство критерия) |
|||
Строка 46: | Строка 46: | ||
Рассмотрим немонотонную функцию <tex>f_m</tex>. Существуют такие <tex>x_1, x_2, ..., x_n</tex>, что <tex>f_m(x_1, x_2, ..., x_{i-1}, 0 , x_{i+1}, ..., x_n)</tex> = 1, <tex>f_m(x_1, x_2, ..., x_{i-1}, 1 , x_{i+1}, ..., x_n)</tex> = 0, зафиксируем все <tex>x_1, x_2, ..., x_n</tex>, тогда <tex>f_m(x_1, x_2, ..., x_{i-1}, x, x_{i+1}, ..., x_n)</tex> = ¬x'''.''' | Рассмотрим немонотонную функцию <tex>f_m</tex>. Существуют такие <tex>x_1, x_2, ..., x_n</tex>, что <tex>f_m(x_1, x_2, ..., x_{i-1}, 0 , x_{i+1}, ..., x_n)</tex> = 1, <tex>f_m(x_1, x_2, ..., x_{i-1}, 1 , x_{i+1}, ..., x_n)</tex> = 0, зафиксируем все <tex>x_1, x_2, ..., x_n</tex>, тогда <tex>f_m(x_1, x_2, ..., x_{i-1}, x, x_{i+1}, ..., x_n)</tex> = ¬x'''.''' | ||
− | В итоге | + | В итоге имеем три функции: '''НЕ''', <tex>~0</tex>, <tex>~1</tex>'''.''' |
Используем нелинейную функцию <tex>f_l</tex>'''.''' Среди нелинейных членов <tex>f_l</tex>, выберем тот, в котором минимальное количество элементов, все элементы, кроме двух, в этом члене, сделаем равными 1, оставшиеся 2 назавем <tex>x_1</tex> и <tex>x_2</tex>, а все элементы, не входящие в данный член, сделаем равными 0'''.''' Тогда <tex>f_l</tex> = <tex>x_1</tex>^<tex>x_2</tex> ⊕ [<tex>x_1</tex>] ⊕ [<tex>x_2</tex>] ⊕ [<tex>~1</tex>], где в квадратных скобках указаны члены, которые могут и не присутствовать'''.''' | Используем нелинейную функцию <tex>f_l</tex>'''.''' Среди нелинейных членов <tex>f_l</tex>, выберем тот, в котором минимальное количество элементов, все элементы, кроме двух, в этом члене, сделаем равными 1, оставшиеся 2 назавем <tex>x_1</tex> и <tex>x_2</tex>, а все элементы, не входящие в данный член, сделаем равными 0'''.''' Тогда <tex>f_l</tex> = <tex>x_1</tex>^<tex>x_2</tex> ⊕ [<tex>x_1</tex>] ⊕ [<tex>x_2</tex>] ⊕ [<tex>~1</tex>], где в квадратных скобках указаны члены, которые могут и не присутствовать'''.''' | ||
Строка 62: | Строка 62: | ||
В итоге получаем функцию '''НЕ''', а также либо функцию '''И''', либо функцию '''ИЛИ''', но '''НЕ''' образует базис и с той и с другой функциями. Из того, что через функции '''F''' можно выразить базис, следует, что '''F''' - полная система функций, что и требовалось доказать'''.''' | В итоге получаем функцию '''НЕ''', а также либо функцию '''И''', либо функцию '''ИЛИ''', но '''НЕ''' образует базис и с той и с другой функциями. Из того, что через функции '''F''' можно выразить базис, следует, что '''F''' - полная система функций, что и требовалось доказать'''.''' | ||
}} | }} | ||
+ | |||
== Источники == | == Источники == | ||
* [http://ru.wikipedia.org/wiki/Заглавная_страница Википедия — свободная энциклопедия] | * [http://ru.wikipedia.org/wiki/Заглавная_страница Википедия — свободная энциклопедия] | ||
* Образовательный сайт [http://mini-soft.ru/nstu/diskr/7_.php MiniSoft] | * Образовательный сайт [http://mini-soft.ru/nstu/diskr/7_.php MiniSoft] |
Версия 09:05, 20 октября 2010
Критерий Поста
Критерий Поста — одна из центральных теорем в теории булевых функций, устанавливающая необходимое и достаточное условие для того, чтобы некоторый набор булевых функций обладал достаточной выразительностью, чтобы представить любую булеву функцию. Впервые сформулирован американским математиком Эмилем Постом.
Формулировка и доказательство критерия
Теорема: |
Система булевых функций F является полной тогда и только тогда, когда она не содержится ни в одном из классов , т.е. когда в ней имеется хотя бы одна функция, не сохраняющая 0, хотя бы одна функция, не сохраняющая 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция. |
Доказательство: |
Заметим, что необходимость этого утверждения очевидна, так как если бы все функции из набора К входили в один из перечисленных классов, то и все суперпозиции, а значит, и замыкание набора входило бы в этот класс и класс К не мог быть полным. Докажем достаточность этого утверждения. Рассмотрим функцию, несохраняющую 0 - . (0) = 1. (1) может принимать два значения:а) (1) = 1, тогда (x, x, x, ..., x) = .б) (1) = 0, тогда (x, x, x, ..., x) = ¬x.Рассмотрим функцию, несохраняющую 1 - . (1) = 0. (0) может принимать два значения:а) (0) = 0, тогда (x, x, x, ..., x) = .б) (0) = 1, тогда (x, x, x, ..., x) = ¬x.Возможны 4 варианта: 1) Мы получили функцию НЕ. Используем несамодвойственную функцию .По определению найдется такой вектор , что ( ) = (¬ ). = ( ).Возьмем ( ), где = x, при = 1 и = ¬x, при = 0.Нетрудно заметить, что (0) = (1) => = const. Таким образом мы получили одну из констант.2)Мы получили НЕ и . ¬ = .3)Мы получили НЕ и . ¬ = .4)Мы получили и .Рассмотрим немонотонную функцию . Существуют такие , что = 1, = 0, зафиксируем все , тогда = ¬x.В итоге имеем три функции: НЕ, , .Используем нелинейную функцию . Среди нелинейных членов , выберем тот, в котором минимальное количество элементов, все элементы, кроме двух, в этом члене, сделаем равными 1, оставшиеся 2 назавем и , а все элементы, не входящие в данный член, сделаем равными 0. Тогда = ^ ⊕ [ ] ⊕ [ ] ⊕ [ ], где в квадратных скобках указаны члены, которые могут и не присутствовать.Рассмотрим несколько вариантов: 1) Присутствует член . Возьмем отрицание от и член уберется.2) Присутствуют 3 члена, без : = ^ ⊕ ⊕ . Составив таблицу истинности для этой функции, нетрудно заметить, что она эквивалентна функции ИЛИ.3) Присутствуют 2 члена, без . Посторив две таблицы истинности, для двух различных вариантов, видим, что в обоих случаях функция истинна только в одной точке => СДНФ будет состоять только из одного члена, а если это так, то не составляет труда выразить И, через НЕ и .4) Присутствует 1 член. Выразим И, через НЕ и В итоге получаем функцию НЕ, а также либо функцию И, либо функцию ИЛИ, но НЕ образует базис и с той и с другой функциями. Из того, что через функции F можно выразить базис, следует, что F - полная система функций, что и требовалось доказать. . |
Источники
- Википедия — свободная энциклопедия
- Образовательный сайт MiniSoft