УДК 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: [email protected]
Подвальный Семен Леонидович - ВГТУ, д-р техн. наук,
профессор, e-mail: [email protected]
Тюрин Сергей Владимирович - ВГТУ, канд. техн. наук,
профессор, e-mail: [email protected]
Рис. 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 на соответствующих наборах
в ПНФ
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