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

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

CC BY
1368
174
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОЛИНОМ ЖЕГАЛКИНА / БУЛЕВА ФУНКЦИЯ / КАРТА КАРНО

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

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

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

THE APPLICATION OF KARNAUGH MAPS FOR THE POLINOMIAL TRANSFORMATION OF BOOLEAN FUNCTIONS

This article offers a new way of polinomial transformation of boolean functions based on the method of minimization of boolean functions by means of Karnaugh map

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

УДК 004.021

Информатика, вычислительная техника и управление

ПРИМЕНЕНИЕ КАРТ КАРНО ДЛЯ ПОЛИНОМИАЛЬНОГО ПРЕОБРАЗОВАНИЯ

БУЛЕВЫХ ФУНКЦИЙ

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

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

Введение

В [1-5] рассмотрены особенности полиномиальных логических преобразователей (ПЛП), представляющих собой матричные структуры, в которых используется логический базис Жегалкина {л, 0, 1} [6]. Одна из таких структур представлена на рис. 1 и ей соответствует

Рис. 1. Структурная модель ПЛП следующая математическая модель (1):

F(x15x2...xn) = С@ K @ K2 @...@ Kt, (1)

где Ki - ортогональные элементарные конъюнкции, в каждую из которых переменные xpx2...xn могут входить как с инверсией, так и без инверсии;

0 - знак логической операции «исключающее ИЛИ» (exclusive-or - EXOR), которую часто называют «сумма по модулю 2»;

С ={0,1} - признак не инвертирования (С=0) или инвертирования (С=1) функции F(x1,x2...xn) .

В отечественной литературе форму (1) часто называют «сумма по модулю два элементарных конъюнкций», а в зарубежной - ESOP (exclusive-or sum-of-products).

Представленная на рис. 1 матричная структура позволяет реализовать булевы функции, которые аналитически должны представляться в виде полиномов Жегалкина, поляризованных полиномов Рида-Маллера (полиномы с фиксированной полярностью) или полиномов со смешанной полярностью (одинаковые переменные могут входить в полином и со знаком инверсии, и без него). Интерес к полиномиальным формам оправдывается тем, что число элементов в соответствующих им схемных реализациях часто оказывается меньше, чем в двухуровневых AND/OR - схемах, но, главное, структуры AND/EXOR легче диагностируются [7].

Следует отметить, что для некоторых булевых функций (БФ) полином со смешанной полярностью может содержать меньшее количество термов, по сравнению с полиномом Жегалкина и полиномами Рида-Маллера.

Метод полиномиального преобразования БФ с помощью карт Карно

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

Предлагаемый в статье метод полиномиального преобразования БФ с помощью карт Карно можно проиллюстрировать следующей схемой, представленной на рис. 2:

Формирование сокращенной ДНФ БФ

Карта Карно БФ —► —► Формирование ПНФ БФ

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

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

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

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

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

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

Рис. 2. Схема перехода от карты Карно БФ к ПНФ

Рассмотрим предлагаемый метод на примере. Пусть булева функция А(а, Ь, с, d) задана следующей картой Карно, представленной на рис. 3:

аЬ 00 01 11 10

00 01 11 10

Рис. 3. Карта Карно БФ

Минимизируем функцию f(a,b,c, d) с помощью карты Карно. Объединение ячеек в карте должно производиться таким образом, чтобы полученные в результате объединения овалы не пересекались, так как ПНФ БФ может быть получена только из ортогонализованной ДНФ БФ [7]. Минтермы функции Да,Ь,с,а) целесообразно объединить в пять непересекающихся групп, так, как показано на рис. 4.

\аЬ 00 01 11 10 _

00 01 11 10

Рис. 4. Минимизация БФ с помощью карты Карно

В результате такой минимизации будет получена тупиковая ДНФ, которая содержит безызбыточные простые импликанты и имеет следующий вид:

Г17". = аса v ас v Ьс v Ьс< (2)

Так как ортогонализованная ДНФ представляет собой логическую сумму полной группы несовместных событий, каждое из которых представляется соответствующей импликатой, то для любой пары импликант из (2) всегда справедливо [8] следующее тождество:

I, V I, © (3)

С учётом (3) представляется возможным в (2) каждый символ «V» заменить на «©». В результате будет получена ПФ со смешанной полярностью:

Р(а,Ь,с,а) = аС< © ас © Ьс © Ьс<1 (4)

Полином Жегалкина для БФ Да,Ь,с, а) может быть получен следующим образом. В выражение (4) логические переменные входят как с отрицаниями, так и без них. Известно, что

