Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная Математика - Смирнов А.М.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
973.27 Кб
Скачать

Алгоритм определения компонент сильной связности орграфа:

  1. Удалить из графа вершины источники, тупиковые и изолированные вершины, зафиксировав их как отдельные сильные компоненты.

  2. Выбрать некоторую вершину xi.

  3. Определить для xi .

  4. Выполнить операцию пересечения и зафиксировать множество вершин, вошедших в .

  5. Удалить из графа вершины, принадлежащие и инцидентные им дуги. Если получен подграф G’, то перейти к п. 2. Если граф пуст, то перейти к п. 6.

  6. Сформировать множество классов C.

Для определения получим степени строки xi матрицы смежности A, а для определения степени столбца xi . Максимальный показатель степени n–1, так как учитываются только кратчайшие маршруты. Затем объединим полученные строки (степени строки xi) со строкой, имеющей единственную 1 в позиции вершины xi, а полученные столбцы (степени столбца xi) объединим со столбцом, имеющим единственную 1 в позиции вершины xi.

определяется как множество вершин, имеющих 1 в полученной матрице строке. определяется как множество вершин, имеющих 1 в полученной матрице столбце.

2.12 Определение компонент связности

Если для любой вершины xi выполняется условие

,

то граф сильно связен.

Поскольку связный неорграф всегда сильно связен, то полученный алгоритм определения компонент сильной связности пригоден и для определения компонент связности неорграфов: Каждая компонента неорграфа сильно связана, а между компонентами связи нет.

Связность орграфа проверяется удалением ориентации дуг и установлением связности полученного неорграфа.

Дан граф рис. 2.34, для которого имеем

A = .

Р исунок 2.34

В графе изолированных вершин нет, поэтому исключать ничего не надо.

Выберем вершину 1.

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

Первая строка матрицы смежности

= .

Вторая степень первой строки матрицы смежности:

= * = .

Третья степень первой строки матрицы смежности:

= * = .

При возведении в третью степень получено повторение строки, возводимой в степень, поэтому операцию возведения в степень прекращаем.

Если продолжить возведение в степень, то результат будет повторяться.

Найдем .

= {1} =

= = .

В других обозначениях

= {1, 3, 5}.

Определим .

= . = * = .

= * = .

Результат совпадает с начальным значением, следовательно, возведение в степень надо прекратить.

Найдем

= {1} = = .

В других обозначениях

= {1, 3, 5}.

= {1, 3, 5} {1, 3, 5} = {1, 3, 5}.

Вершины 1, 3, 5 принадлежат отдельной компоненте связности, поэтому на дальнейший процесс поиска других компонент связности влиять не будут. для уменьшения объема вычислений эти вершины, вместе с инцидентными им ребрами, можно исключить. Рассматриваемый пример достаточно простой, поэтому исключать ничего не будем.

Возьмем вершину, не принадлежащую , например, 4.

Действуя аналогично, находим

= .

= * = .

= * = .

Получено повторение строки, возводимой в степень, поэтому операцию возведения прекращаем.

Найдем .

= {4} =

= = .

В других обозначениях

= {2, 4, 6}.

Определим .

= . = * = .

= * = .

Результат совпадает с начальным значением, следовательно, возведение в степень надо прекратить.

Найдем

= {4} = = .

В других обозначениях

= {2, 4, 6}.

= {2, 4, 6} {2, 4, 6} = {2, 4, 6}.

Таким образом, все вершины графа вошли в два класса – в две компоненты связности C1 = {1, 3, 5} и C4 = {2, 4, 6}.