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

ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

2018 Управление, вычислительная техника и информатика № 45

ДИСКРЕТНЫЕ ФУНКЦИИ И АВТОМАТЫ

УДК 519.7

DOI: 10.17223/19988605/45/10

Ю.В. Поттосин

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

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

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

Под декомпозицией системы булевых функций понимается ее представление в виде суперпозиции двух или более систем функций, каждая из которых в некотором смысле проще исходной системы. Задача декомпозиции булевых функций является одной из важных и сложных задач из области логического проектирования, ее успешное решение непосредственно влияет на качество и стоимость проектируемых цифровых устройств. Декомпозиция системы булевых функций, описывающей поведение некоторого дискретного устройства, ведет к разбиению его на отдельные блоки, что облегчает дальнейшую процедуру логического синтеза. Как показано в работах [1, 2], данной задаче посвящено значительное количество статей, однако вопрос еще требует исследований [3]. В настоящей статье рассматривается задача декомпозиции системы булевых функций в следующей постановке.

Задана система частичных (не полностью определенных) булевых функций в виде векторной функции/(х) = (/1(х),/2(х), ...,/т(х)), где компонентами вектора х = (х1, Х2, ..., х„) являются булевы переменные, составляющие множество Х. Требуется найти суперпозицию/(х) < 9(^1(^1), £2(^2), ..., gk(Zk)), где Zl, Z2, ..., Zk - векторные переменные, компонентами которых служат соответственно переменные из подмножеств Zl, Z2, ..., Zk (возможно, пересекающихся) множества Х = {Х1, Х2, ..., х„}, а символ < обозначает отношение реализации, т. е. значения компонент ф1, ф2, ..., фт векторной функции ф совпадают со значениями компонент функции /везде, где эти значения определены. При этом мощность (/ = 1, 2, ..., к) должна быть ограничена некоторой заданной величинойр, а число к должно быть минимальным и меньшим, чем п. Указанная декомпозиция определяет структуру логической схемы, показанную на рис. 1. Такой вид декомпозиции назван многоблочной параллельной декомпозицией [4]. Подобная задача при к = 2 решалась в статье [5].

Рис. 1. Структура логической схемы

В подавляющем большинстве публикаций, рассматривающих задачу декомпозиции булевых функций, подмножества Zl, Z2, ..., 2к считаются заданными [2, 4, 6, 7]. Вопросу поиска таких подмножеств, при которых существует соответствующая декомпозиция, посвящено не так много публикаций. Среди работ, где рассматривается данный вопрос, можно назвать работы [8-13]. В данной статье предлагается подход, не требующий конкретного задания подмножеств Zl, Z2, ..., Zk. Его можно рассматривать как дальнейшее развитие подхода, представленного в работе [14].

1. Описание подхода

Предлагаемый подход к решению данной задачи требует интервального задания системы частичных булевых функций [3] - в виде пары троичных матриц X, ¥ размерности I х п и I х т соответственно. Столбцы матрицы X соответствуют переменным XI, Х2, ..., Хп, а столбцы матрицы ¥ - функциям /1(х),/2(х), ...,/т(х). Строка матрицыXпредставляет интервал булева пространства, а соответствующая ей строка матрицы ¥ - значения функций на этом интервале. Символ «-» в 7-й строке и ]-м столбце матрицы ¥ означает, что 7-й интервал не используется для задания функции/(х). Строки матриц X и ¥ имеют единую нумерацию.

Рассмотрим графы Ох = (V, Ех) и Ор = (V, Ер), где множество вершин Vявляется множеством общих номеров строк матриц X и ¥, а множества ребер Ех и Ер являются множествами пар номеров ортогональных строк матриц X и ¥ соответственно. Две строки троичной матрицы ортогональны, если имеется столбец, у которого в одной из этих строк расположен ноль, а в другой - единица [3]. Система функций задана корректно с помощью матриц X и ¥, если Ер с Ех, т.е. Ор является остовным подграфом графа Ох.

