Так как в матрице ∆R11 все перестановочные коэффициенты отрицательны или равны нулю, то переставлять вершины первой части с вершинами других частей нецелесообразно. Для определения возможности переставлять вершины вычисляем матрицу ∆R2 размерности N2*(N3+…Nn)=N2*N3. В нашем случае
т.е. ∆R(v4,v7)=3, и переставляем вершины v4 и v7 .
|
v2
|
v4 |
v8 |
v9 |
-4 |
-4 |
-3 |
v7 |
-3 |
-3 |
-4 |
v5 |
-4 |
-4 |
-3 |
∆R2 =
Разбиение графа в результате второй итерации приведено на рис. 1.3в, а матрица смежности имеет вид
|
v1 |
v6 |
v3 |
v7 |
v5 |
v2 |
v4 |
v8 |
v1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
v6 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
v3 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
v4 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
v5 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
v2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
v7 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
v8 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
S2 =
Значение критерия после двух перестановок (Q=2) показывает, что три части графа соединены лишь двумя ребрами. При этом части I и 2 не имеют связей вообще.
На третье итерации ∆R21 имеет вид
|
v2
|
v4 |
v8 |
v9 |
-4 |
-4 |
-3 |
v7 |
-3 |
-3 |
-4 |
v5 |
-4 |
-4 |
-3 |
∆R21 =
Так как все элементы матрицы ∆R2 1 отрицательны, то других матриц ∆R строить не требуется. На этом решение задачи разбиения графа на 3 части, заканчивается.
Отметим, что при расчете перестановочных коэффициентов rij значения одних и тех же чисел связности типа ∆Sqp(vi) используются для вычисления нескольких значений rij . Так, в рассмотренном примере для вычисления r13, r14, а также r15, используется предварительно рассчитанное значение ∆S21(v1). Это служит основой другой модификации итерационного алгоритма, в соответствии с которым вначале вычисляются числа связности всех вершин. Для рассматриваемого примера результаты вычислений удобно представить о виде следующей таблицы:
v1 v2 |
v3 v4 v5 |
v6 v7 v9 |
|
∆S12(v3) ∆S21(v1) ∆S21(v5) |
∆S13(v6) ∆S13(v7) ∆S13(v8) |
∆S21(v1) ∆S21(v1) |
|
∆S23(v6) ∆S23(v7) ∆S23(v8) |
∆S31(v1) ∆S31(v2) |
∆S32(v3) ∆S32(v4) ∆S32(v5) |
|
Используя ту же самую методику подсчета ∆Sqp(vi) получим следующее значение чисел связности:
v1 v2 |
v3 v4 v5 |
v6 v7 v9 |
|
-1 +1 -1 |
+1 -1 0 |
0 +1 |
|
+1 +1 0 |
+1 +1 |
0 +2 0 |
|
Анализ этой таблицы показывает, что положительные значения перестановочных коэффициентов rij могут быть получены при перестановках вершин 1 - в часть 3, вершины 2 - в части 2 и 3, вершины 4 - в части 1 и 3, вершины 6 - в части 1 и 2, вершины 7- в часть 2, для которых значения ∆Sqp(vi) >0 .
Так как при перестановках вершины меняются местами, то наибольшее значение rij следует ожидать при перестановке вершины 4 из частя 2 в часть 3, т.е. ее замену на вершину 6 или 7 принадлежащая части З. При этом
∆S32(v4)+ ∆S23(v6)=2+1=3
и
∆S12(v4)+ ∆S23(v6)=2+1=3
Однако вершины 4 и 6 смежны (S46=1), а вершины 4 и 7 несмежны (S47=0), поэтому более эффективна, что подтверждается расчётом перестановочных коэффициентов по формуле (1.9):
r46=2+1-2∙1=1; r47=2∙1-2∙0=3
Следовательно, вершину 4 переносим в часть 3, а вершину 7- в часть 2. Матрица смежности после первой итерации имеет следующий вид:
|
v1 |
v2 |
v3 |
v4 |
v5 |
v6 |
v7 |
v8 |
v1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
v2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
V3 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
v7 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
v5 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
v6 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
v4 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
v8 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
Таким обрезом, после первой итерации значение критерия оптимальности стало Q=4 , сразу уменьшившись на 3. На второй итерации в результате расчета чисел связности получим таблицу
v1 v2 |
v3 v7 v5 |
v6 v7 v8 |
|
-2 -2 -2 |
0 -1 0 |
0 0 |
|
-1 -2 0 |
+1 +2 |
-2 -1 -2 |
|
Она показывает, что наиболее эффективна перестановка вершин 1 или 2 из части 1в часть 3: ∆S31(v1)=+1; ∆S31(v2)=+2. При этом из части 3 в часть 1 можно переставить лишь вершину 6 или 8 (∆S13(v4)=0 и ∆S13(v8)=0). Подсчет перестановочных коэффициентов по формуле(1.9) дает
r16=1+0-2∙1=-1;
r18=1+0-2∙0=+1;
r26=2+0-2∙0=+2;
r28=2+0-2∙1=0;
Следовательно, надо поменять местами вершины 2 и 6. Матрица смежности примет вид
|
v1 |
v6 |
v3 |
v7 |
v5 |
v2 |
v4 |
v8 |
v1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
v6 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
v3 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
v7 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
v5 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
v2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
v4 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
v8 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
Суммируя ненулевые элементы недиагональных подматриц, получим значение критерия Q=0+1+1=2. Вновь рассчитав числа связности будем иметь таблицу
v1 v2 |
v3 v4 v5 |
v6 v7 v8 |
|
-2 -2 -2 |
-2 -1 -2 |
-1 -1 |
|
-2 -2 -1 |
-1 0 |
-2 -1 -2 |
|
которая не содержит положительных значений. Следовательно, никакой перестановки вершин не будет соответствовать положительный перестановочный коэффициент. Это означает, что никакая перестановка не приведет к уменьшению числа внешних связей кусков графа, поэтому решение задачи заканчиваем.
Полученный результат (см. рис. 1.3в) совпадает с решением, которое было найдено ранее (тоже за две итерации), но другим методом и с другими промежуточными результатами.
При разработке программы решения задачи компоновки итерационным алгоритмом удобно перестановочные коэффициенты рассчитывать следующим образом.
-
Вводится стандартная матрица F=||fij||m*m, в которой по главной части диагонали располагаются единичные подматрицы размерностями N1*N1,N2*N2,…Nn*Nn. Для нашего примера
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
-
Рассчитывается матрица A=||aij||m*m как результат умножения матриц A=F*S, т.е..
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
2 |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
1 |
3 |
0 |
1 |
1 |
0 |
1 |
1 |
2 |
1 |
4 |
0 |
1 |
1 |
0 |
1 |
1 |
2 |
1 |
5 |
0 |
1 |
1 |
0 |
1 |
1 |
2 |
1 |
6 |
1 |
1 |
1 |
2 |
1 |
0 |
1 |
1 |
7 |
1 |
1 |
1 |
2 |
1 |
0 |
1 |
1 |
8 |
1 |
1 |
1 |
2 |
1 |
0 |
1 |
1 |
A=
-
Образуется матрица -инверсия матрицы F;
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
4 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
5 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
6 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
7 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
и рассчитывается матрица как поэлементное перемножение матриц и S , т.е. wij=fij∙Sij. • Для рассматриваемого примера