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

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

CC BY
275
75
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛИНОМ ЖЕГАЛКИНА / БУЛЕВА ФУНКЦИЯ / ПОЛИНОМ РИДА МАЛЛЕРА / ZHEGALKIN'S POLYNOMIAL / BOOLEAN FUNCTION / REED-MULLER POLYNOMIALS

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

В статье рассматривается подход к автоматическому преобразованию n аргументных булевых функций к полиному Жегалкина. Предлагаемый подход идентичен двухэтапному преобразованию: от СДНФ логической функции к её антивалентной нормальной форме (АНФ) и от АНФ к полиному Жегалкина.

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

AUTOMATIZATION OF THE POLINOMIAL DISTORTION OF BOOLEAN FUNCTIONS BASED ON THE METHOD OF PRIVATE POLYNOMIAL FORMS

The present paper examines an approach to automatic transform algorithm of n argument of Boolean functions for Zhegalkin's polynomial. The proposed approach is identical to two-stage transformation: from Sum of Products of the logical function to its antivalent normal form (ANF) and from the ANF to Zhegalkin's polynomial.

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

УДК 681.51:519.71

АВТОМАТИЗАЦИЯ ПОЛИНОМИАЛЬНОГО РАЗЛОЖЕНИЯ БУЛЕВЫХ ФУНКЦИЙ НА ОСНОВЕ МЕТОДА ЧАСТНЫХ ПОЛИНОМИАЛЬНЫХ ФОРМ

А.А. Акинин, Ю.С. Акинина, С.Л. Подвальный, С.В. Тюрин

В статье рассматривается подход к автоматическому преобразованию п - аргументных булевых функций к полиному Жегалкина. Предлагаемый подход идентичен двухэтапному преобразованию: от СДНФ логической функции к её антивалентной нормальной форме (АНФ) и от АНФ к полиному Жегалкина

Ключевые слова: полином Жегалкина, булева функция, полином Рида - Маллера

Аналитическое представление булевых функций в виде полиномиальных нормальных форм (ПНФ) известно более 80 лет [1], однако практический и теоретический интерес к ПНФ не ослабевает до сих пор [2-5].

С практической точки зрения интерес представляют разработка и оптимизация алгоритмов автоматического преобразования традиционно используемых дизъюнктивных нормальных форм (ДНФ) к полиномиальным нормальным формам, в частности, к полиному Жегалкина. В данной статье рассматривается подход к автоматическому преобразованию п - аргументных булевых функций к полиному Жегалкина с использованием антивалентной формы.

Переход от совершенной дизъюнктивной нормальной формы (СДНФ) через антивалентную нормальную форму (АНФ) к ПНФ осуществляют по следующей схеме [6]: СДНФ^ АНФ^ ПНФ.

Для булевой функции х2,..., хп) по таблице истинности строится СДНФ в виде:

f(x1,...,xn) = V n

ceBn

f(c)(x,...xn)

(1)

где (c1,c2 менных x,

, c ) - набор значений булевых пере., x ;

с = (с , с , ...,с ) - двоичный вектор;

ВД - значение булевой функции на соответствующем наборе;

Вп - двоичное (булево) пространство;

С1 Сп

X ...х - элементарная конъюнкция, соответствующая набору о,..., оп;

V - знак логического сложения (дизъюнкции).

Особенностью СДНФ является тот факт, что каждая входящая в неё конъюнкция содержит все

Акинин Андрей Александрович - ВГТУ, аспирант, e-mail: aaakinin@mail.ru

Акинина Юлия Сергеевна - ВГТУ, канд. техн. наук, ст.

преподаватель, e-mail: julakinn@mail.ru

Подвальный Семен Леонидович - ВГТУ, д-р техн. наук,

профессор, e-mail: spodvalny@yandex.ru

Тюрин Сергей Владимирович - ВГТУ, канд. техн. наук,

профессор, e-mail: svturin@mail.ru

переменные, то есть состоит из минтермов. Конъюнкция любых двух минтермов всегда равна нулю, так как они отличаются по крайней мере одной переменной, которая имеет в одном минтерме значение «нуль», а в другом - значение «единица». Можно также сказать, что СДНФ представляет собой логическую сумму полной группы несовместных событий, каждое из которых представляется соответствующим минтермом. По этой причине для произвольных минтермов всегда справедливо [6] следующее тождество:

