Тверской государственный университет
Опубликован: 21.08.2007 | Доступ: свободный | Студентов: 3170 / 267 | Оценка: 4.08 / 3.92 | Длительность: 15:40:00
ISBN: 978-5-9556-0110-6
Специальности: Программист, Математик
Лекция 5:

Полные системы функций и теорема Поста

< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Аннотация: Замкнутые классы функций. Полные системы булевых функций. Замкнутость классов функций, сохраняющих 0, функций, сохраняющих 1, самодвойственных функций, монотонных функций и линейных функций. Критерий полноты системы булевых функций (теорема Поста)

Замкнутые классы функций

Пусть \mathbf{P}=\bigcup_{n=0}^\infty \mathcal{P}_n - это множество всех булевых функций. В предыдущем разделе мы установили, что любую функцию из \mathbf{P} можно задать формулой над системой F_{B}=\{ \neg , \wedge , \vee \} (в качестве таких формул можно, например, взять соответствующие ДНФ и КНФ). Такие системы функций называются полными.

Определение 5.1. Система булевых функций F называется полной,если формулами над этой системой можно задать любую булеву функцию из \mathbf{P} .

Другим уже известным нам примером полной системы функций является система FJ={ 0, 1, *, +}, позволяющая задать произвольную булеву функцию с помощью многочлена Жегалкина. Разумеется, не всякая система является полной. Например, формулами над системой \{ \vee \} невозможно выразить функцию тождественно равную 0 (почему?).Наша цель в этом разделе - найти критерий, позволяющий по системе функций определять ее полноту.

Для исследования полноты полезно следующее понятие.

Определение 5.2. Замыкание [F] системы функций F - это множество всех функций, которые можно задать с помощью формул над F .

Тогда определение полной системы можно переформулировать так:

система F является полной тогда и только тогда, когда [F] = \mathbf{P} .

Замыкание обладает следующими основными свойствами.

Предложение 5.1.

  1. F \subseteq [F].
  2. [[F]] = [F].
  3. F \subseteq  G \Rightarrow  [F] \subseteq  [G].
  4. Если система F является полной и F \subseteq [G], то и система G является полной.

Доказательство. Все эти утверждения достаточно просто следуют из определения замыкания. Например, справедливость пункта (2) следует из того, что всякая функция из [F] задается некоторой формулой над F, а тогда всякая функция из [[F]], которая задается суперпозицией функций из [F], задается также некоторой формулой над F. Пункт (3) очевиден, а пункт (4) следует из (2) и (3):

F \subseteq  [G] \Rightarrow  [F] \subseteq  [[G]] \Rightarrow  [F] \subseteq  [G] и так как [F] = \mathbf{P}, то и [G] = \mathbf{P}.

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

Например, законы де Моргана позволяют выразить \vee через пару \neg , \wedge: X \vee  Y \equiv  \neg  (\neg  X \wedge  \neg  Y) и \wedge - через пару \neg , \vee: X \wedge  Y \equiv  \neg  (\neg  X \vee  \neg  Y). Поэтому каждая из систем F_{\wedge }=\{ \neg ,\wedge \} и F_{\vee }=\{ \neg ,\vee \} также является полной. Эквивалентности (7) и (8) позволяют выразить \vee через пару \neg , \to: X \vee  Y \equiv  \neg  X \to  Y. Следовательно, полной будет и система F_{\to }=\{ \neg ,\to \}.

Имеются ли полные системы из одной двуместной функции? Да. Рассмотрим систему, { | }, включающую лишь штрих Шеффера. Напомним, что (X |Y) \equiv  \neg  (X \wedge  Y). Тогда нетрудно проверить, что \neg  X \equiv  (X | X) и (X \wedge  Y) \equiv  ((X | Y)|(X | Y)). Следовательно, система { | } полная.

Определение 5.3. Система функций F называется замкнутой, если F = [F] .

Очевидно, что замкнутая система F, не содержащая всех функций из \mathbf{P}, не является полной.

Далее в этом разделе мы будем использовать верхний индекс в круглых скобках Для указания числа аргументов функции, т.е. f(n) означает, что f 
\in \mathcal{P}_n.

Определим пять важных замкнутых систем.

Определение 5.4.

