Page 65 - 4336
P. 65

Крім того, для всіх i та m:


                                                          d m     0.                                  (4.8)
                                                             ,i i

                         Найкоротші            шляхи,        довжини           яких       визначаються



                  величинами      елементів  матриці  D ,  можуть  бути  визначені
                                       ,
                  аналогічно тому, як це робилося в алгоритмі Флойда-Уоршола.

                         Згідно  з  формулами (4.5)-(4.8),  на  кожному  кроці 2

                  алгоритму  спочатку  необхідно  обчислювати  значення  елементів


                     ,    матриці D , що знаходяться в m-му стовпчику та m-му рядку
                  матриці (формули (4.5), (4.6)),  а  потім  усі  інші  елементи  за

                  формулою  (4.7) (крім  елементів  основної  діагоналі  матриці,  що

                  завжди рівні 0).

                         В алгоритмі Данцига виконуються по суті ті ж самі операції,

                  що  і  в  алгоритмі  Флойда-Уоршола,  тільки  в  іншому  порядку.

                  Дійсно, рівняння (4.2), що використовується в алгоритмі Флойда-

                  Уоршола, просто збігається з рівнянням (4.7) алгоритму Данцига.

                  Рівняння (4.5) та (4.6), що використовується в алгоритмі Данцига,

                  просто m-1 раз повторюють рівняння (4.2) з алгоритму Флойда-

                  Уоршола. Таким чином, кожний із алгоритмів включають те саме

                  число операцій.


                         Приклад 4.5.  Застосувати  алгоритм  Данцига  до  графа,

                  наведеного в прикладі 4.4 (рис. 4.8).

                         Розв'язок.

                         Крок 1. Матриця D  є наступною:


                                  0    1     2    1


                          D 0    2    0    7       .
                                  6    5    0     2

                                  1         4    0



                                                              65
   60   61   62   63   64   65   66   67   68   69   70