Главная
Новости
Строительство
Ремонт
Дизайн и интерьер
Каркасный дом
Несущие конструкции
Металлические конструкции
Прочность дорог
Дорожные материалы
Стальные конструкции
Грунтовые основания
Опорные сооружения




23.09.2023


23.09.2023


22.09.2023


22.09.2023


22.09.2023


22.09.2023


21.09.2023





Яндекс.Метрика

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

19.07.2023

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

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

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

Пусть дан простой граф G = ( V , A ) {displaystyle G=(V,A)} , матрица смежности которого есть A = ( a i j ) n × n {displaystyle mathbf {A} =(a_{ij})_{n imes n}} , где a i j = 1 ⇔ ( i , j ) ∈ A {displaystyle a_{ij}=1Leftrightarrow (i,j)in A} . Матрица смежности даёт информацию о всех путях длины 1 (то есть дугах) в орграфе. Для поиска путей длины 2 можно найти композицию отношения A {displaystyle A} с самим собой:

A ∘ A = { ( a , c ) : ∃ b ∈ V : ( a , b ) ,   ( b , c ) ∈ A } {displaystyle Acirc A={igl {}(a,c):exists bin V:(a,b), (b,c)in A{igr }}} .

По определению, матрица композиции отношений A ∘ A {displaystyle Acirc A} есть A 2 = ( a 2 i j ) n × n = ( ∑ k a i k a k j ) = ( ( a i 1 ∧ a 1 j ) ∨ ( a i 2 ∧ a 2 j ) ∨ … ∨ ( a i n ∧ a n j ) ) {displaystyle mathbf {A^{2}} =({a^{2}}_{ij})_{n imes n}={Bigl (}sum _{k}a_{ik}a_{kj}{Bigr )}={Bigl (}(a_{i1}land a_{1j})lor (a_{i2}land a_{2j})lor ldots lor (a_{in}land a_{nj}){Bigr )}} , где ∧ {displaystyle land } — конъюнкция, а ∨ {displaystyle lor } — дизъюнкция.

После нахождения матриц A k {displaystyle mathbf {A} ^{k}} композиций A ∘ … ∘ A ⏟ k {displaystyle underbrace {Acirc ldots circ A} _{k}} для всех k {displaystyle k} , 1 ≤ k ≤ n − 1 {displaystyle 1leq kleq n-1} будет получена информация о всех путях длины от 1 {displaystyle 1} до n − 1 {displaystyle n-1} . Таким образом, матрица R ( G ) = E ∨ A ∨ A 2 ∨ … ∨ A n − 1 = ( a ∗ i j ) n × n = ( a i j ∨ a 2 i j ∨ … ∨ a n − 1 i j ) {displaystyle mathbf {R(G)} =mathbf {E} lor mathbf {A} lor mathbf {A^{2}} lor ldots lor mathbf {A^{n-1}} =({a^{*}}_{ij})_{n imes n}=({a}_{ij}lor {a^{2}}_{ij}lor ldots lor {a^{n-1}}_{ij})} есть искомая матрица достижимости, где E {displaystyle mathbf {E} } — единичная матрица.

E = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ) {displaystyle mathbf {E} ={egin{pmatrix}1&0&0&0&1&0&0&0&1&0&0&0&1end{pmatrix}}}

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

Если булевы операции ∨ , ∧ {displaystyle lor ,land } дизъюнкции и конъюнкции заменить обычными алгебраическими операциями + , × {displaystyle +, imes } сложения и умножения соответственно, нахождение матрицы достижимости R ( G ) {displaystyle mathbf {R(G)} } сведётся к обычному пошаговому перемножению матриц с последующим сложением результатов каждого шага. Тогда получившаяся матрица R ( G ) {displaystyle mathbf {R(G)} } будет состоять не только из 0 и 1 и будет характеризовать не только наличие путей между вершинами, но уже и количество таких путей. В таком случае можно разрешить наличие кратных рёбер в графе.

Пример

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

A = ( 0 1 1 0 0 0 0 0 0 1 0 1 0 0 1 0 ) {displaystyle mathbf {A} ={egin{pmatrix}0&1&1&0&0&0&0&1&0&1&0&1&0end{pmatrix}}}

Найдём булевы степени этой матрицы A 2 {displaystyle mathbf {A^{2}} } , A 3 {displaystyle mathbf {A^{3}} } :

A 2 = ( 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 1 ) {displaystyle mathbf {A^{2}} ={egin{pmatrix}0&1&0&1&0&0&0&0&1&0&1&0&1end{pmatrix}}} , A 3 = ( 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 ) {displaystyle mathbf {A^{3}} ={egin{pmatrix}0&0&1&0&0&0&0&1&0&1&0&1&0end{pmatrix}}} ,

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

R ( G ) = E ∨ A ∨ A 2 ∨ A 3 = ( 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 ) {displaystyle mathbf {R(G)} =mathbf {Elor Alor A^{2}lor A^{3}} ={egin{pmatrix}1&1&1&1&1&0&0&1&1&1&1&1&1end{pmatrix}}}

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

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

R ( G ) = E + A + A 2 + A 3 = ( 1 2 2 1 0 1 0 0 0 2 2 2 0 1 2 2 ) {displaystyle mathbf {R(G)} =mathbf {E+A+A^{2}+A^{3}} ={egin{pmatrix}1&2&2&1&1&0&0&2&2&2&1&2&2end{pmatrix}}}

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

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

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

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

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

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

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

Матрица сильной связности может быть построена из матрицы достижимости. Пусть E ∗ {displaystyle mathbf {E} ^{*}} — матрица достижимости орграфа G = ( V , E ) {displaystyle G=(V,E)} . Тогда матрица сильной связности C {displaystyle mathbf {C} } состоит из элементов ( c i j ) = ( ( e i j ) ∧ ( e j i ) ) {displaystyle (c_{ij})=left((e_{ij})land (e_{ji}) ight)} .

Пример

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

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

E ∗ = ( 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1 1 ) {displaystyle mathbf {E^{*}} ={egin{pmatrix}1&1&1&1&1&0&0&1&1&1&1&1&1end{pmatrix}}}

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

C = ( 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 ) {displaystyle mathbf {C} ={egin{pmatrix}1&0&0&0&1&0&0&0&1&1&0&1&1end{pmatrix}}}

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

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

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

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

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


Имя:*
E-Mail:
Комментарий: