Итерационный алгоритм размещения с использованием групповой перестановки

Итерационный алгоритм используется для оптимизации первоначального произвольного или полученного другим методом размещения графа с целью уменьшения суммарной длины связей. Суть алгоритма в следующем.

Для любой пары вершин xi и xj, занимающих до перестановки текущие позиции рi и рj соответственно, по матрице смежности R и матрице расстояний D можно подсчитать суммарную длину их связей .

(5.18)

где и – суммарная длина связей вершин xi и xj до перестановки;

– длина связей между вершинами xi и xj;

n – количество вершин графа.

Если выполнить перестановку пары вершин xi и xj, то вершина xi переместится в позицию рj, а вершина xj – в позицию рi. В этом случае суммарная длина их связей

(5.19)

 

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

Пример 5.3. На рис. 5.6. представлен граф G = (X, U), содержащий шесть вершин, размещённых в решётке Gr = 3 × 2. Вершины x1, x2, …, xi, …, x6 занимают позиции p1, p2, …, pi, …, p6 соответственно.

 

Рис. 5.6

 

1) Матрица смежности данного графа

 

R=   x1 x2 x3 x4 x5 x6 (5.20)
x1
x2
x3
x4
x5
x6

 

 

2) Матрица расстояний для решётки заданной размерности

 

D=   p1 p2 p3 p4 p5 p6 (5.21)
p1
p2
p3
p4
p5
p6

 

3) Определим перестановочный коэффициент для вершин, x3 и x5:

а) суммарная длина связей вершины x3 до перестановки:

 

(5.22)

 

 

б) суммарная длина связей вершины x5 до перестановки:

 

(5.23)

 

 

в) суммарная длина связей вершин x3 и x5 до перестановки:

 

(5.24)

 

 

г) после перестановки вершина x3 переместится в позицию p5, а вершина x5 – в позицию p3 (рис. 5.7).

 

 

Рис. 5.7

 

г) суммарная длина связей вершины x3 после перестановки:

 

д) суммарная длина связей вершины x5 после перестановки:

 

е) суммарная длина связей вершин x3 и x5 после перестановки:

 

Изменение суммарной длины связей вершин pi и pj определяется по формуле

(5.20)

Отрицательное значение означает уменьшение суммарной длины связей.

Работа алгоритма производится циклически. В течение одного цикла:

1) по формуле (5.20) вычисляются величины приращений суммарной длины связей для всех возможных парных перестановок и строится матрица приращений;

2) из множества пар вершин, перестановка которых даст отрицательные приращения суммарной длины связей, выделяется некоторое подмножество, которое должно удовлетворять следующим условиям:

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

б) любая вершина может менять свою позицию только один раз;

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

Несоблюдение условий б) и в) (особенно в)) может ухудшить результат размещения по сравнению с первоначальным на любой итерации.

Алгоритм реализации описанного метода содержит следующие шаги:

Шаг 1. Построить матрицу расстояний D=||dij||, исходя из заданных параметров решетки. Перейти на шаг 2.

Шаг 2. Построить матрицу смежности R=||rij|| графа G=(P,U). Перейти на шаг 3.

Шаг 3. Вычислить матрицу приращений ΔL=||Δlij||n по формуле (5.20). Перейти на шаг 4.

Шаг 4. Проверить наличие в матрице приращений отрицательных элементов. Если отрицательные элементы обнаружены, то перейти на шаг 5, в противном случае – на шаг 7.

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

Шаг 6. Переставить в матрице смежности R строки и столбцы, соответствующие выбранным вершинам подмножеств. Перейти на шаг 3.

Шаг 7. Вывод результатов размещения. Перейти на шаг 8.

Шаг 8. Конец работы алгоритма.

 

Работу алгоритма рассмотрим на примере.

Пример 5.3. На рис 5.8 представлено произвольное размещение графа G=(P,U) (рис. 4.10) в решетку Gr=4х3. Вершины p1, p2,…,p12 занимают позиции р1, р2, …, р12 соответственно.

 

    Рис. 5.8  

 

Задание: оптимизировать размещение графа.

 

Решение

1. Построить матрицу расстояний для решетки Gr = 4p3. Такой матрицей является матрица (5.4).

2. Матрице смежности заданного графа соответствует матрица (4.11).

3. Вычислить матрицу приращений суммарной длины связей по формуле (5.20). Матрица приращений имеет вид:

      p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 (5.21)
ΔL = p1 -4 -3 -4 -3 -6 -4
p2   -1 -4 -2 -6 -11
p3     -3 -6 -1 -4 -2
p4       -6 -1
p5       -4 -14 -1
p6         -8 -2 -2
p7             -9 -2
p8              
p9                
p10                  
p11                    
p12                      

 

