Статья: Модификация матричного метода разрезания графа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Модификация матричного метода разрезания графа

А.С. Шандриков

Техническое проектирование радиоэлектронных средств (РЭС) предполагает в первую очередь решение задачи компоновки модулей в определённые конструктивные единицы. Для решения данной задачи используется математическая модель в виде графа G = (X, U), которым заменяется принципиальная электрическая схема проектируемого РЭС. Множество вершин X обозначает радиоэлектронные компоненты (РЭК) проектируемого изделия, а множество рёбер U - связи между ними в соответствии с принципиальной электрической схемой. Компоновка, т.е. распределение РЭК по определённым конструктивным электронным модулям, моделируется разрезанием графа на куски с заданным количеством вершин в каждом из них. Для оценки качества решения задачи разрезания графа используются такие количественные показатели, как минимум внешних связей между кусками K (K = min K) или максимум коэффициента разрезания ?G, вычисляемого по формуле

?G = /K (1)

где - суммарное количество внутренних рёбер графа, связывающих вершины внутри кусков.

Разрезание графов осуществляется различными методами, чаще всего последовательными и итерационными.

Последовательные методы легко реализуются на ЭВМ, отличаются простотой и высокой производительностью, но в большинстве случаев не обеспечивают оптимальных результатов [1, с. 61].

Итерационные методы позволяют получить более приемлемые с точки зрения критерия (1) результатов, однако полученные результаты также не всегда оптимальны.

Среди итерационных методов наибольшей эффективностью обладает матричный метод [2, с. 62-70]. Суть матричного метода разрезания графа заключается в следующем. Любой граф можно подробно описать матрицей инцидентности I, матрицей цепей T и матрицей смежности R. Из этого следует, что разрезание графа G на k кусков G1, G2,…, Gk эквивалентно делению матрицы на клетки. В случае матрицы смежности R разрезание графа соответствует разрезанию матрицы на k2 клеток (подматриц) как показано на рис. 1.

Рис. 1. Разрезание матрицы смежности, соответствующее разрезанию графа на три куска

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

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

Применяемый на практике матричный метод разрезания графа G на k кусков выполняется следующим образом. Задаётся стандартная матрица F = fij||n, которая разделяется на k2 подматриц. При этом по главной диагонали располагают k единичных подматриц. Порядок единичных подматриц определяется количеством вершин, заданным для каждого куска. Недиагональные подматрицы заполняются нулями. В матрице смежности R по главной диагонали выделяются подматрицы в соответствии с делением стандартной матрицы F. После этого строится первая вспомогательная матрица M = mijn, где i, j J = {1, 2, …, n}, представляющая собой результат умножения матриц F и R:

M = F R (2)

Элементы матрицы M вычисляются по формулам:

mij = , mji = (3)

Далее осуществляется построение матрицы (инверсии матрицы F), в которой каждый единичный элемент матрицы F заменяется на нулевой и наоборот. Как результат поэлементного перемножения матриц F и R вычисляется вторая вспомогательная матрица B:

B = F R (4)

По формулам

pij = mij - bij; pij = mij - bij (5)

ij = pij + pji - (pii + pjj) (6)

вычисляются элементы третьей вспомогательной матрицы P и перестановочной матрицы H соответственно. В перестановочной матрице H выбирается максимальный положительный элемент ij и соответствующие ему элементы xi и xj меняются местами, т.е. производится перестановка вершин xi и xj графа из одного куска в другой.

Несмотря на свою эффективность, матричный метод не получил широкого применения и практически не используется. Это объясняется тем, что кроме матрицы смежности исходного графа G необходимо построить шесть вспомогательных матриц. Таким образом, в течение одной итерации обрабатываются семь матриц. Количество итераций зависит от чередования строк и столбцов в начальной матрице смежности R и может быть неопределённо большим. Необходимость обработки больших числовых массивов, насчитывающих в сумме 7n2 элементов, где n - количество вершин разрезаемого графа, накладывает существенные ограничения на номенклатуру проектируемых изделий по такому параметру, как количество РЭК, распределяемых по электронным модулям, а также на производительность процесса.

Есть и ещё один существенный недостаток матричного метода разрезания графа. Как показывает практика, оптимальный результат обеспечивается только:

- при разрезании графа на одинаковые по количеству вершин куски;

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

Отмеченные недостатки можно устранить, если матричное разрезание графа G выполнять с использованием чисел связности. Число связности - это параметр, характерный для любой вершины xk разрезанного на куски Gi, Gj, …, Gl графа G и в физическом смысле представляет собой разность между количеством внешних б(xi) и внутренних z(xi) связей.

Логика применения чисел связности для парной перестановки вершин из одного куска в другой с целью минимизации внешних связей описана в [1, с. 78-87] и заключается в следующем. Предположим, что некоторый граф G разрезан на два куска G1 = (X1, U1) и G2 = (X2, U2). Вершина xi X1 содержит z(xi) внутренних связей и б(xi) - внешних. Число связности определяется по формуле

радиоэлектронный компоновка модуль граф

д(xi) = б(xi) - z(xi) (7)

Если д(xi) > 0, то это означает, что перемещение вершины xi из куска G1 в кусок G2 уменьшит количество внешних связей на величину д(xi). Если в куске G2 также имеется вершина xj X2, для которой д(xj) ? 0, то её перемещение из куска G2 в кусок G1 ещё уменьшит количество внешних связей на величину д(xj). В результате парного перемещения вершин xi и xj из одного куска в другой количество внешних связей K между кусками G1 и G2 уменьшится на величину