k v k = k © k .

i j i j •

(2)

где © - знак логической суммы по модулю 2.

С учётом (2) предоставляется возможность в (1) каждый символ V заменить на © , что даёт нормальную форму сумм по модулю 2, или антивалентную нормальную форму:

f(XF...,Xn) = Z©

ceBn

f(c)(X,...Xn)

(3)

В выражение (3), так же, как и в (1), логические переменные входят как с отрицаниями, так и без них. Известно, что

X = X ©1.

(4)

Тогда, если заменить все отрицания переменных в (3) на (1© х.), перемножить выражения по правилу (5)

(1©x)(1©Xj) = 1©X ©X ©xixi

(5)

и сократить попарно равные конъюнкции (в силу х. © х = 0 и х © 0 = х), приходим к полиномиальной нормальной форме (полиному Жегалкина).

Таким образом, принципиально преобразование дизъюнктивных нормальных форм реализуемо по рассмотренной схеме, однако её автоматизация представляет самостоятельную задачу.

Исходную булеву функцию п аргументов представим в виде 2п - компонентного вектора Б = (^, ^ ,...,£ ), каждый компонент которого

может быть равен 0 или 1 и однозначно соответст-

c

вует значению булевой функции на 1-м наборе значений входных переменных [7]. Так, например, для функции Б(а,Ь,с) булев 23 - вектор Р(а,Ь,с)=(10100110) интерпретируется как множество Б(а, Ь, с) = ), состоящее из

упорядоченных значений булевой функции на 1-м входном наборе значений переменных а, Ь, с. За каждым разрядом позиционного кода закрепляется какая-либо одна входная переменная. При этом разряд позиционного кода одновременно характеризует имя переменной и её значение на 1-м входном наборе. Поясним сказанное с помощью табл. 1 для функции Р(а,Ь,с)=(10100110).

Таблица 1

Ki a b c F

K0 =abc 0 0 0 1 (f0)

K = abc 0 0 1 0 (f1)

K2 =abc 0 1 0 1 f

K = abc 0 1 1 0 (fs)

K = abc 1 0 0 0 (f4)

K = abc 1 0 1 1 (fs)

K = abc 6 1 1 0 1 f

K7 = abc 1 1 1 0 f

В самой левой колонке табл. 1 указаны элементарные конъюнкции максимального ранга К1, соответствующие 1 - му набору входных переменных.

СДНФ функции Б(а, Ь, с) может быть записана в следующем виде:

0n п

F(a,b,c) = V2-1 f.K

(6)

где V - знак дизъюнкции.

Для представления булевой функции п аргументов в виде полинома Жегалкина также используется 2п - компонентный вектор О = ),

каждый компонент которого может быть равен 0 или 1 и однозначно соответствует некоторой монотонной конъюнкции К1м, являющейся членом полинома Жегалкина общего вида. Тогда булева функция Б(а, Ь, с) может быть представлена в виде полинома Жегалкина как

P(a,b, c) = Z© gKM

(7)

где

2 © - знак суммы по модулю 2;

К1м - монотонная конъюнкция, то есть логическое произведение только тех логических переменных, которые в 1 - м входном наборе равны 1. Конъюнкция К0м всегда принимается равной 1.

В табл. 2 представлены все монотонные конъюнкции, входящие в полином Жегалкина общего вида для булевой функции от аргументов а, Ь, с и

соответствующие К1м компоненты вектора О = (£0,В1,...,В1,...,В2п_1).

С учетом данных табл. 1 и 2, а также соотношения (2) имеем следующий общий вид полинома Жегалкина для функции Б(а, Ь, с):

P(a, b, c) =g01 ® g1c ® g2b ® g3bc © g4a © ® gac © gab © gabc где © - знак суммы по модулю 2.

(8)

Таблица 2

a b c KiM gi

0 0 0 K0M = 1 g0

0 0 1 KjM = c g1

0 1 0 K2M = b g2

0 1 1 KsM = bc g3

1 0 0 4K i i a g4

1 0 1 K5M = ac g5

1 1 0 K6M = ab g6

1 1 1 KvM =abc g7

Рассмотрим булеву функцию F(a,b,c) = 1, то есть функцию, тождественно равную 1. С точки зрения практического применения такая функция не имеет какого-либо приложения. Однако для обоснования метода частных полиномиальных форм весьма целесообразна.

