Пусть дан
простой
граф
, матрица смежности которого есть
, где
. Матрица смежности даёт информацию о всех
путях
длины 1 (то есть дугах) в орграфе. Для поиска путей длины 2 можно найти
с самим собой:
После нахождения матриц
композиций
для всех
,
будет получена информация о всех путях длины от
до
. Таким образом, матрица
есть искомая матрица достижимости, где
— единичная матрица.
Случай нескольких путей
Если
булевы операции
дизъюнкции и конъюнкции заменить обычными алгебраическими операциями
сложения и умножения соответственно, нахождение матрицы достижимости
сведётся к обычному пошаговому
перемножению матриц
с последующим сложением результатов каждого шага. Тогда получившаяся матрица
будет состоять не только из 0 и 1 и будет характеризовать не только
наличие
путей между вершинами, но уже и
количество
таких путей. В таком случае можно разрешить наличие кратных рёбер в графе.
Пример
Рассмотрим
простой
связный
ориентированный
граф
.
Он имеет матрицу смежности
вида:
Найдём булевы степени этой матрицы
,
:
,
,
Получим
матрицу достижимости
Таким образом, из вершины
можно добраться в любую другую.
При
получится матрица
Она показывает количество путей длины от 0 до 3 между вершинами орграфа.
Алгоритм Уоршелла
Существует другой алгоритм, позволяющий найти матрицу достижимости в точности за
шагов — алгоритм Уоршелла.
Матрица сильной связности может быть построена из матрицы достижимости. Пусть
— матрица достижимости орграфа
. Тогда матрица сильной связности
состоит из элементов
.