Замечание. Любая пара матриц (X, ¥) указанного вида может рассматриваться как представление некоторой системы частичных булевых функций, если граф Ор является остовным подграфом графа Ох.

Каждому ребру из множества Ех приписано множество переменных из множества Х = {Х1, Х2, ..., Хп}, по которым соответствующие строки ортогональны. Полному двудольному подграфу, или биклике, графа Ох припишем множество переменных из Х, взятых по одной из каждого ребра, принадлежащего данной биклике. Биклику назовем допустимой, если число приписанных ей переменных не превышает р и если она содержит хотя бы одно ребро из множества Ер.

Множество переменных, приписываемых биклике, определяется следующим образом. Пусть {Х7, X], ..., Хк} - множество переменных, по которым ортогональны две строки, соответствующие ребру из множества Ех. Образуем элементарную дизъюнкцию Х7 V х] V ... V Хк из этих переменных. Получим конъюнктивную нормальную форму (КНФ), членами которой будут указанные дизъюнкции, взятые по всем ребрам, входящим в данную биклику. После удаления возможных поглощаемых элементарных дизъюнкций преобразуем полученную КНФ, раскрыв скобки, в дизъюнктивную нормальную форму (ДНФ). Множество переменных, приписанных биклике, составят переменные, входящие в элементарную конъюнкцию минимального ранга полученной ДНФ.

Утверждение. Для системы частичных булевых функций/(х), заданной троичными матрицами Xи ¥, существует реализующая ее суперпозиция 9(^1(^1), £2(22), ..., gk(Zk)), если существует покрытие множества Ер допустимыми бикликами графа Ох, число которых к.

