Серия «Математика»
2009. Т. 2, № 2, С. 40-55
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 519.716.322
Перечисление операторных классов булевых функций *
С. Ф. Винокуров
Восточно-Сибирская государственная академия образования А. С. Казимиров
Восточно-Сибирская государственная академия образования
Аннотация. Работа посвящена задаче классификации булевых функций. Классификация производится по группе преобразований, являющейся расширением группы инвертирования переменных. Такие преобразования представляют интерес в связи с тем, что сохраняют сложность (количество слагаемых) полиномов, представляющих булевы функции. Группа этих преобразований описана с использованием операторного языка и названа группой операторных преобразований. Для нее решена задача перечисления — одна из подзадач классификации, заключающаяся в нахождении числа классов эквивалентности.
Ключевые слова: булева функция; полиномиальная форма; операторы; специальная операторная форма; классификация по группе преобразований.
Быстрый рост числа булевых функций при увеличении числа переменных приводит к необходимости объединения функций, обладающих некоторым свойством, в классы. В качестве таких классов могут выступать классы эквивалентности относительно групп преобразований. Задача построения полной классификации состоит в нахождении классов эквивалентности (или их представителей) относительно таких групп.
В настоящее время задача построения классификаций булевых функций по различным группам преобразований имеет широкие приложения
— от задач логического синтеза до криптографии. Имеется большое количество результатов по группам аффинных преобразований булевых функций и их обобщениям [1,2].
Одним из способов задания булевых функций является полиномиальное представление — в виде суммы по модулю 2 произведений переменных или их отрицаний. При исследовании полиномиальных представлений интересны преобразования, которые сохраняют сложность
* Работа выполнена при финансовой поддержке РФФИ, грант 09-01-00476-а.
(количество слагаемых) полинома. Можно заметить, что аффинные преобразования в общем случае не сохраняют сложность полиномов.
В работе рассматривается группа, являющаяся расширением группы инвертирования переменных и сохраняющая сложность полиномов. Эта группа описана с использованием операторного языка и названа группой операторных преобразований. Для нее решена задача перечисления — одна из подзадач классификации, заключающаяся в нахождении числа классов эквивалентности.
Для обозначения функции / (ж1,..., Жп) в тексте используется запись / (Ж) или /. Наряду с термальным представлением в работе использовано представление функции / в виде вектора (/о,..., /2«-1), где / = /(«1, •••,«„), а € {0,1}, к = а ■ 2п-1 + ... + ап ■ 20.
Символами /_0.,/., /. обозначаются нулевая и единичная остаточные и производная функции / по переменной ж». Остаточные определяются подстановками констант:
/°. = /(жЬ . . .,Жг_1, 0, Жг+1, . . . ,ЖП), = /(жЬ . . . ,Жг-1, 1,Жт, . . .,Ж„),
а производная задается следующим выражением: /. = /°. ® , где
символ ф обозначает сумму по модулю 2.
На множестве булевых функций п переменных задается класс операторов, которые будут представляться в виде последовательностей а1 ... ап, где а» € {а, е, р}. В этом случае п будет называться размерностью оператора. Действие оператора а = а1 ... ап на функцию /(Ж) определяется по правилу: а(/(Ж)) = /п(Ж), где /о(Ж) = /(Ж) и
{/¿_ 1 (Ж), если а» = е;
/г— 1 (Ж1, ..., Ж»-1, Ж», Жг+1, ..^Жп), если а» = р; (/¿-1(ж))Х, если а» = а.
Представление функции /(ж1, ..., Жп) в виде
/ (Ж) = 0 аг(Л(Ж)) (1)
г=1
1 я
в котором а1,..., а* — операторы размерности п, называется операторной формой функции /, построенной по функции Л(Ж1, . . . ,Жп). Через М(Ф) будем обозначать множество операторов, входящих в операторную форму Ф. Операторную форму назовем редуцированной, если при г = ] выполняется аг = а-7. Функция Л(Ж) называется базисной, если для любой функции / (Ж) существует представление в виде операторной формы по функции Л. Вопросы существования операторных форм подробно изложены в [3].
Из определения оператора следует, что для любой функции Л и любого оператора а = а1... а„ имеет место следующее равенство:
а(Л) = а1... аг-1а'ат ... а«(Л) ф а1 ... а^а^^ ... а„(Л), (2)
здесь а», а», а»' — попарно различные символы из множества {а, е, р}. Назовем равенство (2) разложением оператора а по г-ой компоненте. В дальнейшем в разложениях операторов иногда будем опускать функцию Л, подразумевая, что равенство выполняется для любой функции, а выражение "оператор входит в операторную форму" будет означать, что оператор порождает слагаемое, которое входит в соответствующую сумму.
Мы будем использовать свойства операторов из [3], которые сформулируем в виде двух утверждений.
Утверждение А [3]. Для любого оператора а выполняется следующее равенство:
2П-1 а = ф Ь*,
*=0
где {Ь* } — все операторы размерности п, отличающиеся в каждой позиции от оператора а. Такое представление оператора единственно с точностью до перестановки слагаемых.
Это представление далее будет называться полным разложением оператора а.
Утверждение В [3]. Пусть а = а1... аь, Ж = Ж1,...,ЖП, у =
У1,..., уь-п, аг = а1... ап, а^ = а„+1... а*. Для любых функций /(Ж), $(у) имеет место равенство:
а(/(Ж) ' #(у)) = аг(/(Ж)) ' ау(#(у)).
Операторная форма функции /, полученная из представления (1) заменой каждого оператора его полным разложением с последующим удалением пар одинаковых слагаемых, называется специальной операторной формой функции / по функции Л и обозначается 50^/(Л).
Теорема 1. Специальная операторная форма по фиксированной функции Л является каноническим представлением.
Доказательство. Пусть функция / представима двумя операторными формами Ф1 и Ф2 по функции Л. Рассмотрим два вида преобразований операторных форм, которые не изменяют реализуемую функцию:
1) разложение некоторого оператора из операторной формы по одной компоненте;
2) удаление пары одинаковых слагаемых в операторной форме.
Очевидно, что такими преобразованиями любую операторную форму можно привести к редуцированной операторной форме, содержащей только операторы, каждая компонента которых равна а или е. Достаточно применить первое преобразование для всех операторов по всем компонентам, равным р, и удалить все пары одинаковых слагаемых.
Полученная операторная форма называется ае-формой и является каноническим представлением булевых функций [3]. Таким образом, указанными преобразованиями каждую из форм Ф1 и Ф2 можно привести к одной и той же ае-форме.
Пусть £0^1, £0^2 и £0^3 — специальные операторные формы, полученные по Ф1, Ф2 и ае-форме функции / соответственно. Покажем, что эти специальные операторные формы совпадают.
Рассмотрим разложение оператора а = а1 ... а^ра^ ... ап на операторы Ь = а1... а^аа^ ... ап и с = а1 ... а^еа^... ап.
Легко заметить, что половина операторов полного разложения оператора Ь входит в полное разложение оператора с — это те операторы, у которых г-ая компонента равна р. После удаления пар одинаковых слагаемых в сумме разложений Ь и с останутся ровно 2п операторов, которые составляют полное разложение оператора а. Значит, специальная операторная форма не изменится при замене некоторого оператора в исходной операторной форме его разложением по одной из компонент.
Рассмотрим второе преобразование. Если операторная форма Ф содержит два одинаковых слагаемых, то после разложения каждое из них представляется одинаковыми суммами 2п слагаемых, которые в дальнейшем удаляются для получения специальной операторной формы. Очевидно, что удаление этих слагаемых из операторной формы Ф не изменит специальную операторную форму, построенную по форме Ф.
Поскольку ае-форма может быть получена преобразованиями первого и второго вида из форм Ф1 и Ф2, имеют место равенства: £0^1 = £0^3 = £0^2 (здесь равенство форм означает равенство множеств слагаемых этих форм). □
При дальнейшем изложении, если это не будет оговорено отдельно, будем считать, что п-местная базисная функция Л является фиксированной и все операторные формы построены по этой функции.
Пусть £ — полная группа подстановок на множестве {а, е, р}. Для элементов группы £ будут использованы следующие обозначения:
Определим преобразование р операторов размерности п в виде последовательности рі... рп, где рі Є £. Преобразование р действует на оператор а = аі... ап следующим образом: р(а) = рі(аі)... рга(ага). Таким образом построенное преобразование р назовем Я-преобразованием.
Действие Я-преобразований можно распространить на функции.
Пусть / = 0 аг(Л.) — некоторая операторная форма функции /. Тогда і=1
р(/) = 0 р(аг)(Л). Следующее утверждение показывает, что определе-
г=1
ние корректно.
Утверждение 1. Пусть имеется Б-преобразование р и две операторные формы функции /(X) — Ф1 и Ф2. Тогда функции д1 = р(Ф1) и д2 = р(Ф2), полученные Б-преобразованием этих операторных форм, равны.
Доказательство. Аналогично с доказательством теоремы 1 рассмотрим два вида преобразований операторных форм, не меняющих реализуемую ими функцию: разложение оператора и удаление пары одинаковых слагаемых. Так же приведем формы Ф1 и Ф2 к ае-форме.
Для индуктивного шага достаточно показать, что если форма Ф2 получена из Ф1 однократным применением преобразования первого или второго вида, то функции р(Ф1) и р(Ф2) равны.
В случае применения преобразования второго вида равенство функций р(Ф1) и р(Ф2) является очевидным.
Пусть теперь Ф2 получена из Ф1 применением разложения некоторого оператора а по г-ой компоненте на операторы Ь и с. Применим к р(Ф1) разложение оператора р(а) по г-ой компоненте на операторы Ь* и с*. Поскольку рг — подстановка на {а, е, р} и аг, Ьг, Сг — попарно
различные символы из множества {а, е, р}, то Рг(аг), Рг(Ьг), р(Сг) —
также попарно различные символы из множества {а, е, р}. А значит, имеет место одна из двух систем равенств:
Ь* = р(Ь) ( Ь* = р(с)
с* = р(с) или \ с* = р(Ь) .
Следовательно, операторная форма, полученная из р(Ф1) разложением оператора р(а) по г-ой компоненте, равна р(Ф2). Отсюда следует равенство функций р(Ф1) и р(Ф2). □
Утверждение 2. Пусть р является Б-преобразованием и £0^у(Л)
— специальная операторная форма функции /. Тогда р(£0^у(Л)) — специальная операторная форма функции р(/).
Доказательство. Рассмотрим Я-преобразование р = р1 ... рп и полное разложение оператора а:
2П-1
к
а=
к=0
®ьк,
где Ьк = ьк... ЬП, Ьк = Ьі, если г-ая цифра в двоичной записи числа к равна 0, и Ьк = Сі, если г-ая цифра в двоичной записи числа к равна
1, и аі, Ьі, Сі — попарно различные символы из множества (а, е, р}. Поскольку рі — подстановка на (а, е, р}, то рі(аі), рі(Ь), р(сі) — также
попарно различные символы из множества {а, е, р}. Поэтому полное разложение оператора р(а) имеет вид:
2П-1
р(а) = 0 р(Ьк )-к=0
Таким образом, некоторый оператор Ь входит в полное разложение оператора а тогда и только тогда, когда оператор р(Ь) входит в полное разложение оператора р(а).
Пусть оператор с принадлежит М(£0^/(Л)). Рассмотрим прозволь-ную операторную форму Ф, реализующую данную функцию /. По определению специальной операторной формы найдутся операторы а1,... , а2к+1 формы Ф такие, что с входит в полное разложение каждого из операторов аг и не входит в полное разложение никакого другого оператора из Ф. Но тогда р(с) входит в полное разложение операторов р(аг), а значит, р(с) принадлежит М(£0^(/)(Л)). Аналогично, если р(с) принадлежит М(£0^(/)(Л)), то с принадлежит М(£0^/(Л)). Значит,
р(£0*> (Л)) = £0^(/)(Л).
□
Очевидно, что множество Я-преобразований п-местных функций является группой, для которой будет использоваться обозначение £^(п) (в случае фиксированной функции Л индекс будем опускать). Легко заметить, что порядок группы £(п) равен 6П.
Две функции /(ж1,..., жп) и д(ж1,..., жп) называются Я-эквивалент-ными, если существует р € £(п), что р(/) = д.
Классы Я-эквивалентных функций будем называть Я^-классами, а в случае фиксированной базисной функции Л — просто Я-классами или операторными классами.
Следующая теорема показывает независимость числа операторных классов от базисной функции.
Теорема 2. Для любых двух базисных функций Л1(Ж) и Л2(Ж) число Б^1-классов совпадает с числом Б^2 -классов.
Доказательство. Пусть К1,...,К5 — все различные -классы. Рассмотрим функции /1(Ж) = £0/ (Л1), ... , /¿(Ж) = £0/(Л1), составляющие некоторый класс Кт, представленные соответствующими специальными операторными формами.
Рассмотрим функции /*,...,/* представленные операторными формами:
/* = 0 а(Л2).
а€М(йО^у. (Л1))
Из свойств специальной операторной формы легко получить, что представления указанного вида являются специальными операторными формами функций /*,..., /* по функции Л-2.
Функции /к и /г являются Я-эквивалентными по функции Л-1, значит, найдется такое преобразование р € £^1 (п), что р(/к) = /г. Покажем, что тогда существует преобразование р* € £^2 (п), для которого выполняется равенство р*(/*) = /г*.
Пусть р = р1 . ..р*, где рг € £. Возьмем преобразование р* покомпонентно равным преобразованию р, но действующим по базисной функции Л.2: р* = р1 ... р*, р* € £^2 (п). Таким образом, оба преобразования р и р* будут одинаково действовать на любой оператор и множество операторов, но по-разному — на функции.
Равенство множеств р(М(£0^д(Л^))) = М(£0^/г(Л^)) следует из утверждения 2, а поскольку преобразования р и р* действуют одинаково на множестве операторов, то р*(М(£0^д(Л^))) = М(£0^/г(Л^)). Отсюда следует равенство р*(£0/*(^2)) = £0^/*(^2), которое означает, что функции /* и /* принадлежат одному классу Я^2-эквивалентности. Обозначим этот класс через Кп.
Пусть функция д* принадлежит классу , то есть найдется преобразование ф* € £^2 (п), что д* = ф*(/*). Возьмем ф € £^1 (п), покомпонентно равное ф*. Тогда функция д = ф(/1) принадлежит Кт. Значит, имеет место равенство |Кт| = |К^ |.
Из единственности специальной операторной формы следует, что при Кт = К* выполняется Кт = К*. Таким образом, можно установить взаимно однозначное соответствие классов Я^1 -эквивалентности и классов Я^2-эквивалентности. □
При дальнейшем изложении будем считать, что базисная функция Л равна Ж1 ■ ... ■ жп. Результаты о числе Я-классов для данной функции по теореме 2 будут верны для любой базисной функции.
Введем следующие обозначения для невырожденных матриц размерности 2:
Каждому Я-преобразованию р размерности п сопоставим матрицу А(р) размерности 2П х 2П следующим образом:
1. При п = 1 имеет место соответствие:
Л(^) = I, Л(5) = Б, Л(е) = Е, Л(п) = Р, Л(^) = М, Л(^) = N.
2. При п > 1 матрица Л(р) равна кронекерову произведению соответствующих матриц:
ПЕРЕЧИСЛЕНИЕ ОПЕРАТОРНЫХ КЛАССОВ БУЛЕВЫХ ФУНКЦИЙ 47 Кронекерова степень матрицы А будет обозначаться:
Символом О обозначим нулевую матрицу, размер которой будет определяться по контексту.
сти 2П х 2П и имеют место следующие равенства:
МИ ■ N^1 = 1[п]; М[п] ■ М[п] = N^1; = М[п].
Теорема 3. Для любого Б-преобразования р = р1... р* и функции / выполняется равенство р(/) = Л(р) ■ /, где функции / и р(/) представлены векторами.
Доказательство. 1. При п = 1 достаточно рассмотреть 6 случаев, поскольку р € £.
Для примера рассмотрим р = V и функцию /, представленную операторной формой / (ж) = ж ■ /X Ф Ж ■ /X = /X ■ р(ж) ф /X ■ е(Ж). Далее применим преобразование р к функции /:
Остальные случаи проверяются аналогично.
2. Пусть п > 1 и р = р1р2 ... р*. Символом В обозначим матрицу преобразования р* = р2 ... р*. Аналогично пункту 1, для р1 достаточно рассмотреть 6 случаев. Доказательство проведем для случая р1 = V.
Поскольку Я-преобразование действует на оператор покомпонентно, то из утверждения В следует, что для любого преобразования ф = 01... ф* и двух преобразований ф^ = 01... ф* и ф^ = фп+1 ... ф*, полученных разбиением его компонент, будет верно равенство:
Разобъем множество переменных {ж1,..., жга} на два множества {Ж1} и {ж2,..., жга} и применим к ним равенство (3):
Для остальных подстановок равенство проверяется аналогично. □
А ф А ф ■ ■ ■ ф А = А К
-V’
п
Индукцией легко показать, что 1[п] — единичная матрица размерно-
^(/) = ■ V(Р)(х) Ф /1 ■ V(е)(х) = ■ е(х) Ф /1 ■ <і(х)
^(/(х) ■ £(у)) = ^г(/(х)) ■ ^(£(у))-
(3)
р(/) = р(жі/;01 ф жі/і1) = V(хі)р*(/;01) ф V(хі)^*(/І1) = = v (р(хі))в/;01ф v (е(х і ))в/і 1 = е(жі)в/;01 ф а(хі)в/ж11
Функцию / будем называть инвариантной по преобразованию р, если
Р(/) = /- (4)
Обозначим через з£(р) количество п-местных булевых функций, инвариантных по п-местному преобразованию р. Очевидно, что з£(р) есть число решений уравнения (4).
Лемма 1. Пусть преобразование р представимо матрицей А. Тогда имеет место равенство з£(р) = 22П-гапк(А®1[п]).
Доказательство. Уравнение (4) можно записать в матричной форме: А ■ / = /, или в виде (А ф II”])/ = 0. Количество решений этого однородного уравнения равно 22"-гапк(А®1[п1). □
Лемма 2. гапк(мИ ф 1[п]) = 3(2П + (-1)га+1).
Доказательство. При п < 3 равенство проверяется непосредственно. При п > 3 распишем кронекерову степень следующим образом:
М[п-1] М[п-1]'
М[п-1] о
Т[п-1] о
о 1[п-1]
Тогда матрица М[п] ® 1[п] будет иметь вид
М[п-1] ф1[п-1] М[”-1]
-1 е М 1[п-1]
Ф I1”1 =
Воспользуемся записью А ~ В для матриц А и В, получаемых одна из другой линейными преобразованиями строк и столбцов.
Умножая матрицу М[п] Ф 1[п] на невырожденные матрицы (выполняя линейные преобразования строк и столбцов), приведем ее к диагональному виду:
М[п] Ф 1[п]
1[п-1] 1[п-1]^ І' т[п-1] о
о 1[п-1] ) ( т[”-1] М[”-
М=Ц (МНфҐ”!)-
1[п-1] ,о ( о - е £
-1 е М 1[п-1] 1 \^М[п-1]ф ^”-1]ф1[п-1] о
Тогда, используя равенство гапк(М[” 1]) = 2” 1, ранг исходной матрицы можно найти из соотношения:
гапк(М[”] ф 1[”]) = 2”-1 + гапк(М[”-1]ф^”-1]ф1[”-1]).
и
При дальнейшем изложении доказательства для краткости записи будем опускать показатель кронекеровой степени, подразумевая его равным п - 3.
Рассмотрим матрицу М1”" -1] ф ^га-1] ф I1” 1]. Дважды расписываем кронекерову степень, спускаясь к матрицам кронекеровой степени п- 3:
М[п-1] ф ^га-1] ф1[п-1] =
/ М ф1 М М М ф N
1] = М I MфN N
М М ф N I N
^Мф N N N N ф I
/
Умножив матрицу М[”-1] ф^”-1] ф1[”-1] слева на матрицу А1
А1 =
и справа на матрицу А2
(I О I О\ (I О О О
О I I О N I О О
О О I О О I I О
V0 О О ч уМ О О ч
А2 =
(I N О М /I О О О^
О I I О О I О О
О О I О I О I О
О О О ч О О О ч
получим эквивалентную матрицу:
М[п-1] ф ^га-1] ф1[п-1]
/Мф! О О О
1] О О М ф N ф I О
О М ф ^ I О О
О О О О
/
Тогда выполняется следующее равенство:
гапк(М[п-1] ф ^га-1] ф 1[п-1]) =
= гапк(М[п-3] ф 1[п-3]) + 2гапк(М[п-3] ф ^га-3] ф 1[п-3]).
Введем обозначения: = гапк(М[п]ф 1[п]), = гапк(М[п]ф^га]ф 1[п]).
Тогда = 2”-1 + 1п-1 и 1п-1 = йга-3 + 2 ■ 1п-3. Подставим значение йга-3 в выражение для 1п-1: 1п-1 = 2”-4 + 2 ■ 1п-3 + 1п-4.
Разрешая это рекуррентное соотношение, получим: 1п-1 = 1 (2” 1 +
2 ■ (-1)га+1) и = 2(2га + (-1)га+1).
Окончательное соотношение для ранга матрицы М[”] ф 1[”] примет вид: гапк(МНф 1[га]) = 3(2га + (-1)га+1). □
Лемма 3. гапк((Б ® М[га]) ф 1[га+1]) = 3(5 ■ 2га + 2(-1)га+1).
Доказательство. Расписав кронекерову степень и выполнив операции, получим:
(Б фМ[га]) ®1[га+1] =
на матрицу В2, где
В =
получим:
І[п1 О
М[п1 NN
, В =
іИ М[п1
М[п1 іИ
слева на
( І[п1
NN
О
І[п1
гИ
О М[п1
М[п1 ф І[п1 О
Тогда гапк((Б ф М[п]) ® 1[п+1]) = гапк(МИ) + гапк(ММ ® 1[п]). Невырожденность матрицы МН и лемма 2 дают окончательную формулу:
2 1
гапк((Б фМ[п1)®І[п+11) = 2П + -(2П + (-1)П+1) = -(5 ■ 2П + 2(-1)П+1).
3 3
Лемма 4. гапк((1 ф А) ф 1[п]) = 2гапк(А ф 1[га 1]), где А — Б-преобразования размерности п — 1.
□
матрица
Доказательство. Расписав кронекерову степень в явном виде
(I фА) ф І[п1 =
А О
О А
ф
І[П-11 О
О І[П-і1
А фі[п-11 О
V О А Ф І[П-11
□
получаем гапк((1 ф А) ф 1М) = 2гапк(А ф 1[п-1]).
Лемма 5. гапк((Б[2] ф А) ф 1[п]) = 2 гапк((Б ф А) ф 1[п-1]), где А — матрица Б-преобразования размерности п — 2.
Доказательство. Дважды расписав кронекерову степень и выполнив перестановку строк и столбцов, получим:
НІ П 1 1 А О О
(Б[21 ф А) ф І[п1 - А НІ П 1 1 О О
О О І П 1 1 А
1 О О А І[П-21
Поскольку матрица (Б ф А) ф 1[” 1 имеет вид
(Б ф А) ф І[П -11 = ( І[п-21 А
= { А І[п-21 )'
П
П
и
П
(Б ф А) ф 1[п-1] О
О (Б ф А) ф 1[п-1]
ПЕРЕЧИСЛЕНИЕ ОПЕРАТОРНЫХ КЛАССОВ БУЛЕВЫХ ФУНКЦИЙ 51 то выполняется эквивалентность:
(Б[2] ф А) ф Iм -
Получили равенство гапк((Б[21 ф А) ф 1И) = 2гапк((Б ф А) ф 1[п-1]).
□
Лемма 6. ££(рчр>2 • • • рп) = ^¿(^¿1 • • • Ргп), где (г 1,..., гп) — некоторая перестановка элементов множества {1, 2, • • •, п}.
Доказательство. Пусть р = Р1Р2 • • • рп и р* = р^1 Рг2 • • • . Возьмем
функцию /, инвариантную по преобразованию р: р(/) = /. Пусть
£
/ (X) = 0 а1 (Х1 ■ ••• ■ ж„)
1=1
— некоторая операторная форма функции /. По утверждению В для любого оператора а = а1 • • • а„, и функции а1 • • • ап(ж1 ■ • • • ■ жп) выполняется:
а1 • • • ап(ж1 ■ • • • ■ Жп) = а1(ж1) ■ • • • ■ а^ж^
Пусть перестановка (71, •••,_?„) является обратной к перестановке (¿1, • • •, гп). Тогда по предыдущему равенству выполняется:
а1 • • • а«(жл ■ • • • ■ ^) = а1(жл) ■ • • • ■ ага(ж^п) = а*1 (ж1) ■ • • • ■ агп
Рассмотрим функцию д(ж1, • • • ,жп) = /(ж^, • • • , ж^п). Согласно приведенным равенствам функция д может быть представлена в виде:
£
д(ж) = 0 агЧ • • • (ж1 ■ • • • ■ жга)-
1=1
Для инвариантной по преобразованию р функции / выполняется
/(ж) = 0 Р1(а1) • • • Рп(аП)(ж1 ■ • • • ■ жп)• 1=1
Поскольку функция д(ж) = /(ж^, • • •, ж^п), то
д(ж) = 0 Р*1 (а11) • • • Ргп (а1„ )(ж1 ■ • • • ■ жп) =
1=1 = 0 р*(агч • • • а1П )(ж1 ■ • • • ■ жп) = р*(д)^ 1=1
Получили, что функция д инвариантна по преобразованию р*. Таким образом, мы установили однозначное соответствие между множествами функций, инвариантных по преоразованиям р и р*, а значит, з£(р) = «¿(р*). □
Лемма 7. ¿¿(р>1р>2 • • • рп) = «¿(КрчМр^) • • • г(рп)), где
{¿, если р
если р € {5, е, п}; если р € {^, V}•
Доказательство. Положим р = р>1р>2 • • • рп и пусть А обозначает матрицу преобразования р>2 • • • рп. Рассмотрим возможные значения р1.
1. Пусть р>1 € {¿,5,^}. По условию леммы г(р>1) = рь
Тогда верно равенство ^1^2 • • • рп = г(р>1)р>2 • • • рп и, следовательно, равенство з£(р>1р>2 • • • рп) = «¿(^(^1)^2 • • • рп)
2. Пусть р>1 = е. В этом случае А(р) = Е ф А.
Выполним преобразования матрицы А(р) ф 1[п|:
(Е ф А) ф 1[п]
Л[п-1| Л[п-1|
О 1[п-1]
'Л[п-1| Л[п-1|
О 1[п-1]
1[п-1] А
А 1[п-1]
= (Б ф А) ф 1[п| •
По лемме 1 выполняется £¿(^>1^2 • • • рп) = «¿(^(^1)^2 • • • рП)
3. Пусть р1 = п. В этом случае А(р) = Р ф А. Преобразуем матрицу А(р) ф 1[п|:
'1[п-1] О
1[п-1] 1[п-1]
'1[п-1] О
1[п-1] 1[п-1]
Л[п-1| А
А 1[п-1]
лП-г) = (Б ф А) ф1|п|-
По лемме 1 выполняется £¿(^>1^2 • • • рп) = «¿(^(^1)^2 • • • рП)
4. Пусть рч = V .В этом случае А(р) = N ф А.
Тогда матрица А(р) ф 1|п| приводится к следующему виду:
^ ф А) ф 1|п|
О Л[п-1|
1[п-1] О
■ ((N ф А) ф 1|п|) ■
'а ф 1[п-1] А
А -1 [п 1—1
угП-тг) = (м ф А) ф1|п|-
О 1[п-1]
1[п-1] О
)^2 ••
Рассмотренные случаи показывают, что равенство ££(рчр>2 • • • рп) «¿(г(^1)^2 • • • рп) выполняется для любого р>1 € £•
п
п
По индукции, с использованием леммы 6, получается окончательное равенство:
¿¿(^>1^2 • • • рп) = ^(г(рч) • • • Г(рп))-
□
Леммы 1-7 и лемма Бернсайда [1] позволяют получить формулу для нахождения числа Я-классов.
Теорема 4. Число Б-классов (п) булевых функций п переменных
выражается формулой
1 ™ / 2п-т(2т+2(-1)т) 2п-т(2т +2(-1)т)
(п) = - Е 2тст (4п-т - 1)2------------6------+ 2--------3------
6 т=0 '
Доказательство. Возьмем преобразование
р = ¿•••¿¿•••¿^•••^,
где г + й + т = п. По лемме 1 имеем ¿¿(р) = 22" гапк(АЫ®1[п]), где
А(р) = 1Й ф БИ ф М[т|.
Рассмотрим 2 случая.
1. Пусть й = 0. В этом случае г = п — т. Используя лемму 2, получаем:
с(М1"*' ® Г'"1) = 2
Далее по лемме 4
гапк(М[т] ® І[т]) = -(2т + (-1)т+1). 3
2 гапк((І[га-т] ® М[т]) ф І[п]) = 2п-т-(2т + (-1)т+1). 3
Тогда число инвариантных функций будет равно
о п оп — т 2/ о ті/ і\т+1\
5%) = 22 -2 з(2 +(-1) + ).
Согласно леммам 6 и 7, любое преобразование, полученное из р перестановкой компонент и заменой некоторых ^ на V, будет иметь столько же инвариантных функций. Расставить ^ можно СП способами, а заменить их на V можно 2т способами, поэтому всего таких преобразований будет 2тСПт.
2. Пусть ! > 0. По лемме 3:
гапк((Б ® М[т]) ф І[т+1]) = ^(5 ■ 2т + 2(-1)т+1). 3
По лемме 5:
гапк((Б[гі] ® М[т]) ф 1[^+т+1]) = 2^-11(5 . 2т + 2(-1)т+1).
3
По лемме 3 имеем окончательное значение ранга:
гапк((1И ® Б^ ® М[т]) ® 1[^+т+1]) = 2*+^-1 ^(5 ■ 2т + 2(-1)т+1).
3
И число инвариантных функций в этом случае будет равно ^(р) = 22"-2^-4 (5^2т+2(_1)т+1).
Подставим значение г = п — т — й в это выражение:
^(р) = 22п-2п-т-11 (5^2т+2(_1)т+1).
Применяя опять леммы 6 и 7, получим, что 3^2т'С'ПгС'П_т преобразований будут иметь такое же количество инвариантных функций, так как / можно расставить СП способами, после этого 5 можно расставить СП_т способами и 3^ способами можно заменить 5 на п и е, 2т способами — / на V.
Теперь используем лемму Бернсайда для Я-преобразований в следующей формулировке:
К(п) = ^ ^ в^.
|йп 1 *>€£„
В данной сумме сгруппируем одинаковые слагаемые:
(
2тСт5£(£... 1 /... /)+
\ га_т, т
1 П
К(п) = бп Е
т=0
+ ^ 3^тСтСП_т5£( ^... 1 5 ... 5 /... /)
^=1 га_т_й ^ т
Подставим полученные формулы для числа инвариантных функций:
п
К(п) = -1 2тс;г 22П_2П-т2(2т+(_1)т+1) +
6п ^ п т=0
п_т
:íd^-id -2П_2П — т —11 ( 5^2т_
+ ^ 3dCd 22П_2П—т —13(5^2т+2(_1)т+1М
d=1 /
Первое слагаемое внутри суммы упрощается следующим образом:
22П_2П —т § (2т + (_1)т+1) = 2 2П —т (2т + 2( —1)т )
Второе слагаемое упрощается с помощью формулы бинома Ньютона:
п_т
3dcd 22П—2П т 133 (5-2т+2(_1)т+1) =
d=1
2n-m(2m+2(-1)m)
6
d=1
В итоге получается следующая формула для числа S-классов:
m=0
□
Список литературы
1. Логачев О.А. Булевы функции в теории кодирования и криптологии / О.А. Логачев, А.А. Сальников, В.В. Ященко — М.: МЦНМО, 2004. — 470 с.
2. Черемушкин А.В. Линейная и аффинная классификация дискретных функций (обзор публикаций) / А.В. Черемушкин // Математические вопросы кибернетики, 2005. — С. 261-280.
3. Избранные вопросы теории булевых функций: Монография / А.С. Балюк, С.Ф. Винокуров, А.И. Гайдуков и др.; Под ред. С.Ф. Винокурова, Н.А. Пе-рязева. — М.: Физматлит, 2001. — 192 с.
S. F. Vinokurov, A. S. Kazimirov
Enumeration of operator classes for boolean functions
Abstract. This paper contains the results for enumeration of S-classes of Boolean functions. S-classification is based on operator representations for Boolean functions which are an extension of EXOR-sum-of-products expressions.
Keywords: boolean function, polynomial form, operator, special normal form, group classification.
Винокуров Сергей Федорович, доктор физико-математических наук, профессор, Восточно-Сибирская государственная академия образования, 664011, Иркутск, ул. Н. Набережная, 6 тел.: (3952)240435 (vin@math. isu.ru)
Казимиров Алексей Сергеевич, кандидат физико-математических наук, Восточно-Сибирская государственная академия образования, 664011, Иркутск, ул. Н. Набережная, 6 тел.: (3952)240435 тел.: (3952)242210 ([email protected])
Vinokurov Sergey, East Siberian State Academy of Education, 6, N. Naberezhnaya St., Irkutsk, 664011 professor, Phone: (3952)240435 (vin@math. isu.ru)
Kazimirov Alexey, East Siberian State Academy of Education, 6, N. Naberezhnaya St., Irkutsk, 664011 Phone: (3952)240435 ([email protected])