Научная статья на тему 'Сравнительная оценка вычислительных алгоритмов полиномиального преобразования булевых функций'

Сравнительная оценка вычислительных алгоритмов полиномиального преобразования булевых функций Текст научной статьи по специальности «Математика»

CC BY
258
92
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛИНОМИАЛЬНАЯ ФОРМА / ОЦЕНКА ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ / POLYNOMIAL FORM / COMPUTATIONAL COMPLEXITY ESTIMATION

Аннотация научной статьи по математике, автор научной работы — Акинин А. А., Подвальный С. Л.

В статье рассматриваются особенности алгоритмов полиномиального разложения n-аргументных булевых функций и анализируется их вычислительная сложность и требуемые аппаратные ресурсы ПЭВМ

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARATIVE ESTIMATION OF COMPUTATIONAL BOOLEAN FUNCTION POLYNOMIAL TRANSFORM ALGORITHMS

The present paper covers features of the polynonial factoring of n-argument boolean functions and analyzes their computational complexity and required PC hardware resources

Текст научной работы на тему «Сравнительная оценка вычислительных алгоритмов полиномиального преобразования булевых функций»

УДК 004.021

СРАВНИТЕЛЬНАЯ ОЦЕНКА ВЫЧИСЛИТЕЛЬНЫХ АЛГОРИТМОВ ПОЛИНОМИАЛЬНОГО ПРЕОБРАЗОВАНИЯ БУЛЕВЫХ ФУНКЦИЙ А.А. Акинин, С.Л. Подвальный

В статье рассматриваются особенности алгоритмов полиномиального разложения п-аргументных булевых функций и анализируется их вычислительная сложность и требуемые аппаратные ресурсы ПЭВМ

Ключевые слова: полиномиальная форма, оценка вычислительной сложности

Полиномиальные логические преобразователи (ПЛП) реализуются на матричных структурах [1-З], приведенных на рис. 1, которые ориентированы на представление логических функций в виде полиномиальных нормальных форм (ПНФ) и в которых используется логический базис Жегалкина [4]: логические функции «И» (AND),

«Исключающее ИЛИ» (EXOR) и «Константа 1».

в)

г)

Рис. 1. Матричные структуры для реализации полиномиальных логических преобразователей

На рис. 1а представлена матричная структура ПЛП, которая базируется на следующем логическом уравнении (1):

Р(х1,х2...хп) = С © К1 © К2 ©... © К, (1)

