Задание 7.
Найти компоненты сильной связности ориентированного графа G.
Определение. Пусть граф G некоторый ориентированный граф. Компонентами сильной связности графа G называются все его сильно связные подграфы, не являющиеся собственными подграфами никакого другого сильно связного подграфа графа G.
Определение. Пусть дан граф G. Матрицей сильной связности называется матрица D(G)[n x n], где n – мощность множества вершин, с элементами dij, которые определяются следующим условием:
dij
=
Алгоритм выделения компонент сильной связности базируется на двух утверждениях:
Утверждение 1. Пусть H1, H2,…, Hp есть компоненты сильной связности ориентированного графа G. Тогда после удаления из графа G всех вершин графа H1 вместе с инцидентными им дугами, получится граф, компонентами сильной связности которого будут графы H2,…, Hn.
Утверждение 2. Единицы i-той строки (i-того столбца) матрицы сильной связности D(G) графа G, соответствуют вершинам компоненты сильной связности графа G, в которую входит вершина xi графа G.
Алгоритм выделения компонент
сильной связности ориентированного графа.
Шаг 1. Полагаем p=1, D1(G) = D(G).
Шаг
2.
Включаем во множество вершин
очередной ( р -й) компоненты сильной
связности Hp
графа G
вершины, соответствующие единицам
первой строки матрицы Dр(G).
В качестве матрицы смежности графа Hp
– A(Hp)
берем подматрицу матрицы A(G)
, элементы которой находятся на пересечении
строк и столбцов, соответствующих
вершинам из
.
Шаг 3. Вычеркиваем из Dр(G) строки и столбцы, соответствующие вершинам . Если в результате не остаётся ни одной строки (и соответственно ни одного столбца), то р - количество компонент H1, H2,…, Hp сильной связности графа G, соответственно A(H1), A(H2),…, A(Hp) – их матрицы смежности. В противном случае обозначим оставшуюся после вычеркивания из Dр(G) соответствующих строк и столбцов матрицу через Dр+1 (G),положим р=р+1 (увеличим значение индекса р на единицу) и перейдем к шагу 2.
Решение:
Выпишем ранее сформированную матрицу смежности ориентированного графа G.
A(G) =
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
100 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
3 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
5 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
6 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
7 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
8 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
9 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
10 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
Построим матрицу сильной связности графа G.
D(G) =
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
100 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
5 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
7 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
8 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
9 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
10 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Так как матрица D(G) полностью состоит из единиц, то единственной компонентой связности графа G будет сам ориентированный граф G.
H1
