Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение связности графа




Неориентированный граф называется связным, если для любой пары вершин хijÎX существует хотя бы один маршрут, их соединяющий. В противном случае граф несвязан. Несвязный граф может быть единственным образом разбит на группы взаимосвязанных вершин (на связные компоненты) таким образом, что не существует маршрута, соединяющей какие-либо из вершин различных компонент.

 

Решим задачу определения связности графа с помощью элементов алгоритма Фаулкса.

Пусть дана матрица смежности R неориентированного графа G (матрица R симметрична относительно главной диагонали), имеющего n вершин. Необходимо определить, является ли этот граф связным. В случае, если граф несвязный, то требуется выделить из него все т связных подграфов G 1, G 2,…, G m таких, что, например, из любой вершины подграфа G 1 можно найти путь или маршрут, ведущий к любой другой вершине этого же подграфа, но нельзя найти путь или маршрут ни к одной вершине, не принадлежащей данному подграфу G 1. Требуется определить, какие вершины входят в каждый из подграфов.

На основании матрицы смежности R получим матрицу достижимости не более чем за один шаг R 1.

Затем, в соответствии с алгоритмом Фаулкса, найдем матрицу RN путем булевского перемножения матриц (RN = RN -1 Ä R 1 ) до тех пор, пока не достигнем RN = RN -1. Полученная матрица RN является матрицей достижимости графа G. Она позволяет выявить связные подграфы и номера вершин, входящих в связные подграфы. Для этого необходимо в некоторой i - строке матрицы RN найти элементы rNij = 1, i, j = 1,…, n. Номера столбцов j, где rij = 1, и будут номерами вершин, входящих в связный подграф, включающий в себя i -ю вершину. Рассматривая последовательно все несовпадающие строки матрицы можно выявить все т связных подграфов исходного графа G.

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

Пример.

Пусть задана матрица R 1 достижимости не более чем за один шаг неориентированного графа G, имеющего n = 8 вершин.

 

Необходимо проверить граф на связность и выявить все связные подграфы.

1. Зададим начальный номер цикла вычислений: N = 1.

2. N= N +1 =2.

3. Производим умножение R 1 Ä R 1 = R 2

.

 

4. Проверяем условие равенства R 2 и R 1. Они не равны. Переходим к п. 2.

2) N = 2 + 1 = 3.

3) Умножение R 2 Ä R 1 = R 3.

.

 

4) Проверяем условие равенства матриц R 2 и R 3. Так как они равны, то это означает, что путь длиной 2 - максимальный в данной графе, и дальнейшее перемножение матрицы не имеет смысла, так как мы будем получать одну и ту же матрицу. Найденная матрица R 3 есть матрица достижимости исходного графа. Наличие нулей в полученной матрице показывает, что между соответствующими элементами отсутствует путь любойдлины и,следовательно, данный граф — несвязный.

5. Выбираем начальную вершину для выявления связных подграфов: i =1.

6. В строке i =1 выбираем все элементы r 31 j , равные единице (j =1,…, n). r 311 = r 312 = r 317 = r 318 = 1. Номера столбцов, в которых r 3 ij = 1 - это номера вершин первого связного подграфа, входящего в данный граф. То есть вершины 1, 2, 7, 8 образуют связный подграф G 1 .

7. Определяем номер очередной вершины i = 1 + 1 = 2. Так как 2 ≤ 8, то на 8 (иначе на 9).

8. Проверим – входит ли данная вершина в найденные связные подграфы. Если среди вершин найденных связных подграфов есть данная вершина, то на 7, иначе на 6.

Так как среди вершин связного подграфа G 1 есть вершина j =2, то возвращаемся к п.7.

7) i = 2 + 1 = 3. Так как 3 ≤ 8, то на 8.

8) Среди вершин связного графа G 1 нет вершины j =3. Возвращаемся к п. 6.

6.) В строке 3 выбираем элементы, равные единице: r 333 = r 336 = 1. Следовательно, во второй связный подграф G 2 входят вершины 3, 6.

7) Определяем номер очередной вершины i = 3 + 1 = 4. Так как 4 ≤ 8, то на 8.

8.) Среди вершин связных подграфов G 1 и G 2 нет вершины j = 4. Возвращаемся к п. 6.

6.) В строке 4 выбираем элементы, равные единице. r 344 = r 345 = 1. Следовательно, в третий связный подграф G 3 входят вершины 4, 5.

7) i = 4 + 1 = 5. Так как 4 ≤ 8, то на 8.

8) Среди вершин связных графов G 1, G 2, G 3 есть вершина j = 5. Переходим к п.7.

Аналогично проверяются вершины j = 6, 7, 8. Они входят в уже полученные выше подграфы.

9. Если проверены все вершины, то все связные подграфы найдены. Конец.

 

Таким образом в результате работы алгоритма найдены три связных подграфа:

G 1 = {1, 2, 7, 8}; G 2 = {3, 6}; G 3 = {4, 5} (см. рисунок 4.2)

 
 

 

 


.

Рис 4. 2.

 




Поделиться с друзьями:


Дата добавления: 2017-01-13; Просмотров: 3246; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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