где К{ - ортогональные элементарные

конъюнкции, в каждую из которых переменные Х1,Х2...хп могут входить как с инверсией, так и без инверсии;

© - знак логической операции «исключающее ИЛИ» (єхсішіує-ог - БХОЯ), которую часто называют «сумма по модулю 2»;

С ={0,1} - признак не инвертирования (С =0) или инвертирования (С =1) функции Б(х1,х2...хп).

Акинин Андрей Александрович - ВГТУ, аспирант, e-mail: [email protected]

Подвальный Семен Леонидович - ВГТУ, д-р. техн. наук, профессор, e-mail: [email protected]

В отечественной литературе форму (1) часто называют «сумма по модулю два элементарных конъюнкций», а в зарубежной - Б8ОР (єхсішіує-ог sum-of-products).

На рис. 1 б представлена матричная структура ПЛП, базирующаяся на следующем логическом уравнении (2):

б(х1,х2...хп)=с © кт © кт ©... © кт, (2) кт-

где

монотонная

элементарная конъюнкция, в каждую из которых входят не инвертированными только те переменные Xl,X2...xn, которые на соответствующих входных наборах равны 1.

В отечественной литературе форму (2) называют полиномом Жегалкина или положительно поляризованным полиномом Рида-Маллера, а в зарубежной - PPRM (positive-polarity Reed-Muller expressions).

На рис. 1в представлена матричная структура ПЛП, базирующаяся на следующем логическом уравнении (З):

F(x p1 ,x22 ...x Пп ) = С е KmP е KmP е ... е KmP, (З) где KimP - поляризованная монотонная элементарная конъюнкция, в которую входят только те переменные x1?x2...xn, которые на соответствующих входных наборах равны 1, при этом инверсными входят те переменные, для которых соответствующий бит поляризации pj =1;

P(p1,p2,...pn) - двоичный вектор поляризации, в котором каждый компонент характеризует полярность соответствующей переменной.

В отечественной литературе форму (З) называют поляризованным полиномом Рида-Маллера с фиксированной полярностью, а в зарубежной - FPRM (fixed-polarity Reed-Muller expressions).

На рис. 1г представлена матричная структура ПЛП, базирующаяся на следующем логическом уравнении (4):

F(x p ,x22 ...x Пп ) = С е V1mP е V2mP е ... е VtmP , (4) где VimP - электронно-перестраиваемые логические функции, реализуемые элементами VAR (variable). Авторы работы [З] предлагают матричную структуру, представленную на рис. 1г, называть VAR-EXOR. Сигнал управления r обеспечивает электронную перестройку логических элементов VAR. При r = 1 реализуется рабочий режим функционирования ПЛП и уравнение (4)

эквивалентно уравнению (3). При г = 0 реализуется режим тестирования ПЛП, при котором входные переменные заменяются на псевдослучайные последовательности максимальной длины (М-последовательности) [3].

Уникальным достоинством полиномиальных логических преобразователей является то, что для их структурного тестирования используются тестовые векторы с унифицированной битовой структурой. При этом для обнаружения любой одиночной константной неисправности достаточное и необходимое количество тестовых векторов не превосходит величины 3п [1, 3], где п -количество аргументов булевой функции.

Следует отметить [5], что преобразование булевой функции к полиномиальной форме относится к №-трудным задачам, в связи с чем вычислительная и объемная сложности алгоритмов

их решения имеют оценку порядка 0(2п), где п -количество аргументов преобразуемой булевой функции. Однако вычислительная и объемная сложности программ, реализующих подобные алгоритмы преобразования, могут существенно отличаться друг от друга, значительно превышая обобщенную (точнее, минимальную) оценку

0(2п) вычислительной и объемной сложности всех возможных алгоритмов полиномиального преобразования булевой функции.

Поиск лучших программных реализаций алгоритмов полиномиального преобразования булевых функций позволит практически их применять в ПЛИС, как при серийном, так и при единичном производстве цифровой аппаратуры, используя в качестве инструментальных средств персональную вычислительную технику.

В данной статье представлены несколько конкурирующих вычислительных алгоритмов, разработанных в [6-10] в соответствии с принципами построения многоальтернативных систем [11], отличающихся критериями эффективности в виде алгоритмической (вычислительной) и объёмной сложности.

Под вычислительным алгоритмом (ВА) будем понимать [12] «точно определенное указание

действий над данными, позволяющее с помощью цифровой вычислительной машины дискретного действия преобразовать за конечное количество операций некоторый массив данных (входные данные) в другой массив данных (выходные данные). В качестве единообразного описания ВА используется язык логических схем алгоритмов (ЯЛС) [13].

В работе [6] подробно рассмотрен подход к автоматическому преобразованию п-аргументных булевых функций к полиному Жегалкина на основе метода неопределенных коэффициентов [14]. Для его реализации исходно необходим упорядоченный вектор Б = (£0, ^..., ^...^п^) значений булевой

функции на всех возможных наборах значений аргументов, из которого автоматически

формируется вектор О = (§о, §1,..., ,..., §2п_1) ,

состоящий из упорядоченных значений

коэффициентов полинома Жегалкина.

При этом подходе учитывается следующая логическая закономерность: в определении значения компоненты § с определенным номером 1,

представленным двоичным кодом т(§1), участвуют только те компоненты £ номера которых ], представленные двоичными кодами s(fj), содержат те же нулевые значения, что и двоичный код т(§1).

С учетом данной закономерности был разработан алгоритм А1, который на языке логических схем алгоритмов формализуется

следующим образом:

А1:||БП; := 0;.]:= 0^:= 0; г:= 0; I4 (1 <2п)Т1;s:= 1; ]:= 1;I3 г:= j&s;(r = 0)Т2 §1 := §1 ® ]|2 §1 := §1 ® 0; ]:= ] _ 1;0 < 0) Т3 1:= 1 +1Т411 Бк||

