Двойственная булева функция

Материал из testwiki
Перейти к навигации Перейти к поиску

Двойственная булева функция к булевой функции f:E2nE2 — функция f*:E2nE2, определяемая соотношением

f*(x1,,xn)=f(x1,,xn)Шаблон:Sfn

Понятие «двойственной функции» является очень важным в теории булевых функций и широко используется в ней:

  • при помощи понятия двойственной функции определяется принцип двойственности для булевых функций;
  • при помощи понятия двойственной функции определяется класс самодвойственных функций, который является одним из пяти предполных классов булевых функций.

Функция, двойственная к двойственной, совпадает с исходной функцией, то есть f**=f.Шаблон:Sfn Функция, двойственная к которой совпадает с ней собой, называется самодвойственной.Шаблон:Sfn

Примеры

c=0
c*=1
f(x)=x
f*(x)=x
f(x)=x
f*(x)=x
f(x,y)=xy
f*(x,y)=xyШаблон:Sfn
f(x,y)=xy
f*(x,y)=xyШаблон:Sfn
f(x,y)=xy
f*(x,y)=x↚y
f(x,y)=xy
f*(x,y)=x↛yШаблон:Sfn
f(x,y)=x|y
f*(x,y)=xyШаблон:Sfn

Принцип двойственности

Введём понятие двойственной булевой формулы. Пусть Φбулева формула. Двойственная к ней формула Φ* индуктивно определяется следующим образом:

  • Если Φ имеет вид Φ=x, где x — переменная, то
Φ*=x;
  • Если Φ имеет вид Φ=f(φ1,,φn), где f — функция арности n, φ1,,φn — некоторые формулы, то
Φ*=f*(φ1*,,φn*)

Принцип двойственности: если формула Φ задаёт относительно набора переменных x1,,xn функцию f(x1,,xn), то формула Φ* задаёт относительно набора переменных x1,,xn функцию f*(x1,,xn).Шаблон:Sfn

Из принципа двойственности следует следующее: если верно некоторое тождество Φ(x1,,xn)=Ψ(x1,,xn), то двойственное к нему тождество Φ*(x1,,xn)=Ψ*(x1,,xn) тоже верно. Это позволяет выводить новые тождества из известных, просто заменив все функции в тождестве на двойственные. Пример:

  • Возьмём верное тождество xy=xy. Заменив левую и правую формулы на двойственные получим xy=xy — тоже верное тождество.Шаблон:Sfn

Такое тождество называют двойственным тождеством.

Шаблон:Якорь Для различных нормальных форм можно получать двойственные к ним формы. Например, каждая функция f представляется в виде дизъюнктивной нормальной формы. Представим в ДНФ двойственную к ней функцию f*(x1,,xn)=Φ(x1,,xn), а затем по принципу двойственности получим представление (x1,,xn)=Φ*(x1,,xn). Мы получили другую нормальную форму, перейдя к двойственной формуле. Такая нормальная форма называется двойственной нормальной формой к исходной нормальной форме. Двойственная нормальная форма к ДНФ — конъюнктивная нормальная форма. Аналогично можно получить, например, двойственную форму к полиному Жегалкина, которая также будет выглядеть как многочлен, но роль умножения в ней будет играть дизъюнкция, а роль сложения — эквиваленция. Такая нормальная форма называется кополином Жегалкина.Шаблон:Sfn

Двойственные системы функций

Понятие двойственности распространяется на системы функций. Пусть KP2 — система булевых функций. Двойственная система K* определяется следующим образом:

K*={f*|fK}

Примером двойственных систем является, например, класс функций, сохраняющих 0, и класс функций, сохраняющих 1.Шаблон:Sfn Классы линейных, самодвойственных, монотонных и всех булевых функций — самодвойственны.

Для операции дуализации систем верны следующие соотношения:

  • K=K**
  • если KL, то K*L*
  • если K=[L], то K*=[L*]

Из третьего соотношения непосредственно следует, что

  • двойственная система к замкнутому классу — замкнутый класс;
  • если система K полна в замкнутом классе L, то и K* полна в замкнутом классе L*;
  • если система K базис в замкнутом классе L, то и K* базис в замкнутом классе L*.

Поэтому для самодвойственных замкнутых классов двойственная к базису система тоже является базисом. Примеры двойственных базисов в P2:

  • {¬,} и {¬,};
  • {,,1} и {,,0};
  • {|} и {};

Примечания

Шаблон:Примечания

Литература