Запишем СДНФ функции F(a,b,c) = 1 в виде (6): ___ _____ __ _ F(a,b, c) = abc v abc v abc v abc v abc v abc v v abc v abc

(9)

В силу сочетательного и распределительного законов алгебры логики преобразование выражения (9) на основе соотношений (4) и (5) может производиться в произвольном порядке. Поступим следующим образом: проведем необходимые преобразования для каждого минтерма в отдельности, соблюдая лишь соответствующий минтермам лексиграфиче-ский порядок:

abc = (1© a)(1© b)(1 © c) = 1 © a © b © ab © c © © ac © bc © abc

(10)

abc = (1© a)(1© b)c = c © ac © bc © abc (11)

abc = (1© a)b(1 © c) = b © ab © bc © abc (12)

abc = (1© a)bc = bc © abc (13)

abc = a(1 © b)(1 © c) = a © ab © ac © abc (14)

abc = a(1© b)c = ac © abc (15)

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

abc = ab(1 © c) = ab © abc (16)

abc = abc (17)

Правая часть уравнений (10) - (17) в символьном виде является полиномиальным выражением для соответствующего минтерма. Назовем этот символьный вид частными полиномиальными нормальными формами (ЧПНФ). ЧПНФ соотношения (10)

n

является полином Жегалкина общего вида, в котором, как следует из (7), все коэффициенты gl = 1. Значит, уравнения (10) - (17) могут быть представлены в следующем виде:

abc = go ©gj ©g2 ©g3 ©g4 ©g, ©g6 ©g7 = Go,(18)

abc = gj © g3 © g, © g7 = Gj,

abC = g2 ©g3 ©g6 ©g7 = G2,

abc = g3 © g7 = G3,

abC = g4 © g, © g6 © g7 = G4,

abc = g, ©g7 = G,,

abc = g6 © g7 = G6,

abc = g7 = G7.

(19)

(20) (21) (22)

(23)

(24)

(25)

Рассмотрим алгоритмическую возможность формирования компонент векторов в; по их индексу | представленному в двоичном позиционном коде, для чего представим систему уравнений (18)—(25) для функции, например, Р(а,Ь,с)=(10Ш0П0) в виде табл. 3.

Таблица 3

Kj a b c F 1 c b bc a ac ab abc

g0 000 g1 001 g2 010 g3 011 g4 100 g, 101 g6 110 g7 111

Ko 0 0 0 1 f 1 1 1 1 1 1 1 1

K1 0 0 1 0 (f1) 1 1 1 1

K2 0 1 0 1 (f2) 1 1 1 1

K3 0 1 1 0 (f3) 1 1

K4 1 0 0 0 (f4) 1 1 1 1

K, 1 0 1 1 (f,) 1 1

Ke 1 1 0 1 f) 1 1

K7 1 1 1 0 (f7) 1

Значения компонент вектора G для полинома Жегалки-на 1 1 0 0 1 0 1 0

В табл. 3 выделены те строки, где функция принимает значения 1. Из данных табл. 3 следует, что для перехода от СДНФ булевой функции к её полиномиальной форме в виде полинома Жегалкина достаточно сложить по модулю 2 одноиндексные компоненты g1 тех векторов в|, которые соответствуют минтермам исходной булевой функции. Для рассматриваемого примера, представленного в табл. 3, получим полином Жегалкина:

Р(а,Ь, с) =1©с © а © аЬ.

Одна из возможностей состоит в том, что для преобразуемой булевой функции п аргументов предварительно формируется вся совокупность векторов в|, где I = 0,..., 2п-1, а затем из этой совокупности последовательно выбираются и поэле-

ментно суммируются те вектора в|, на которых _|-е компоненты вектора Б = (^,^,...,£,...,^ ) равны

1. Однако при таком преобразовании требуемый объём памяти оценивается величиной 22п, что существенно ограничивает возможности по количеству переменных преобразуемых булевых функций.

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

На рисунке представлен алгоритм А полиномиального преобразования БФ на основе ЧПНФ. Исходными данными для алгоритма А являются: п -число аргументов БФ, вектор Е размерности 2п, содержащий значения таблицы истинности БФ.

