2. Функциональный анализ и дифференциальные уравнения
УДК 519.716.5
doi: 10.18097/1994-0866-2015-0-9-16-22
О КЛАССАХ БУЛЕВЫХ ФУНКЦИЙ, ПОРОЖДЕННЫХ МАКСИМАЛЬНЫМИ
МУЛЬТИКЛОНАМИ1
© Казимиров Алексей Сергеевич
кандидат физико-математических наук, доцент кафедры математической информатики Иркутского государственного университета
Россия, 664003, г. Иркутск, ул. Карла Маркса, 1, e-mail: [email protected]
© Пантелеев Владимир Иннокентьевич
доктор физико-математических наук, профессор кафедры математической информатики Иркутского государственного университета
Россия, 664003, г. Иркутск, ул. КарлаМаркса, 1, e-mail: [email protected]
Если рассматривать дискретные функции на множестве A, то мультифункции можно определить как функции на множестве 2A, при этом значения мультифункций для значений аргументов из A задаются, а для значений, не являющихся одноэлементными множествами, определяются как объединение всех значений мультифункции на одноэлементных множествах. Таким же образом определяется суперпозиция для мультифункций. Клоны мультифункций называются мультиклонами. Число всех максимальных клонов мультифункций на двухэлементном множестве равно 15. В статье рассматриваются классы булевых функций по принадлежности максимальным мультиклонам. Множество булевых функций разбивается на 18 классов эквивалентности.
Ключевые слова: булевы функции, функции алгебры логики, клоны, мультифункции.
ON THE CLASSES OF BOOLEAN FUNCTIONS GENERATED BY MAXIMAL
MULTICLONES
Aleksey S. Kazimirov
PhD, A/Professor, Department of Mathematical Informatics, Irkutsk State University
1 Karla Marksa st., Irkutsk 664003, Russia
Vladimir I. Panteleev
DSc, Professor, Department of Mathematical Informatics, Irkutsk State University
1 Karla Marksa st., Irkutsk 664003, Russia
If we consider the discrete functions on a set A, the multifunction can be defined as a function on a set 2A, herewith the values of multifunctions for argument values of A are given, and for the values that are not singletons are defined as a union of all multifunction values on one-element sets. In the same way it is determined by the superposition of multifunctions. Clones of multifunctions are defined as multiclones. There are 15 maximal multiclones on 2-element set. In the article Boolean functions are considered by their inclusion in maximal multiclones. The set of Boolean functions is divided into 18 classes of equivalence.
Keywords: Boolean functions, logic functions, clones, multifunctions.
Введение
В теории дискретных функций, наряду со всюду определенными функциями k-значной логики, изучаются и функции, определенные не на всех наборах. При этом незаданность или неопределенность может пониматься по-разному, в зависимости от рассматриваемого класса за -дач. Не всюду заданными функциями на конечном множестве являются и так называемые
1 Работа выполнена при финансовой поддержке РФФИ, грант 13-01-00621
мультифункции, у которых неопределенность понимается как некоторое неодноэлементное (в том числе и пустое) подмножество конечного множества, на котором эти функции заданы.
Для того чтобы операция суперпозиции некоторых функций определяла новую мульти-функцию, требуется определить значения этих функций на наборах, составленным из подмножеств. Делается это следующим образом: находятся все значения, которые возвращает внешняя функция на наборах, составленных из элементов соответствующих подмножеств, и затем берется объединение полученных результатов. Относительно введенной суперпозиции естественным образом ставятся задачи нахождения эффективных критериев полноты и сопутствующая задача описания максимальных клонов. Если критерий полноты описан в терминах максимальных клонов, то на множестве рассматриваемых функций можно определить отношение эквивалентности, при котором две функции входят в один класс, если у них совпадают отношения принадлежности максимальным клонам. Введенное отношение эквивалентности разбивает множество всех функций на классы.
Для множества булевых функций, как известно, число максимальных клонов равно 5, а число классов, на которые множество всех функций разбивается относительно принадлежности максимальным клонам, равно 15 [1].
В [2] описаны все 15 максимальных клонов мультифункций на двухэлементном множестве. В работе рассматривается распределение булевых функций по классам, определяемых максимальными клонами и доказывается, что булевы функции порождают 18 классов.
1. Постановка задачи
Пусть |А| - мощность множества А, 2А - множество всех подмножеств А и Е2={0,1}. Определим следующие множества функций:
Рп={/: ЕП ^ 2Е2}, р2* = и р2*;;
п
Рхп = {/: ЕП ^ 2Е \ {0}},Р- = иРхп;
п
Р2,п = {/: ЕП ^ Е2, р = иР2,п.
п
Функции из р2*~ называются мультифункциями, из р2~ - гиперфункциями, р2 - булевыми функциями. Очевидно, что множество булевых функций вкладывается в множество гиперфункций, которое в свою очередь вкладывается в множество мультифункций.
Суперпозиция / (/1(х1,...,хт),...,/п(х^...,хт)) определяет мультифункцию g(х^...,хт)
следующим образом: для любого набора (а1,...,ат) выполняется
g(a1,...,am) = У /(¿„-А). (1)
(а1,^,ат )
Формула (1) фактически позволяет находить значение мультифункции на подмножествах множества Е2 и задает вложение мультифункций в множество функций {/: 2Е ^ 2Е2} . При этом все такие функции однозначно определяются своими значениями на наборах, составленных из одноэлементных множеств. Если в наборе есть хотя бы одно неодноэлементное подмножество, то значение на таких наборах определяется в соответствии с (1) как объединение всех значений функции на соответствующих наборах, составленных из одноэлементных подмножеств.
Не будем в дальнейшем различать одноэлементное подмножество и элемент этого подмно -жества, кроме этого для множества {0,1} будем использовать обозначение - (прочерк), а для пустого множества - *.
Понятия максимального клона, функции, сохраняющей предикат являются стандартными (см., например [2]). Предикаты ниже будем записывать в виде матрицы, в которой столбцами являются все наборы из предиката.
В [2] описаны все 15 максимальных клонов мультифункций. Такими являются:
К1 - клон функций, тождественно равных * или на наборе из всех нулей возвращающих 0 или -;
К2 - клон функций, тождественно равных * или на наборе из всех единиц возвращающих 1 или -;
К3 - клон функций, на наборе из всех нулей возвращающих 0 или *; К4 - клон функций, на наборе из всех единиц возвращающих 1 или *;
К5 - клон всех гиперфункций в объединении с множеством мультифункций, тождественно равных
К6 - клон всех мультифункций, на любом наборе возвращающих значения 0, 1 или
К7 - клон мультифункций,
сохраняющих предикат
(0***01 -я7 =1
' I 10 1 — * * * К9 - клон мультифункций, сохраняющих предикат
0 0 10 - 1 -
1 0 1
- 0 1 -
К8 - клон мультифункций, сохраняющих предикат
(1 0 * ^ "[0 1 *
Кю - клон мультифункций, сохраняющих предикат
0010 - -- 0 - 1 10 1 - 1 0 - * * *
Кц - клон мультифункций, сохраняющих предикат
Яи =
Г 0 1
1 - 0
- 0 * *
1 ^
1 0 0 0 0 ^ - 1 - - 1
К12 - клон мультифункций, сохраняющих предикат Я^, который содержит все наборы, кроме
(0 00111 - -- 011 - 10 - - 0 - - 0 ^ 01 - 01 - 01 - 010 - -- 1010 - -*********1000000001 1 \/
К13 - клон мультифункций, сохраняющих предикат Я^, который содержит все наборы, кроме
(11111 1 10010 - 1 - -- 0010 - 1
1010 - 0 - 1 - 0 - 1001 - - 1 - 1
\ /
Км - клон мультифункций, сохраняющих предикат Ям, который содержит все наборы, кроме
(* 0 0 0 1 1 1 1 0^ а 0 0 10 110 1 /3 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1, (а, /3, у Ф *) и не содержит наборы без *, в которых есть - и элемент из Е2.
Если в некотором наборе заменим 1 на 0, а 0 на 1 и все остальные элементы оставим без изменения, то полученный набор назовем двойственным к исходному.
К15 - клон мультифункций, сохраняющих предикат Я15, который содержит все наборы, кроме
* 00000000 ^ а 1 - 1 - - 10 0
Р 1 - - 10 0 - 1
у
и двойственных к ним (а, /3, у, Ф *,уе {1,-}, ^ е {0,1,-}).
Для каждой мультифункции однозначным образом определим вектор принадлежности максимальным клонам, в котором на 7-й позиции (7=1,...,15) стоит 0, если мультифункция принадлежит 7-му максимальному клону, и 1 иначе.
Будем говорить о значении функции Дг1,...,х„) на наборах (ац,...^), ..., (аи,...ак)Я), как о наборе (6Ь...,6И), где Ъ, = ^а^.а^у).
На множестве всех мультифункций определим отношение эквивалентности следующим образом: эквивалентными будут мультифункции, у которых совпадают векторы принадлежности максимальным клонам мультифункций. Очевидно, что число классов получившегося разбиения не превышает число 215. Поставим вопрос: сколько классов порождают булевы функции?
*
*
*
2. Основной результат
Вначале оценим сверху число классов.
Лемма 1. Если функция не принадлежит классу К8, не сохраняет 0 и не сохраняет 1 , то она не принадлежит классу Км.
Доказательство. Пусть / не принадлежит К8. Тогда на наборах (10), (01) и (—) функция возвращает набор, не принадлежащий предикату Я8 — (00) или (11). Так как/не сохраняет 0 и 1, то на наборах (0101), (0011), (0—1) возвращает набор (1000) или (1110). Если все наборы (0-1) заменить на (0101), то значение функции не изменится. Тогда функция на наборах из Ям возвратит набор, который не принадлежит Ям.
Лемма 2. Если функция не принадлежит классу Км и не сохраняет 1, то она не принадлежит классу К15.
Доказательство. Так как функция не принадлежит Км и не сохраняет 1, то на наборах (0000), (0011), (0101), (0110), (1001), (1100), (1010), (1111) функция возвращает (0001), (1110), или (000 -). Рассмотрим только первый случай. В этом случае на наборах (001), (101), (111), (011) функция возвращает (100). Наборы (011) заменим на (010). Если значение функции не изменится, то она не принадлежит К15. В противном случае функция на наборах (100), (110), (101), (111), (001), (010) возвращает (100). Наборы (100) заменим на (101). Если значение функции не меняется, то она не принадлежит К15. Иначе на наборах (110), (010), (111) функция возвращает (100) и не принадлежит К15.
Лемма 3. Функция принадлежит классу К9 тогда и только тогда, когда она принадлежит классу Кщ
Доказательство. Следует из определения классов.
Лемма 4. Если функция / не принадлежит классу К9, то она не принадлежит классам К12, К13.
Доказательство. На наборах из Я9 функция /возвращает набор (10) или (- 0). В обоих случаях на наборах (01), (00), (11) функция будет возвращать (10). Тогда на наборах (011), (000), (111) из Я12 функция возвратит (100), который не принадлежит Я12. И на наборах (010), (000), (111) из Яв функция возвратит (101), который не принадлежит Я13.
Лемма 5. Если функция не является самодвойственной, сохраняет 0 и сохраняет 1, то она не принадлежит классу К12 или К^.
Доказательство. Из условия леммы следует, что функция на наборах (0011), (0101) возвращает набор (0001) или (0111). В первом случае она не принадлежит К12, во втором — К^.
Лемма 6. Если функция не принадлежит классу К8, сохраняет 0 и сохраняет 1 , то она не принадлежит классам Км, К15.
Доказательство. Пусть / не принадлежит К8. Тогда на наборах (10), (01) и (—) функция возвращает набор, не принадлежащий предикату Я8 — (00) или (11). Так как / сохраняет 0 и 1, то на наборах (0101), (0011), (0—1) возвращает набор (0001) или (0111). Если все наборы (0— 1) заменить на (0101), то значение функции не изменится. Тогда функция на наборах из Ям возвратит набор, который не принадлежит Ям.
В случае (0001) функция на наборах (1101), (1011) возвращает набор (1001), следовательно, не принадлежит К15. Случай (0111) двойственный.
Теорема 1. Множество булевых функций порождает не более 18 классов эквивалентности.
Доказательство. Рассмотрим четыре случая, соответствующие значениям функции на наборах из всех нулей и всех единиц.
Случай 1. Функция на наборе из всех нулей возвращает 1, а на наборе из всех единиц она возвращает 0. В этом случае из определения классов несложно получить, что функция не принадлежит классам К1-К4, К7, К9, Кш, К12, К^ и принадлежит классам К5, К6. Кроме того, в этом случае функция принадлежит классу К8 тогда и только тогда, когда она принадлежит классу Кц. По лемме 1, если функция не принадлежит классу К8, то она не принадлежит классам Км, К15. А по лемме 2, если функция не принадлежит классу Км, то она не принадлежит классу К15. Поэтому в данном случае число классов не больше 4.
Случай 2. Функция на наборе из всех нулей и на наборе из всех единиц возвращает 1. Очевидно, что такие функции принадлежат классам К2, К4, К5, К6 и не принадлежат классам Кь К3, К7, К8, Кц. Если функция ни на одном наборе не возвращает 0, то она образует один класс. Пусть есть набор, на котором функция возвращает 0, тогда она является немонотонной. Немонотонные функции не принадлежат классам К9, К10. Выполнив для функции отождествление
переменных, и, возможно, переименование, можно получить функцию g, зависящую от трех аргументов, такую, что g(00-)=1, g(011)=0, g(001)=1. И для функции g выполняется:
g
( 0 0 0
1 1
1
= 0, 0
g
(0 0 0
1 1
1
= 1, 0
g
(0 0 0 1
1 ^ 0 1 1
0 1 0 1
Из данных равенств следует, что функция не принадлежит классам К12, К^, К15. Таким образом, для данного случая число классов не более 3.
Случай 3. Функция на наборе из всех нулей и на наборе из всех единиц возвращает 0. Очевидно, что этот случай является двойственным к случаю 2 и число классов здесь тоже не более 3.
Случай 4. Функция на наборе из всех нулей возвращает 0, а на наборе из всех единиц возвращает 1. Все такие функции принадлежат классам К1-К7. Далее рассмотрим два варианта: функция является самодвойственной и не является таковой.
Если функция не самодвойственная, то она не принадлежит классам К8, Кц, Км, К15. По лемме 3 для классов К9, К^ в векторе принадлежности возможны только варианты (00) и (11). По лемме 4, если функция не принадлежит классу К9, то она не принадлежит классам К^, К^, т. е. набор (11) для классов К9, К!0 влечет набор (11) для классов К!2, К!3. По лемме 5 набор (00) для классов К^, К^ невозможен. Т.е. в этом случае число классов не более 4.
Пусть функция является самодвойственной. Если она не монотонная, то на наборах (11), (01), (00) она возвращает (10). Из этого несложно показать, что она не принадлежит классам К9, К№ К12, К13. Так как функция — самодвойственная, то на наборах (10), (00), (01) она возвращает (11). Следовательно, на наборах (0100), (0000), (0010) функция возвращает (0110), то есть не принадлежит К15. В этом случае получается не более двух классов.
Пусть функция является самодвойственной и монотонной. Если она линейная, то единственной такой функцией будет тождественная [3].
Пусть /(х\,...,х„) — монотонная, самодвойственная, нелинейная функция. Такая функция зависит как минимум от трех существенных переменных [3]. Будем считать, что хь х2 — существенные переменные.
Подставим вместо всех переменных, кроме первых двух, константы. Получим множество подфункций 8 = {/хь х2, с3,...,с„)}. Так как/ — монотонная, то среди подфункций могут получиться только (0000), (0001), (0101), (0011), (0111), (1111).
Если в 8 есть хотя бы одна функция (0111), то из самодвойственности в 8 есть также функция (0001). Если в 8 есть (0001), то функция / не принадлежит К^. Подставим наборы (011), (101) вместо хь х2 и наборы (000), (111) вместо остальных переменных в соответствии со значениями констант и получим набор (001), который не принадлежит предикату Я12. Далее считаем, что в 8 не содержатся (0001) и (0111).
Так как хь х2 — две существенные переменные, то в 8 должны встречаться / = (0101) и /2 = (0011):/хь х2, а3,...,а„) = /¡, /(хх, х2, Ъ3,...,ЪИ) = /2.
Выделим среди а7 такие, что а7 Ф Ъ7 и будем последовательно менять эти значения а7 на Ъ7. Если в какой-то момент значение функции будет равно /3 Ф /1, то мы получим два набора, отличающиеся в одной компоненте, дающие две различные подфункции. Этот процесс закончится на наборе, дающем/2 или на промежуточном шаге мы получим/3 Ф/¡. В любом случае получим два набора, отличающиеся в одной компоненте, дающие две различные подфункции. Далее возможны следующие случаи с точностью до перестановки функций:
1) / = (0000), /3 = (0101); 2) / = (0000), /3 = (0011);
3) / = (0101), /3 = (0101); 4) / = (0101), /3 = (1111);
5) / = (0011), /3 = (1111).
В случаях 4, 5 в силу самодвойственности функции найдутся наборы, дающие случаи 1, 2. Случай 3 невозможен в силу монотонности функции. Случаи 1 и 2 аналогичны, поэтому рассмотрим только случай 1.
/(хь х2, с3,...,сг_1,0,сг+1,...,с„) = (0000),/(хь х2, с3,...,сг_ь1,сг+ь...,с„) = (0101)
В этом случае /"на наборах (011), (101), (с3,с3,с3),..., (011), ...,(с„,сп,с„) дает набор (001). Следовательно функция не принадлежит К15. Такие функции образуют не более одного класса.
Таким образом, число классов не больше 18.
Теорема доказана.
Теорема 2. Множество булевых функций порождает 18 классов эквивалентности. Доказательство. Справедливость утверждения следует из теоремы 1 и табл. 1, в которой приведены 18 классов, образованных булевыми функциями.
Таблица 1
Восемнадцать классов, образованных булевыми функциями
№ Функция Максимальные мультиклоны
K, K, K, K4 K5 K6 K7 K8 K9 K10 K„ K12 Kn K14 K] 5
1 0101010101010101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2 0001011100010111 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
3 0110100101101001 0 0 0 0 0 0 0 0 1 1 0 1 1 0 1
4 0111111100000001 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1
5 0111111111111111 0 0 0 0 0 0 0 1 0 0 1 1 1 1
6 0001000100010001 0 0 0 0 0 0 0 1 0 0 1 1 1 1
7 0111011101111111 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1
8 0111111111111101 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
9 0000000000000000 0 1 0 1 0 0 1 1 0 0 1 0
10 0110100110010110 0 1 0 1 0 0 1 1 1 1 1 1 1 0 1
11 0111111111111110 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1
12 1111111111111111 1 0 1 0 0 0 1 1 1 0
13 1111000000001111 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1
14 1111111111111101 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1
15 1111111100000000 1 1 1 1 0 0 1 0 1 1 0 1 1 0
16 1100001100111100 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1
17 1111111010000000 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1
18 1111111111111110 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1
Теорема доказана.
Заключение
Полученный в работе результат показывает, что при исследовании разбиения мультфункций на классы эквивалентности, соответствующие максимальным клонам, булевы функции занимают достаточно скромное место. Как было выше сказано, число классов такого разбиения не больше 215, точное значение пока не известно. В [4] найдены все классы разбиения множества гиперфункций. Их число равно 118. С учетом того, что число максимальных клонов гиперфункций равно 9, а число максимальных клонов мультифункций равно 15, можно предположить, что число классов разбиения множества мультифункций больше сотни.
Литература
1. Яблонский С. В. О суперпозициях функций алгебры логики // Матем. сборник. - 1952. -Т. 30, № 2 (72). - С. 329-348.
2. Пантелеев В. И. Критерий полноты для недоопределенных частичных булевых функций // Вестник НГУ. Серия: Математика, механика, информатика. - 2009. - Т. 9, вып. 3. - C. 95-114.
3. Перязев Н. А., Казимиров А. С. Замкнутые множества булевых функций. - Иркутск: Изд-во Вост-Сиб. гос. акад. образ., 2010. - 52 с.
4. Казимиров А. С., Пантелеев В. И., Токарева Л. В. Классификация и перечисление базисов клона всех гиперфункций ранга 2 // Известия Иркутского государственного университета. Сер. Математика. - 2014. - Т. 7. - С. 61-78.
References
1. Yablonskii S. V. O superpozitsiyakh funktsii algebry logiki [On superpositions of logic functions]. Matematicheskii sbornik — Mathematics collection. 1952. V. 30. No 2 (72). Pp. 329-348.
2. Panteleev V. I. Panteleev V.I. Kriterii polnoty dlya nedoopredelennykh chastichnykh bulevykh funktsii [Completeness criteria for underdetermined partial Boolean functions]. Vestnik Novosibir-skogo gosudarstvennogo universiteta. Seriya: Matematika, mekhanika, informatika - Bulletin of Novosibirsk State University. Series: Mathematics, mechanics, informatics. 2009. V. 9. No. 3. Pp. 95114.
3. Peryazev N. A., Kazimirov A. S. Zamknutye mnozhestva bulevykh funktsii [Complete sets of Boolean functions]. Irkutsk: East-Siberian State Academy of Education, 2010. 52 p.
4. Kazimirov A.S., Panteleev V.I., Tokareva L.V. Klassifikatsiya i perechislenie bazisov klona vsekh giperfunktsii ranga 2 [Classification and enumeration of bases for clone of all rank 2 hyperfunc-tions]. Izvestiya Irkutskogo gosudarstvennogo universiteta. Seriya: Matematika - Proceedings of Irkutsk State University. Series: Mathematics. 2014. V. 7. Pp. 61-78.