В предложенном алгоритме (как и во всех последующих) переходы по стрелкам

осуществляются в зависимости от выполнения логических условий, которые заключены в круглые скобки. Если условие не выполняется, то в алгоритме осуществляется переход по верхней стрелке с соответствующей цифрой, если выполняется, то необходимо перейти к следующему за логическим условием оператору. В алгоритме А1 используются следующие обозначения:

1, ], s, г - целые неотрицательные п-разрядные двоичные числа;

Бп - оператор начала алгоритма;

Б0 - оператор ввода количества (п) переменных х1 функции Б;

Б1 - оператор ввода вектора

хь.^ хп-1) = (fо, fl,..., £2п_1);

Б2 - формирование значений компонент вектора °(Х),х1,...,хп_1) = (§0,ё1,...,ё2п _1);

Б3 - обнуление значений компонент вектора О;

Бк - оператор конца алгоритма.

Алгоритм А1 требует для своей реализации объема оперативной памяти не менее чем 2п+1 п-разрядных слов или, в лучшем случае, 2п+1 бит и характеризуется вычислительной сложностью, определяемой следующим соотношением:

= (2 +1)2 = 22п-1 + 2п-1 (5)

1 2

Вычислительная сложность предложенного алгоритма А1 принципиально может быть уменьшена вследствие того, что в [6] было найдено логико-арифметическое преобразование кода индекса ], которое позволяет непосредственно вычислять двоичный код номера следующего компонента вектора Б, участвующего в определении компонента §1. С учетом данного преобразования был разработан алгоритм А2, который представлен ниже:

A2 : ||Dn ; D0; D1; D2; D3; i := 0; j:= 0; s := 0;

r:= 0; і4 (і >= 2n) Т1 s:= i;j:= i;r:= s; і3 gi := gi е fj; r = 2n -1) Т2 r := r +1; r := r v s; j := r;(j >= 0) Т3 і2 і:= і +1Т4 і1 Dk||

В алгоритме А2 используются следующие обозначения:

i, j, s, r - целые неотрицательные n-разрядные двоичные числа;

Dn - оператор начала алгоритма;

D0 - оператор ввода количества (n) переменных xi функции F;

D1 - оператор ввода вектора

F(xo, xl,..., xn-l) = (fo, fl,..., f2n_1);

D2 - формирование значений компонент вектора G(X),xl,...,xn_l) = (go,gl,...,g2n _1);

D3 - обнуление значений компонент вектора G; Dk - оператор конца алгоритма. Вычислительная сложность алгоритма А2 имеет следующую оценку:

S2 = 3n (б)

В предложенном алгоритме А2 с помощью операций r:=r+1, r:=r V s, j = r выполняется найденное логико-арифметическое преобразование, обеспечивающее непосредственное вычисление индекса следующего компонента fj, значение которого должно суммироваться для нахождения значения компонента gi.

Для нахождения коэффициентов полинома Жегалкина gi оказалось возможным использовать не только значения компонент fj, но и ранее определенные значения коэффициентов gq вектора G, в результате чего был разработан алгоритм преобразования АЗ:

A3:||Dn;Do;Dl;D2;D3;i := 0;j:= 0;s:= 0; r:= 0;

m:= 0;і5 (i>=2n)Т1 s:= i;j:= i;r:= s;і4

gi := gi еfj; (r = 2n -1)Т2 r:= r+1;r:= rvs; j:= r;

(i = 0)ТЗ( >=2m) Т4 j := і_2m;gi := gi е^;

і2і3 i:=i +1;m:= іп^^(і))Т5і1 Dk||

Алгоритм АЗ обеспечивает снижение вычислительной сложности до оценки (7) за счет дополнительного логико-арифметического

преобразования кода индекса j, которое реализуется

с помощью операций r:=r+1, r:=r V s, j = r , а также

j = i-2m, gi = gi еgj алгоритма АЗ.

Вычислительная сложность алгоритма АЗ может быть оценена следующей величиной: n 3n

