Полином Жегалкина — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
  
<math>P = a_{0} \oplus a_{1} x_{1} \oplus a_{2}  x_{2} \oplus ... \oplus a_{n}  x_{n} \oplus a_{n+1} x_{1} x_{2} \oplus ... \oplus a_{..n + C _{n}^2}  x_{n-1} x_{n} \oplus ... \oplus a_{2^n-1} x_{1} x_{2} .. x_{n}  </math>
+
<tex>P = a_{0} \oplus a_{1} x_{1} \oplus a_{2}  x_{2} \oplus ... \oplus a_{n}  x_{n} \oplus a_{n+1} x_{1} x_{2} \oplus ... \oplus a_{..n + C _{n}^2}  x_{n-1} x_{n} \oplus ... \oplus a_{2^n-1} x_{1} x_{2} .. x_{n}  </tex>
 
== Предпосылки ==
 
== Предпосылки ==
  
 
По теореме Поста, чтобы система булевых функций была полной, надо, чтобы в ней существовали:
 
По теореме Поста, чтобы система булевых функций была полной, надо, чтобы в ней существовали:
  
1.Хотя бы одна функция, не сохраняющая 0.
+
#Хотя бы одна функция, не сохраняющая 0.
2.Хотя бы одна функция, не сохраняющая 1.
+
#Хотя бы одна функция, не сохраняющая 1.
3.Хотя бы одна нелинейная функция.
+
#Хотя бы одна нелинейная функция.
4.Хотя бы одна немонотонная функция.
+
#Хотя бы одна немонотонная функция.
5.Хотя бы одна несамодвойственная функция.
+
#Хотя бы одна несамодвойственная функция.
  
Этому требованию отвечает система функций <math>\bigl\langle \wedge, \oplus, 1 \bigr\rangle</math>. На её основе и строятся полиномы Жегалкина.
+
Этому требованию отвечает система функций <tex>\bigl\langle \wedge, \oplus, 1 \bigr\rangle</tex>. На её основе и строятся полиномы Жегалкина.
  
 
== Cуществование и единственность представления (теорема Жегалкина) ==
 
== Cуществование и единственность представления (теорема Жегалкина) ==
По теореме Жегалкина каждая булева функция  единственным образом представляется в виде полинома Жегалкина. Теорема доказывается следующим образом. Заметим, что различных булевых функций от <math>n</math> переменных <math>2^{2^n}</math> штук. При этом конъюнкций вида <math>x_{i_1}\ldots x_{i_k}</math> существует ровно <math>2^n</math>, так как из <math>n</math>  возможных сомножителей каждый или входит в конъюнкцию, или нет. В полиноме у каждой такой конъюнкции стоит 0 или 1, то есть существует <math>2^{2^n}</math> различных полиномов Жегалкина от n  переменных. Теперь достаточно лишь доказать, что различные полиномы реализуют различные функции. Предположим противное. Тогда приравняв два различных полинома и перенеся один из них в другую часть равенства, получим полином, тождественно равный нулю и имеющий ненулевые коэффициенты. Тогда рассмотрим слагаемое с единичным коэффициентом наименьшей длины, то есть с наименьшим числом переменных, входящих в него (любой один, если таких несколько). Подставив единицы на места этих переменных, и нули на места остальных, получим, что на этом наборе только одно это слагаемое принимает единичное значение, то есть нулевая функция на одном из наборов принимает значение 1. Противоречие. Значит, каждая булева функция реализуется полиномом Жегалкина единственным образом.
+
По теореме Жегалкина каждая булева функция  единственным образом представляется в виде полинома Жегалкина. Теорема доказывается следующим образом. Заметим, что различных булевых функций от <tex>n</tex> переменных <tex>2^{2^n}</tex> штук. При этом конъюнкций вида <tex>x_{i_1}\ldots x_{i_k}</tex> существует ровно <tex>2^n</tex>, так как из <tex>n</tex>  возможных сомножителей каждый или входит в конъюнкцию, или нет. В полиноме у каждой такой конъюнкции стоит 0 или 1, то есть существует <tex>2^{2^n}</tex> различных полиномов Жегалкина от n  переменных. Теперь достаточно лишь доказать, что различные полиномы реализуют различные функции. Предположим противное. Тогда приравняв два различных полинома и перенеся один из них в другую часть равенства, получим полином, тождественно равный нулю и имеющий ненулевые коэффициенты. Тогда рассмотрим слагаемое с единичным коэффициентом наименьшей длины, то есть с наименьшим числом переменных, входящих в него (любой один, если таких несколько). Подставив единицы на места этих переменных, и нули на места остальных, получим, что на этом наборе только одно это слагаемое принимает единичное значение, то есть нулевая функция на одном из наборов принимает значение 1. Противоречие. Значит, каждая булева функция реализуется полиномом Жегалкина единственным образом.
  
  
Строка 23: Строка 23:
 
Существует несколько способов построения полинома Жегалкина.  
 
Существует несколько способов построения полинома Жегалкина.  
  
