Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы конструирования.doc
Скачиваний:
296
Добавлен:
16.04.2013
Размер:
9.26 Mб
Скачать

Итерационный алгоритм разбиения гиперграфа

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

Задана электрическая схема в виде гиперграфа G = (Z T), ||tif||NxM.

Задано предварительное разбиение гиперграфа на два подмножества X1 и Х\Х1.

Требуется:

Улучшить показатель разбиения (уменьшить число связей между указанными подмножествами) при обмене пары модулей между подмножествами.

Решение.

На каждом шаге алгоритма выбирается такая пара вершин xj X|X1 и xi X1 гиперграфа, взаимная перестановка которых приводит к уменьшению целевой функции К (число связей между двумя подграфами).

Для вершин xj X\X1 введем определенную ранее оценку изменения числа связей при переносе отдельной вершины из X\X1 в Х1

{ δgsf

{ δgsf

{ δgsf

{ δgsf

Kj = jf * (g'f – pf), где g'f = 1 , если tf T{X\(X\xj) }

0

Такую же оценку используем для вершин xi X1 при переносе их в подмножество X\X1

{ δgsf

Ki = jf*(p'f – gf), где p'f = 1 , если tf T{X1\xi}

0

Напомним, что K

{ δgsf

{ δgsf

{ δgsf

{ δgsf

{ δgsf

{ δgsf

{ δgsf

{ δgsf

= pf*gf , f = 1,M

1, если tf T((X1) 1, если tf T(X\X1)

pf = gf =

0 0

Число связей между X1 и X\X1 можно определить с помощью выражения

Kij = ifjf

(ifjf = 1, если tf T(xi xj), xi X1 и xj X\X1.

Существует доказательство, что взаимная перестановка модулей xi и xj приводит к уменьшению величины Kij только в том случае, если

Kij = (∆Ki + Kj) < 0. (*)

Т.к. уравнение (*) определяет изменение количества связей, то для перестановки следует выбирать ту пару вершин xi и xj, для которой Kij принимает наибольшее отрицательное значение.

З а д а ч а т и п и з а ц и и

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

Поэтому задача проектирования типовых узлов и сокращение их типов (номенклатуры) является задачей весьма актуальной.

Типизация – это разбиение ЭСх на блоки по критерию оптимальности - минимуму номенклатуры частей разбиения, или по критерию оптимальности - максимуму однотипности используемых ячеек.

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

Тем не менее, при разработке схем на основе базовых матричных кристаллов (БМК), или на основе программируемых логических матриц (ПЛМ) эта задача представляет определенный интерес, т.к. разработчик может нарабатывать свои стандартные схемы и блоки определенного функционального назначения.

Заметим что проектирование новых типовых узлов имеет смысл проводить только в тех случаях, если их применение:

- увеличивает логическую плотность схемы,

- повышает коэффициент применяемости нового узла,

- доказана расчетом экономическая эффективность проведения типизации.

Сформулируем задачу типизации.

Исходные данные:

Задан граф схемы – или мультиграф G = (X V), R = ||rij||NxN,

- или гиперграф схемы G = (Z T), = ||if||NxM.

Для каждого модуля схемы определен его тип – функциональные возможности и число выводов - Тр, р=1,м; м – число типов модулей в схеме.

Требуется:

Множество всех модулей |X|=N схемы объединить в подмножества однотипных узлов (группы разбиения) Гр и выполнить следующие условия:

- любые два подграфа Gg и Gs, принадлежащие любой произвольной группе разбиения Гр (конструктивно однотипные узлы), должны быть изоморфны

{(Gg,Gs) Гр} s g,

- множества вершин двух любых подграфов не должны пересекаться

XgXs = ,

- число вершин любого подграфа Gg не должно превышать заданной величины Kgдоп , а число внешних связей блока Gg должно Kg = fg min, fg = 1, если цепь tf для блока внешняя.

Допустим, что после к.-л. объединения модулей получен узел Gg. Элементный состав узла можно характеризовать вектор-строкой

Ag = {ag1, ag2, ….agp,…agm) ,

где agp число элементов типа Тр в узле Gg. Некоторые элементы вектора могут быть равны нулю.

Матрица состава блоков выглядит следующим образом

T1 T2 T3 …… Tp ….Tm

G1 0 2 4 0 2

G2 2 3 1 1 1 Всего блоковW.

. В частности, блоки G1 и Gw

A= Gg agp одинаковы по составу.

.

.

Gw 2 3 1 1 1

Общее число модулей разных типов в узле Gg - |Xg|= agp.

Общее число элементов типа Tp в схеме равно - |Tp| = agp.

Сформулируем алгоритм типизации.

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

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

П1. Выделение в исходной схеме:

- равноинвариантных вершин (тип разбиения модуля и его локальная степень),

- объединение указанных вершин в группы,

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

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

П4. Построение на основе групп, полученных в П3, групп изоморфных подграфов, каждая из которых состоит из двух вершин (модулей).

П5. Формирование нового вида заданной электрической схемы, которая образована из сформированных двух вершин (этот модуль имеет свое имя) и из вершин, не вошедших в полученное формирование.

Этот массив является исходным для дальнейшего наращивания изоморфных подграфов каждой новой группы. Возврат к П1.

П6. Повторение цикла.