Матрица достижимости

Материал из testwiki
Перейти к навигации Перейти к поиску

Матрица достижимости простого ориентированного графа G=(V,A) — бинарная матрица замыкания по транзитивности отношения A (оно задаётся матрицей смежности графа). Таким образом, в матрице достижимости хранится информация о существовании путей между вершинами графа.

Способы построения матрицы достижимости

Перемножение матриц

Пусть дан простой граф G=(V,A), матрица смежности которого есть 𝐀=(aij)n×n, где aij=1(i,j)A. Матрица смежности даёт информацию о всех путях длины 1 (то есть дугах) в орграфе. Для поиска путей длины 2 можно найти композицию отношения A с самим собой:

AA={(a,c):bV:(a,b), (b,c)A}.

По определению, матрица композиции отношений AA есть 𝐀𝟐=(a2ij)n×n=(kaikakj)=((ai1a1j)(ai2a2j)(ainanj)), где  — конъюнкция, а  — дизъюнкция.

После нахождения матриц 𝐀k композиций AAk для всех k, 1kn1 будет получена информация о всех путях длины от 1 до n1. Таким образом, матрица 𝐑(𝐆)=𝐄𝐀𝐀𝟐𝐀𝐧𝟏=(a*ij)n×n=(aija2ijan1ij) есть искомая матрица достижимости, где 𝐄 — единичная матрица.

𝐄=(1000010000100001)

Случай нескольких путей

Если булевы операции , дизъюнкции и конъюнкции заменить обычными алгебраическими операциями +,× сложения и умножения соответственно, нахождение матрицы достижимости 𝐑(𝐆) сведётся к обычному пошаговому перемножению матриц с последующим сложением результатов каждого шага. Тогда получившаяся матрица 𝐑(𝐆) будет состоять не только из 0 и 1 и будет характеризовать не только наличие путей между вершинами, но уже и количество таких путей. В таком случае можно разрешить наличие кратных рёбер в графе.

Пример

Граф G=(V,A)

Рассмотрим простой связный ориентированный граф G=(V={1,2,3,4},A={(1,2),(1,3),(3,2),(3,4),(4,3)}). Он имеет матрицу смежности 𝐀 вида:

𝐀=(0110000001010010)

Найдём булевы степени этой матрицы 𝐀𝟐, 𝐀𝟑:

𝐀𝟐=(0101000000100101), 𝐀𝟑=(0010000001010010),

Получим матрицу достижимости

𝐑(𝐆)=𝐄𝐀𝐀𝟐𝐀𝟑=(1111010001110111)

Таким образом, из вершины 1 можно добраться в любую другую.

При использовании же алгебраических операций получится матрица

𝐑(𝐆)=𝐄+𝐀+𝐀𝟐+𝐀𝟑=(1221010002220122)

Она показывает количество путей длины от 0 до 3 между вершинами орграфа.

Алгоритм Уоршелла

Шаблон:Main

Существует другой алгоритм, позволяющий найти матрицу достижимости в точности за 2n3 шагов — алгоритм Уоршелла.

Связанные понятия

Матрица сильной связности

Матрица сильной связности простого орграфа — бинарная матрица, содержащая информацию обо всех сильно связанных вершинах в орграфе. Матрица сильной связности симметрична. У сильно связного графа такая матрица заполнена единицами.

Построение матрицы сильной связности

Матрица сильной связности может быть построена из матрицы достижимости. Пусть 𝐄* — матрица достижимости орграфа G=(V,E). Тогда матрица сильной связности 𝐂 состоит из элементов (cij)=((eij)(eji)).

Пример

Рассмотрим тот же граф, что и ранее.

Его матрица достижимости:

𝐄*=(1111010001110111)

Из неё получаем матрицу сильной связности:

𝐂=(1000010000110011)

Вершины 3 и 4 сильно связаны друг с другом и сами с собой.

Матрица связности графа

Для обычного (не ориентированного) связного графа существует понятие матрицы связности, сходное с матрицей достижимости. Шаблон:Дополнить раздел

Матрица контрдостижимости

Матрица контрдостижимости Q графа G может быть найдена из матрицы достижимости путем ее транспонирования.

Примечания

Шаблон:Примечания

Шаблон:Rq