Хелпикс

Главная

Контакты

Случайная статья





Решение задачи компоновки конструктивных узлов (продолжение)



Лекция 5

Решение задачи компоновки конструктивных узлов (продолжение)

Алгоритм 3 (последовательный алгоритм компоновки)

Рассмотрим простой формальный последовательный алгоритм разбиения графа G=(E,U)на заданное число кусковG1,G2,…,Gl,максимизирующий число ребер, входящих в выделенные куски и оперирующий с матрицей смежности Rграфа G.

Пусть граф G=(E,U) задан своей матрицей смежности R=||rij||, i,jÎJ=(1,2,…,n). Рассмотрим алгоритм разбиения графа на l кусков G1,G2,…,Gl с заданным количеством вершин в кусках tp (p=1,l).

1. Рассмотрим строку eiматрицы R, соответствующую вершине с максимальной локальной степеньюr(ei)и выбираем в ней наибольший элемент rij, причем i¹j. Вершины ei и ej относим к подмножеству E1ÌE1. Переход к шагу 2.

2. Складываем поэлементно строки и столбцы ei и ej матрицы R. Переход к шагу 3.


 

3. В суммарной строке eij определяем максимальный элемент rij,k, k¹i, k¹j, вершину ek относим к множеству E1. Если |E1|=|E1|, то кусок сформирован. Переход к 4 . Если |E1|<|E1|, то ij принимаем за ik за j, и переход к шагу 2.

4. Удаляем из графа G вершины подмножества E1 со всеми инцидентными им ребрами, т.е. вычеркиваем из матрицы строки и столбцы, соответствующие вершинам из подмножества E1. Полученную матрицу R’ принимаем заR и переходим к 1 шагу.

5. Если в матрице R осталось ровно |El| строк и столбцов, то работа алгоритма закончена.


Пример алгоритма 3


Дан граф G=(E,U) (рис. 5.1).

Необходимо разбить этот граф на 3 куска G1=(E1,U1), G2=(E2,U2), G3=(E3,U3), содержащих по 3, 2 и 2 вершины соответственно.


 

 

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

R=

  e1 e2 e3 e4 e5 e6 e7  
e1 r(e1)=8
e2 r(e2)=9
e3 r(e3)=10
e4 r(e4)=6
e5 r(e5)=10
e6 r(e6)=11
e7 r(e7)=10

Реализация алгоритма:

1. Рассмотрим строку e6матрицы R, соответствующую вершине с максимальной локальной степеньюr(e6)=11и выбираем в ней наибольший элемент r67=6. Вершины e6 и e7 относим к подмножеству E1={e6,e7}.

2. Т.к. |E1|<|E1|=3, то поэлементно суммируем строки e6иe7. Матрица смежности примет вид:

R =

  e1 e2 e3 e4 e5 e67  
e1 r16+ r17
e2 r26+ r27
e3 r36+ r37
e4 r46+ r47
e5 r56+ r57
e67 диагон. эл-ты = 0
    r61+ r71 r62+ r72 r63+ r73 r64+ r74 r65+ r75    

3. В строке e67 выбираем наибольший элементe67,5=7. Вершину e5 относим к подмножеству E1={e6,e7,e5}. Т.к. |E1|=|E1|=3, то кусок G1 сформирован.


 

4. Удаляем из графа G вершины подмножества E1 со всеми инцидентными им ребрами, т.е. вычеркиваем из исходной матрицы строки и столбцыe6,e7,e5. Получаем матрицу

R=

  e1 e2 e3 e4  
e1 r(e1)=5
e2 r(e2)=8
e3 r(e3)=9
e4 r(e4)=6

5. Рассмотрим строку e3матрицы R, соответствующую вершине с максимальной локальной степеньюr(e3)=9и выбираем в ней наибольший элемент r34=5. Вершины e3 и e4 относим к подмножеству E2={e3,e4}. Т.к. |E2|=|E2|=2, то кусок G2 сформирован.

6. Оставшиеся вершины e1 и e1 относим к подмножеству E3={e1,e2} и кусок G3 сформирован.


Результат разбиения графа G приведен на рис. 5.2.

Суммарное число внутренних ребер равно для полученного разбиения 22, а число соединительных ребер К=11, коэффициент разбиения ∆(G)=22/11.

Алгоритм имеет преимущества по сравнению с алгоритмом 2, если матрица смежности представляющего схему графа имеет мало нулевых элементов.

Оглавление

Лекция 5. 1

Решение задачи компоновки конструктивных узлов (продолжение) 1

Алгоритм 3 (последовательный алгоритм компоновки) 1

Пример алгоритма 3. 3

 

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.