S3 = 3n _ X ЗІ-1 + 2n »—+ 2n (7)

3 i=l 2

В [7] рассматривается автоматизация полиномиального разложения п - аргументных булевых функций на основе метода конечных разностей. В основе предложенного метода лежат особенности дифференцирования булевых функций, которые подробно изложены в [15, 16].

Анализ данного метода убеждает, что возможна некоторая строго формализованная процедура, дающая возможность в рамках единого алгоритма получать всё множество поляризованных полиномов п - аргументных булевых функций, учитывая при этом вектор поляризации. При этом подобный алгоритм может быть в некотором смысле идентичен взятию производных в определенной точке булевой функции, например, базирующийся на исчисление конечных разностей [17].

В [7] разработан алгоритм А4 преобразования булевой функции на основе метода конечных разностей:

А4: К; Оо; 02; Оз; і := 0; j := 0; s := 0;

§о := fо;c2n _1 := ^ _1 Мз сі := fj © fj+l;i:= і+1; j := j + 1;(і < 2n-1-s) Т1 s:= s + 1;(s = 2п _1) Т2

gs := с0;і := 0; j := 0; Э4 Т^2 Эк||

В алгоритме А4 используются следующие обозначения:

Бп - оператор начала алгоритма;

Бк - оператор конца алгоритма;

Б0 - оператор ввода количества (п) переменных хі функции Г;

Б1 - оператор ввода вектора

xl,..., хп-1) = (fо, ^-, f2n_1);

32 - формирование и обнуление значений компонент вектора

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

G(xо, х1,...,хп-1) = ^ §1,...,ё2п _1);

33 - формирование и обнуление значений компонент вектора

С(хо,х1,...,хп-1) = (с0,с1,...,с2п _1);

Б4 - формирование вектора Г:= C(fо := cо;...fi := сі;...Лп_1 := с2п_1);

і, j, s, - целые неотрицательные п-разрядные двоичные числа.

Алгоритм А4 полиномиального разложения булевых функций на основе метода конечных разностей требует для своей реализации объема основной памяти порядка 3*2п п-разрядных слов, или, в лучшем случае, 3*2п бит, и характеризуется вычислительной сложностью, которая может быть оценена следующей величиной:

2п _1 ,

S4 = Е (2п _ 1 _ і) = (2п _ 1)(2п-1) (8)

і=0

За одну реализацию алгоритма А4 определяются две противоположно поляризованные полиномиальные формы исходной булевой функции.

В [9], [10] предлагается еще один

формализованный алгоритм автоматического преобразования п - аргументных булевых функций к полиному Жегалкина. Предлагаемый алгоритм реализует известный метод разложения булевой функции, учитывающий [5] фрактальность преобразований упорядоченных компонент вектора Б = ..., ^,...Д2п_1) значений булевой функции к

упорядоченным компонентам вектора

G = (во, в1,..., ві,..., в2п _1), которые являются

искомыми коэффициентами полинома Жегалкина общего вида.

Ниже представлен алгоритм А5

полиномиального разложения булевой функции п аргументов, реализующий метод фрактальных преобразований:

Л5:||Бп; := 0;j:= 0^:= 0; р:= 0;

г:= 1;і3 s:= 2п-г;j:= 1;р:= 2г;і2 і:= j*p_р/2;І

ві = §і ©&_р/2;і:=і+1; (і < і*р!> Т1 і:= j +1;

(]<=s)Т2 г:= г+1;(г<=п)Т3

В алгоритме А5 используются следующие обозначения:

Бп - оператор начала алгоритма;

Бк - оператор конца алгоритма;

Б0 - оператор ввода количества (п) переменных

хі функции Б;

Б1 - оператор ввода вектора

xl,..., хп-1) = fl,..., f2n_1);

Б2 - обнуление значений компонент вектора G = (во,§1,...,§2п _1);

Б3 - формирование значений компонент вектора G (gо, gl,... ,в2п_1) = (fо, fl,...,f2n_1);

і-индекс £ ;

j - группы при к-разбиениях компонент вектора Б;

s - количество групп разбиений на каждом проходе алгоритма;

р - величина группы при разбиении компонент;

