Пример разрезания графа на куски
Итерационным методом с использованием чисел связности
Рассмотрим пример разрезания графа с использованием чисел связности. Для примера с целью сравнения результатов выбран граф G (рис. 4), который использовался для иллюстрации последовательного метода разрезания графов в практической работе № 3.
Рис. 4
Задание
1)Разрезать граф G = (X, U), содержащий 12 вершин (рис. 4) на три куска по четыре вершины в каждом, используя числа связности.
2) Определить коэффициент разрезания.
Решение
1)Составить матрицу смежности R0 графа G.
r1 | r2 | r3 | r4 | r5 | c1 | c2 | vd1 | vd2 | vd3 | vt1 | vs1 | ak, aq | |||
r1 | +1 | ||||||||||||||
r2 | +1 | ||||||||||||||
r3 | +2 | ||||||||||||||
r4 | +2 | ||||||||||||||
r5 | –3 | ||||||||||||||
R0 = | c1 | –3 | (5) | ||||||||||||
c2 | –2 | ||||||||||||||
vd1 | –1 | ||||||||||||||
vd2 | –2 | ||||||||||||||
vd3 | |||||||||||||||
vt1 | –2 | ||||||||||||||
vs1 | –1 | ||||||||||||||
2) Разрезать граф G на два куска G1 и`G1, выделив в матрице смежности R0 подматрицу R(1)0 порядка n1, где n1 – количество элементов, входящих в первый кусок G1. Результат разрезания представлен на рис. 5. Количество внешних связей между кусками K = 6.
Рис. 5
3) Подсчитать числа связности по формуле (3). Числа связности ak и aq указаны в дополнительном столбце матрицы смежности R0.
4) Построить вспомогательную матрицу W0, строки которой определяются вершинами r1, r2, r3 и r4, входящими в первый кусок G1, а столбцы – всеми остальными вершинами графа G (вершинами куска`G1).
r5 | c1 | c2 | vd1 | vd2 | vd3 | vt1 | vs1 | |||
r1 | –2 | –2 | –1 | –2 | –1 | +1 | –1 | |||
W(1) = | r2 | –2 | –2 | –1 | –1 | +1 | –1 | (6) | ||
r3 | –1 | –1 | +1 | +2 | –2 | –3 | ||||
r4 | –1 | –1 | –2 | +1 | +1 | |||||
Элементы вспомогательной матрицы определяются по формуле (4).
В качестве примера рассмотрим вычисление некоторых элементов wkq вспомогательной матрицы (6)
w(r1c2) = a(r1) + a(c2) – 2r(r1c2) = 1 + (–2) – 2 ´ 0 = 1 – 2 = –1
w(r2vd1) = a(r2) + a(vd1) – 2r(r2vd1) = 1 + (–1) – 2 ´ 0 = 1 – 1 = 0
w(r1vd1) = a(r1) + a(vd1) – 2r(r1vd1) = 1 + (–1) – 2 ´ 1 = 1– 1 – 2 = –2
w(r4vs1) = a(r4) + a(vs1) – 2(r4vs1) = 2 + (–1) – 2 ´ 0 = 2 – 1 = +1
5) Выбрать в матрице (6) наибольший положительный элемент wkq. Таким элементом является элемент w(r3vd3) = +2. Следовательно, для минимизации внешних связей необходимо переставить r3 и vd3 строки и столбцы в матрице смежности R0. В результате такой перестановки количество внешних связей между кусками G1 и G1 должно уменьшиться на два и составит K = 4. Выполненная перестановка r3 и vd3 строк и столбцов означает, что вершина r3 из куска G1 переместилась в кусок `G1, а вершина vd3 – из куска `G1 в кусок G1. Результат перестановки представлен на рис. 6.
Рис. 6
6)Построить матрицу смежности R01, изоморфную матрице R0
r1 | r2 | vd3 | r4 | r5 | c1 | c2 | vd1 | vd2 | r3 | vt1 | vs1 | ak, aq | |||
r1 | +1 | ||||||||||||||
r2 | +1 | ||||||||||||||
vd3 | |||||||||||||||
r4 | +0 | ||||||||||||||
r5 | –3 | ||||||||||||||
R01 = | c1 | –3 | (7) | ||||||||||||
c2 | –2 | ||||||||||||||
vd1 | –1 | ||||||||||||||
vd2 | –2 | ||||||||||||||
r3 | –2 | ||||||||||||||
vt1 | –2 | ||||||||||||||
vs1 | –3 | ||||||||||||||
7) Подсчитать числа связности по формуле (3). Числа связности ak и aq указаны в дополнительном столбце матрицы смежности R01.
8)Построить вспомогательную матрицу W01, строки которой определяются вершинами, входящими в первый кусок G1 ( r1, r2, vd3, r4), а столбцы – вершинами куска `G1.
r5 | c1 | c2 | vd1 | vd2 | r3 | vt1 | vs1 | |||
r1 | –2 | –2 | –1 | –2 | –1 | –1 | –2 | –2 | ||
W01 = | r2 | –2 | –2 | –1 | –1 | –1 | –2 | –4 | (8) | |
vd3 | –3 | –3 | –2 | –1 | –2 | –2 | –5 | –3 | ||
r4 | –3 | –3 | –4 | –1 | –2 | –2 | –3 | –3 | ||
9) Во вспомогательной матрице W01 отсутствуют какие-либо положительные элементы. Это означает, что на данном этапе разрезания графа G отсутствует пара вершин, перестановка которых уменьшит количество внешних связей K между кусками G1 и `G1. Следовательно, кусок G1 = (X1, U1) считается сформированным, где X1 = {r1, r2, vd3, r4}.
10) Удалить из графа G кусок G1. В результате будет получен граф G*, представленный на рис. 7.
Рис. 7
11) Составить матрицу смежности R1 графа G*.
r5 | c1 | c2 | vd1 | vd2 | r3 | vt1 | vs1 | ak, aq | |||
r5 | +1 | ||||||||||
c1 | +1 | ||||||||||
c2 | –1 | ||||||||||
R1 = | vd1 | +2 | (9) | ||||||||
vd2 | +2 | ||||||||||
r3 | –2 | ||||||||||
vt1 | +1 | ||||||||||
vs1 | +2 | ||||||||||
12) Разрезать граф G* на два куска G2 и`G2, выделив в матрице смежности R1 подматрицу R(1)1 порядка n2, где n2 — количество элементов, входящих во второй формируемый кусок G2. Результат разрезания графа представлен на рис. 8. Количество внешних связей между кусками K = 7.
Рис. 8
13) По формуле (3) подсчитать числа связности. Числа связности ak и aq указаны в дополнительном столбце матрицы смежности R1.
14) Построить вспомогательную матрицу W1, строки которой определяются вершинами r5, c1, c2 и vd1, входящими во второй формируемый кусок G2, а столбцы – всеми остальными вершинами, входящими в кусок `G2.
vd2 | r3 | vt1 | vs1 | |||
r5 | +3 | –1 | +2 | –1 | ||
W1 = | c1 | +1 | –1 | +3 | (10) | |
c2 | +1 | –3 | +1 | |||
vd1 | +2 | +1 | +4 | |||
15) Выбрать в матрице (10) наибольший положительный элемент wkq. Таким элементом является элемент w(vd1vs1) = +4. Это означает, что переместив вершину vd1 из куска G2 в кусок`G2, а вершину vs1 из куска`G2 в кусок G2, количество внешних связей K между кусками G2 и`G2 уменьшится на 4 и составит K = 3 (рис. 9).
Рис. 9
16) Построить матрицу смежности R11, изоморфную матрице R1.
r5 | c1 | c2 | vs1 | vd2 | r3 | vt1 | vd1 | ak, aq | |||
r5 | –3 | ||||||||||
c1 | +1 | ||||||||||
c2 | –3 | ||||||||||
R11 = | vs1 | –2 | (11) | ||||||||
vd2 | |||||||||||
r3 | |||||||||||
vt1 | –1 | ||||||||||
vd1 | –2 | ||||||||||
17) Построить вспомогательную матрицу W11.
vd2 | r3 | vt1 | vd1 | |||
r5 | –3 | –3 | –4 | –5 | ||
W11 = | c1 | –1 | +1 | –2 | –1 | (12) |
c2 | –3 | –3 | –4 | –5 | ||
vs1 | –2 | –4 | –3 | –4 | ||
18) Выбрать в матрице (12) наибольший положительный элемент wkq. Таким элементом является элемент w(c1r3) = +1, следовательно, вершину c1 необходимо переместить из куска G2 в кусок`G2, а вершину r3 — из куска `G2 в кусок G2. Данная перестановка уменьшит количество внешних связей между кусками на 1. Результат перестановки представлен на рис. 10.
Рис. 10
19)Построить матрицу смежности R12, изоморфную матрице R11.
r5 | r3 | c2 | vs1 | vd2 | c1 | vt1 | vd1 | ak, aq | |||
r5 | –3 | ||||||||||
r3 | |||||||||||
c2 | –1 | ||||||||||
R12 = | vs1 | –4 | (13) | ||||||||
vd2 | |||||||||||
c1 | |||||||||||
vt1 | –1 | ||||||||||
vd1 | –2 | ||||||||||
В дополнительном столбце матрицы смежности R12 нет элементов ak и aq, имеющих положительное значение. Это означает, что и во вспомогательной матрице W12 также не будет ни одного положительного элемента, поэтому процесс формирования куска G2 = (X2, U2) следует считать законченным, где X2 = {r5, r3, c2, vs1}. Оставшиеся четыре вершины vd2, c1, vt1 и vd1 образуют третий кусок G3. Полученное разрезание графа G на три куска G1, G2 и G3 представлено на рис. 11. Коэффициент разрезания рассматриваемого графа D(G) = 10/6 = 1,67.
Рис. 11
Результат разбиения принципиальной электрической схемы изделия на отдельные блоки представлен на рис. 12.
Рис. 12. Распределение радиоэлектронных компонентов по блокам РЭС