Пусть получено указанное покрытие бикликами 51, В2, ..., Вк. Каждая биклика В7 может быть задана парой множеств вершин {V/, V/'), поскольку каждая вершина из V' связана в биклике ребрами со всеми вершинами из V/'. Каждая функция £7(27) задается матрицами XI и ¥7. МатрицаXI является минором матрицы X, образованном столбцами, соответствующими переменным, приписанным биклике В7. Матрица ¥7 состоит из одного столбца, где в строке с номером, соответствующим вершине из V/, находится 0, в строке с номером, соответствующим вершине из V7' находится 1 (или наоборот), а в строке, для которой нет соответствующих вершин ни в V', ни в V/', находится символ «-». Векторная

функция ф задается матрицами и и Ф. Матрица и состоит из столбцов, представляющих матрицы Е1, Е2, ..., Ек, а матрица Ф совпадает с матрицей Е. Действительно, согласно приведенному выше замечанию пара матриц (и, Ф) может рассматриваться как представление системы частичных булевых функций. Нетрудно видеть, что для любого значения вектора х, произвольно взятого из области определения любой функции / заданной системы, значения функций ф, и / будут совпадать. Следовательно, пары матриц (Ал Е1), (Х2 Е2), ..., (Хк Ек) и (и, Ф) представляют искомую суперпозицию. Это представление обладает избыточностью в виде повторяемых и поглощаемых строк в матрицах, а также знаков «-» в одностолбцовых матрицах Е. Такую избыточность легко устранить, удалив упомянутые строки из матриц.

2. Точный метод

Точный метод, гарантирующий минимум числа функций в искомой суперпозиции, описан в статье [15] и заключается в выполнении процесса, состоящего из следующих этапов.

1. Нахождение всех максимальных допустимых биклик в графе Ох. Для этого можно использовать метод, представленный в работе [16].

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

3. Определение булевых функций £1(21), £2(^2), ., gk(Zk) и векторной функции ф.

На этапе получения покрытия можно продолжить оптимизацию решения, уменьшая сумму чисел компонент векторов 21, 22, ..., 2к. Тогда каждую биклику надо снабдить весом в виде числа приписанных ей переменных и решать задачу о взвешенном покрытии. При доопределении не полностью определенных булевых функций в процессе декомпозиции некоторые переменные могут оказаться несущественными аргументами. Тогда можно выбирать вариант с наименьшим числом существенных аргументов.

Пример 1. Пусть система частичных булевых функций/(х) задана следующими троичными матрицами:

х1 х2 хз х4 х5 х6 /1 /2 /з

"1 0 1 0 1 0" 1 " 0 0 1" 1

0 - - 0 1 - 2 - 1 1 2

1 - 1 1 0 1 3, Е = 0 - 0 3

0 1 0 1 1 1 4 1 1 - 4

1 - 1 - 1 0 5 - 0 1 5

0 0 - 1 1 - 6 1 0 - 6

Требуется получить суперпозицию/(х) < ф(£1(21), £2(22), ., £к(2к)) при минимальном к и числе р компонент каждого из векторов 21, 22, ..., 2к, не превышающем 3.

Граф Ох = (V, Ех) с множеством вершин V = {У1, У2, vз, У4, У5, У6} представим в виде перечня ребер. В табл. 1 представлены эти ребра и приписанные им переменные. Граф Ор = (V, Ер) имеет то же множество вершин, а его множество ребер Ер отличается от Ех только тем, что в нем отсутствуют ребра

У2У4 и У5У6.

Таблица 1

Ребра графа Ох = (V, Ех) с приписанными им переменными

У1У2 У1У3 У1У4 У1У6 У2У3 У2У4 У2У5 У2У6 У3У4 У3У5 У3У6 У4У5 У4У6 У5У6

х1 Х4 х5 хб Х1 х2 хз х4 хб х1 х4 х1 х4 х5 х4 х1 х4 х1 хз х5 х5 х6 х1 х5 х1 хз х6 х2 х1

Для графа Ох получено 18 максимальных допустимых биклик. Искомое покрытие составляют следующие биклики с соответствующими КНФ и ДНФ:

({VI, {У2, V3, V4, Уб}> - Х1 (Х5 V Х6) = Х\ Х5 V Х\ Хб, ({V 1, V2, V3, V4, V5}, {Vб}> - Х1 Х2 Х4,

({VI, V2, V4, V5, Vб}, {vз}> - (Х5 V Хб) (Х1 V Х5) = Х1 Хб V Х5. Представленные ниже матрицы задают искомую суперпозицию.

X =

х1 х5 §1 Х1 Х2 Х4 § 2 х5 §3

"1 1 " 1 "1" 1 " 1 0 0" 1 "0 " 1 "1 " 1 "1"

0 1 2 0 2 0 - 0 2 0 2 1 2 1

1 0 3, ¥1 = 0 3; Х2 = 1 - 1 3 , ¥2 = 0 3; X = 0 3 , ¥з = 0

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

1 1 5 1 5 1 - - 5 0 5 1 5 1

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

1

2 3;

4

5

6

и=

§1 §2 §3 Ф1 Ф2 Ф3

"0 0 1" 1 "0 0 1" 1

1 0 1 2 - 1 1 2

1 0 0 3, Ф = 0 - 0 3

1 0 1 4 1 1 - 4

0 0 1 5 - 0 1 5

1 1 1 6 1 0 - 6

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

Хл Хл Хл

§ 2

х1 х5 §1

X = " 1 1 " 0 1 2, = " 1" 0 1 2 ;

1 0 3 0 3

Х2 =

"1 0 0" 1 "0"

0 _ 0 2 0

, ¥2 =

0 1 1 3 0

1 - - 4 0

0 0 1 5 1

1

2 3:

4

5

§3

Хз =

"1" 1 , ¥з = "1"

0 2 0

1;

2

§1 §2 §3

Ф1 Ф2 Ф3

"0 0 1" 1 "0 0 1" 1

1 0 1 2 , Ф = 1 1 1 2

1 0 0 3 0 - 0 3

1 1 1 4 1 0 - 4

и =

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

§1 §2 §3

§1 §2 §3

Ф1 Ф2 Ф3

X = " 1 - - 1" , G = " 1 0 0" ; и= " 1 - 1" , Ф = " 1 0 0"

0 0 1 - 0 1 0 1 0 - 0 1 0

- - - 1 0 0 1 - - 1 0 0 1

Применение описанного метода не всегда приведет к решению задачи практической размерности за приемлемое время. Достижимой верхней границей числа всех максимальных биклик в графе является 2п - 1 - 1, где п - число вершин графа, и, кроме того, задача кратчайшего покрытия имеет не полиномиальную сложность. Этот метод следует считать основой для разработки эвристических методов решения данной задачи. Описание одного из них представлено далее.

х

х

х

х

1

2

4

5

3. Эвристический метод

Первым шагом на пути к решению является определение нижней границы числа биклик, составляющих искомое покрытие, и выделение из графа Ор такого числа изолированных ребер с наибольшим числом приписанных переменных. В полном графе К« мощность покрытия бикликами ребер графа не меньше, чем Г^2 «1, где Га! - целое число, ближайшее сверху к а. Если взять раскраску вершин графа Ор и заменить каждое множество одноцветных вершин одной вершиной, сохранив все ребра, то получим полный граф, скажем Кт. Таким образом, выделим, как указано выше, Г^2 т1 = к изолированных ребер и объявим их начальной совокупностью биклик В1, В2, ..., Вк.

Дальнейший процесс решения задачи представляется как последовательность шагов, на каждом из которых выбирается пара (у,, V/), где V, V/, V/, и вершина V, связана ребрами из Ех со всеми вершинами из V/. Вершина V, вносится в множество V} (^ Ф я), и таким образом вносятся новые ребра в биклику В/ = (V/, V/). Естественно, такое действие имеет смысл, когда среди этих ребер имеется хотя бы одно из ребер графа Ор, не присутствующее ни в одной из имеющихся биклик. Внесение вершины V, в множество V} сопровождается добавлением в КНФ, соответствующую биклике В/, элементарных дизъюнкций, связанных с вносимыми ребрами. При этом, естественно, учитывается закон поглощения (а V Ь) а = а, и надо, чтобы изменяемая биклика оставалась допустимой. То есть ДНФ, получаемая раскрытием скобок в КНФ, должна содержать хотя бы одну элементарную конъюнкцию ранга, не превышающего р.

Если такой пары не существует, в искомую совокупность вносится новая биклика в виде одного ребра из Ер, не принадлежащего ни одной из уже полученных биклик. Процесс заканчивается, когда каждое ребро из Ер окажется хотя бы в одной из биклик В1, В2, ..., Вк.

Выбор пары У V}) осуществляется по критериям, которые перечислены далее в порядке их применения.

1. Минимум ребер графа Ор, которые не сможет покрыть биклика В/ (такое ребро связывает пару вершин, присутствующей в той или другой доле биклики В/).

2. Максимум новых покрываемых ребер из Ер, вводимых в В/ вместе с вершиной V,.

3. Наименьший минимальный ранг элементарной конъюнкции в соответствующей ДНФ.

4. Максимум числа элементарных конъюнкций минимального ранга в соответствующей ДНФ.

Пример 2. Пусть система частичных булевых функций /(х) задана матрицами из примера 1, и

надо решить ту же задачу, что поставлена в этом примере.

Нижней границей мощности покрытия графа Ор бикликами является 2. Из табл. 1 выбираем два непересекающихся ребра с элементарными дизъюнкциями максимального ранга и получаем следующие биклики:

В1 = ({У1>, {У4}) - (х V х2 V хз V х4 V х6), В2 = ({У2}, {Уз}) - (х V х4 V х5).

Пара (У5, {У4}) для варианта формирования биклики ({У1, У5}, {у4}) оценивается по приведенным критериям как одна из лучших. Действительно, ребро уу отсутствует в графе Ор. Число новых покрываемых ребер во всех случаях равно единице. Соответствующая КНФ имеет вид (х V х2 V хз V х4 V х6)(х1 V хз V х6) и, преобразованная по закону поглощения, совпадает с ДНФ х V хз V х6, имеющей три элементарных конъюнкции ранга 1. Таким образом, имеем теперь следующие биклики:

В1 = ({У1, У5}, {У4}) - (х1 V хз V х6), В2 = ({У2}, {Уз}) - (х1 V х4 V х5).

На следующем шаге выбирается пара (У2, {У1, У5}), и результатом следующего шага является совокупность биклик

В\ = ({VI, [У2, - XI, В2 = ({V2}, {vз}) - (XI V Х4 V Х5).

Такое последовательное внесение ребер в биклики приводит к совокупности биклик

В\ = ({VI, V5}, ^2, Vз, V4}) - XI,

В2 = ({V2, V4}, {vз, V6}) - Х2 Х4 (XI V Хз V Х5).

Ребро vзv6 графа Ор не может быть покрыто ни одной из полученных биклик. У биклики В2 имеется доля, содержащая пару вершин vз, V6, а расширенная биклика В1 = ({VI, V5, V6}, ^2, vз, V4}) покрывает ребро vзv6, но не является допустимой, так как элементарные конъюнкции в соответствующей ДНФ имеют ранги, превышающие р = з: Х1 Х2 Х4 (Х5 V Х6) = Х1 Х2 Х4 Х5 V Х1 Х2 Х4 Х6. Поэтому вводим биклику Вз = (М, {V6}) с элементарной дизъюнкцией (Х1 V Х5) и добавляем к ней ребро VlV6. В результате получаем следующее покрытие:

В1 = ({V1, V5}, {V2, Vз, V4}) - Х1(Х5 V Х6) = Х1 Х5 V Х1 Х6,

В2 = ( {V2, V4}, {vз, V6} ) - Х2 Х4 (Х1 V Хз V Х5) = Х1 Х2 Х4 V Хз Х2 Х4 V Х2 Х4 Х5,

Вз = ({V!, Vз}, {V6}) - (Х1 V Х4) (Х1 V Х5) = Х1 V Х4 Х5.

Полученное покрытие определяет следующие матрицы:

X =

Х1 Х5 ё1 Х1 х2 Х4 ё2 Х1

"1 1 " 1 " 1" 1 " 1 0 0" 1 - 1 "1" 1

0 1 2 0 2 0 - 0 2 0 2 0 2

1 0 3, Е = 0 3; Х2 = 1 - 1 3 , Е = 1 3; Хз = 1 3 ,

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

1 1 5 1 5 1 - - 5 - 5 1 5

0 1 6 - 6 0 0 1 6 1 6 0 6

Ез =

1 2 3;

4

5

gl ё2 ёз

Ф1 Ф2 Фз

"1 - 1 " 1 "0 0 1"

0 0 - 2 - 1 1

0 1 1 3 , Ф = 0 - 0

0 0 - 4 1 1 -

1 - - 5 - 0 1

- 1 0 _ 6 1 0 -

1

2

и = 0 1 1 3, Ф = 0 - 0 3.

4

5

Устранение избыточности в этих матрицах дает следующее представление полученных частичных функций:

X =

Х1 Х2 Х4 ё 2

Х1 Х5 ё1 " 0 - 0" " 0"

" 1 1" , Е = " 1" ; Х2 = 1 — 1 , Е2 = 1

0 1 0 0 1 1 0

1 0 0

0 0 1 1

ёз

Хз =

" 1" , Ез = " 1"

_ 0 _ _ 0 _

ё1 ё2 ёз

Ф1 Ф2 Ф3

и=

"1 - 1" "0 0 1"

0 0 - 1 1 1

, Ф =

0 1 1 0 - 0

1 - - - 0 1

- 1 0 1 0 -

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

х х^ х4 х5 ft g2 g3 g1 g 2 g3 Ф1 Ф2 Ф3

X= ' 1 - - 1  , G = " 1 0 0" ; и= 1 0" , Ф = " 1 1 0"

- 0 1 - 0 1 1 0 0 - 1 0 0

1 - - - 0 0 1 1 - - 0 0 1

Заключение

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

ЛИТЕРАТУРА

1. Hassoun S., Sasao T. Logic Synthesis and Verification. The Springer International Series in Engineering and Computer Science.

Kluwer Academic Publishers, 2001. 472 p.

2. Perkowski M.A., Grygiel S. A Survey of Literature on Functional Decomposition, Version IV (Technical report). Portland : Portland

State University, Department of Electrical Engineering, 1995. 188 p.

3. An improved functional decomposition method based on FAST and the method of removal and operation / F. Yu et al. // International

Conference on System Science and Engineering (ICSSE), Dalian, China, Jun. 2012. P. 487-492.

4. Закревский А.Д., Поттосин Ю.В., Черемисинова Л.Д. Логические основы проектирования дискретных устройств. М. : Физ-

матлит, 2007. 592 с.

5. Закревский А.Д., Перышкин А.Е. Параллельная декомпозиция системы слабо определенных булевых функций // Логиче-

ское проектирование. Минск : Ин-т техн. кибернетики НАН Беларуси, 2000. Вып. 5. С. 59-66.

6. Поттосин Ю.В., Шестаков Е.А. Табличные методы декомпозиции систем полностью определенных булевых функций //

Минск : Белорусская наука, 2006. 327 с.

7. Бибило П.Н. Декомпозиция булевых функций на основе решения логических уравнений. Минск : Беларус. навука, 2009.

211 с.

8. Files C.M., Perkowski M.A. New mutivalued functional decomposition algorithms based on MDDs // IEEE Transactions on Com-

puter-Aided Design of Integrated Ciruits and Systems. 2000. V. 19, No. 9. P. 1081-1086.

9. Закревский А.Д. Комбинаторный поиск подходящих разбиений при декомпозиции булевых функций // Вестник Томского

государственного университета. Приложение. 2006. № 18. С. 4-9.

10. Поттосин Ю.В., Шестаков Е.А. Применение аппарата покрытий троичных матриц для поиска разбиения множества аргументов при декомпозиции булевых функций // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2011. № 3 (16). С. 100-107.

11. Rawski M. Input variable partitioning method for decomposition-based logic synthesis targeted heterogeneous FPGAs // International Journal of Electronics and Telecommunications. 2012. V. 58, No. 1. P. 15-20.

12. Бибило П.Н. Применение диаграмм двоичного выбора при синтезе логический схем. Минск : Беларус. навука, 2014. 231 с.

13. Taghavi A.S., Pottosin Yu.V., Arasteh B. An input variable partitioning algorithm for functional decomposition of a system of Boolean functions based on the tabular method // Discrete Applied Mathematics. 2015. V. 185. P. 208-219.

14. Поттосин Ю.В., Шестаков Е.А. Декомпозиция системы частичных булевых функций с помощью покрытия графа полными двудольными подграфами // Новые информационные технологии в исследовании дискретных структур : доклады Второй всерос. конф. Екатеринбург : УрО РАН, 1998. С. 185-189.

15. Поттосин Ю.В. Метод многоблочной параллельной декомпозиции системы частичных булевых функций // Информатика. 2017. № 3 (55). С. 92-98.

16. Pottosina S., Pottosin Yu., Sedliak B. Finding maximal complete bipartite subgraphs in a graph // J. Applied Mathematics. 2008. V. 1, No. 1. P. 75-81.

Поступила в редакцию 22 апреля 2018 г.

Pottosin Yu.V. (2018) PARALLEL DECOMPOSITION OF A SYSTEM OF PARTIAL BOOLEAN FUNCTIONS. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie vychislitelnaja tehnika i informatika [Tomsk State University Journal of Control and Computer Science]. 45. pp. 83-91

DOI: 10.17223/19988605/45/10

The problem of Boolean functions decomposition is to represent a given system of Boolean functions as a superposition of simpler Boolean functions. In fact, the implementation of a system of Boolean functions by logical unites, or the synthesis of a combinational circuit, is reduced to decomposition, in which the obtained superposition includes functions implemented by logical unites.

The decomposition problem is considered in the following statement. Given a system of partial (incompletely specified) Boolean functions in the vector form, fx) = f1(x), fi(x),...,fn(x)), where the components of the vector x = (xi, X2, ..., xn) are Boolean variables forming a set X. A superposition fx) < ф^^О, g2(Z2), ..gk(zk)) must be found, where the components of the vector Zi, i = 1, 2, ..k, are the variable in the set Zi сX and < denotes the realization relation, i.e., the values of the components of the vector function ф coincide with the values of the components of f everywhere they are specified. At that, the cardinality |Zi|, i = 1, 2, k, must be restricted by a given value p, and k must be minimum and less than n. An approach to solving the problem that does not demand the sets Z1, Z2, Zk to be given is described.