г - количество проходов алгоритма.

Предложенный алгоритм, в конечном счете, базируется на методе неопределенных коэффициентов, который модифицирован весьма оригинальным способом.

Главной особенностью рассматриваемого алгоритма А5 является то, что для своей реализации он требует порядка 2п машинных слов или, в лучшем случае, 2п бит оперативной памяти, а вычислительная сложность алгоритма оценивается как

S5 = п * 2п_1 (9)

Оригинальный подход к полиномиальному разложению п-аргументных булевых функций на основе композиции векторного метода обратных конечных разностей и бинарного метода

фрактальных преобразований предлагается в [10]. Предложенный метод, названный методом бинарновекторного полиномиального разложения булевых функций, предельно ориентирован на реализацию с помощью инструментальных ЭВМ, для его реализации необходим объем основной памяти порядка 2п бит.

На ЯЛС алгоритм А6 бинарно-векторного разложения булевой функции представляется следующим образом:

Л6: ||Бп; ;Б3;Б4 і3 (к > Podv)Т1

S = (111...1^=(000...0)і2 G:= Лk&S;G:= G/2; G:= Лк ©G;S:= S/2;Лk = ^ >1) Т2к:= к+1 Т3і1 і := 0;j:= 0^:= 0; р:= 0;г:=1;і6 ss:= 2п-1ов2т_ги:=1;р:= 2г; і5і:= j*p _ р/2;і4 Лі = Лі ©Лі_р/2;1 :=1+1; (і < j*p) Т4 j:=j +1;

(І<=ss)Т5 г:= г+1;(г<=п-1ов2т)Т6 Бк||

В алгоритме А6 используются следующие обозначения:

Бп - оператор начала алгоритма;

Бк - оператор конца алгоритма;

Б0 - оператор ввода количества (п) переменных х1 функции Б;

Б1 - оператор ввода вектора

^..^ хп-1) = (fо, fl,..., ^_1);

Б2 - разбиение вектора Б на подвекторы Лк размерности т, где т - разрядность ЭВМ , а к=0,..., Podv, где Podv=(2n/m )-1 - количество подвекторов;

