Серия «Математика»
2018. Т. 25. С. 144-158
Онлайн-доступ к журналу: http: / / mathizv.isu.ru
ИЗВЕСТИЯ
Иркутского
государственного
университета
УДК 519.714.71 MSC 94C10
DOI https://doi.org/10.26516/1997-7670.2018.25.144
Алгоритм минимизации функций алгебры логики в классе обратимых схем Тоффоли
А. С. Францева
Иркутский государственный университет, Иркутск, Российская Федерация
Аннотация. Рассматривается задача представления функций алгебры логики обратимыми схемами, построенными из элементов Тоффоли. Интерес к данной задаче связан с актуальными исследованиями возможности организовать «холодные» вычисления с помощью дискретных преобразователей информации, т. е. такие вычисления, при выполнении которых технические устройства, их реализующие, не выделяли бы тепла.
Поскольку обратимые схемы реализуют в общем случае обратимые функции? в исследовании использован метод Тоффоли - Фредкина для представления функций алгебры логики обратимыми функциями.
В работе описывается алгоритм нахождения минимального представления функции алгебры логики в классе обратимых схем, построенных из элементов Тоффоли. Алгоритм использует полиномиальную нормальную форму функции алгебры логики в операторном представлении и задачу нахождения минимального представления функции алгебры логики в классе операторных пучков определенного вида. Выбранный класс операторных пучков соответствует классу расширенных поляризованных полиномов Жегалкина (далее расширенных полиномов), который включает в себя известный класс поляризованных полиномов Жегалкина.
В заключение приводятся вычислительные результаты алгоритма минимизации функций алгебры логики в классе обратимых схем.
Ключевые слова: обратимая схема, функции Тоффоли, функции алгебры логики, поляризованные полиномы Жегалкина.
1. Введение
В работе представлены результаты исследования задачи представления функций алгебры логики в классе обратимых схем.
Предварительно описывается представление функции алгебры логики в виде обратимой функции. Для этого используется метод Фредкина - Тоффоли, предложенный в [9]. Обратимые функции реализуются обратимыми схемами, построенными из элементов Тоффоли [10]. Понятие обратимой функции, способы ее задания, структурное описание обратимых схем, реализующих обратимые функции, и их функционирование подробно изложены в [2]. В [3] описан вид обратимых схем, реализующих такие обратимые функции, которые представляют функции алгебры логики. В работе приведены только ключевые определения необходимые для представления функций алгебры логики обратимыми схемами.
Для того чтобы функцию алгебры логики представить в виде обратимой схемы, составленной из элементов Тоффоли, требуется получить ее полиномиальную нормальную форму (ПНФ). Для этого в работе используется операторный подход, подробно изложенный в [4].
На основе введенных определений операторного подхода предлагается алгоритм 1 минимизации функций алгебры логики в одном из классов операторных пучков KE. Важно, что для работы данного алгоритма несущественным является выбор базисной функции, алгоритм использует только базисный пучок.
Алгоритм 2 минимизации функций алгебры логики в классе обратимых схем RS опирается на предыдущий алгоритм 1 и для его работы требуется выбрать в качестве базисной функции функцию конъюнкции, в результате чего класс операторных пучков KE ассоциируется с классом расширенных поляризованных полиномов Жегалкина ZhE. Класс ZhE содержит известный класс поляризованных полиномов Жегалкина (или форм Рида-Маллера) Zh. Сложность представлений функции в данном классе существенно меньше, чем в классе Zh, что, в свою очередь, влияет на сложность представлений в классе обратимых схем RS.
В заключение работы представлены вычислительные результаты алгоритма 2.
2. Представления функций алгебры логики обратимыми
схемами Тоффоли
Для удобства в дальнейшем множество переменных xi,..., xn обозначим через X, а множество xo,Xi, ...,xn - через Xo.
Обратимым представлением функции алгебры логики f (X) будем называть обратимую функцию следующего вида:
F(Xo) = (fo(Xo),fi(Xo),...,fn(Xo)), где fo(xo,xi, ...,Xn) = Xo Ф f (X),
fi (x0 j X i , •••) Xn ) — Xi
по всем 1 < i < n, т.е. функция F(Xо) осуществляет следующее взаимно однозначное отображение:
Пусть даны две обратимые функции F (Х0) и G(X0), которые представляют функции f (X) и g(X), соответственно. Тогда по определению суперпозиции обратимых функций [2] функция H(Х0) — F (G(X0)) представляет функцию h(X) — f (X) ® g(X).
Рассмотрим множество T обратимых функций (называемых функциями Тоффоли [10]) следующего вида:
1) T0n+i(Xi): (X0,Xi,...,Xi, ...,Xn) ^ (X0,Xi,...,Xi, •••, Xn), i Є {0,1, •••, n};
2) T™+1(Xi1, •••, Xik ,X0) : (X0,Xi, •••,X„) ^ (X0 ® Xii ■ ... ■ Xik,Xi, •••,X„), k > 0, {ii, •••,ifc} C {1, ••., n}.
Обратимой схемой Тоффоли будем называть обратимую схему, которая составлена из элементов, реализующих функции множества T.
Обратимые схемы Тоффоли реализуют обратимые функции вида
Класс обратимых схем Тоффоли обозначается через RS.
Обратимую функцию F (X0) реализуют несколько обратимых схем Тоффоли. Они зависят от вида полиномиальной нормальной формы (ПНФ) соответствующей функции алгебры логики f (X). Для описания используемого в работе класса ПНФ применяется операторный подход, подробно изложенный в [4].
3. Операторное описание функций алгебры логики
Двоичные наборы длины n будем обозначать греческими буквами, например, так: 8 — 5i; нулевой набор: 0...0 — 0; единичный набор: 1...1 — 1.
Под оператором t, представленным в виде последовательности t — ti...tn, ti Є {e, d, p}, будем понимать отображение t : Bn ^ Bn из линейного пространства всех функций алгебры логики Bn в Bn. Элементы ti последовательности ti...tn называются компонентами оператора t, а n - его длиной.
Компонент ti оператора t действует на функцию f(X) по переменной Xi следующим образом:
F(X0) : (X0,Xi, •••, Xn) ^ (X0 Ф f (X), Xi, •••,Xn)•
(2.1)
(2.1).
i, •
где fx. (X) — производная функции f (X) по переменой xi.
Действие оператора t = t\...tn на функцию f(X) по переменным xi,...,xn определяется индуктивно: t(f(X)) = ti(t2...tnf(X)).
Набор T = (t0,...,tr,...,ti) из 2n операторов, где каждый оператор имеет длину п, называется пучком операторов. Пучок операторов B = (b0,...,bT,...,bi) называется базисным, если существует функция g(X) такая, что операторные образы b0g(X),..., br g(X),...,br g(X) образуют базис пространства Bn как линейного векторного пространства; функция g(X) называется базисной.
Операторный пучок A = (ar,...,aT,...,ai) называется однородным, если существуют такие операторы b = bi...bn и c = ci...cn, bi = ci для любого i, что оператор ar = ai...an пучка A определяется следующим образом:
{bi, если Ті = 0, ci, если Ті = 1.
Любой однородный операторный пучок является базисным [4]. Оператор c будем называть суммой операторов a и b, если для любой функции алгебры логики f (X) верно следующее равенство: cf (X) = af (X) Ф bf (x). Далее удобно записывать так: c — a ф: b.
Для любого однородного операторного пучка A = (a0,...,ar,...,aT) существует оператор c такой, что c = 0re{0,i}n aT[4].
Пусть по некоторому однородному операторному пучку A = (a0,..., ar,..., a1) функция f (X) имеет следующую операторную форму:
O(f) = ® ararg(X), (3.1)
re{0,i}n
где ar Є {0,1}.
В дальнейшем для удобства записи обозначим через 0r сумму вида 0re{0)i}n, а через Ur — объединение вида UтЄ{0;1}п .
В форме (3.1) для всех ar = 1 вместо оператора ar подставим сумму операторов соответствующего однородного операторного пучка Tr = (tr’T,..., tr,i), проведем операцию сокращения пар одинаковых слагаемых и получим для функции f (X) операторное представление SOF(f), называемое специальной операторной формой. В [1] доказано, что данное представление единственно с точностью до порядка слагаемых.
Через Кь, где b — оператор длины п, обозначается класс таких однородных операторных пучков A = (a0, ...,ai), в которых a0 = b.
Через H обозначается класс всех однородных операторных пучков, H = Ub Kb (по всем операторам b).
Пусть A = (a0,...,ar,...,ai) - однородный операторный пучок и c = 0 r ar. Класс HEa = Ul{^lHJ{A} называется расширением одно-
родного пучка A, если пучки Tj = (t0, ...,tT, ...,1і) построены следующим образом:
t1
ат, если т = 8, c, если f = f.
(3.2)
Через HE обозначим класс всех расширенных однородных операторных пучков, HE = Uлен hea ■
Если рассматривать в качестве базисной функции g(X) функцию произведения х\ ■... ■ xn, то классы операторных форм становятся классами полиномиальных нормальных форм [4]. В частности, класс H станет классом кронекеровых форм Kro, класс HE — классом расширенных кронекеровых форм KroE.
Пусть функция алгебры логики f (X) по некоторому однородному операторному пучку A = (ат,...,ат) Є H имеет операторную форму (3.1). По определению (3.2) по пучку Tj = (t^°, ...pt7', ...yt1) Є HE a, Tj = A, функция f (X) имеет следующую операторную форму [3]:
O+(f) = ® атЪтд(Х) ф cg(X). (3.3)
т
Сложность функции алгебры логики f (X) в классе H однородных операторных пучков определяется следующим образом:
Lh e, (f) = min(L(°(f)))
по всем операторным формам O(f) вида (3.1), представляющим функцию f (X); L(O(f)) — сложность операторной формы O(f), равная числу ненулевых коэффициентов ат в разложении (3.1).
В классе расширенных однородных операторных форм HE сложность функции f (X) в соответствии с (3.3) равна:
Lhe (f) = mm(mm{L(O+ (f )),L(O(f))})
= mm(mm|2n
O(f)
L(O(f )) + 1,L(O(f))}).
В работе рассматривается класс операторных пучков Kd...d Є H, который при g(X) = Xi ■ ... ■ Xn соответствует классу поляризованных полиномов Жегалкина Zh = IJa Zha. Функции базиса Zha представляют собой операторные образы aa,T(x1 ■ ... ■ xn), где операторы аа,т по всем 8 Є {0, l}n составляют однородный операторный пучок A = (d...d,..., а1 ...an), в котором
ai
e, если <7i = l,
p, если 7i = 0.
Класс KE = UasK ^HEa С HE соответствует классу расширенных поляризованных полиномов Жегалкина ZhE = |J - ZhтE, где ZhrE = U-{Zh-E}[j{Zhr} и функции базиса Zh--E есть образы операторов пучка T- по функции х1 ■ ... ■ xn.
4. Алгоритм 1 минимизации функций алгебры логики в классе операторных пучков KE
В алгоритме вычисляется сложность функций алгебры логики в классе операторных пучков KE. Для работы алгоритма предварительно требуется выполнить следующие действия:
1) Сгенерировать вспомогательную библиотеку, содержащую информацию о классе операторных пучков Kd...d.
2) Построить специальную операторную форму SOF(f) функции f.
Построение библиотеки класса Kd...d. Рассмотрим однородные операторные пучки Ar = (a0-’0,..., a0,т,..., a1,r) класса Kd...d, f Є {0,1}n. По построению класса Kd...d в качестве операторов a0’0 пучков A& по всем f, f Є {0,1}n, f = 0 могут быть всевозможные операторы t = t1...tn длины n, компоненты которых tj Є {e,d,p}, 1 < j < n. Упорядочим операторы t по натуральному порядку, поставив в соответствие оператору e число 0, оператору d число 1, оператору p число 2. Тогда каждому оператору t соответствует единственное число в троичной системе счисления, а индекс i является его десятичным номером и принадлежит множеству {0,1,..., 3n — 1}.
Пучкам A& соответствуют операторы c° = ф- a0’0, которые по всем f Є {0,1}n составят однородный операторный пучок
C = (e...e,...,p...p).
Построим бинарную матрицу P, строки которой обозначены всевозможными операторами вида Л, а столбцы операторами с0 следующим образом: единицы в столбце с0 матрицы P соответствуют тем операторам t, которые совпадают с операторами a0’0 соответствующего пучка A&; нули стоят на остальных местах каждого столбца.
Построение SOF(f). По пучку C = (e...e,... ,p...p) построим операторную форму O(f) = c1g(xt) ф ... ф ckg(X) функции f (X). На матрице P отметим те столбцы с0, которые совпадают с операторами cj, j Є {1, 2, ...k}. Тогда для того чтобы получить специальную операторную форму SOF(f) функции f (X), достаточно по каждой строке t, і Є {0,1,..., 3n — 1}, осуществить сложение по модулю 2 элементов матрицы
по столбцам сС. Если сумма равна 1, то t находится среди элементов множества операторов M(SOF(f)), образы которых составляют SOF (f).
Пусть M(SOF(f)) = {b1,...,bN}. Отметим на матрице P те строки t, которые соответствуют операторам bm, m Є {1, 2, ...N}. Тогда сложность L(O,j(f)) операторной фурмы O&(f) функции f(X) по пучку A& вычисляется так: в столбце сС сложить те элементы матрицы P, которые по строкам совпадают с операторами bm из M(SOF(f)) [7].
При n = 1 матрица P имеет вид:
P1
0 1 11 10
Если сохранить порядок операторов e, d, p при построении операторов длины n, то матрица P = Pn есть кронекерово произведение n матриц Pi :
P
n
01 I I 01 I
11 I ® I 11 I ® ... ® 1 0 1 0
01
11
10
Матрица P имеет фрактальную структуру. Если числу 1 поставить в соответствие пиксель черного цвета, а числу 0 - пиксель белого цвета и повернуть изображение на 90 градусов, то вид матрицы будет таким, как показано на рис. 1.
Рис. 1. Матрица P при n = 5, повернутая на 90 градусов
Основные шаги алгоритма 1:
1) Сгенерировать матрицу P.
2) Сгенерировать специальную операторную форму SOF(f) функции f (x).
3) По всем а Є {0,1}n :
а) получить операторную форму O& (f) функции f (X), используя специальную операторную форму SOF(f) и матрицу P,
б) вычислить сложности L(Oa(f)), L(Oj+ (f)) = 2n — L(O&(f)) + 1 и выбрать минимальное значение
4) Найти Lke(f) = mino-(/)(min{2n - L(O&(f)) + 1, L(O&(f))}).
Алгоритм 1. integer MinBoolKE(f) { vars
s, P : integer array;
Cost, Q, Ex : integer;
i, j : integer; // вспомогательные переменные;
Cost ^ J; gen(P); s ^ gen_sof (P, f);
forj ^ 0 to J { //по столбцам матрицы P, а Є {0,1}n;
fori ^ 0 to I { // по строкам матрицы P;
if (si&Pij = 1) Q ^ Q + 1; }
Ex ^ J — Q + 1;
if (Q < Ex) { if (Q < Cost) Cost ^ Q; } else { if (Ex < Cost) Cost ^ Ex; } } return Cost; }
Замечания по работе алгоритма:
1. В алгоритме используются следующие программные функции и обозначения:
1) функция gen(P) генерирует бинарную матрицу P, содержащую информацию о классе Kd...d;
2) функция gen_sof (P, f); выводит в массив s данные о специальной операторной форме SOF (f) функции f (x) :
1, если t Є M(SOF(f)),
2. Для небольших значений n (зависит от возможности загрузки библиотеки в оперативную память) матрица P строится предварительно через кронекерово произведение матриц меньшей размерности. Свойства фрактальной структуры матрицы позволяют динамически строить необходимые столбцы матрицы, если невозможно загрузить всю библиотеку в оперативную память.
3. Бинарные массивы s и P представлены целочисленными массивами, меньшей размерности. Все операции над элементами этих массивов сводятся к использованию различных масок, логических операций и операций побитового сдвига.
Q ^ 0;
0, иначе.
5. Алгоритм 2 минимизации функций алгебры логики в классе обратимых схем RS
Пусть функция алгебры логики f (X) по некоторому пучку Лу Є Kd...d имеет следующую операторную форму:
Oy(f) = © ayaT,T(xi • ... • Xn) = ki 0 ... 0 km, (5.1)
T
m — число ненулевых коэффициентов ay.
Обратимая функция F (Xo) представляет функцию f (X) по определению (2.1). Построим обратимую схему Si, которая реализует функцию F(Xo), в соответствии с операторной формой (5.1). Обратимая схема Si состоит из следующих элементов Тоффоли (рис. 2):
1) Ni1, ...,N{t расположены на входах хд, ...,х^ , реализуют функции T'0n+1(Xi1),...,Т'0П+1 (хц), соответствуют компонентам Oi1, ...,о^ вектора поляризации о, равным 0;
2) вП+1,..., вП+i реализуют функции вида T?n+1, r > 0, которые представляют слагаемые ki,..., km;
3) Ni1, ...,Nit реализуют по определению (2.1) условия fi(Xo) = Xi,
1 < i < n.
Среди элементов вП+i,..., Bk+i может быть элемент No, реализующий функцию T0n+i (хо), которая представляет слагаемое d...d(xi • ... • xi) = 1.
Рис. 2. Обратимая схема Sі (функция f (x) имеет форму Oa (f))
Пусть функция алгебры логики f (X) по некоторому пучку T Є KE имеет операторную форму:
O+ (f) = © ayат,т(xi • ... • Xn) 0 c(xi • ... • хп) =
T
= fci 0 ... 0 fcs_i 0 k*, (s = 2n - m + 1). (5.2)
Построим обратимую схему S2, которая реализует функцию F(xo), в соответствии с операторной формой (5.2). Обратимая схема S2 состоит из следующих элементов Тоффоли (рис. 3):
элементы 1), 2), 3) реализуют слагаемые ki,...,ks-1 аналогично обратимой схеме Si.
4) Nn ,...,NJn_l ({ji,...,jn-i} = {1, 2,..., n}\{ii ,...,Ц}) расположены на входах Xjl ,...,Xjn-l, реализуют функции T0n+1(xj1),..., ТП+1 (xjn-l), необходимые для представления слагаемого k*, соответствуют компонентам стц ,...,Gil вектора поляризации g, равным 1;
5) вП+1 реализует функцию вида T,n+1(xi, ...,xn, xo), которая представляют слагаемое k*;
6) Nj1, ...,Njn-l реализуют условия fi (x0) = Хі, 1 < i < n.
Рис. 3. Обратимая схема S2 (функция f (X) имеет форму O+ (f))
Основные шаги алгоритма 2
1) Выполнить шаги 1) и 2) алгоритма 1.
2) По всем g Є {0,1}n :
- вычислить сложность L(Oa (f)) операторной формы Oa (f), используя специальную операторную форму SOF (f) функции f (x) и матрицу P,
- вычислить сложность обратимой схемы S1 :
L(S1) = L(Oa(f)) + 2 • w(g), где m(g) равно разности n и веса вектора поляризации G;
- вычислить сложность обратимой схемы S2 :
L(S2) = 2n - L(Osr(f)) + 1+2 • n [3];
- выбрать минимальное из L(S1), L(S2).
3) Найти Lrs(f) = min0.(/)(min{L(S1 ),L(S2)}).
Алгоритм 2. integer MinBoolRS(f) { vars
s, P : integer array;
Cost, T, N, Ex : integer;
a, i, j : integer; // вспомогательные переменные;
Cost ^ 2n + 2n + 1; gen(P); s ^ gen_sof (P, f); a ^ fict(f); for j ^ 0 to 2n { // по столбцам матрицы P, а Є {0,1}n;
T ^ 0;// подсчет элементов T]f+l, r > 0; for i ^ 0 to 3n { // по строкам матрицы P;
if (st&Pij = 1) T ^ T + 1; }
N ^ 2 ■ (w(i) — w(i&a)); // подсчет элементов T0+1;
Ex ^ 2n — T + 1 + 2 ■ n; // сложность схемы S2; if ((T + N) < Ex) { if ((T + N) < Cost) Cost ^ T + N; } else { if (Ex < Cost) Cost ^ Ex; } } return Cost; } [6]
Замечания:
1) функция fict(f) выводит число, в двоичной записи которого на позиции i стоит 1, если переменная xi в функции f (x) фиктивна и 0 -иначе;
2) функция w(i) вычисляет количество единиц в бинарной записи целого положительного числа i.
6. Вычислительные результаты алгоритма 2
Выполнение вычисления сложности для всех функций алгебры логики осуществлено при n = 3, 4, 5.
При n = 6, 7, 8, 9,10 алгоритм выполнялся на выборке случайно сгенерированных функций, которая была получена с помощью линейного конгруэнтного метода с коэффициентами a =6364136223846793005, c =1442695040888963407 и m = 264 — 1 [8].
Вычислительные результаты представлены в графической форме в виде диаграмм, которые изображены на рисунках 4, 5 6.
С помощью алгоритма 1 была найдена последовательность множеств Mn = {pn,qn,tn} функций алгебры логики:
Рз = (00011011), qs = (11010001), ts = (11001010),
Vn(x1, ...,xn) — xnqn— 1(x1 ,-,xn-1) Ф xnpn-1(x1,. ..1 xn-1 )
qn(xі, ...,xn ) — xntn-1(x1 , ...,xn-1) Ф xnqn-1(x1,. ., xn- 1 )
tn(x1 , ...,xn ) — xnpn— 1(x1 , ..., xn- 1) Ф x^ntn—1(x 1 , ■■ xn— 1)-
Для этих функций удалось доказать, что они являются самыми сложными в классе ZhE [3]. Значения сложности представлений функций fi Є Mn до 10 переменных в классе обратимых схем RS представлены в таблице 1.
Все расчеты выполнены на оборудовании центра коллективного пользования «Иркутский суперкомпьютерный центр СО РАН» [5].
Количество функций, в% Количество функций, в %
Таблица 1
Сложности функций fi Є Мп в классе обратимых схем RS
п 3 4 5 6 7 8 9 10
Рп 4 8 16 32 64 128 256 512
(In 5 7 17 31 65 127 257 511
til 3 9 15 33 63 129 255 513
Рис. 4- Диаграммы распределения значений сложности функций алгебры логики при n = 3, 4,5, 6
Рис. 5. Диаграмма распределения значений сложности функций алгебры
логики при n = 7
Рис. 6. Диаграммы распределения значений сложности функций алгебры
логики при n = 8, 9
Рис. 7. Диаграмма распределения значений сложности функций алгебры
логики при n = 10
Список литературы
1. Винокуров С. Ф., Казимиров А. С. Перечисление операторных классов булевых функций // Изв. Иркут. гос. ун-та. Сер. Математика. 2009. Т. 2, № 2. С. 40-55.
2. Винокуров С. Ф., Францева А. С. Приближенный алгоритм вычисления сложности обратимой функции в базисе Тоффоли // Изв. Иркут. гос. ун-та. Сер. Математика. 2011. Т. 4, № 4. С. 12-26.
3. Винокуров С. Ф., Францева А. С. Сложность представлений многовыходных функций алгебры логики // Изв. Иркут. гос. ун-та. Сер. Математика. 2016. Т. 16. С. 30-42.
4. Избранные вопросы теории булевых функций : монография / под ред. С. Ф. Винокурова, Н. А. Перязева. М. : Физматлит, 2001. 192 с.
5. Иркутский суперкомпьютерный центр СО РАН [Электронный ресурс] : сайт. Иркутск : ИДСТУ СО РАН. URL: http://hpc.icc.ru (дата обращения: 05.05.2018).
6. Пат. № 2017619310 Российская Федерация. Программа построения минимального представления многовыходных булевых функций в классе обратимых схем / С. Ф. Винокуров, Л. В. Рябец, А. С. Францева ; опубл. 22.08.17. Бюл. № 9.
7. Рябец Л. В., Винокуров C. Ф. Алгоритм точной минимизации булевых функций в классе кронекеровых форм // Алгебра и теория моделей 4. Новосибирск, 2003. С. 148-159.
8. Knuth D. E. MMIXware: A RISC Computer for the Third Millennium // Springer Heidelberg New York Dordrecht London. 2003. LNCS Sublibrary: SL 2 - Programming and Software Engineering. 550 p. DOI: 10.1007/3-540-46611-8.
9. Fredkin Е., Toffoli T. Conservative Logic // International Journal of Theoretical Physics. 1982. Vol. 21, Iss. 3. P. 219-253. DOI: 10.1007/BF01857727.
10. Toffoli T. Reversible Computing // Automata, Languages and Programming (Series: Lecture Notes in Computer Science). 1980. Vol. 85. P. 632-644. DOI: 10.1007/3-540-10003-2_104.
Анастасия Сергеевна Францева, Педагогический институт, Иркутский государственный университет, Российская Федерация, 664003, г. Иркутск, ул. К. Маркса, 1, тел.: (3952)200739 (e-mail: a.s.frantseva@gmail.com)
Поступила в редакцию 10.08.18
An Algorithm for Minimization of Boolean Functions in the Class of Toffoli Reversible Logic Circuits
A. S. Frantseva
Irkutsk State University, Irkutsk, Russian Federation
Abstract. In this paper, the problem of Boolean function’s representation by the reversible circuits constructed of the Toffoli gates is considered. Interest in this problem is connected with actual studies of the possibility for realization of ”cold” computations. It means that when performing such computations, there is no heat dissipation.
In general, reversible circuits realize reversible functions. Therefore, Toffoli-Fredkin’s method for representation of the Boolean function by the reversible function is used.
In work, an algorithm for finding the minimal representation of the Boolean function in a class of the reversible circuits, which are constructed from Toffoli elements is described. The algorithm uses the polynomial normal forms or exclusive-or sum-of-products expressions (ESOPs) of the Boolean function in the operator representation and the problem of finding the minimal representation of the Boolean function in the certain class of operator bundles. The chosen class of operator bundles corresponds to a class of the extended polarized Zhegalkin polynomials, which includes a well-known class of the polarized Zhegalkin polynomials or Reed-Muller forms.
In conclusion, the computational results of the algorithm for minimizing the Boolean functions in the class of reversible circuits are given.
Keywords: reversible circuit, Toffoli functions, Boolean functions, polarized Zhe-galkin polynomials or Reed-Muller forms.
References
1. Vinokurov S.F., Kazimirov A.S. Enumeration of operator classes of Boolean functions. The Bulletin of Irkutsk state University. Series Mathematics, 2009, vol. 2, no. 2, pp. 40-55. (in Russian)
2. Vinokurov S.F., Frantseva A.S. An approximate algorithm for computing the complexity of reversible functions in the basis of Toffoli. The Bulletin of Irkutsk state University. Series Mathematics, 2011, vol. 4, no. 4, pp. 12-26. (in Russian)
3. Vinokurov S.F., Frantseva A.S. The Complexity of the Representation of Multiple-Output Boolean Functions. The Bulletin of Irkutsk state University. Series Mathematics, 2016, vol. 16, pp. 30-42. (in Russian)
4. Izbrannye voprosy teorii bulevykh funktsii [Selected problems of the theory of Boolean functions]. Edited by Vinokurov S.F., Peryazev N.A. Moscow, FIZMATLIT Publ., 2001, 192 p.
5. Irkutskii superkompiuternyi tsentr SO RAN [The Irkutsk Supercomputer Center of Siberian Branch of the Russian Academy of Science]. Available at: http://hpc.icc.ru (date of access: 05.05.2018).
6. Vinokurov S.F., Frantseva A.S., Ryabets L.V. Programma postroeniia minimalnogo predstavleniia mnogovykhodnykh bulevykh funktsii v klasse obratimykh skhem [Program for Constructing Minimal Representations of Multiple-output Boolean Functions in The Reversible Logic Circuits]. Patent RF, no. 2017619310, 2017. (in Russian)
7. Ryabets L.V., Vinokurov S.F. Algoritm tochnoi minimizatsii bulevykh funktsii v klasse kronekerovykh form [An Algorithm of Exact Minimization of Boolean Functions in the Class of Kronecker Forms]. Algebra i teoriya modeley [Algebra and theory of models], Novosibirsk, 2003, vol. 4, pp. 148-159. (in Russian)
8. Knuth D.E. MMIXware: A RISC Computer for the Third Millennium. Springer Heidelberg New York Dordrecht London, LNCS Sublibrary: SL 2 - Programming and Software Engineering, 2003, 550 p. https://doi.org/ 10.1007/3-540-46611-8
9. Fredkin Е., Toffoli T. Conservative Logic. International Journal of Theoretical Physics, 1982, vol. 21, iss. 3, pp. 219-253. https://doi.org/ 10.1007/BF01857727
10. Toffoli T. Reversible Computing. Automata Languages and Programming (Series: Lecture Notes in Computer Science), 1980, vol. 85, pp. 632-644. https://doi.org/ 10.1007/3-540-10003-2_104
Anastasiya Frantseva, Pedagogical Institute, Irkutsk State University, 1, K. Marx st., Irkutsk, 664003, Russian Federation, tel.: (3952)200739 (e-mail: a.s.frantseva@gmail.com)
Received 10.08.18