Page 56 - 4336
P. 56

присвоїмо               0.  Відзначимо  далі,  що  величина
                                 ,
                                                                                                     ,
            представляє довжину найкоротшого шляху між вершинами i та j.

                   Позначимо           через      D        матрицю         розмірністю          N×N,

            елементами якої є величини   . Якщо у вхідному графі відома
                                                        ,

            довжина  кожної  дуги,  то  можна  сформувати  матрицю  D .  Ціль

            задачі  полягає  у  визначенні  матриці  D ,  що  представляє
            найкоротші шляхи між усіма вершинами вхідного графа.



                   4.3.1 Алгоритм Флойда-Уоршола

                   В  алгоритмі  Флойда-Уоршола  в  якості  вхідної  виступає


            матриця D . Спочатку за даною матрицею обчислюється матриця



            D .  Потім,  за  матрицею  D   обчислюється  матриця  D   і  т.д.
            Процес  повторюється  доти,  поки  за  матрицею  D                              не  буде

            обчислена матриця D .

                   Розглянемо  основну  ідею,  що  лежить  в  основі  алгоритму

            Флойда-Воршелла. Припустимо, що нам відомі:

                   а) найкоротший шлях з вершини i у вершину m, у якому в

            якості проміжних допускається використання тільки перших m-1

            вершин;

                   б) найкоротший шлях з вершини m у вершину j, у якому в

            якості проміжних допускається використання тільки перших m-1

            вершин;

                   в) найкоротший  шлях  з  вершини  i  у  вершину  j,  у  якому  в

            якості проміжних допускається використання тільки перших m-1

            вершин.

                   Оскільки,  за  припущенням,  вхідний  граф  не  може  містити

            контурів від'ємної довжини, то один із двох шляхів – шлях, що

            збігається із представленим у п. “в”, або шлях, що є об'єднанням

            шляхів  із  п. “а”  і “б”, –  повинен  бути  найкоротшим  шляхом  з

                                                        56
   51   52   53   54   55   56   57   58   59   60   61