(1,2) Функция f^{(n)} \in \mathbf{P} сохраняет 0 (сохраняет 1),если f(0,0,... ,0)=0 ( f(1,1,...,1) = 1 ). Класс всех функций, сохраняющих 0, обозначим через \mathbf{S}_0, а класс всех функций, сохраняющих 1, - через \mathbf{S}_1.

(3) Функция f^{(n)} \in \mathbf{P} называется самодвойственной, если для любого набора аргументов (\sigma_1, \sigma_2, \ldots, 
\sigma_n) \in \mathbf{B}^n имеет место равенство:

f(\sigma_1, \sigma_2, \ldots, \sigma_n) = \neg f(\neg\sigma_1,\neg \sigma_2, \ldots,\neg 
\sigma_n).

Таким образом, самодвойственные функции принимают на противоположных наборах противоположные значения. Класс всех самодвойственных функций обозначим через \mathbf{S}.

(4) Функция f^{(n)} \in \mathbf{P} называется линейной, если она может быть задана линейным многочленом Жегалкина вида

\alpha_0 + \alpha_1 X_1 + \alpha_2 X_2 + \ldots \alpha_n X_n,

где \alpha _{i} \in  \{ 0, 1\} при i=0, 1, 2, ..., n.

Класс всех линейных функций обозначим через \mathbf{L}.

(5) Функция f^{(n)} \in \mathbf{P} называется монотонной, если для любых двух наборов аргументов (\sigma_1, \sigma_2, \ldots, \sigma_n)\in \mathbf{B}^n и (\rho_1, \rho_2, \ldots, \rho_n) \in \mathbf{B}^n таких, что для всех j \in  [1,n] \sigma _{j} \ge  \rho _{j}, имеет место неравенство

f(\sigma_1, \sigma_2, \ldots, \sigma_n) \geq f(\rho_1, \rho_2, \ldots, \rho_n).

Класс всех монотонных функций обозначим через \mathbf{M}.

Пример 5. Рассмотрим для примера пять функций от 3-х переменных, которые представлены в следующей таблице.

Функции f1, f2, f3, f4 и f5
X1 X2 X3 f1 f2 f3 f4 f5
0 0 0 1 1 0 0 0
0 0 1 0 1 0 1 0
0 1 0 0 0 1 1 1
0 1 1 1 0 0 0 1
1 0 0 1 0 1 1 0
1 0 1 0 0 0 0 0
1 1 0 0 1 1 0 1
1 1. 1 0 1 1 1 1

Из определений непосредственно следует, что f3, f4 и f5 сохраняют 0, т.е. входят в \mathbf{S}_0, а функции f2, f3, f4 и f5 сохраняют 1, т.е. входят в \mathbf{S}_1. Функция f3 является самодвойственной, а f2 - нет, так как f2(0,0,0) = f2(1,1,1). Функция f2 является линейной - она задается многочленом X1 + X2 +1. Функция f5 является монотонной, а f3 - нет, так как f3(0,1,1)=0 < 1=f3(0,1,0).

Теорема 5.1. Классы \mathbf{S}_0, \mathbf{S}_1, \mathbf{S},\mathbf{L} и \mathbf{M} являются замкнутыми.

Доказательство. Замкнутость всех указанных классов устанавливается индукцией по построению формул. Пусть F \in \{\mathbf{S}_0, \mathbf{S}_1, \mathbf{S}, \mathbf{L}, \mathbf{M}\} и f \in  [F] задается некоторой формулой над F. Нужно показать, что тогда f \in  F.

Базис индукции, когда эта формула есть переменная X, очевиден.

Пусть f(X1, ..., Xk)= g(f1(X1, ..., Xk), ..., fn(X1, ..., Xk)), и функции g^{(n)}, f_1^{(k)}, \ldots, f_n^{(k)} входят в F. Требуется показать, что тогда и f входит в F.

Для F=\mathbf{S}_0 это просто:

f(0,0,\ldots,0)=g(f_1(0,\ldots,0),\ldots, f_n(0,\ldots, 0))=
g(0,0,\ldots,0) = 0.

Аналогично проверяется случай F=\mathbf{S}_1.