The approach uses the interval representation of a system of partial Boolean functions, i.e., in the form of a pair of ternary matrices, X, F, of dimension l x n and l x m, respectively. The columns of the matrix X correspond to the values X1, X2, ..., Xn, and the columns of the matrix Fto the functions/(x),f2(x), ...,fJx). A row of X gives an interval of Boolean space, and the corresponding row of F the function values at this interval. The symbol "-" in the i-th row and j-th column of F means that the i-th interval is not used to specify the function f(x). The rows of X and F have common numeration.

The graphs Gx = (V, Ex) and Gf = (V, Ef) are considered, where V is the set of common numbers of rows of the matrices X and F, and Ex and Ef are the sets of pairs of orthogonal rows of the matrices X and F, respectively. A system of Boolean functions is given with matrices X and F correctly if Ef с Ex, i.e., Gf is a spanned subgraph of Gx. Every edge in Ex is assigned with the variables from the setХ = {x1, X2, ..., xB}, according to which the corresponding rows ofX are orthogonal. A complete bipartite subgraph (biclique) of Gx is assigned with the set of variables in X taken one by one from each edge of the biclique. A biclique is called admissible if the number of variables assigned to it is at most p, and it contains at least one edge in Ef.

Let B1,B2, ...,Bkbe bicliques covering the set Ef. Any biclique Bi can be given by a pair of vertex sets (V/, V/). Every function gi(Zi) of the required superposition is specified by matrices Xi and Fi. The matrix Xi is the minor of X formed by the columns corresponding to the variables assigned to the biclique Bi. The matrix Fi consists of one column, where the element with number corresponding to the vertex in Vi' is 0, and the element with number corresponding to the vertex in V/is 1 (or vice versa). The element that does not correspond to any vertex in Vi'or in Vi "is "-". The vector function ф is given by matrices U and Ф. The matrix U consists of the columns that are the one-column matrices F1, F2, Fk, and the matrix Ф coincide with F.

