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

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

CC BY
281
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
СИСТЕМА НЕ ПОЛНОСТЬЮ ОПРЕДЕЛЕННЫХ БУЛЕВЫХ ФУНКЦИЙ / ДЕКОМПОЗИЦИЯ / SYSTEM OF INCOMPLETELY SPECIFIED BOOLEAN FUNCTIONS / DECOMPOSITION

Аннотация научной статьи по математике, автор научной работы — Поттосин Юрий Васильевич, Шестаков Евгений Анатольевич

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

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

The decomposition problem for a system of incompletely specified Boolean functions is considered. The concept of function dependence on some arguments is introduced for appreciating the complexity of decomposition components. A method for series parallel decomposition of a system of incompletely specified Boolean functions is suggested. The peculiarity of the method is that the arguments of components are not given and are found in the process of decomposition.

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

2010 Логическое проектирование дискретных автоматов №4(10)

ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ ДИСКРЕТНЫХ

АВТОМАТОВ

УДК 519.714 : 681.32

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

Ю. В. Поттосин, Е. А. Шестаков

Объединенный институт проблем информатики НАН Беларуси, г. Минск, Беларусь

E-mail: pott@newman.bas-net.by

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

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

Введение

Задача декомпозиции булевых функций является одной из важных задач из области логического проектирования, что делает её объектом большого внимания со стороны многих исследователей. Как показывает обзор [1], на данную тему написано большое количество статей. В данной работе рассматривается задача декомпозиции системы булевых функций в следующей постановке: для заданной системы f (ж) = (/i(x), /2(ж),... , /т(ж)) не полностью определённых булевых функций fi,... , fm от переменных в ж = (xi, x2,... , xn) найти системы, возможно, тоже не полностью определённых булевых функций g^z1), g2(z2) от переменных в ж и h(gi,g2), такие, что суперпозиция h(g1(z1),g2(z2)) совпадает с функцией f (ж) на области её определения.

Обычно при решении подобной задачи отыскивается суперпозиция h(g1 (z1), g2 (z2)), в которой число булевых аргументов (компонент векторных аргументов) в каждой из систем h, g1 и g2 должно быть меньше, чем в системе f. В такой постановке задача декомпозиции не всегда имеет решение, что значительно усложняет применение методов декомпозиции при синтезе многоярусных комбинационных схем.

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

В этом случае поиск искомой суперпозиции осуществляется в три этапа. На первом этапе по исходной системе булевых функций f (ж) строится тривиальная суперпозиция h'(g1(z1),g2(z2)), где g1 и д2 —псевдобулевы функции с натуральными значениями от векторных переменных z1 и z2, но на этом этапе g1(z1) = g2(z2) и z1 = z2 = ж.

На втором этапе выполняется ряд последовательных итераций, представляющий собой чередование преобразований функций ^1(^1) и д2(^2) и соответственно функции Н>(д1,д2) с сохранением заданного отображения f (ж). При каждой такой итерации удаляется одна компонента из векторной переменной гг (г Е {1, 2}). Если на какой-либо итерации окажется невозможным преобразование суперпозиции, полученной на предыдущей итерации, с учетом установленных ограничений, то второй этап завершается.

На третьем этапе выполняется кодирование значений натуральных переменных и находится требуемая суперпозиция ^(д1(^1),д2(^2)).

Особенностью предлагаемой декомпозиции является то, что для её выполнения не нужно предварительно искать в ж наборы аргументов 21 и 22. Их выбор осуществляется в ходе выполнения декомпозиции. Число булевых аргументов в системе Н построенной декомпозиции будет удовлетворять заданным ограничениям. Число булевых аргументов в системах д1 = д1(^1), д2 = д2(^2) в общем случае может не уменьшиться по сравнению с исходной системой f, однако степень зависимости этих систем по некоторым подмножествам аргументов будет меньше, чем зависимость по этим аргументам исходной системы.

1. Постановка задачи