Если F=\mathbf{S} и (\sigma_1, \sigma_2, \ldots,\sigma_k) - произвольный набор аргументов, то

f(\sigma_1, \sigma_2, \ldots, \sigma_k) = \neg g(\neg f_1(\sigma_1,\ldots, \sigma_k), 
\ldots, \neg f_n(\sigma_1, \ldots, \sigma_k))= \\ \ \ \neg g(\neg\neg f_1(\neg \sigma_1, \ldots, \neg\sigma_k), 
\ldots , 
\neg\neg f_n(\neg \sigma_1, \ldots, \neg\sigma_k)) = \\ \ \ \neg g( f_1(\neg \sigma_1, \ldots,\neg \sigma_k), 
\ldots, f_n(\neg \sigma_1, \ldots,\neg \sigma_k)) = \\ \ \ \ \neg f(\neg\sigma_1,\neg \sigma_2, \ldots,\neg \sigma_k).

Следовательно, f \in \mathbf{S}.

Пусть F=\mathbf{L}. Так как тогда g(n) и все f_i^{(k)} линейны, то существуют коэффициенты \alpha _{0},\alpha _{1},\dots , \alpha _{n} и \beta _{0i}, \beta _{1i}, \dots , \beta _{ki} (i=1,\dots ,n) такие, что g(X_{1},\dots ,X_{n})=\alpha _{0} + \alpha _{1}X_{1} + \dots  + \alpha _{n}X_{n} и f_{i}(X_{1}, \dots , X_{k}) = \beta \_ \{ 0i\}  + \beta \_ \{ 1i\} X_{1} + \beta \_ \{ ki\} X_{k} (i=1,\dots ,n).

Подставив эти выражения в формулу для f^{(k)}, получим

f(X_1,\ldots,X_k)=\\= \alpha_0 +\alpha_1(\beta_{01} + \beta_{11}X_1 + \beta_{k1}X_k) 
+ \ldots + \alpha_n(\beta_{0n} + \beta_{1n}X_1 + \beta_{kn}X_k) = \\=(\alpha_0 + \beta_{01}+ \ldots + 
\beta_{0n}) + (\alpha_1 \beta_{11}+ \ldots + \alpha_n\beta_{1n})X_1+ \ldots + \\+(\alpha_1 \beta_{k1}+ \ldots 
+ \alpha_n\beta_{kn})X_k = \gamma_0 +\gamma_1X_1+ \ldots + \gamma_k X_k,

где \gamma _{0}, \gamma _{1}, \dots , \gamma _{k} - значения сумм констант в соответствующих скобках.

Следовательно, f \in \mathbf{L}.

Наконец рассмотрим класс монотонных функций. Если g^{(n)} и все f_i^{(k)} \in \mathbf{M} и (\sigma _{1}, \sigma _{2}, \dots , \sigma _{k}) и (\rho _{1}, \rho _{2}, \dots , \rho _{k}) - два набора аргументов такие, что для всех j \in  [1,k] \sigma _{j} \ge  \rho _{j}, то

f_i(\sigma_1, \sigma_2, \ldots, \sigma_k)\geq f_i(\rho_1, \rho_2, \ldots, \rho_k)

и поэтому

f(\sigma_1, \sigma_2, \ldots, \sigma_k)= g(f_1(\sigma_1, \sigma_2, \ldots, \sigma_k), 
\ldots,\\ f_n(\sigma_1, \sigma_2, \ldots, \sigma_k)) \geq g(f_1(\rho_1, \rho_2, \ldots, \rho_k), \ldots, \\ 

f_n(\rho_1, \rho_2, \ldots, \rho_k)) =f(\rho_1, \rho_2, \ldots, \rho_k).

Таким образом, f \in \mathbf{M}.

Следствие 5.1.1. Классы функций \mathbf{S}_0, \mathbf{S}_1, \mathbf{S}, 
\mathbf{M} и \mathbf{L} не являются полными.

< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Елена Алексеевская
Елена Алексеевская

Это в лекции 3.

Татьяна Дембелова
Татьяна Дембелова

Почему в вводной лекции курса Основы дискретной математики одним из свойств отношения частичного порядка упоминается антирефлексивность? Посмотрела в других источниках, там -0  рефлексивность... http://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BA%D0%B0