Two methods for the considered problem are presented. The first method obtains an exact solution, i.e., the minimal number of blocks in a structural implementation of the given system of functions is ensured. This method is reduced to that first all maximal admissible bicliques are found in graph Gx, and then a shortest cover with them of the edges in Ef is obtained. The second method is heuristic one, it does not guarantee the minimal solution, but it allows solving the problem much faster in comparison with the first one. This method forms bicliques successively, that constitute a cover of the edges of graph Gf finally. The exact method can serve as a basis for developing other, heuristic methods, more applicable for practical tasks. The second method from the described ones is one of them. Moreover, the exact method can be used as an etalon for estimating the quality of solutions obtained by heuristic methods. The quality of the solution must be understood as its closeness to the optimal solution and simplicity of the obtained functions.

Keywords: system of partial Boolean functions; ternary matrix; complete bipartite subgraph.

POTTOSIN Yury Vasilievich. (Candidate of Physics and Mathematics, Associate Professor, United Institute of Informatics Problems, NAS of Belarus, Minsk, Belarus). E-mail: pott@newman.bas-net.by

REFERENCES

1. Hassoun, S. & Sasao, T. (2001) Logic Synthesis and Verification. The Springer International Series in Engineering and Computer Science. Kluwer Academic Publishers.

2. Perkowski, M.A. & Grygiel, S. (1995) A Survey of Literature on Functional Decomposition, Version IV (Technical report). Portland,

