Page 36 - 4387
P. 36

ЛАБОРАТОРНА РОБОТА № 5

                          Реалізація алгоритму Флойда-Уоршола пошуку усіх

                                                найкоротших шляхів




                         5.1 Мета і завдання роботи роботи


                         Мета  роботи  –  засвоїти  принцип  пошуку  найкоротших

                  шляхів  між  усіма  вершинами  графа  за  допомогою  алгоритму
                  Флойда-Уоршола.


                         Завдання  роботи  –  знайти  за  допомогою  алгоритму
                  Флойда-Уоршола  найкоротші  шляхи  між  усіма  вершинами


                  заданого графа.
                         Тривалість лабораторної роботи – 6 год. (3 пари).




                         5.2 Основні теоретичні положення


                         Алгоритм            Флойда-Уоршола                 дозволяє           знаходити

                  найкоротшого  шляху  між  кожною  парою  вершин  для  заданого

                  графа. В даному алгоритмі для довжин дуг допускаються від'ємні

                  значення,  однак  не  допускається  наявність  контурів  від'ємні

                  довжини.

                         Занумеруємо вершини вхідного графа цілими числами від 1

                  до  N.  Позначимо  через     довжину  найкоротшого  шляху  з
                                                         
                                                         ,
                  вершини  i  у  вершину  j,  який  у  якості  проміжних  може  містити
                  тільки  перші  m  вершин  графа.  Якщо  між  вершинами  i  та  j  не


                  існує  жодного  шляху  зазначеного  типу,  то  умовно  будемо

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



                                                              35
   31   32   33   34   35   36   37   38   39   40   41