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

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

CC BY
86
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГЛУБИНА / DEPTH / СИММЕТРИЧЕСКИЕ БУЛЕВЫ ФУНКЦИИ / SYMMETRIC BOOLEAN FUNCTIONS / СХЕМЫ ИЗ ФУНКЦИОНАЛЬНЫХ ЭЛЕМЕНТОВ / УМНОЖЕНИЕ / MULTIPLICATION / ФУНКЦИЯ ГОЛОСОВАНИЯ / MAJORITY FUNCTION / BOOLEAN CIRCUITS

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

Предложен новый прием реализации оператора подсчета числа единиц в булевом наборе схемами из функциональных элементов, основанный на применении модулярной арифметики. С его помощью получены новые верхние оценки глубины функции голосования $n$ переменных: $3.34\log_2n$ над базисом $B_2$ всех двуместных булевых функций, $4.87\log_2n$ над стандартным базисом $B_0=\{\wedge,\vee,\overline{\phantom a}\}$. Как следствие глубина умножения $n$-разрядных чисел не превосходит $4.34\log_2 n$ и $5.87\log_2 n$ над базисами $B_2$ и $B_0$ соответственно. Для глубины реализации произвольной симметрической функции $n$ переменных получены оценки $3.34\log_2 n$ и $4.88\log_2 n$ над теми же базисами.

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

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

УДК 519.714

И. С. Сергеев1

ВЕРХНИЕ ОЦЕНКИ ГЛУБИНЫ СИММЕТРИЧЕСКИХ БУЛЕВЫХ ФУНКЦИЙ*

Предложен новый прием реализации оператора подсчета числа единиц в булевом наборе схемами из функциональных элементов, основанный на применении модулярной арифметики. С его помощью получены новые верхние оценки глубины функции голосования п переменных: 3.34 log2 п над базисом В2 всех двуместных булевых функций, 4.87 log2 п над стандартным базисом В0 = {A,V,—}. Как следствие глубина умножения п-разрядных чисел не превосходит 4.34 log2 п и 5.87 log2 п над базисами В2 и Во соответственно. Для глубины реализации произвольной симметрической функции п переменных получены оценки 3.34 log2 п и 4.88 log2 п над теми же базисами.

Ключевые слова: глубина, симметрические булевы функции, схемы из функциональных элементов, умножение, функция голосования.

1. Введение. В работе рассматривается глубина реализации некоторых симметрических булевых функций схемами из функциональных элементов или формулами над базисом В2 всех двуместных булевых функций и над стандартным базисом Bq. Необходимые понятия схемы и глубины см. в [1]. Введем обозначение Db(F) для глубины реализации булева оператора F над базисом В.

Обозначим через Сп{хi,..., хп) = (СП)ТО_i,..., СП)о) булев (п, т)-оператор, вычисляющий арифметическую сумму х\ + ... + хп булевых переменных х\,...,хп, где т = [~log2(n + 1)] (функция Сп,г вычисляет г-ш разряд суммы). Через Sn обозначим класс симметрических булевых функций п переменных, через l"f¡ — монотонную симметрическую функцию с порогом к (по определению, Т^(хi,..., хп) = {х,\ + ... + хп ^ к)), через Мп — булев (2п, 2п — 1)-оператор умножения п-разрядных двоичных чисел. Функция TÍn+1)/2 называется также функцией голосования.

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

Дв(Тп) < DB(C4n), DB(Mn) < DB(Cn) + log2 n,

DB(Sn) < max {DB(Cn¿) + m - i} < DB(Cn) + log2 n, 0 a.i<m,

справедливых в любом из базисов В G {BQ,B2}. Первое неравенство следует из того, что при любом к функция T[¡ является подфункцией функции С4П)ТО, где m = |"log2n]. Второе неравенство следует из "школьного" метода умножения и метода Храпченко сложения чисел [2]. Третье получается при синтезе схемы для симметрической функции как функции, зависящей только от компонент ('„j. методом каскадов (разложения по переменным, см. [1]).