Пусть система частичных булевых функций f (ж) задается парой матриц и, V размерности I х п и I х т соответственно. Матрица и является булевой. Её столбцы соответствуют переменным х1,х2,... ,хп, а её элементы принимают значения из множества {0,1}. Каждая строка с номером г, 1 ^ г ^ I, матрицы и задает булев вектор [3], который является значением переменной ж. Множество векторов, представленное матрицей и, задает область определения Df системы f (ж). Матрица V — троичная, её элементы принимают значения из множества {0,1, -}. Строки матрицы V находятся во взаимно однозначном соответствии со строками матрицы и. Столбцы матрицы V соответствуют функциям /1, /2,... , /т заданной системы (переменным у1,у2,... , ут), а г -я строка матрицы V представляет значения этих функций при значении векторной переменной, представляемом г-й строкой матрицы и.

Пусть троичные векторы у* и у'* состоят из одинакового числа компонент. Будем писать у* ^ у/*, если значения всех компонент вектора у*, отличные от значения « — », совпадают с соответствующими компонентами вектора у/*.

Поскольку упомянутые выше векторные переменные 21 и 22 составлены из ком-

12

понент векторной переменной ж, то компоненты их значений 2 и 2 совпадают

с соответствующими компонентами вектора ж *. В дальнейшем будем считать, что ес-

12

ли задано значение ж векторной переменной ж, то также заданы значения 21 и 22

12

векторных переменных 21 и 22 соответственно.

Говорим также, что суперпозиция систем частичных булевых функций Н(д1(21),д2(^2)) реализует систему частичных булевых функций f(ж), и пишем f (ж) ^ Н(д1(21),д2(^2)), если для любого значения ж* Е Df выполняется f(ж*) ^ ^ Н(д1(21*),^2(^2*)).

