Page 9 - 4387
P. 9

Зворотним  транзитивним  замиканням  деякої  вершини  v
                                                                                                      i
              -
            Т (v ) є об'єднання самої вершини v  із зворотним відображенням
                 i
                                                              i
            1-го порядку, 2-го порядку і т.д., тобто
                                                                  -2
                                                       -1
                                      -
                                    Т (v )={v } ∪Г (v ) ∪Г (v ) ∪… .                             (1.5)
                                                i
                                         i
                                                                      i
                                                           i
                   Іншими  словами,  зворотне  транзитивне  замикання  для
                                          -
            деякої  вершини  v   Т (v )  це  множина  вершин,  з  яких  існують
                                      i
                                             i
            шляхи у вершину v , тобто
                                       i
                                         -
                                       Т (v )={v : ∃ шлях з v , в v }.                           (1.6)
                                            i
                                                   j
                                                                   j
                                                                         i
                   Так, зворотне транзитивне замикання для вершини v  графа,
                                                                                            1
            зображеного на рис. 1.1, буде таким:
                     -
                   Т (v )={v }∪{v }∪{v , v }∪{v , v , v }={v , v , v , v , v }.
                                                                                           5
                                               3
                                                                           1
                                                                   4
                                                                                   3
                                                                               2
                                                                                       4
                                                   4
                                                               2
                                                           1
                               1
                                       5
                        1
                   Алгоритм  знаходження  прямого  транзитивного  замикання
            по матриці суміжності для вершини v  полягає в наступному.
                                                                i
                                                               +
                   Крок  1.  Формується  вектор  Т (v )  з  n  елементів,  де  n  –
                                                                   i
            кількість вершин графа. Даний вектор визначає довжини шляхів
            від i-ї вершини графа до усіх інших вершин. Приймається d=0. В
                                          +
            i-й елемент вектора Т (v )  заноситься значення d.
                                             i i
                   Крок  2.  Переглядається  i-й  рядок  матриці  суміжності  A  і
            визначаються елементи a  (j=1, 2, …, n) рівні 1.
                                               i,j
                   Крок  3.  Якщо  жодний  з  елементів  a ≠1,  то  алгоритм
                                                                             i,j
                                                                                                  +
            завершується.  Усім  незаповненим  елементам  вектора  Т (v )
                                                                                                     i
            присвоюється  значення  ∞  – це  означає  що  від  вершини  v   нема
                                                                                               i
            шляхів до даних вершин графа. В іншому випадку здійснюється
            перехід до кроку 4.


                   Крок 4. Якщо є один або більше елементів a =1, то d=d+1,
                                                                                   i,j
            i=j  (крім  тих  значень  j,  яким  відповідають  уже  заповнені

                                        +
            елементи  вектора  Т (v ))  та  відповідним  i-м  елементам  вектора
                                            i
              +
            Т (v )  (крім уже заповнених елементів) присвоюється значення d.
                  i i

                                                         8
   4   5   6   7   8   9   10   11   12   13   14