Эффективные по глубине схемы для оператора Сп традиционно строятся методом компрессоров, см., например, [3, 4]. Двоичный (к, 1)-компрессор** ширины 1 — это схема, реализующая булев оператор (si,..., Xk) ^ (yi, • • •, yi) по правилу ^ 2aix,i = ^ 2biyj, где к > I, a a¿, bj € Z; (к, 1)-компрессор произвольной ширины строится из параллельных копий компрессоров ширины 1 — он преобразует к многоразрядных чисел в I чисел, сохраняя сумму. Из компрессоров стандартным образом строится сохраняющая сумму схема преобразования п чисел в I чисел, имеющая глубину O(logn). В случае, когда исходные числа являются одноразрядными, на выходе схемы получаем log2 n-разрядные числа. Их сложение реализуется с глубиной O(loglogn).

1 Механико-математический факультет МГУ, ст. науч. сотр., к.ф.-м.н., e-mail: issergQgmail.com

* Работа выполнена при финансовой поддержке РФФИ (проекты № 11-01-00508 и 11-01-00792-а) и программы фундаментальных исследований Отделения математических наук РАН "Алгебраические и комбинаторные методы математической кибернетики и информационные системы нового поколения" (проект "Задачи оптимального синтеза управляющих систем").

"" В западной литературе принят термин CSA (carry save adder).

Первая аккуратная оценка глубины оператора Сп получена в [3]. Она имеет вид DBo(Cn) < < 5.12log2 п. Наилучшие известные оценки приведены в [4] со ссылкой на [5]: DBo(Cn) < 4.93 log2 n, Дв2 (Сп) iS 3-44 log2 п. В выводе этих оценок используются следующие идеи: учет несимметричной зависимости глубин выходов от глубин входов, использование различных способов кодирования битов. Известные нижние оценки имеют вид DBo(Cn) > 2log2 n, Ds2(Cn) > log2 n (см. [3]).

2. Метод синтеза. В настоящей работе рассматривается способ вычисления суммы а = = х\ + ... + хп из остатков ст2 = (a mod 2к) и = (a mod Зг) при помощи китайской теоремы. Остатки вычисляются методом компрессоров. Разряды числа 02 вычисляют младшие к компонент оператора Сп. Остаток вычисляется в троичной системе счисления при помощи специальных (троичных) компрессоров. Существенно используется то, что младшие разряды суммы в методе компрессоров могут быть вычислены быстрее, чем старшие.

Обозначим через Сп\х i,... ,хп) = (с^т_1,..., C^q)' т = |~log3(n + 1)], булев (п, 2т)-оператор

вычисления арифметической суммы булевых переменных xi,...,xn в троичной системе счисления.

(з)

Компонента Сп ■ является 2-битным кодом соответствующей цифры из троичной записи числа.

Лемма 1. Пусть 2к ■ 31 > п. Для любого полного конечного базиса В справедливо

DB(Cn) < DB (C„)fc_i,..., Сщ о, С^.!,..., Cg) + О (log2 logn).