Б3 - формирование подвекторов Лк , Л0 = (^,

f1, ■■■, fm-1 X Л1 = (fm, fm+1, ■■■, f2m-1 ), ■■■., Лк = (fmk,

fmk+1, ■■■, fm(k+1)-1), ■■■

S, G - вектора размерности т;

і - индекс формируемого подвектора Лк;

і - группы при к-разбиениях компонент вектора Б;

ss - количество групп разбиений на каждом проходе алгоритма;

р - величина группы при разбиении компонент;

г - количество проходов алгоритма.

По окончанию алгоритма из подвекторов Л0, Л1, ..., Лк, ..., ЛРо* формируется вектор G,

содержащий коэффициенты полинома Жегалкина

G (хо, х 1, ., хп-1)= (во, в1, в2, . вт-1, вт . в2°1) .

Вычислительная сложность предлагаемого алгоритма А6 может быть оценена следующей величиной:

2 п

S6 = (т _ 1) — + (п _ 1ов2т)2(п_1_іов2т) (10) т

где п- количество аргументов булевой функции;

т - разрядность инструментальной ЭВМ.

На рисунке 2 представлены графики, позволяющие сопоставить вычислительную

сложность рассмотренных в статье алгоритмов А1,

А2, А3, А4, А5, А6 полиномиального

преобразования п-аргументных булевых функций. По оси X располагаются значения количества аргументов булевой функции - п, а по оси У -оценки вычислительной сложности алгоритма

^,1 = 1,6.

Рис. 2. Вычислительная сложность алгоритмов полиномиального преобразования булевых функций

Анализируя графики, представленные на рис.2 , наглядно видно, что предложенный алгоритм А6 бинарно-векторного полиномиального разложения булевых функций, обладает наименьшей

вычислительной сложностью по сравнению с алгоритмами А1 - А5, и предельно ориентирован на реализацию с помощью инструментальных ЭВМ. График для алгоритма А6 построен для 32-х разрядной ЭВМ (m=32).

Литература

1. Hirayama T., Nagasawa K., Nishitani Y., Shimizu K. Double Fixed-Polarity Reed-Muller Expressions: A New Class of AND-EXOR Expressions for Compact and Testable Realization // IPSJ Journal, Apr. 2001, 74Vol. 42, № 4. - P. 983-991.

2. Акинина Ю.С., Тюрин С.В. Альтернативный подход к обеспечению диагностируемости двухуровневых программируемых пользователем логических матриц // Вестник Воронежского государственного технического университета. 2003. Вып. 8. 3. C. 31-34

Акинина Ю.С., Подвальный С.Л., Тюрин С.В.Способ тестопригодной реализации логических преобразователей // патент на изобретение RUS 2413282 22.12.2008

3. Жегалкин И.И. Арифметизация символической логики // Математический сборник Московского математического общества. 1927. Т. 354. С. 9-28.

4. Закревский А.Д., Торопов Н.Р. Полиномиальная реализация частичных булевых функций и систем. - М.: Едиториал УРСС, 2003. - 200 с.

5. Акинин А. А., Акинина Ю.С., Подвальный С.Л.,

Тюрин С.В. Автоматизация полиномиального разложения булевых функций на основе метода неопределенных коэффициентов // Системы управления и

информационные технологии. 2011. Т. 44, №2. С. 4-8.

6. Акинин А. А., Акинина Ю.С., Тюрин С.В. Автоматизация полиномиального разложения булевых функций на основе метода конечных разностей // Системы управления и информационные технологии. 2011. Т. 46, № 4. С. 69 - 73

7. Акинин А. А. Алгоритм фрактального полиномиального разложения булевых функций // Вестник Воронежского государственного технического университета. 2011. Т. 7, №11. 1. С. 85-88

8. Акинин А. А. Автоматизация полиномиального

разложения булевых функций методом фрактальных преобразований // Интеллектуальный потенциал молодых ученых России и зарубежья: Материалы V

Международной научно-практической конференции. М.: Издательство «Спутник+», 2012. С. 9-18.

9. Акинин А. А., Акинина Ю.С., Тюрин С. В. Метод бинарно-векторного полиномиального разложения булевых функций // Сборник трудов V Всероссийской научно-технической конференции «Проблемы разработки перспективных микро- и наноэлектронных систем 2012». Москва, ИППМ РАН, 2012 г. С. 55-60.

10. Подвальный С.Л. Многоальтернативные системы: обзор и классификация // Системы управления и информационные технологии. 2012. т. 48, №2. с. 4-13.

11. Математическая энциклопедия: Гл. ред. И.М. Виноградов, Т. 1 А-Г. М.: «Советская энциклопедия», 1977. 1152 с.

12. Криницкий Н.А. Равносильные преобразования алгоритмов и программирование / Н.А. Криницкий. М.: Советское радио, 1970. 304 с.

13. Гаврилов Г.П. Задачи и упражнения по дискретной математике: Учеб. пособие. / Г.П. Гаврилов, А.А. Сапоженко. 3-е изд., перераб. М.: ФИЗМАТЛИТ, 2005. 416 с.

14. Горбатов В.А. Теория автоматов: учеб. для студентов втузов / В.А. Горбатов, А.В. Горбатов, М.В. Горбатова. М.: АСТ: Астрель, 2008. 559 с.

15. Бохманн Д. Двоичные динамические системы / Д. Бохманн, Х. Постхоф. М.: Энергоатомиздат, 1986. 400 с.

16. Математическая энциклопедия: Гл. ред. И. М. Виноградов, т. 2 Д-К. М.: Советская энциклопедия, 1979. 1104 с.

Воронежский государственный технический университет

COMPARATIVE ESTIMATION OF COMPUTATIONAL BOOLEAN FUNCTION POLYNOMIAL TRANSFORM ALGORITHMS A.A. Akinin, S.L. Podvalny

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

The present paper covers features of the polynonial factoring of n-argument boolean functions and analyzes their computational complexity and required PC hardware resources

Key words: polynomial form, computational complexity estimation

i Надоели баннеры? Вы всегда можете отключить рекламу.