ДK = д(xi) + д(xj) - 2uij, (8)

где 2uij - количество рёбер, соединяющих перемещаемые вершины xi и xj между собой.

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

На рис. 2 представлен граф G = (X, U), содержащий 14 вершин и 21 соединительное ребро. Данный граф требуется разрезать на четыре куска, содержащие 3, 3, 4 и 4 вершин соответственно без каких-либо технологических ограничений.

Рис. 2

Решение данной задачи осуществляется в следующей последовательности.

1. Построить матрицу смежности, выделив в ней по главной диагонали две подматрицы 3-го и две подматрицы 4-го порядка в соответствии с заданным разрезанием графа.

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

3. По числам связности построить матрицу перестановочных коэффициентов ДK, элементы Дkij которой вычисляются по формуле (8).

4. Построить множество двухэлементных подмножеств, каждое из которых содержит пару вершин с положительным перестановочным коэффициентом:

T = {{x1, x9}, {x1, x12}, {x2, x8}, {x2, x14}, {x3, x8}, {x3, x11}, {x3, x12},

{x3, x13}, {x3, x14}, {x4, x8}, {x4, x11}, {x4, x12}, {x4, x13}, {x4, x14},

{x5, x11}, {x5, x12}, {x5, x14}, {x6, x11}, {x6, x13}, {x6, x14}, {x7, x11},

{x7, x14}, {x8, x12}, {x8, x13}, {x8, x14}, {x9, x11}, {x9, x12}, {x9, x13},

{x9, x14}, {x10, x12}, {x10, x13}, {x10, x14}} (11)

5. Из множества (11) сформировать возможные варианты множеств, содержащих двухэлементные непересекающиеся подмножества, т.е. подмножества не связанных между собой пар вершин. Таких вариантов для рассматриваемого графа оказалось 85. Учитывая ограниченность объёма, в статье приводятся только некоторые из полученных вариантов:

A1 = {{x1, x9}, {x4, x11}, {x5, x12}};

A2 = {{x1, x9}, {x4, x11}, {x6, x13}};

A3 = {{x1, x9}, {x4, x12}, {x10, x13}};

…;

A40 = {{x3, x12}, {x8, x11}};

…;

A85 = {{x9, x13}, {x10, x12}}.

6. Для каждого полученного множества подсчитать сумму перестановочных коэффициентов входящих в него пар вершин:

S1 = Дk19 + Дk411 + Дk512 = 2 + 1 + 1 = 4;

S2 = Дk19 + Дk411 + Дk613 = 2 + 1 + 1 = 4;

S3 = Дk19 + Дk412 + Дk1013 = 2 + 3 + 3 = 8;

…;

S40 = Дk312 + Дk811 = 2 + 3 = 5;

…;

S85 = Дk913 + Дk1012 = 1 + 1 = 2.

7. Выбрать множество, имеющее максимальную сумму перестановочных коэффициентов. Если данному условию удовлетворяют несколько множеств, то выбрать следует то, у которого сумма локальных степеней вершин, составляющих двухэлементные подмножества, минимальна. Это позволяет уменьшить количество последующих итераций. В описываемом примере среди всех (85) полученных вариантов имеется только одно множество с максимальной суммой перестановочных коэффициентов входящих в него пар вершин. Это множество A3, для которого сумма перестановочных коэффициентов S3 = 8 = max.

8. Переставить в матрице смежности R попарно x1 и x9, x4 и x12, x10 и x13 строки и столбцы. В результате будет получена матрица смежности R1, изоморфная исходной матрице смежности R:

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

10. Используя формулу (8), построить матрицу перестановочных коэффициентов ДK1:

11. Из элементов полученной матрицы может быть образовано только два двухэлементных множества, состоящих из пары вершин с положительным перестановочным коэффициентом, причём эти множества пересекающиеся, т.к. в состав каждого из них входит вершина x2. По этой причине для перестановки может быть выбрано только одна пара вершин: x2 и x12 или x2 и x5. Так как перестановочные коэффициенты этих пар одинаковы (Дk212 = Дk25 = 1), то для перестановки выбираем ту пару вершин, у которой сумма локальных степеней меньше. Этому условию удовлетворяет пара вершин x2 и x5 (с(x5) = 2 < с(x12) = 3).

Переставить в матрице смежности R1 x2 и x5 строки и столбцы. Получим матрицу смежности R2.

12. Построить матрицу перестановочных коэффициентов ДK2:

13. В полученной матрице ДK2 нет ни одного положительного перестановочного коэффициента. Это означает, что после второй итерации в текущем варианте разрезания графа нет ни одной пары вершин, перестановка которых из одного куска в другой могла бы уменьшить количество внешних связей и куски G1 = (X1, U1), G1 = (X2, U2), G3 = (X3, U3) и G4 = (X4, U4) следует считать сформированными, где X1 = {x3, x5, x9}; X2 = {x2, x6, x12}; X3 = {x1, x7, x8, x13}и X4 = {x4, x10, x11, x14}. Графическая иллюстрация полученного разрезания представлена на рис. 3.

Рис. 3

Литература

1. Морозов К.К., Мелихов А.Н., Бернштейн Л.С. Методы разбиения схем РЭА на конструктивно законченные части. - М.: Сов. радио, 1978.

2. Мелихов А.Н., Бернштейн Л.С., Курейчик В.М. Применение графов для проектирования дискретных устройств. - М.: Наука, 1974.