Доказательство. Методом "деления пополам" (см. [6, гл. 14]) 0(log поразрядное число 03 можно преобразовать из троичного представления в двоичное с глубиной 0(log2logn). Далее вычисление а, исходя из а2 и 03, выполняется по формуле

а = (72 + 2k (г (<73 — (т2) mod Зг) ,

где г определяется из сравнения т2к = 1 mod Зг. Вычисление по указанной формуле сводится к нескольким умножениям, сложениям, вычитаниям и делению с остатком 0(log поразрядных чисел, поэтому может быть выполнено с глубиной O(loglogn). Действительно, каждая из операций сложения, вычитания и умножения iV-разрядных чисел имеет глубину O(logiV) (см., например, [2, 3]). Деление с остатком iV-разрядного числа на постоянное число (в данном случае, на Зг) состоит в выполнении двух умножений, нескольких сложений и вычитаний (см., например, [6, гл. 16]), поэтому также имеет глубину O(logiV). Лемма доказана.

Произвольную симметрическую функцию можно представить как функцию разрядов числа 02 и кода числа аз и далее реализовать методом каскадов. Для эффективной реализации требуется предварительно выполнить специальную перекодировку числа 03. Троичная кодировка не подходит потому, что является избыточной. Переход к двоичной (как в лемме 1) устраняет избыточность, но приводит к нежелательному выравниванию глубины разрядов кода. Однако несложно указать кодировку, асимптотически оптимальную по длине и сохраняющую неравномерность* глубин разрядов, присущую исходному троичному представлению числа аз. Для этого число следует разбить на достаточно длинные блоки и перекодировать их в двоичное представление. Далее указанный прием изложен формально.

Обозначим через Rn(xi,..., хп) = (Дп,п-ъ ■ ■ ■ > Rn,o) оператор упорядочивания набора из п чисел в порядке убывания: ДП)П_ i ^ ... ^ Rn,o- Через ...,хп) = (yim-i<. ■ ■ ■ ■> ^п'о) обозначим (п, т)-оператор сглаживания-растяжения с параметрами /3,7 € Ж, где m = [7п\. Его компоненты определяются как V^j = max{a;j| |г — (j + 1)/-у| ^ 2/3}.

Лемма 2. Пусть 2к -Зг > п, ¡3 € N, ¡3 = ©(logn/ log logn), т = к + |~log2 3 -1~\. Пусть В € {Б0, В2}. Положим

(An-1,..., Do) = Rrn ( DB(Cnik-1), • • •, Ав(СП)0 ,..., DB (C^q))) •

Тогда

DB(Sn) ^ max {Dj + m — г} + 0(log2 logn).

О 5Сг<то

* Неравномерность имеет место, если аз вычислено методом компрессоров, см. ниже.

Доказательство. Рассмотрим симметрическую функцию как функцию разрядов двоичного числа о2 и числа 03, представленного в системе счисления с основанием (цифры в этой системе записываются своим двоичным представлением).

Для того чтобы переписать число 03 в системе счисления с основанием З*3, разбиваем его на блоки по ¡3 последовательных цифр (всего таких блоков О (log log п)); троичные числа, выражаемые блоками, переводим в двоичное представление с глубиной 0(log2logn) (так же, как в лемме 1). Каждый бит построенного кода зависит не более чем от ¡3 последовательных цифр исходного троичного представления числа аз. Поэтому вектор глубин основной части построенного кода, включающей [~log2 3 • Ц битов (внутри каждого блока к основной части относятся все биты кроме, может быть, одного, выбираемого произвольно), мажорируется вектором

с точностью до слагаемого вида 0(log2 logn).

Далее реализуем симметрическую функцию методом каскадов (переменные, не вошедшие в основную часть кода 03, могут быть выбраны внешними в разложении функции — это приводит к дополнительному слагаемому O(loglogn) в оценке глубины). Лемма доказана.

(з)

Чтобы использовать леммы 1 и 2 эффективно,

нужен метод синтеза схем для Сп и Сп , в котором младшие разряды вычисляются существенно быстрее старших. Подходящий метод изложен в [7]. Пусть входы некоторого компрессора над базисом В, относящиеся к разряду i, имеют глубины а выходы, относящиеся к тому же разряду, — bi¿. Пусть г — максимальный номер разряда, к которому относятся выходы компрессора. Положим

аг(А) = -

j j

г

где сумма по пустому множеству индексов считается равной нулю. Многочлен а(Л;х) = щ(Л)хг~г

г=0

назовем характеристическим многочленом компрессора. Следующая лемма фактически содержится в работе [7].

Лемма 3. Пусть Ао > 1 — максимальный действительный корень многочлена а(А; 1). При любом фиксированном А ^ Ао, таком, что üq(X) > 0, определим v ^ 1 как максимальный действительный корень многочлена а(А; х). Положим 8 = logA 2 • (/i log2 v + 1). Тогда Дв(СП)йiog2 п) íS n-

Лемма формулируется аналогично для троичного случая: последнее неравенство при этом принимает вид DB (cí3llog;¡n) < 5(3)log2n, где í<3) = logA 2 • (/ilog3 v + 1).

Чтобы извлечь следствия из лемм 1 и 2, остается указать эффективные по глубине компрессоры, двоичные и троичные. Для получения основных результатов мы используем известные конструкции двоичных компрессоров [3, 4] и простой троичный компрессор.

3. Троичный компрессор. Опишем реализацию троичного (4,2)-компрессора (т. е. минимально возможного полного компрессора),

вычисляющего сумму [C/i,[/q] четырех чисел .Vi. ,\>. .Y3. ,Y.| Е Е {0,1, 2}, т. е. 3/ 'i + Uq = Xi + Х2 + Х3 + .V (. При вычислениях над базисом В2 троичная цифра Xi кодируется тройкой битов

f = (Xi = к); в вычислениях над базисом BQ используется пара кодовых битов ¿. Аналогичные обозначения вводятся для Ui.

Над базисом В2 компрессор реализуется схемой с характеристическим многочленом (4 — А4)ж — А5 при помощи формул

_ 4 = (4 ~ К) (4+1 - h¡),

и\ = е\Vh\V (el (х23х24) V (®?а;|)) , и\ = и\ ф (х\ ф х\ ф x¡ ф х\) ,

где символ обозначает булеву операцию эквивалентности, операции над верхними индексами производятся по модулю 3 (напомним, что в рассматриваемых базисах отрицания можно не учитывать в глубине схем, см., например, [1, § 13]). Функции ef и /if определяются из [/-.'i. /•„'(,] = Х\ + Х2, [Hi, Н0] = Х3 + .V | и реализуются формулами

4 = И ~ 4) И+1 ~ 4) , e¡ = х{4 V х\х22,

hl = (х3 ~ ж4) (х3+1 ~ х\) , h\ = х\х\ V х\х\.

Формула для иi строится двойственным образом* по отношению к формуле для uf.

Над базисом BQ компрессор реализуется схемой с характеристическим многочленом (2 + 2А - \7)х — А5. Считая, что входы Xi, Х2 имеют глубину 0, а входы Х3, .V ( — глубину 1, для вычисления кода числа Í7¿ используем формулы

< = ((x?vxí) (xíxi)) (ífvxi) V (хЫхí) (х32уЩ V (ХЩ ((xl vxí)tf), и? = ((xl V V xixi) V (xi V xíxí) xi-

Функция xf определяется как (X2i_1 + ^ Функции x¿ и \j реализуются формулами

x! = ж2г-1 ^ Ж2г' X¿ = x2i-lx2i V (ж2г-1 ^ Ж2г) '

а функции x¿ и X f — двойственными формулами**. Формулы для ííq и и i строятся двойственным образом по отношению к формулам для и и i.

4. Двоичные компрессоры. Для построения схемы над базисом В2 воспользуемся двоичным (6,3)-компрессором [4]. Компрессор выполняет преобразование (xi,... ,xq) —> (У2,УьУо) с условием 4у2 + 2yi + уо = 2жб + Ж5 + ... + х\ и характеризуется многочленом (4 + А2 — А3)ж2 + (А4 — А5)ж — А6. Компоненты компрессора вычисляются по формулам

zl = xl фх2 фх3 фж4, z2 = {хг Ф х2)(х3 Ф ж4) Ф (xix2 ф Ж3Ж4), z4=xix2x3x4,

w = x5zid)z2, ya = x5(&zi, у 1=ж6фад, у2 = x6w Ф ((x5zi)z2 Ф z4),

где глубина входов х§ и полагается равной 4 и 2 соответственно, глубина остальных входов — 0.

Для построения схемы над базисом В0 используем модифицированный (7,3)-компрессор [3], вычисляющий арифметическую сумму [у2, yi,yo] семи булевых переменных х\,..., х7. Модификация состоит в повышении глубины одного из входов***. Характеристический многочлен компрессора имеет вид (6 + А2 — А6)ж2 — Х7х — А6, компоненты у0 и yi вычисляются, как в [3], по формулам

Уо = (p((p((p{xi,x2), (р(хз, ж4)), (р((р(х5, х6),х7)), <р(х, у) =хуУ ху, yi = ( (х[ V xi) XÍ V (xíх!) (хгх!) ) V ( (x?X¡) xl V хЫ (x¡ V Х2)) ,

а у2 реализуется формулой

У2 = х! (xi V xí) V (xíxa V Х1Х2) ,

где Xi = Ti (xi, x2, x3, Ж4), x! = T3(x5,xе,х7), глубина входа x-j считается равной 2, глубина остальных входов — 0. Пороговые функции x¿S к ^ 2, реализуются стандартным образом:

х\ = xi V х2 V х3 V ж4, X? = (Ж1 v х2){х3 V ж4) V (ж!ж2 V ж3ж4), Хг = (х5 V ж6) V х7, xl = (х5 V х6)х7 V ж5ж6,

недостающие функции x¿S к > 2, — двойственным образом, функция xi V xí — как ^7(^5 V Жб) V V (х5х6 V ж1ж2ж3ж4).

5. Результаты. Имеет место

Следствие. Справедливы асимптотические неравенства

ВвЛСп) < 3.341og2n, DBo(Cn) <4.871og2n, (5„) < 3.34 log2 n, DBo (Sn) < 4.88 log2 n.

Доказательство. Ограничимся случаем базиса В2; оценки в базисе BQ получаются аналогично.

*Применяется принцип двойственности (см. [8]) и выполняется замена ж* -Н- .

**Применяется принцип двойственности и выполняется замена ж У -Н- х^.

***Вероятно, этот же компрессор используется в [5].

Применяя лемму 3 к конструкции двоичного компрессора с выбором параметра А = 1.409 (при этом v к, 1.8397). получаем оценку

ОвЛСпл) < 1-778« + 2.0215log2 п. (1)

Для троичного компрессора при выборе А = 1.3342 (при этом v к, 5.0858) получаем оценку

db2 (С,2) < 5.6409Í + 2.404 log2 п. (2)

При помощи леммы 1 с выбором к и 0.739 log2n и I и 0.261 log3n устанавливаем заявленную оценку для Дв,(С„).

Графики функций 6(ц), <Г(м)

Доказательство оценки глубины для класса симметрических функций иллюстрирует рисунок.

На рисунке, а изображен график функции <5(/х) = min ¿(А. /х), которая определяется из леммы 3 для дво-

Л

ичного (б.З)-компрессора. Напомним, что величина (<5(/х) + o(l))log2n служит верхней оценкой глубины разряда С„,Д1о8оП. График на рисунке, б изображает аналогично определяемую функцию <5^(/х) для троичного компрессора*. (Отметим, что линейные оценки (1) и (2) изображались бы касательными к графикам функций <5(/х) и <5^(/х) в точках с абсциссами 0.739 и 0.261 соответственно.)

График на рисунке, в изображает функцию <5's(/i) = Dß\Qgn п/\og2n из леммы 2: величина ОТ О-4) + о(1)) log2 п служит верхней оценкой глубины для /xlog2 п битов кода входного набора, используемого в лемме 2 при реализации симметрической функции. График для <5А получается сортировкой участков графиков ¿([0.0.739]) и <5^([0, 0.261]). Пунктиром показан график функции 6f(ß) + 1 — /х, максимум которой определяет глубину реализации симметрических функций методом каскадов (см. лемму 2). Так получается заявленная оценка для Db2(Su).

Приведенная методика расчета оценки глубины класса Sn существенно использует ЭВМ, поэтому не является вполне строгим обоснованием. Впрочем, требуемые оценки (во всяком случае в том приближенном виде, в котором они указаны) могут быть выведены аналитически. Для этого мы каждую из функций <5(/х) и <5^(/х) мажорируем кусочно-линейной функцией, составленной из участков линейных приближений вида (1) и (2) (одной пары приближений (1), (2) недостаточно, но достаточно, например, трех таких пар). После этого подходящее кусочно-линейное приближение для <5А и, как следствие, для <5's(/i) + 1 — /х, может быть построено явно. Соответствующую выкладку мы здесь не приводим. Следствие доказано.

Заметим, что метод [7], применяемый вместе с рассмотренными двоичными компрессорами, позволяет вывести оценки Db2(Su) < 3.661og2n. Db0(Su) < 5.161og2n.

6. Замечания. Отметим, что изложенный метод также позволяет получить новые верхние оценки сложности реализации симметрических функций формулами. Метод, очевидно, обобщается на случай нескольких систем счисления, однако дальнейшие возможности понижения верхних оценок на этом пути представляются незначительными.

Мультипликативные константы в оценках глубины могут быть улучшены при подстановке более эффективных (двоичных) компрессоров, один из способов построения таких компрессоров указан в [4], однако эти компрессоры имеют более сложное строение и по этой причине здесь не рассматриваются.

*Все графики рассчитаны при помощи ЭВМ.

Можно проверить, что оценки глубины оператора Сп, доказанные в следствии, достигаются на схемах линейной сложности. Это вытекает из того, что линейную сложность имеет метод [7] (при внимательном рассмотрении). Более того, полученные оценки глубины достигаются на схемах со сложностью, асимптотически равной наилучшей известной верхней оценке. В частности, оператор Сп можно реализовать схемой сложности (4.5 + о(1))п и глубины (3.34+ о(1)) log2 п над базисом И>. схемой сложности (9 + о(1))п и глубины (4.87 + о(1)) log2 п над базисом BQ или схемой сложности (7 + о(1))п и глубины (4.87 + о( 1)) log2 п над базисом U2 = В2\ {Ф, Оценка сложности над базисом В2 взята из [9], оценки сложности над базисами BQ и U2 достигаются на схемах из стандартных (3,2)-компрессоров. Для доказательства нужно выполнить сведение сложения п битов к сложению © (п/ log2 п) чисел методом компрессоров, эффективным по сложности, с глубиной o(logn), а заключительное сложение выполнить методом из настоящей работы со сложностью о(п).

Автор благодарен научному руководителю С. Б. Гашкову за внимание к работе.

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

СПИСОК ЛИТЕРАТУРЫ

1. Лупанов О. Б. Асимптотические оценки сложности управляющих систем. М.: Изд-во Моск. ун-та, 1984.

2. Храпченко В.М. Об асимптотической оценке времени сложения параллельного сумматора // Проблемы кибернетики. Вып. 19. М.: Наука, 1967. С. 107-120.

3. Храпченко В.М. Некоторые оценки для времени умножения // Проблемы кибернетики. Вып. 33. М.: Наука, 1978. С. 221-227.

4. PatersonM., Zwick U. Shallow circuits and concise formulae for multiple addition and multiplication // Comput. Complexity. 1993. 3. P. 262-291.

5. Grove E. Proofs with potential: Ph.D. Thesis, U.C. Berkeley, 1993.

6. Гашков С. Б. Занимательная компьютерная арифметика. Быстрые алгоритмы операций с числами и многочленами. М.: Либроком, 2012.

7. Paterson M.S., Pippenger N., Zwick U. Faster circuits and shorter formulae for multiple addition, multiplication and symmetric Boolean functions // Proc. 31st IEEE Symp. Found. Comput. Sei. Washington: IEEE Computer Society Press, 1990. P. 642-650.

8. Яблонский C.B. Введение в дискретную математику. 2-е изд. М.: Высшая школа, 2002.

9. Demenkov E., Kojevnikov A., Kulikov A., Yaroslavtsev G. New upper bounds on the Boolean circuit complexity of symmetric functions // Inform. Proc. Lett. 2010. 110. N 7. P. 264-267.

Поступила в редакцию 20.12.12

ВЕСТН. МОСК. УН-ТА. СЕР. 15. ВЫЧИСЛ. МАТЕМ. И КИБЕРН. 2013. № 4

51

UPPER BOUNDS ON THE DEPTH OF SYMMETRIC BOOLEAN FUNCTIONS

Sergeev I. S.

It is proposed a new approach for implementation of counting function with the Boolean circuits, based on modular arithmetic. It allows to obtain new upper bounds for the depth of majority function: 3.34 log2 n over the basis B2 of all binary Boolean functions, 4.871og2n over the standard basis B0 = {A,V,—}. As a consequence, the depth of multiplication of n-digit binary numbers doesn't exceed 4.34 log2 n and 5.87 log2 n over the bases B2 and B0 respectively. The following bounds are proved for the depth of any symmetric Boolean function of n variables: 3.34 log2 n and 4.88 log2 n over the same bases.

Keywords: depth, symmetric Boolean functions, Boolean circuits, multiplication, majority function.

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