USA: Portland State University, Department of Electrical Engineering.

3. Yu, F., et al. (2012) An improved functional decomposition method based on FAST and the method of removal and operation.

International Conference on System Science and Engineering (ICSSE). Dalian, China. pp. 487-492. DOI: 10.1109/ICSSE.2012.6257233

4. Zakrevskiy, A.D., Pottosin, Yu.V. & Cheremisinova, L.D. (2007) Logicheskie osnovyproektirovaniya diskretnykh ustroystv [Logical

Fundamentals for Design of Discrete Devices]. Moscow: Fizmatlit.

5. Zakrevskiy, A.D. & Peryshkin, A.E. (2000) Parallel'naya dekompozitsiya sistemy slabo opredelennykh bulevykh funktsiy [Parallel

decomposition of a system of weakly specified Boolean functions]. Logical Design. 5. pp. 59-66.

6. Pottosin, Yu.V. & Shestakov, E.A. (2006) Tablichnye metody dekompozitsii sistem polnost'yu opredelennykh bulevykh funktsiy

[Tabular Methods for Decomposition of Systems of Completely Specified Boolean Functions]. Minsk: Belorusskaya nauka.

7. Bibilo, P.N. (2009) Dekompozitsiya bulevykh funktsiy na osnove resheniya logicheskikh uravneniy [Decomposition of Boolean

Functions Based on Solving Logical Equations]. Minsk: Belorusskaya nauka.

