Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по дискретной математике3.doc
Скачиваний:
203
Добавлен:
02.05.2014
Размер:
255.49 Кб
Скачать

Связность графа. Отыскание компонент связности при графическом задании графа.

Граф (ор-граф) называется связным (сильно связным), если любая пара его вершин соединяется хотя бы одной цепью.

- сильно связан - слабо связан

Возьмем ор-граф и уберем стрелки, тогда получим неор. граф, о котором говорят, что он ассоциирован с данным. Ор-граф называется слабосвязным, если ассоциированный с ним граф является связным. Максимально связанный (сильно связанный) подграф данного графа называется компонентой связности (сильной связности). Очевидно, если граф G имеет Р компонент связности G1,G2,G3,…,Gp, то число вершин графа G равно числу компонент связности. Если граф неор., то число его ребер равно сумме ребер его компонент связности.

Рассмотрим алгорит выделения компонент связности для неор. графа и этот же алгоритм даст возможность определить, будет ли граф связным. Этот алгоритм может работать и для выделения компонент слабой связности графа.

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

Отыскание компонент связности (сильной связности) матричным методом.

Будем говорить, что вершина v достижима из вершины u, если u=v или существует простая цепь из u в v. Пусть G- не ор-граф. Матрицу S называют матрицей достижимости, связности, если элементы ее sij=1 при условии, что j достижимо из i, или i=j, и 0 в противном случае. Иначе говоря, sij≠0, если i-я и j-я вершины принадлежат одной компоненте связности. Доказывается, что S=EA*2 A*3… A*n, где А- матрица смежности. Пусть теперь G- ор-граф. Матрицей достижимости Т ор-графа называется квадратная матрица, Тij=1, если j-я вершина достижима из i-й, и 0 в противном случае. Доказывается T=EA* A*2… A*n-1. матрицей сильной связности зовут матрицу, элементы которой Sij=1, если ViVj и VjVi существует, иначе Sij=0. Т.е. Sij=1, когда вершины Vi и Vj принадлежат одной компоненте сильной связности. Доказывается, что S=TTT, где TT- транспонированная Т. Очевидно, если граф имеет немного дуг, то матрицу связности можно построить по графу.

Рассмотрим алгоритм выделения компонент сильной связности: пусть имеем матрицу смежности А:

0 1 0 1 0 0 построим матрицу сильной связности S: 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1 Алгоритм: 1) вычеркиваем в матрице S солбцы и строки, соответствующие единицам первой строки. Вершины, находящиеся на пересечении вычеркнутых строк и столбцов, дают первую компоненту сильной связности. (1,4). Матрица смежности, соответствующая первой компоненте связности, получается вычеркиванием соответствующих строк и столбцов матрицы А: V1={1,4} 1 (0 1) 4 (1 0), 2) берем вторую строку и вычеркиваем все столбцы и соответствующие им строки, на пересечении которых находятся 1. Вторая компонента связности: V2={2} 2 (0) 3) берем третью строку и повторяем рассуждения. V3={3,5,6} …

Всего получается три компоненты сильной связности.