Говорят, что система f (ж) не зависит от булевой переменной х^, 1 ^ г ^ п, если f (ж*) = f (ж/*) для любой пары значений ж*, ж/ * из множества Df, отличающихся друг от друга только по г-й компоненте (значением переменной х^). В противном случае, т. е. когда существует хотя бы одна такая пара значений ж*, ж/ * из множества Df, отличающихся друг от друга только по г-й компоненте, что f (ж*) = f (ж/*), говорят, что система f (ж) зависит от х^. В этом случае нетрудно найти все такие различные

пары, для которых выполняется это неравенство. Число этих пар обозначим через ^(/,Хі) и назовем это число степенью зависимости системы f (ж) от переменной ж^ Очевидно, ,хі) = 0, если система f (ж) не зависит от переменной хі.

Пусть у систем f (ж) и f'(ж) совпадают области определения, т. е. Df = & ^', и каждая из этих систем зависит от переменной хі. Будем говорить, что система f (ж) в меньшей степени зависит от переменной хі, чем система f (ж), если ,хі) < , хі).

Определим и степень зависимости , X ) системы f (ж) от подмножества X множества X = {жі,...,жга} булевых переменных (X' С X) как , X') = ^ ,х).

хЄХ'

Ясно, что если система f (ж) не зависит от булевых переменных, входящих в подмножество X', то , X') = 0.

В настоящей работе рассматривается следующая задача декомпозиции.

Для заданной системы f (ж) необходимо найти суперпозицию Ь(ді, д2), д = д (2і), д2 = д2(^2), такую, что выполняются следующие условия:

1) й(ді(£^д2(^2)) ^ f (ж);

2) для заданных целых положительных чисел ^1 и Л,2 при п > ^1+Л,2 > т число булевых компонент в векторных переменных д1 и д2 не превышает соответственно Л-1 и Л,2;

3) й(ді,^і) < ^,^і), ^(^2,^2) < ^,^2), где ^і С X и ^2 С X — множества

і2

переменных, представляющих компоненты векторных переменных 2і и £2 соответственно (^1 = 0, ^2 = 0).

2. Метод декомпозиции

Поиск декомпозиции системы f (ж) осуществляется в три этапа.

Этап 1. Формирование тривиальной декомпозиции. По исходной системе булевых функций f (ж) строится тривиальная суперпозиция Н (#ь#2), где ^1 = ^1 (2і), д2 = д2(^2) — псевдобулевы функции, ^1(^і) = д2(^2) и 2і = 22 = ж.

Пусть исходная система булевых функций f (ж) задается матрицами Ц, V с номерами строк 1,2,..., I. Общая область определения функций д1(2і) и д2(^2) совпадает с областью определения исходной системы , а их областью значений является множество {1, 2, ..., і}. Пусть перечень значений векторной переменной 2і представлен матрицей иі, а то же самое для 22 - матрицей Ц2. Значением функции дД^*) при некотором значении 2* является номер строки матрицы Ц* (і Є {1, 2}). Так что функция ді(^*) вполне задается матрицей Ц*. На данном этапе Ц = Ц2 = и.

Область определения функции Н' состоит из пар значений её аргументов (1,1), (2, 2), ..., (/, /). На паре значений своих аргументов (і,і) функция Н' принимает значение у * = Н (і, і), которое задаётся і -й строкой матрицы V.

Функция Н (д1,д2) задается квадратной матрицей размерности I х /. Строкам этой матрицы приписаны значения 1, 2,... , I переменной д1, а столбцам — значения 1, 2,... , I переменной д2. Все элементы этой матрицы, расположенные не на её главной диагонали, являются неопределёнными, т. е. имеют значение « —». Элемент матрицы, расположенный на пересечении строки и столбца с одним и тем же номером і (і = 1, 2,... , / ), равен і-й строке матрицы V.

Пример 1. Пусть исходная система булевых функций f (х), где х = (ж^ ж2, Ж3, £4, ж5), f (х) = (/1 (х), /2(х)) = (у1,у2), задана матрицами:

и

Х1 ю н н со н 2 Уі У2

0 0 0 0 0 1 0 0 1

0 0 0 1 0 2 0 0 2

0 0 1 0 0 3 1 0 3

0 0 1 0 1 4 0 1 4

0 0 1 1 0 5 1 1 5

0 1 0 1 0 6, V = 0 0 6

0 1 0 1 1 7 , У 0 1 7

0 1 1 0 0 8 1 1 8

0 1 1 1 0 9 0 0 9

1 1 0 0 0 10 1 0 10

1 1 0 0 1 11 1 1 11

1 1 0 1 0 12 1 1 12

1 1 0 1 1 13 0 0 13

На наборах значений переменных, не представленных в матрице и, значения функций не определены. Справа от матриц и, V указаны номера их строк. Построим по этой функции тривиальную суперпозицию Н'(#і,#2), где $і = ді(^1), $2 = $2(22) и 21 = 22 = ж. Функции $1(21) и $2(22) в ней задаются соответственно матрицами и1 и и2, которые в данном случае совпадают с и, а функция Н'($1,$2) —матрицей ^:

и = и

Х1 0 н ° н ° н ° 2 н ° 1 О 1 о 2 3 4 5 6 7 8 9 10 11 12 13 1

0 0 0 1 0 2 - ОО 2

0 0 1 0 0 3 - - 10 - - - - - - 3

0 0 1 0 1 4 - - - 01 - - - - - 4

0 0 1 1 0 5 11 5

0 1 0 1 0 ^ = - - - - - 00 - - - 6

0 1 0 1 1 6, 7, - - - - - 01 - - 7

0 1 1 0 0 8 11 8

0 1 1 1 0 9 - - - - - - - - 00 9

1 1 0 0 0 10 - - - - - - - - - 10 - - - 10

1 1 0 0 1 11 - 11 - - 11

1 1 0 1 0 12 - - 11 - 12

1 1 0 1 1 13 - - - 00 13

Этап 2. Последовательность преобразований суперпозиции ^/(д1,д2). На этом этапе выполняется ряд итераций. В процессе каждой итерации осуществляется преобразование матрицы Ц*, представляющей псевдобулеву функцию дДг*) (г € {1, 2}), и соответствующее преобразование матрицы №, представляющей функцию ^/(д1,д2). Последовательность итераций представляет собой чередование этих действий для Ц и Ц2.

Матрица Ц* преобразуется так, чтобы снизилась степень зависимости ^(^, ) пред-

ставляемой ею функции д(г*) от одного из булевых аргументов . Чтобы описать упомянутые преобразования, введём некоторые понятия.

Строки и столбцы матрицы № можно рассматривать как троичные векторы. Две строки матрицы № несовместимы, если они представляют ортогональные троичные

векторы. В противном случае они совместимы. Под ортогональностью троичных векторов понимается наличие противоположных значений (0 и 1) их одноимённых компонент [3]. Такое же отношение совместимости определяется и на множестве столбцов матрицы №.

Пусть булева переменная Хк является компонентой векторной переменной г1. На множестве {1, 2,...,/1} номеров строк матрицы Ц. определим разбиение «(Ц., Хк) так, что г и в (1 ^ г ^ /1,1 ^ в ^ /1,г = в) попадают в один блок этого разбиения, если и только если г-я и в-я строки матрицы Ц. отличаются только значением компоненты Хк, а г-я и в-я строки матрицы № совместимы. Если переменная Хк является компонентой векторной переменной г2, то аналогично определим разбиение а(Ц2,Хк) на множестве {1, 2,... , /2} номеров строк матрицы Ц2: г и в (1 ^ г ^ /2,1 ^ в ^ /2, г = в) попадают в один блок этого разбиения, если и только если г-я и в -я строки матрицы ^2 отличаются только значением компоненты Хк, а г-й и в-й столбцы матрицы № совместимы.

Преобразования матриц Ц. и № выполняются по разбиению а(Ц.,Хк). Заметим, что любое разбиение а(Ц*,хк) (г € {1, 2}) по любой переменной хк может содержать только одноэлементные и двухэлементные блоки. В матрице Ц каждую пару строк, номера которых содержатся в одном блоке разбиения а(Ц., Хк), заменяем одной, в которой компоненте Хк приписываем значение « —». Это же значение приписываем тем остальным строкам, для которых это изменение не нарушает взаимной ортогональности всех строк матрицы Ц.. Если столбец Хк оказался при этом состоящим только из элементов со значением « —», то он удаляется из матрицы Ц.. В этом случае ^(д1,Хк) = 0. Преобразование матрицы Ц. сопровождается преобразованием матрицы №, в результате которого каждая пара строк, номера которых содержатся в одном блоке разбиения а(Ц., Хк), заменяется одной строкой, являющейся результатом пересечения троичных векторов, представляемых данными строками. При этом сохраняется взаимно однозначное соответствие между строками матрицы Ц. и строками матрицы №, а также сохраняется согласование их нумерации.

Результатом операции пересечения двух пересекающихся троичных векторов одинаковой размерности является троичный вектор, формируемый следующим образом [4]. Если обе одноимённые компоненты исходных векторов имеют значение « —», то это значение приписывается соответствующей компоненте вектора-результата. Если хотя бы одна из одноимённых компонент исходных векторов имеет значение 0 или 1 (в пересекающихся векторах они не могут иметь противоположные значения), то это значение приписывается соответствующей компоненте вектора-результата.

Матрица Ц преобразуется совершенно аналогично, только прежнюю переменную Хк для этой цели использовать нельзя. Во всей последовательности итераций каждая переменная может использоваться не более одного раза. При сопровождающем преобразовании матрицы № всё, что говорилось относительно её строк, делается с её столбцами.

Пример 2. Для матрицы Ц из примера 1 найдем следующие разбиения: а(Ц, £1) = {{1}, {2}, {3}, {4}, {5}, {6,12}, {7,13}, {8}, {9}, {10}, {11}}; а(Ц, Х2) = {{1}, {2, 6}, {3, 8}, {4}, {5, 9}, {7}, {10}, {11}, {12}, {13}}; а(Ц, Хз) = {{1, 3}, {2, 5}, {4}, {6,9}, {7}, {8}, {10}, {11}, {12}, {13}}; а(Ц, Х4) = {{1, 2}, {3, 5}, {4}, {6}, {7}, {8, 9}, {10,12}, {11,13}}; а(Ц, Х5) = {{1}, {2}, {3, 4}, {5}, {6, 7}, {8}, {9}, {10,11}, {12,13}}.

Выбрав Х3 для преобразования матрицы Ц. и затем х1 для преобразования матрицы Ц2, получим

и

Х 2 Х Х4 Ю Х

0 0 0 0 1

0 0 1 0 2

0 0 0 1 3

0 1 1 0 4

0 1 1 1 5 и

0 1 0 0 6

1 1 0 0 7

1 1 0 1 8

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

1 1 1 0 9

1 1 1 1 10

Х2 со Х4 Х5

0 0 0 0 1

0 0 1 0 2

0 1 0 0 3

0 1 0 1 4

0 1 1 0 5

1 0 1 0 6

1 0 1 1 7

1 1 0 0 8

1 1 1 0 9

1 0 0 0 10

1 0 0 1 11

123456789 10 11

00 - 10 -----------------

- 00-----11--------------

- - - 01 ----------------

----------- 00 - - 00 - -

------------- 01 - - - -

----------------11-------

--------------------10 -

-----------------------11

-----------11------------

00

1

2

3

4

5

6

7

8 9

10

Заметим, что некоторые столбцы, совместимые в матрице Ш, могут оказаться несовместимыми после совмещения её строк. По условию решаемой задачи декомпозиции аргументы дх и д2 системы булевых функций Ь(дх, д2) искомой декомпозиции должны соответственно состоять не более чем из Л-1 и Л2 булевых переменных. Значения векторных переменных дх и д2 определяются при кодировании строк и столбцов матрицы Ш на этапе 3, и чтобы удовлетворить этому условию, любое множество взаимно ортогональных строк матрицы Ш должно содержать не более 2^ строк, а любое множество взаимно ортогональных столбцов — не более 2^2 столбцов. Необходимым условием для этого является следующее.

Условие С. Каждый столбец матрицы Ш должен содержать не более 2^, а каждая её строка — не более 2^2 взаимно ортогональных значений векторной переменной У = /(х).

Это условие должно проверяться перед каждым преобразованием матрицы Ш. Булеву переменную Хк, при которой преобразование матрицы Ш по разбиению а(Ц*,хк) (г € {1, 2}) не нарушает условие С, назовем корректной. При выборе аргумента Хк, по которому осуществляется данное преобразование, предпочтение отдаётся корректному аргументу. Если таких аргументов несколько, то выбирается тот, который приведёт к увеличению несовместимых пар столбцов в матрице Ш на минимальную величину.

Пусть корректные аргументы отсутствуют. Это означает, что для каждого аргумента не выполняется условие С. Пусть аргумент Хк не является корректным. Преобразуем разбиение а(Ц*,Хк) посредством деления некоторых его двухэлементных блоков так, чтобы условие С выполнялось. В этом случае степень зависимости ^(^, Хк) функции gi от аргумента Хк останется не равной нулю. Величина d(gi, Хк) будет тем меньше, чем меньше будет выполнено делений двухэлементных блоков разбиения а(Ц*,Хк). Если выполнение условия С будет достигнуто лишь в том случае, когда все блоки разбиения а(Ц*,Хк) будут разделены до одноэлементных, то тогда d(gi,xk) уменьшить не удастся. Назовём в этом случае аргумент Хк устойчивым. В противном случае аргумент Хк будем называть неустойчивым. Если все аргументы функции gi устойчивы, то её преобразование прекращается. Если среди аргументов имеются неустойчивые, то выбираем из них тот, степень зависимости от которого функции gi будет наименьшей.

Пример 3. Матрица их, полученная в примере 2, преобразуется на основе разбиения а(их,Х2) = {{1, 6}, {2, 4}, {3}, {5}, {7}, {8}, {9}, {10}}, в результате чего при

сохранении прежнего значения матрицы и получаем следующее:

Ці

Хі Х4 Х5

0 0 0

0 1 0

0 0 1

011 100 101 1 1 0

111

1

2

3

4 , ^2

5

6

7

8

Х2 Х3 Х4 Х5 0000 0010 0100 0101 0110 1010 1011 110 0 1110 1000 1001

1

2

3

4

5

6

7

8 9

10

11

1 23456789 10 11

00 - 10--------11--------

- 00 - - 11 00 - - 00 - -

- - - 01 ---------------

-------------01---------

--------------------10 -

----------------------11

-----------11-----------

00

1

2

3

4

5

6

7

8

Пусть в искомой суперпозиции ^(^1, д2) число компонент в векторной переменной д должно быть не более единицы, а в переменной д2 —не более двух, т. е. Л = 1 и Л-2 = 2. Взяв любое из разбиений а(и2, ), к = 4, 5, в качестве основы для совмеще-

ния столбцов матрицы ^, мы не получим окончательное значение матрицы ^ без нарушения указанных ограничений, т. е. ни одна из переменных ж4 и ж5 не является корректной (переменные ж2 и ж3 не могут быть взяты в данном случае, поскольку на их основе проводились преобразования матрицы и1). Тогда выбираем подходящее совмещение столбцов матрицы ^ — третьего с четвертым и десятого с одиннадцатым — и получаем следующие матрицы при ^(д2,ж5) = 1:

Ці

Хі Х4 Х5

0 0 0 1

0 1 0 2

0 0 1 3

0 1 1 £ 4,

1 0 0 5

1 0 1 6

1 1 0 7

1 1 1 8

Х2 Х3 Х4 Х5

0000 0 1 -

010011101 101 1 1 0

111 100

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

0

1

123456789 00 - 10 - - - 11 - -

- 00 - 11 00 - 00 -

- - 01 -----------

----------01------

----------------10

----------------11

-------11---------

00

1

2

3

4

5

6

7

8

Этап 3. Получение суперпозиции Ь(ді, д2), удовлетворяющей условиям задачи. Чтобы получить векторные булевы функции д1 и д2, надо закодировать строки и столбцы матрицы № двоичными векторами, причем совместимые строки, так же как совместимые столбцы, могут иметь одинаковые коды. Те же коды присваиваются соответствующим значениям многозначных переменных $і и $2. Если функция $ задана матрицей и* (і = 1, 2), то векторная функция д* задается следующим образом: значением функции д* на наборе переменных, представляемым строкой матрицы и*, является код соответствующего значения функции $і. Удобно преобразовать матрицу № в матрицу Н, представляющую искомую функцию ^(д1, д2). Для этого находится разбиение множества строк матрицы № на совместимые подмножества, т. е. на подмножества, где любые две строки совместимы, и все строки из одного подмножества заменяются одной строкой, представляющей пересечение соответствующих троичных векторов. Та же операция проделывается затем со столбцами матрицы №.

При совмещении строк для получения матрицы Н, число строк в которой не должно превышать 2^, следует стараться не потерять возможности сократить число столбцов в ней до 2^2. Выделим 2^ строк в матрице №, которые должны войти в различные совместимые множества. Около них группируем остальные строки, формируя таким образом искомые совместимые подмножества. В результате получаем матрицу №' с 2Н1 строками, где каждая строка является пересечением всех строк, принадлежащих соответственному совместимому подмножеству.

Текущая ситуация в этом процессе характеризуется двумя множествами: Б = {Б1 , Б2,...,Б2^ } — совокупность совместимых подмножеств строк матрицы № (в начале процесса это одноэлементные множества) и Я = {г1, г2,..., г*} —множество остальных строк матрицы №. Из множества Я последовательно выбираются строки и переносятся в определенные подмножества из множества Б. Процесс заканчивается, когда множество Я оказывается пустым.

Строки матриц № и №' рассматриваются как секционированные троичные векторы [3]. Длина секции равна числу компонент векторной переменной у = f (х). Выбор пары (£г,Г/) (Si € S,Гj € Я) для включения строки г^ в множество где строка Гj должна быть совместима со всеми строками из Si, осуществляется по следующим двум критериям: 1) минимум увеличения количества взаимно ортогональных секций в получаемой строке матрицы №'; 2) минимум увеличения количества пар ортогональных секций в этой строке.

Матрица преобразуется в матрицу Н путем аналогичного совмещения

столбцов.

Пример 4. Используем данные, полученные в примере 3. Как было сказано, для получения искомой декомпозиции необходимо матрицу № преобразовать в матрицу Н таким образом, чтобы матрица Н имела не более двух строк и не более четырех столбцов.

В начальной ситуации имеем Б = {{1}, {3}} и Я = {2, 4, 5, 6, 7, 8}, при этом матрица №' имеет следующий вид:

№'

123456789

00 - 10 - - - 11 - -

01

1

3

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

123456789

= Г 00 00 10 11 00 - 11 00 -----01---------

Следующим значением матрицы № является

1, 2

№'

123456789

00 00 10 11 00 - 11 00 -

01 01

1, 2

3, 4

3

Продолжая этот процесс, получим следующую последовательность значений матрицы №':

123456789 W'=T 00 00 10 11 00 - 11 00 111 1, 2, 6 ----01--01--3,4

W '=

123456789 00 00 10 11 00 00 11 00 11 01 01 10

W '=

W '=

123456789 00 00 10 11 00 00 11 00 11 1, 2, 6,8

01 01

3, 4

123456789 00 00 10 11 00 00 11 00 11 01 11 01 10

1, 2, 6, 8 3, 4, 5, 7

1, 2,6, 8 3,4, 5

В последней матрице совместимы группы столбцов: {3}, {1, 2, 5}, {6, 8}, {4, 7, 9}. После совмещения этих столбцов получим матрицу Н:

12 3 4 Н = Г10 00 00 111 1 .

01 11 01 10 ] 2

Присвоив код 0 первой строке этой матрицы и код 1 второй строке, получим функцию V = д1(ж1,ж4,ж5) и, присвоив коды 00, 01, 10 и 11 соответственно столбцам 1, 2, 3 и 4, получим функцию ю = д2(ж2,ж3,ж4,х5), задаваемые следующими матрицами:

Ui

Ж1 x4 X5 v

0 0 0 1 0 1

0 1 0 2 0 2

0 0 1 3 1 3

0 1 1 4; Vi = 1 iS 4;

1 0 0 5 1 5

1 0 1 6 0 6

1 1 0 7 1 7

1 1 1 8 0 8

X2 X3 x4 X5 w1 W2

0 0 0 - 1 0 1 1

0 0 1 - 2 0 1 2

0 1 0 - 3 0 0 3

0 1 1 4 1 1 4

1 0 1 0 5; V = 0 1 5

1 0 1 1 6 1 0 6

1 1 0 — 7 1 1 7

1 1 1 — 8 1 0 8

1 0 0 - 9 1 1 9

Искомая функция h(gi, g2) = h(v, w) представится следующими матрицами:

U

v w1 W2 У1 У2

0 0 0 1 1 0 1

0 0 1 2 0 0 2

0 1 0 3 0 0 3

0 1 1 4; V = 1 1 4

1 0 0 5 0 1 5

1 0 1 6 1 0 6

1 1 0 7 0 1 7

1 1 1 8 1 0 8

1.

2.

3.

ЛИТЕРАТУРА

Perkowski M. A., Grygiel S. A Survey of Literature on Functional Decomposition. Version IV (Technical Report). Portland, USA: Portland State University, Department of Electrical Engineering, 1995. 188 p.

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

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

Закревский А. Д. Логический синтез каскадных схем. М.: Наука, 1981. 414с.

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