Задача: используя последовательный алгоритм распределения элементов выделить в графе G(X,U) три подграфа по три вершины в каждом, таким образом, чтобы общее число связей между подграфами было минимальным.
Исходные данные: граф G, разбитый произвольным образом на три подграфа G1, G2, G3. Каждый подграф содержит по три вершины.
На основе графа G сформируем матрицу смежности:
A(i,j) =
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
p
Расчёты производятся по следующим формулам:
δ(xi)=p(xi)-2Σaij, где δ(xi) – относительный вес вершины, равный приращению числа внешних рёбер формируемого подграфа, p(xi) – локальная степень вершины, aij – элемент A(I,j), где xj – вершины ранее включённые в G1.
Ход решения:
1) Выбираем вершину с минимальной степенью: p {x2, x5, x7, x8, x9} =2; поскольку кратные рёбра в данном графе отсутствуют, произвольно берём в качестве первого элемента подграфа G1 вершину x2: X(G1)={x2}.
6) Находим смежные вершины G2: ГG2 = {x3, x9}, δ(x3) = 0, δ(x9) = 0. Предпочтение отдадим вершине в минимальной p. p(x9) < p(x3), добавим вершину x9 в подграф G2.
На этом формирование G2 закончено.
Имеем: X(G1) = {x6, x7, x9}.
7) В третий подграф G3 войдут все оставшиеся вершины:
Имеем: X(G2) = {x1, x3, x8}.
Число межмодульных связей: 6
при этом подграфы G1 и G2 не имеют непосредственных связей друг с другом.
1.2. Итерационный алгоритм декомпозиции
1. Задача: путём взаимной перестановки вершин, находящихся в разных подграфах G(X,U) добиться такого их распределения, чтобы общее число связей между подграфами было минимальным.
2. Исходные данные: граф G, разбитый произвольным образом на три подграфа G1, G2, G3. Каждый подграф содержит по три вершины.
A(i,j) =
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
Расчёты производятся по следующим формулам:
Δrgh = (Σagi - Σagj) + (Σahi – Σahj) – 2agh, где
Δrgh – приращение числа рёбер при парном обмене вершин xg X Xa и xh X Xb,
Σagi и Σagj – число рёбер соединяющих вершину g со смежными вершинами, входящими в Xa и X\Xa соответственно.
Σahi и Σahj – число рёбер соединяющих вершину h со смежными вершинами, входящими в Xb и X\Xb соответственно.
agh – число рёбер, соединяющих вершины g и h.
Ход решения:
Для каждой g-ой строки матрицы A(I,j) подсчитаем (Σagi - Σagj) и запишем результат справа от матрицы.
Строим вторую матрицу той же размерности. В каждую её ячейку запишем значений приращения числа рёбер между подматрицами Δrgh при перестановке g-ой и h-ой вершин.
В полученной матрице приращений находим элемент с максимальным значением, которое характеризует на сколько уменьшится количество внешних связей между подграфами при перестановке вершин, отвечающих данным строке и столбцу.
X1
X2
X3
X1
X2
X3
X4
X5
X6
X7
X8
X9
1_2
1_3
2_3
X1
-
X2
-
X3
-
X4
-
X5
-
X6
-
X7
-
X8
-
-1
X9
-
-1
X1
X2
X3
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
-2
-1
X2
3
-1
X3
3
-1
-1
X4
-1
X5
-1
X6
X7
X8
X9
На первом шаге в матрице приращений имеются два максимальных значения, которые соответствуют двум возможным перестановкам: (2, 4) и (3, 5), каждая из которых уменьшит количество внешних рёбер на три.
X1
X2
X3
X1
X4
X3
X2
X5
X6
X7
X8
X9
1_2
1_3
2_3
X1
-1
-1
-
X4
-1
-2
-
X3
-1
-1
-
X2
-
-1
X5
-
-1
X6
-
X7
-
X8
-
-1
X9
-
-1
X1
X2
X3
X1
X4
X3
X2
X5
X6
X7
X8
X9
X1
-1
-3
-3
-2
X4
-3
-1
-1
-2
-3
X3
-1
-1
-2
-2
-1
-2
X2
-2
-1
X5
-2
-1
X6
1
1
X7
X8
X9
Произведём перестановку строк и столбцов соответствующих вершинам 2 и 4.
На втором шаге в матрице приращений имеются два максимальных значения, которые соответствуют двум возможным перестановкам: (6, 7) и (6, 8), каждая из которых уменьшит количество внешних рёбер на единицу.
Произведём перестановку строк и столбцов соответствующих вершинам 6 и 7.
На третьем шаге матрица приращений не содержит положительных значений, следовательно, ни одна из последующих перестановок не приведёт к уменьшению число внешних рёбер.
X1
X2
X3
X1
X4
X3
X2
X5
X6
X7
X8
X9
1_2
1_3
2_3
X1
-1
-1
-
X4
-1
-2
-
X3
-1
-1
-
X2
-
-1
X5
-
-1
X6
-
X7
-
X8
-
-1
X9
-
-1
X1
X2
X3
X1
X4
X3
X2
X5
X6
X7
X8
X9
X1
-1
-3
-3
-3
X4
-3
-1
-1
-2
-4
X3
-1
-1
-2
-2
-1
-3
X2
-1
-2
-3
X5
-1
-2
-3
X6
-1
-1
X7
X8
X9
Всего произведено две перестановки: (2, 4) и(6, 7).
Приведём полученный граф:
Применение алгоритма декомпозиции путём перестановки позволило сократить количество внешних рёбер с 10 до 6. Получили тот же результат, что и методом последовательной декомпозиции, однако в первом случае распределение связей более оптимально.