![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В предыдущей главе для нахождения сильносвязных компонент орграфа G =(V, E) нам нужно было найти матрицу достижимости R. Как было отмечено, для этого можно использовать поиск в глубину или в ширину. Теперь рассмотрим подробнее, что представляет собой матрица R.
Если множество E дуг графа G рассматривать как бинарное отношение на множестве вершин V графа G, то R будет матрицей смежности для графа G *=(V, E *), в котором E * - транзитивное замыкание бинарного отношения E.
Рассмотрим способ нахождения транзитивного замыкания (тоже матрицы R) без применения поиска.
Пусть исходный граф G =(V, E) представлен матрицей смежности A. Можно вычислить матрицу R по матрице А, определяя последовательность матриц A (0), A (1),…, A (|V|) следующим образом:
1) aij (0)= aij;
2) aij ( k )= aij ( k -1)Ú aik ( k -1)Ù akj ( k -1) (5.1)
Утверждение: aij ( k )=1 тогда и только тогда, когда существует путь из вершины i Î V в вершину j Î V с промежуточными вершинами, выбираемыми только из множества {1,2,..., k }Í V.
Докажем это утверждение, используя принцип математической индукции:
1. Для k =0 утверждение очевидно, так как aij (0)= aij, далее смотри определение матрицы смежности.
2. Пусть утверждение верно для k = t -1, тогда aij ( t ), определяемое как
aij ( t -1)Ú ait ( t -1)Ù atj ( t -1), равно единице тогда и только тогда, когда либо aij ( t -1)=1, либо ait ( t -1)=1 и atj ( t -1)=1. Другими словами aij ( t )=1 в двух случаях:
1) существует путь из вершины i в вершину j, проходящий только по вершинам из множества {1,2,..., t -1},
2) существуют пути из i в t и из t в j, также проходящие только по вершинам из множества {1,2,..., t -1}.
Таким образом, во втором случае путь из вершины i в вершину j проходит по вершинам из множества {1,2,…, t }={1,2,…, t -1}È t, следовательно, aij( t )=1 тогда и только тогда, когда существует путь из вершины i в вершину j с промежуточными вершинами, выбираемыми из множества {1,2,..., t }.
Итак, утверждение справедливо для k = t. Следовательно, для любого k =0,1,…,| V | утверждение истино.
На основании доказанного утверждения вытекает, что R = А (| V |).
Алгоритм 2.Алгоритм нахождения транзитивного замыкания
Дата публикования: 2015-01-04; Прочитано: 573 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!