Серия «Математика»
2009. Т. 2, № 2, С. 117-125
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 519.7
Минимизация мультиопераций в классе стандартных форм *
Н. А. Перязев
Восточно-Сибирская государственная академия образования И. А. Яковчук
Восточно-Сибирская государственная академия образования
Аннотация. В статье представлен алгоритм минимизации мультиопераций в классе стандартных форм.
Ключевые слова: мультиоперация, стандартная форма, алгоритм, минимизация, пересечение.
1. Мультиоперации. Стандартная форма мультиопераций
Отображение из Ап в А — называется п-местной операцией на А (будем допускать случай п = 0). Множество всех п-местных опрераций на А обозначаем через РД, если при этом А является к-элементным множеством, то используем обозначение РЩ.
Пусть В(А) — множество всех подмножеств А, в том числе 0. Отображение из Ап в В (А) называется п-местной мультиоперацией на А (используется также термин — частичная гипероперация [1]). Для множества всех п-местных мультиопераций на А используем обозначение НД, при |А| = к, соответственно, обозначаем так НЩ. Используем также обозначения Нд = Ц1 п>о НА и Н = и„>о НЩ.
Суперпозиция мультиопераций определяется следующим образом
* Работа выполнена при финансовой поддержке РФФИ, гранты 07-01-00240 и
09-01-00476.
Следуя [2] мультиоперацию f € НД на множестве A = {1, 2} можно представить как отображение
f : {1, 2}П ^ {0,1, 2, 3}, получаемых из f при кодировке
0 ^ 0; {1} ^ 1; {2} ^ 2; {1, 2} ^ 3.
При этом n-местную мультиоперацию f задаем векторной формой (ai,а2п), где f (ai,an) = di и (ai — 1,an — 1) есть представление i в двоичной системе счисления.
Введем постоянные обозначения для некоторых функций. Бинарная мультиоперация П € Н|, определяется так n(a, b) = {a} П {b}. Как принято будем в дальнейшем использовать суффиксную форму записи n(a, b) = (a П b). Очевидно, что эта мультиоперация коммутативна и ассоциативна. Поэтому, как обычно, несущественные скобки будем опускать.
Мультиоперации d^ € НП определим через их векторное задание
diПа = (3,..., 3,a, 3,..., 3), (1 < i < 2n),
где a € {0,1, 2}. В частности d0)Q, = (a).
Несложно заметить, что любую мультиоперацию f € НП и f = (3,..., 3) можно представить следующим образом:
f (xi, ...,Жп) = П dj(xi, ...,Жп), j
где dj € { d¿n, |a € {1, 2}}, причем для каждой f множество компонент разложения {dj} единственно.
Назовем такое каноническое представление совершенной стандартной формой.
Очевидным образом совершенную стандартную форму можно обобщить.
Пусть f € Щ. Тогда следующее представление назовем стандартной формой мультиоперации [3]
f (xi,...,xn) = п dj (xii ,...,x¿m), с1.1)
j
где dj € {djm | 0 < m < n, a € {0,..., 3}}.
Пример 1. Представим мультиоперацию f € НП заданной векторно f (xi, Х2, X3) = (32323030) стандартной формой.
f (Х1,Х2,Хз) = d222 (Х1,Хз) П d420 (Х1,Хз).
МИНИМИЗАЦИЯ МУЛЬТИОПЕРАЦИЙ В КЛАССЕ СТАНДАРТНЫХ ФОРМ 119 В то же время
/(Ж1,Ж2,Жз) = ¿2^2 (хз) П ¿42! (Ж1, Ж3)
Как видим, представление мультиопераций стандартной формой не единственно.
2. Алгоритм минимизации мультиопераций в классе стандартных форм
Ниже приводится алгоритм, позволяющий найти минимальное представление мультиопераций в классе стандартных форм по количеству компонент пересечения, основанный на минимизации булевых функций в дизъюнктивных нормальных формах.
Пусть дана п - местная мультиоперация / € НЩ, заданная векторной формой / = (а1,...,а2п), где /(а1,...,ага) = аг, (а1,...,ага) является 1-м набором при натуральном упорядочивании наборов, (1 < г < 2Щ).
Как показано ранее, представить данную мультиоперацию в стандартной форме можно не единственным способом, поэтому правомерна задача минимизации, то есть разработка алгоритмов, позволяющих найти минимальное представление мультиоперации в классе стандартных форм.
Под минимальным будем понимать представление мультиоперации в виде стандартной формы с наименьшим количеством компонент пересечения. Количество компонент пересечения в представлении назовем его сложностью.
На вход алгоритма подается вектор а, представляющий мультиоперацию /.
На выходе алгоритма получим минимальную стандартную форму, представляющую мультиоперацию / и сложность этой формы.
Перейдем к описанию алгоритма.
Ш!аг 1. Получим все возможные представления мультиоперации / в следующем виде:
/ = Л,0 П ^1 П Л,2, (2.1)
где Л-0 = (в1, •••, в2п ), Л-1 = (71,---,72п ), ^2 = (^1,...,^2" ), вг € {0, 3}, 7г € {1, 3}, 5г € {2, 3}.
Количество возможных представлений мультиоперации / в требуемом виде зависит от к — количества компонент аг = 0 вектора а, представляющего данную мультиоперацию.
Рассмотрим различные варианты значений к:
- к = 0.
В этом случае мультиоперация имеет единственное представление
/(а) = ^1 ( а) П Л,2( а)
Продемонстрируем данное представление для мультиоперации размерности 3.
Пусть / = (31123321), тогда Лі = (31133331), Л-2 = (33323323).
- к = 1.
Одна компонента од векторного представления мультиоперации / равна нулю. В таблице (1) приведены возможные 5 вариантов значений соответствующих ¿-компонент мультиопераций Ло, Лі,Л2, также представленых в векторном виде.
Таблица 1.
номер варианта і - компонента
Ло Лі Л-2
1 3 1 2
2 0 1 3
3 0 1 2
4 0 3 2
5 0 3 3
- к > 1.
Очевидно, что для к наборов на которых а = 0 необходимо рассмотреть 5к возможных перестановок соответствующих значений ¿-компонент мультиопераций Ло,Л,1,Л,2.
Таким образом, первый шаг алгоритма сводится к построению 5к возможных различных вариантов представлений заданной мультиоперации / в виде (2.1). Как видим, количество вариантов представления экспоненциально зависит от количества нулей в векторном представлении мультиоперации.
Ш!аг 2. Заменим все мультиоперации в каждом из 5к представлений, полученных на первом шаге алгоритма булевыми функциями. Обозначим через
вг — ¿ - компоненты векторного представления булевых функций /о /ъ
аг — соответствующие им компоненты векторного представления мультиопераций Ло, Л-1, Л-2.
Тогда
в = / 1, если аг = 3;
\ 0, если аг = 3.
Итак, на втором шаге алгоритма мы получим 3 ■ 5к булевых функций. Отметим, что каждое представление мультиоперации описывается тремя булевыми функциями /о, /1, /2.
Ш!аг 3. Для каждой, полученной на втором шаге алгоритма булевой функции, найдем кратчайшую ДНФ.
Ш!аг 4. Вычислим сложность каждого представления мультиоперации как сумму элементарных конъюнкций, входящих в кратчайшие ДНФ булевых функций /о, /1, /2, описывающих данное представление. Определим номер первого представления мультиоперации с наименьшей сложностью — представление под данным номером, записанное в стандартной форме и будет выходными данными алгоритма.
Для того, чтобы перейти от булевых функций к записи представления мультиоперации в стандартной форме необходимо каждой элементарной конъюнкции, входящей в кратчайшие ДНФ булевых функций /а, где а € {0,..., 2} поставить в соответствие функцию 63(ж^, ...,Жгт), такую что 63 € {б^ | 0 < т < п}.
Тогда представление вида
/ (Ж1,...,Жга) = р| (Жгх ,...,Жгт ),
3
является стандартной формой мультиоперации /.
На этом описание алгоритма окончено.
Продемонстрируем работу алгоритма на следующем примере.
Пример 2. На вход алгоритма подана мультиоперация / (Ж1 ,Ж2,Жз) = (33201210).
Шаг 1. Найдем все представления данной мультиоперации в виде
/ = Л0 П Л1 П Л2.
Количество нулей в векторном представлении мультиоперации равно двум, поэтому возможно 25 различных вариантов ее представления. Все варианты представлены в таблице 2. Значения компонент мультиопераций Ло ,^1,^2, соответствующих нулевым компонентам мультиоперации / выделены шрифтом.
Шаг 2. Заменим мультиоперации Ло,Л,1,Л,2 булевыми функциями. Результат замены представим в таблице 3.
Шаг 3. Для каждой булевой функции, полученной на втором шаге алгоритма найдем кратчайшую. Результаты представлены в таблице 4.
Шаг 4. Из таблицы 4 видно, что минимальную сложность имеют пять представлений мультиоперации, соответствующие разложениям под номерами 1, 19, 20, 24, 25. Они имеют сложность четыре. В качестве результата работы алгоритма берется первое представление с наименьшей сложностью — это представление, соответствующее разложению под номером 1.
Запишем его в стандартной форме
/(Ж1,Ж2,Жз) = б4д(Ж2,Жз) П б3д(Ж1, Жз) П б222(Ж1 ,Ж2) П б422(Ж1,Жз).
Таблица 2.
Варианты представления мультиоперации
номер варианта Ло Л-1 Л-2
1 (33333333) (33311311) (33223232)
2 (33333330) (33311311) (33223233)
3 (33333330) (33311311) (33223232)
4 (33333330) (33311313) (33223232)
5 (33333330) (33311313) (33223233)
6 (33303333) (33311311) (33233232)
7 (33303330) (33311311) (33233233)
8 (33303330) (33311311) (33233232)
9 (33303330) (33311313) (33233232)
10 (33303330) (33311313) (33233233)
11 (33303333) (33311311) (33223232)
12 (33303330) (33311311) (33223233)
13 (33303330) (33311311) (33223232)
14 (33303330) (33311313) (33223232)
15 (33303330) (33311313) (33223233)
16 (33303333) (33331311) (33223232)
17 (33303330) (33331311) (33223233)
18 (33303330) (33331311) (33223232)
19 (33303330) (33331313) (33223232)
20 (33303330) (33331313) (33223233)
21 (33303333) (33331311) (33233232)
22 (33303330) (33331311) (33233233)
23 (33303330) (33331311) (33233232)
24 (33303330) (33331313) (33233232)
25 (33303330) (33331313) (33233233)
Таблица 3.
Результат замены булевыми функциями
номер варианта /о /і /2
1 (00000000) (00011011) (00110101)
2 (00000001) (00011011) (00110100)
3 (00000001) (00011011) (00110101)
4 (00000001) (00011010) (00110101)
5 (00000001) (00011010) (00110100)
6 (00010000) (00011011) (00101001)
7 (00010001) (00011011) (00100100)
8 (00010001) (00011011) (00100101)
9 (00010001) (00011010) (00100101)
10 (00010001) (00011010) (00100100)
11 (00010000) (00011011) (00110101)
12 (00010001) (00011011) (00110100)
13 (00010001) (00011011) (00110101)
14 (00010001) (00011010) (00110101)
15 (00010001) (00011010) (00110100)
16 (00010000) (00001011) (00110101)
17 (00010001) (00001011) (00110100)
18 (00010001) (00001011) (00110101)
19 (00010001) (00001010) (00110101)
20 (00010001) (00001010) (00110100)
21 (00010000) (00001011) (00100101)
22 (00010001) (00001011) (00100100)
23 (00010001) (00001011) (00100101)
24 (00010001) (00001010) (00100101)
25 (00010001) (00001010) (00100100)
Таблица 4.
Минимальные ДНФ
номер варианта /о /1 /2 сложность
1 - ж2ж3 V х1Х3 Х1х2 V ж1ж3 4
2 Ж1Ж2Ж3 ж2ж3 V х1Х3 Х1х2 V ж1ж2ж3 5
3 Ж1Ж2Ж3 ж2ж3 V х1Х3 Х1х2 V ж1ж3 5
4 Ж1Ж2Ж3 х1 Х3 V ж1ж2ж3 Х1х2 V ж1ж3 5
5 Ж1Ж2Ж3 х1 Х3 V ж1ж2ж3 Х1х2 V ж1ж2ж3 5
6 Ж1Ж2Ж3 ж2ж3 V х1Х3 ж2ж3 V х1Х3 5
7 Ж2Ж3 ж2ж3 V х1Х3 Х1х2Х3 V ж1ж2ж3 5
8 Ж2Ж3 ж2ж3 V х1Х3 ж1ж3 V Х1х2Х3 5
9 Ж2Ж3 х1 Х3 V ж1ж2ж3 ж1ж3 V Х1х2Х3 5
10 Ж2Ж3 х1 Х3 V ж1ж2ж3 Х1х2Х3 V ж1ж2ж3 5
11 Ж1Ж2Ж3 ж2ж3 V х1Х3 Х1х2 V ж1ж3 5
12 Ж2Ж3 ж2ж3 V х1Х3 Х1х2 V ж1ж2ж3 5
13 Ж2Ж3 ж2ж3 V х1Х3 Х1х2 V ж1ж3 5
14 Ж2Ж3 х1 Х3 V ж1ж2ж3 Х1х2 V ж1ж3 5
15 Ж2Ж3 х1 Х3 V ж1ж2ж3 Х1х2 V ж1ж2ж3 5
16 Ж1Ж2Ж3 х1Х3 V ж1ж2 Х1х2 V ж1ж3 5
17 Ж2Ж3 х1Х3 V ж1ж2 Х1х2 V ж1ж2ж3 5
18 Ж2Ж3 х1Х3 V ж1ж2 Х1х2 V ж1ж3 5
19 Ж2Ж3 х1Х3 Х1х2 V ж1ж3 4
20 Ж2Ж3 х1Х3 Х1х2 V ж1ж2ж3 4
21 Ж1Ж2Ж3 х1Х3 V ж1ж2 ж1ж3 V Х1х2Х3 5
22 Ж2Ж3 х1Х3 V ж1ж2 Х1х2Х3 V ж1ж2ж3 5
23 Ж2Ж3 х1Х3 V ж1ж2 ж1ж3 V Х1х2Х3 5
24 Ж2Ж3 х1Х3 ж1ж3 V Х1х2Х3 4
25 Ж2Ж3 х1Х3 Х1х2Х3 V ж1ж2ж3 4
3. Тестирование алгоритма
Для тестирования алгоритма была написана компьютерная программа и проведены следующие эксперименты.
Проведена минимизация всех мультиопераций в классе стандартных форм для п = 2 и п = 3.
Для каждой мультиоперации была найдена сложость ее минимального представления. Полученные данные позволили определить среднюю сложность минимального представления мультиопераций в классе стандартных форм для п = 2 и п = 3 и количественное распределение мультиопераций по сложностям полученных минимальных представлений.
Ьаъег (2) = 2.38, Ьаъег (3) = 4.14, где Ьаъег — средняя СЛОЖНОСТЬ минимального представления мультиопераций в классе стандартных форм.
Распределение полученных минимальных представлений при п = 2 отражено в таблице 5 и при п = 3 в таблице 6. Используем следующие обозначения: Ь — сложность мультиопераций; к — количество мультиопераций, имеющих соответствующую сложность, Р — процент от числа всех мультиопераций.
Таблица 5.
L 1 2 3 4
k 24 124 92 14
P 9.45% 48.82% 36.22% 5.51%
Таблица 6.
L 1 2 3 4 5 6 7 8
k 78 1765 13319 28966 17144 3724 512 26
P 0.12% 2.69% 20.32% 44.2% 26.16% 5.69% 0.78% 0.04%
Выше было показано, что сложность алгоритма увеличивается экспоненциально в зависимости от количества нулей, входящих в векторное представление мультиоперации. С другой стороны, на сложность алгоритма влияет выбор метода минимизации булевых функций [4, 5].
Список литературы
1. Romov B.A. The completeness problem in partial hyperclones / B. A. Romov // Discrete Mathematics, 2006. — 306. — P. 1405—1414.
2. Перязев Н.А. Клоны, ко-клоны, гиперклоны и суперклоны / Н. А. Перязев // Ученые записки Казанского государственного университета. Серия: Физикоматематические науки; Казань, 2009. — Т. 151. Книга 2. — С. 120-125.
3. Перязев Н.А. Супеклоны мультиопераций /Н. А. Перязев // Труды VIII Международной конференции "Дискретные системы в теории управляющих систем". — М.: МАИС Пресс, 2009. — С.233-238.
4. Дискретная математика и математические вопросы кибернетики / Под ред. С.В.Яблонского и О.Б.Лупанова / — М.: Наука, 1974. —Т.1.— 312 с.
5. Избранные вопросы теории булевых функций. / Под ред. С.Ф. Винокурова и Н.А. Перязева / — М.: Физматлит, 2001. — 192 с.
N. A. Peryazev, I. A. Yakovjuk
Minimisation of multioperations in a class Standard forms
Abstract. In article the algorithm of minimisation of multioperations in a class of standard forms is presented.
Keywords: multioperation, the standard form, algorithm, minimisation, crossing.
Перязев Николай Алексеевич, доктор физико-математических наук, профессор, кафедра математической информатики,
Восточно-Сибирская государственная академия образования,
664011, Иркутск, Нижняя набережная, 6; тел.: (3952)240477
Яковчук Инна Александровна, аспирант, кафедра математической информатики, Восточно-Сибирская государственная академия образования, 664011, Иркутск, Нижняя набережная, 6; тел.: (3952)240477 ([email protected])
Peryazev Nikolay, East Siberian Academy of Education, 6, Nig-naya Naberegnaya, Irkutsk, 664011 professor, Phone: (3952)240477
Yakovjuk Inna, East Siberian Academy of Education, 6, Nig-
naya Naberegnaya, Irkutsk, 664011 aspirant, Phone: (3952)240477