русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2014-05-02; просмотров: 1588; Нарушение авторских прав


Рассмотрим простой формальный последовательный алгоритм разбиения графа 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

 

 



<== предыдущая лекция | следующая лекция ==>
Лекция 5 | Кабели связи


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.805 сек.