Алгоритм А полиномиального преобразования БФ на основе ЧПНФ

Основное достоинство алгоритма заключается в том, что ПНФ функции формируется путём преобразования каждого минтерма СДНФ в частные ПНФ (ЧПНФ) в виде их векторного представления.

Объемная сложность дискретного алгоритма А имеет оценку 2*2п слов (в лучшем случае бит). Вычислительная сложность алгоритма А может быть определена лишь в среднем. Данное обстоятельство обусловлено тем, что частные полиномиальные формы зависят от преобразуемого минтерма, что хорошо иллюстрируется табл. 3. На основании анализа табл. 3 обнаруживается следующая закономерность: количество Ь единичных значений в ЧПНФ однозначно определяется количеством к нулевых значений аргументов в минтермах, а именно

L=2k

(26)

Еще одним достоинством метода ЧПНФ является то, что для преобразования может использоваться инверсная БФ с последующим инвертированием всех элементов вектора полинома. Отсюда следует, что максимальное количество ЧПНФ не будет превосходить величины Я=2п-1, где п-количество аргументов БФ. Тогда в среднем вычислительную сложность алгоритма А можно оценить как

n 1 1

S(A) « (Z2mq)- = 3n X-

m=0 2 2

(27)

На основе предложенного алгоритма, реализующего метод ЧПНФ, был разработан программный модуль "Преобразователь булевых функций", который описан в [8].

Хотелось бы отметить также, что анализ алгоритма А показывает, что при минимальных изменениях алгоритма, заключающихся в модификации значения аргументов или, что равносильно, модификации двоичного индекса минтермов с учетом заданного вектора поляризации, предоставляется возможность получения структурной формулы не только полинома Жегалкина, но и любого поляризованного полинома Рида-Маллера (КМ). Для этого в модифицированном алгоритме А* должны быть введены всего две дополнительные операции: ввод вектора поляризации Р (р0, ..., рп-1) и изменение ] := ф © Р номера (кода) _|-го минтерма в соответствии с

заданным вектором поляризации. Такое изменение операции несколько увеличит вычислительную сложность программной реализации алгоритма А* по сравнению с алгоритмом А. Если же говорить о вычислительной сложности алгоритма А*, она будет иметь такую же оценку, как и для алгоритма А, то есть порядка

S(A*) « 3n x 1 2 ■

(28)

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

Литература

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

2. Выхованец, В.С. Полиномиальная факторизация спектральных базисов [Текст] / В.С. Выхованец //Автоматика и телемеханика. - 2005. - №12. - С. 5-8.

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

4. Кобяк, И.П. Булево - алгебраический метод контроля логики ЬБББ устройств [Текст] / И.П. Кобяк // Известия вузов. Сер. Электроника. - 2002. - № 2. - С. 79-88.

5. Тюрин, С.В. Способ тестопригодного проектирования логических преобразователей [Текст] / С.В. Тюрин, С.Л. Подвальный, Ю.С. Акинина // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС) : сб. тр. Всерос. науч.-техн. конф. - 2010. - №1. -С. 36-41.

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

7. Автоматизация полиномиального разложения булевых функций на основе метода неопределенных коэффициентов [Текст] / А. А. Акинин, Ю. С. Акинина, С. Л. Подвальный, С. В. Тюрин // Системы управления и информационные технологии. - 2011. - Т. 44, № 2. - С. 48.

8. Акинин, А. А. Программный модуль преобразования дизъюнктивных нормальных форм булевых функций в полином Жегалкина [Текст] / А. А. Акинин, С. Л. Подвальный // Вестник Воронежского государственного технического университета. - 2011. - Т. 7, №4. - С. 183186.

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

AUTOMATIZATION OF THE POLINOMIAL DISTORTION OF BOOLEAN FUNCTIONS BASED ON THE METHOD OF PRIVATE POLYNOMIAL FORMS

A.A. Akinin, Ju.S. Akinina, S.L. Podvalniy, S.V. Tyurin

The present paper examines an approach to automatic transform algorithm of n - argument of Boolean functions for Zhegalkin's polynomial. The proposed approach is identical to two-stage transformation: from Sum of Products of the logical function to its antivalent normal form (ANF) and from the ANF to Zhegalkin's polynomial

Key words: Zhegalkin's polynomial, boolean function, Reed-Muller polynomials

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