х,=х, ©1. (5)

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

(1©х,)(1© х^ = 1©х, ©х,х (6)

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

А(а,Ь,с,а) = (1© а)(1© с)(1© а) © а(1© с) © (1© Ь)с©Ьса = 1 © а © с © ас © а © ^

© аа © ас © аса © а © ас © с © ©Ьс©Ьса

После приведения подобных членов получаем искомую функцию в виде полинома Жегалкина:

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

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

Верификация метода полиномиального преобразования БФ с помощью карт Карно

Верификацию предложенного метода можно осуществить с помощью известного метода полиномиального преобразования БФ - метода треугольника Паскаля [8, 9].

Представим исходную функцию Да,Ь,с,а), карта Карно которой изображена на рис. 3, в общем виде полинома Жегалкина (9).

^х,...,хО=Еф\,л..л =

^ ^ (9)

= а0 • х, © ¿^ ' ^ ' ^ ©.. .©а1...п • х1 • ...' xn,

1=1 1<к]<п

где е I0,1}. Получим:

fПНФ (а, Ь,с,а) = а0 © а1а © а2Ь © а3аЬ © а4с © © а5ас © а6Ьс © а7аЬс © а8а © а9аа © а10Ьа © (10) © а11аЬа © а12са © а13аса © а14Ьса © а15аЬса

Из (10) следует, что для получения ПНФ булевой функции f(a,b,c, а) необходимо

определить значения а,, , = 0,15.

1 1 1 1

0 0 1 1

1 1 1 1

1 0 0 1

О О (1 Л

0 0

1 \ а 1

0 0 №

Для этого построим треугольник Паскаля. Верхняя сторона треугольника будет содержать значения функции Да, Ь, с, d) на соответствующих и упорядоченных наборах. Первая единица верхней строки треугольника соответствует значению функции на нулевом наборе аргументов. Вторая - на первом наборе аргументов функции и т.д. Любой другой элемент треугольника вычисляется как "сумма по модулю два" двух соседних элементов предыдущей строки. Построим треугольник Паскаля для нахождения коэффициентов функции Д (табл. 1).

Таблица 1

Треугольник Паскаля

Левая боковая сторона треугольника Паскаля представляет собой вектор А = {а0,...,а15}, содержащий коэффициенты полинома Жегалкина, т.е.:

а0 =1; а1 = 0; а2 = 0; аз = 0; а4 = 0; а5 = 0; а6 =1; а, = 0; а8 =1; а9 =1; а10 = 0; а11 = 0;

«12 =1; «1з=1; «14 =1; «15=0

Подставляя найденные коэффициенты в (10), получаем полином Жегалкина функции Д(а,Ь,с, а):