8. Files, C.M. & Perkowski, M.A. (2000) New mutivalued functional decomposition algorithms based on MDDs. IEEE Transactions

on Computer-Aided Design of Integrated Ciruits and Systems. 19(9). pp. 1081-1086.

9. Zakrevskiy, A.D. (2006) Combinatorial search for appropriate partitions in decomposition of Boolean functions. Vestnik Tomskogo

gosudarstvennogo universiteta. Prilozheniye - Tomsk State University Journal. Appendix. 18. pp. 4-9. (In Russian).

10. Pottosin, Yu.V. & Shestakov, E.A. (2011) Application of the ternary matrix cover technique to search for a partition of the set of arguments in decomposition of Boolean functions. Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitel'naya tekhnika i informatika - Tomsk State University Journal ofControl and Computer Science. no. 3(16). pp. 100-107. (In Russian).

11. Rawski, M. (2012) Input variable partitioning method for decomposition-based logic synthesis targeted heterogeneous FPGAs. International Journal of Electronics and Telecommunications. 58(1). pp. 15-20. DOI: 10.2478/v10177-012-0002-x

12. Bibilo, P.N. (2014) Primenenie diagramm dvoichnogo vyborapri sinteze logicheskiy skhem [Application of Binary Decision Diagrams to the Synthesis of Logic Circuits]. Minsk: Belorusskaya nauka.

13. Taghavi, A.S., Pottosin, Yu.V. & Arasteh, B. (2015) An input variable partitioning algorithm for functional decomposition of a system of Boolean functions based on the tabular method. Discrete Applied Mathematics. 185. pp. 208-219. DOI: 10.1016/j.dam.2014.12.013

14. Pottosin, Yu.V. & Shestakov, E.A. (1998) [Decomposition of a system of partial Boolean functions using a complete bipartite subgraph cover of a graph]. Novye informatsionnye tekhnologii v issledovanii diskretnykh struktur [New Information Technologies in Investigation of Discrete Structures]. Proc. of the Second All-Russian Conference. Ekaterinburg: Ural Branch of RAS. pp. 185189. (In Russian).

15. Pottosin, Yu.V. (2017) A method for multi-block parallel decomposition of a system of partial Boolean functions. Informatika. 3(55). pp. 92-98. (In Russian).

16. Pottosina, S., Pottosin, Yu. & Sedliak, B. (2008) Finding maximal complete bipartite subgraphs in a graph. Journal of Applied Mathematics. 1(1). pp. 75-81. (In Russian).