Достижимостей с помощью матрицы смежности
Матрица смежности, как отмечалось выше, полностью определяет структуру графа. Возведем матрицу смежности в квадрат. Пусть элемент d(2)ik матрицы А2 определяется по формуле
(2.7)
Слагаемое (dijdjk) в уравнении (2.7) отлично от нуля тогда и только тогда, когда оба числа dij и djk отличны от нуля, в противном случае слагаемое равно 0. Поскольку из соотношений dij ¹ 0, djk ¹ 0 следует существование путей длиной 2 из вершины xi к вершине xk, проходящих через вершину xj, то d(2)ik равно числу путей, идущих из xi в xk.
Аналогично, если d(p)ik является элементом матрицы Aр, то d(p)ik равно числу путей длиной р, идущих от xi к xk.
Однако надо подчеркнуть, что в матрицах достижимостей и обратных достижимостей не требуется учета числа путей из вершины xi в вершину xj. В матрицах отмечается лишь то, что есть такой путь или его нет, т.е. необходима операция нормализации. С учетом последнего замечания формула для определения матрицы достижимостей R на основе матрицы смежности А имеет вид
R = (E + A + A2 + … + Ap) //норм. (2.8)
Здесь Е – единичная матрица, а «норм» означает операцию нормализации, заключающуюся в том, что элементы матрицы R, не равные нулю, заменяются на 1.
Таким образом, матрица R может быть получена последовательно выполняемой (слева направо) операцией суммирования указанных в (2.7) матриц до тех пор, пока «текущая» матрица не перестанет изменяться при очередной операции суммирования. Для получения матрицы ограниченных достижимостей значение р должно быть ограничено.
С учетом определения (2.4) матрицу обратных достижимостей можно определить с помощью матрицы смежности по формуле
Q = (E + AT + (AT)2 + … + (AT)P) // норм. (2.9)
Аналогично предыдущему случаю для получения матрицы ограниченных обратных достижимостей необходимо ограничить величину р.
Формулы (2.8) и (2.9) справедливы как для одноуровневых (вершины задаются одним индексом), так и для многоуровневых (вершины задаются несколькими индексами) графов. Так, для многоуровневого графа (рис. 2.3) матрицa достижимостей , вычисленная на основе формулы (2.8) , имеет вид
R(2,2)={r }=
k=1 | k=1 | k=1 | k=2 | k=2 | k=2 | ||
l=1 | l=2 | l=3 | l=1 | l=2 | l=3 | ||
i=1 | j=1 | ||||||
i=1 | j=2 | ||||||
i=1 | j=3 | ||||||
i=2 | j=1 | ||||||
i=2 | j=2 | ||||||
i=2 | j=3 |