4. В матрице приращений (4.19) выбрать максимальный отрицательный элемент. Таким элементом является элемент Δl(p5, p7). Вершины p5, и p7 образуют первое подмножество переставляемых вершин. Из всех остальных 25 отрицательных перестановок только элемент Δl(p2, p6) определяет подмножество {p2, p6}, у которого ни одна из вершин не связана ни с вершиной p5, ни с вершиной p5 первого подмножества. Парная перестановка вершин p2 и p6 и вершин p5 и p7 позволит уменьшить суммарную длину связей графа на 16 единиц.

5. Поменять местами p2 и p6 строки и столбцы и p5 и p7 строки и столбцы матрицы смежности. Матрица смежности примет вид

 

      p1 p6 p3 p4 p7 p2 p5 p8 p9 p10 p11 p12 (5.22)
R(1) = p1
p6
p3
p4
p7
p2
p5
p8
p9
p10
p11
p12

 

Размещение графа после выполненных перестановок показано на рис.5.9.

 

Рис. 5.9

 

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

 

      p1 p6 p3 p4 p7 p2 p5 p8 p9 p10 p11 p12  
L(1) = p1 -6  
p6   -3  
p3      
p4        
p7       -1   (5.23)
p2         -4 -1  
p5              
p8                
p9                  
p10                    
p11                      
p12                        

 

7. В матрице приращений (5.23) максимальным отрицательным элементом является элемент Δl(p1, p9), определяющий первое подмножество {p1, p9} переставляемых вершин. Подмножество {p2, p10} единственное из четырёх оставшихся, которое не имеет связей с первым.

 

Размещение графа после выполненных перестановок показано на рис.5.10.

Рис. 5.10

 

8. Поменять местами p1 и p9 строки и столбцы и p2 и p10 строки и столбцы матрицы смежности R(1).

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

      p9 p6 p3 p4 p7 p10 p5 p8 p1 p2 p11 p12 (5.24)
L(2) = p9
p6  
p3    
p4      
p7      
p10        
p5            
p8              
p1                
p2                  
p11                    
p12                      

 

 

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

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

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

В первом случае разобьем множество Х графа G на n классов х1, х2, …, хn и отнесем в них вершины, лежащие в строках решетки внутри области размещения. В каждом классе выделим внутренние и внешние соединительные ребра. Заменим класс pi одной вершиной C1. В результате будет получен линейно расположенный мультиграф.

Факторизация размещенного в решетке графа (рис. 5.8) по строкам представлена на рис. 5.11. Класс P1= {p9, p6, p3, p4} заменим вершиной С1; класс P2= {p7, p10, p5, p8} – вершиной С2; а класс P3= {p1, p2, p11, p12} заменим вершиной С3.

Рис. 5.11

 

Матрица смежности линейного мультиграфа

 

    c1 c2 C3  
c1  
c2 (5.25)
c3  

 

Матрица расстояний

  c1 c2 c3
c1  
c2 (5.26)
c3  

 

Матрица приращений суммарной длины соединений

  c1 c2 c3
c1  
c2   (5.27)
c3      

 

Для факторизации по столбцам множество Х вершин Х графа G разобьём на m=4 классов, и каждый класс заменим вершиной Сi. Соответствие вершин С и классов:

С1: Х1={х9, х7, х1}

С2: Х2={х6, х10, х2}

С3: Х3={х3, х5, х11}

С4: Х4={х4, х8, х12}

Факторизация размещенного в решетке графа (рис. 5.10) по столбцам представлена на рис. 5.12.

Рис. 5.12


Матрица смежности линейного мультиграфа

 

  с1 c2 c3 с4
с1  
c2 (5.28)
c3  
с4  

 

Матрица расстояний графа

 

  с1 с2 c3 с4
с1  
c2 (5.29)
c3  
с4  

 

Матрица приращений суммарной длины соединений

 

  с1 с2 c3 с4
с1 -1 -1  
c2   -1 (5.30)
c3     -1  
с4        

 

В матрице (5.30) четыре элемента имеют одинаковые отрицательные значения: Δl (c1, c2), Δl (c1, c4), Δl (c2, c3), Δl (c3, c4). Выбираем элемент с наименьшим индексом Δl (c1, c2) и меняем местами классы c1 и c2.

Матрица смежности после перестановок c1 и c2 строк и столбцов:

 

  c2 с1 c3 с4
c2  
с1 (5.31)
c3  
с4  

Матрица приращений суммарной длины соединений:

 

  с2 с1 c3 с4
c2  
с1   -6 (5.32)
c3     -1  
с4        

 

По результатам вычислений в матрице приращений следует поменять местами c1 и c4 строки и столбцы. Получим:

  c2 c4 c3 c1
c2  
c4 (5.33)
c3  
c1  

 

Матрица приращений суммарной длины соединений:

 

  c2 c4 c3 c1
c2  
c4   (5.34)
c3      
c1        

 

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

Рис. 5.13

 

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

 

Рис. 5.14