Первый способ - по таблице истинности. Пусть для функции <math>f(x_{1},x_{2},..,x_{n})</math>  задана таблица истинности. Запишем сначала данную функцию в виде полинома Жегалкина с неопределенными коэффициентами. Затем по очереди подставляем всевозможные наборы переменных и находим коэффициенты. Легко видеть, что за каждую подстановку находим только один коэффициент.
+
Первый способ - по таблице истинности. Пусть для функции <tex>f(x_{1},x_{2},..,x_{n})</tex>  задана таблица истинности. Запишем сначала данную функцию в виде полинома Жегалкина с неопределенными коэффициентами. Затем по очереди подставляем всевозможные наборы переменных и находим коэффициенты. Легко видеть, что за каждую подстановку находим только один коэффициент.
  
  
Второй способ - преобразование Дизъюнктивной нормальной формы. Этот способ основан на том, что <math> X \oplus 1 = \bar{X} </math>. Если функция задана в виде ДНФ, то сначала убираем дизъюнкцию, используя при этом правило Де-Моргана, а все отрицания заменяем прибавлением единицы. После этого раскрываем скобки по обычным правилам, при этом учитываем, что четное число одинаковых слагаемых равно нулю (так как <math> X \oplus X = 0 </math>), а нечетное число одинаковых слагаемых равно одному такому слагаемому.
+
Второй способ - преобразование Дизъюнктивной нормальной формы. Этот способ основан на том, что <tex> X \oplus 1 = \bar{X} </tex>. Если функция задана в виде ДНФ, то сначала убираем дизъюнкцию, используя при этом правило Де-Моргана, а все отрицания заменяем прибавлением единицы. После этого раскрываем скобки по обычным правилам, при этом учитываем, что четное число одинаковых слагаемых равно нулю (так как <tex> X \oplus X = 0 </tex>), а нечетное число одинаковых слагаемых равно одному такому слагаемому.
  
 
Третий способ - можно использовать [[Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина]].
 
Третий способ - можно использовать [[Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина]].

Версия 04:51, 16 октября 2010

Полином Жегалкина — полином с коэффициентами вида 0 и 1, где в качестве произведения берется конъюнкция, а в качестве сложения исключающее или. Полином был предложен в 1927 году И. И. Жегалкиным в качестве удобного средства для представляения функций булевой логики. Полином Жегалкина имеет следующий вид:


[math]P = a_{0} \oplus a_{1} x_{1} \oplus a_{2} x_{2} \oplus ... \oplus a_{n} x_{n} \oplus a_{n+1} x_{1} x_{2} \oplus ... \oplus a_{..n + C _{n}^2} x_{n-1} x_{n} \oplus ... \oplus a_{2^n-1} x_{1} x_{2} .. x_{n} [/math]

Предпосылки

По теореме Поста, чтобы система булевых функций была полной, надо, чтобы в ней существовали:

  1. Хотя бы одна функция, не сохраняющая 0.
  2. Хотя бы одна функция, не сохраняющая 1.
  3. Хотя бы одна нелинейная функция.
  4. Хотя бы одна немонотонная функция.
  5. Хотя бы одна несамодвойственная функция.

Этому требованию отвечает система функций [math]\bigl\langle \wedge, \oplus, 1 \bigr\rangle[/math]. На её основе и строятся полиномы Жегалкина.

Cуществование и единственность представления (теорема Жегалкина)

По теореме Жегалкина каждая булева функция единственным образом представляется в виде полинома Жегалкина. Теорема доказывается следующим образом. Заметим, что различных булевых функций от [math]n[/math] переменных [math]2^{2^n}[/math] штук. При этом конъюнкций вида [math]x_{i_1}\ldots x_{i_k}[/math] существует ровно [math]2^n[/math], так как из [math]n[/math] возможных сомножителей каждый или входит в конъюнкцию, или нет. В полиноме у каждой такой конъюнкции стоит 0 или 1, то есть существует [math]2^{2^n}[/math] различных полиномов Жегалкина от n переменных. Теперь достаточно лишь доказать, что различные полиномы реализуют различные функции. Предположим противное. Тогда приравняв два различных полинома и перенеся один из них в другую часть равенства, получим полином, тождественно равный нулю и имеющий ненулевые коэффициенты. Тогда рассмотрим слагаемое с единичным коэффициентом наименьшей длины, то есть с наименьшим числом переменных, входящих в него (любой один, если таких несколько). Подставив единицы на места этих переменных, и нули на места остальных, получим, что на этом наборе только одно это слагаемое принимает единичное значение, то есть нулевая функция на одном из наборов принимает значение 1. Противоречие. Значит, каждая булева функция реализуется полиномом Жегалкина единственным образом.


Построение полинома Жегалкина

Существует несколько способов построения полинома Жегалкина.

Первый способ - по таблице истинности. Пусть для функции [math]f(x_{1},x_{2},..,x_{n})[/math] задана таблица истинности. Запишем сначала данную функцию в виде полинома Жегалкина с неопределенными коэффициентами. Затем по очереди подставляем всевозможные наборы переменных и находим коэффициенты. Легко видеть, что за каждую подстановку находим только один коэффициент.


Второй способ - преобразование Дизъюнктивной нормальной формы. Этот способ основан на том, что [math] X \oplus 1 = \bar{X} [/math]. Если функция задана в виде ДНФ, то сначала убираем дизъюнкцию, используя при этом правило Де-Моргана, а все отрицания заменяем прибавлением единицы. После этого раскрываем скобки по обычным правилам, при этом учитываем, что четное число одинаковых слагаемых равно нулю (так как [math] X \oplus X = 0 [/math]), а нечетное число одинаковых слагаемых равно одному такому слагаемому.

Третий способ - можно использовать Преобразование Мёбиуса для получения коэффициентов полинома Жегалкина.