р(а,ъ,с,ф = 1 © Ьс © а © аа © ас © аса © Ьса (11)

Результаты и их обсуждение

Как видно, результат (11) полностью совпадает с (8), что доказывает корректность предложенного

метода полиномиального преобразования БФ с помощью карт Карно и получения полиномиальной формы со смешанной полярностью.

Интересно было бы выяснить, какой из полиномов функции Д(а, Ь, с, а) будет содержать минимальное число конъюнкций - полином со смешанной полярностью или минимальный полином Рида-Маллера. Определим минимальный полином Рида-Маллера для функции Д(а,Ь,с,а). Для этого воспользуемся также методом треугольника Паскаля, используя алгоритм переупорядочения исходного вектора значений БФ, представленный в [10, 11]. Все возможные поляризованные полиномы Рида-Маллера для функции Д(а, Ь,с, а) представлены в табл. 2.

Таблица 2

Полиномы Рида-Маллера

Вектор поля-риза-ции (а Ь с а) Полиномы Рида-Маллера для функции Д(а,Ь,с,а)

0 0 0 0 р0000(а,Ь,с,а)=1 © Ьс © а © аа © ас © аса© © Ьса

0 0 0 1 Р0001 (а,Ь,с,а) = а © с © ас © а © аа © © са © аса © Ьса

0 0 1 0 р0010(а,Ь, с,а) = 1 © ь © Ьс © Ьа © са © © аса © ъса

0 0 1 1 Р0011(а,ъ,с,а) = 1 © с © ас © ъа © са © © аса © Ьса

0 1 0 0 р0100(а,ъ,с,а) = 1 © с © Ьс © а © аа © © аса © Ьса

0 1 0 1 Р0101(а,Ь,с,а) = а © с © ас © а © аа © © аса © Ьса

0 1 1 0 Р0110(а,ъ, с,а) = ъ © с © Ьс © а © ъа © © аЬа © Ьса

0 1 1 1 р0111(а,ъ,с,а) = 1 © с © ас © а © Ьа © © аса © Ьса

1 0 0 0 Р1000 (а,Ь, с,а) = 1 © Ьс © аа © аса © Ьса

1 0 0 1 Р1001 (а,Ь, с,а) = 1 © а © аЬ © аа © аса © © Ьса

1 0 1 0 Р1010 (а,Ь, с,а) = 1 © Ь © Ьс © ъа © аса © © ъса

1 0 1 1 Р1011 (а, Ь,с,а) = 1 © ас © Ьс © аса © Ьса

Индекс i коэффициентов Входные наборы БФ Первая строка содержит упорядоченный вектор значений БФ Д(а,Ь,с,а)

а 1 на соответствующих наборах

в ПНФ

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

0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1 1 1 1

1 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0

2 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0

3 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 0 0

4 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0

5 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1

6 0 1 1 0 1 1 0 1 1 1 1 1 0 0

7 0 1 1 1 0 1 1 0 0 0 0 1 0

8 1 0 0 0 1 0 1 0 0 0 1 1

9 1 0 0 1 1 1 1 0 0 1 0

10 1 0 1 0 0 0 1 0 1 1

11 1 0 1 1 0 1 1 1 0

12 1 1 0 0 1 0 0 1

13 1 1 0 1 1 0 1

14 1 1 1 0 1 1

15 1 1 1 1 0

Продолжение табл. 2

1 1 0 0 P1100(a,b,c,d) = 1 © c © bc © ad © cd © © acd © bcd

1 1 0 1 P1101(a,b,c,d) = 1 © a © ac © ad © cd © © acd © bcd

1 1 1 0 P1110(a,b,c,d) = b © c © bc © d © bd © cd © © acd © bcd

1 1 1 1 P1111(a,b,c,d) = 1 © ac © d © bd © © cd © acd © bcd

Как видно из табл. 2 наименьшее количество термов содержат полиномы:

Р1000 (а,Ь,с,а) = 1 © Ьс © аа © аса © Ьса, Р1011 (а,Ь,с,а) = 1 © ас © Ьс © асё © Ьсё . (12)

Анализ полиномиальных форм (4), (8), (12) показывает, что минимальной среди них является полиномиальная форма именно со смешанной полярностью.

Заключение

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

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

Литература

1. Акинин, А. А. Метод бинарно-векторного полиномиального разложения булевых функций [Текст]/ А. А. Акинин., Ю. С. Акинина, С. В. Тюрин // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС). - 2012. - №1. - С. 55-60.

2. Акинин, А. А. Сравнительная оценка вычислительных алгоритмов полиномиального преобразования булевых функций [Текст]/ А. А. Акинин, С. Л. Подвальный // Вестник Воронежского государственного университета. - 2013. - Т. 9, - №1. - С. 31-35.

3. 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, Vol. 42, № 4. - P. 983991.

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

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

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

7. Закревский, А.Д. Логические основы проектирования дискретных устройств [Текст] / А.Д. Закревский, Ю.В. Поттосин, Л.Д. Черемисинова. - М.: ФИЗМАТЛИТ, 2007. - 592с.

8. Алехина, М.А. Об одном методе построения полинома Жегалкина [Текст]/ М.А. Алехина, П.Г. Пичугина // Дискретная математика для инженера. - 2006. - N 2. - C. 49-51.

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

10. Романкевич, А.М. Построение легкотестируемых цифровых устройств с использованием форм Рида-Маллера [Текст] / А.М. Романкевич, В.В. Гроль, О.А. Мирошникова // Радюелекронш i комп'ютерш системи. - 2007. -№ 7 (26). - С. 153- 157.

11. Akinin, A.A. Polynomial transformation of Boolean functions : analysis of computational algorithms / A.A. Akinin, A.V. Achkasov, S.L. Podval'nyi, S.V. Tyurin // Automation and Remote Control. - 2014. - Т. 75, - № 7. - С. 1301-1308.

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

THE APPLICATION OF KARNAUGH MAPS FOR THE POLINOMIAL TRANSFORMATION OF BOOLEAN FUNCTIONS

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

This article offers a new way of polinomial transformation of boolean functions based on the method of minimization of boolean functions by means of Karnaugh map

Key words: Zhegalkin's polynomial, boolean function, Karnaugh map

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