Page 24 - 4387
P. 24

Якщо d(x)=∞ для усіх непозначених вершин х, то закінчити

                  процедуру  алгоритму,  –  у  вихідному  графі  відсутні  шляхи  з

                  вершини v у непозначені вершини. В іншому випадку позначити

                  ту з вершин х, для якої величина d(x) є найменшою. Крім того,

                  позначити дугу, що веде в обрану на даному кроці вершину х (для

                  цієї  дуги  досягався  мінімум  відповідно  до  формули  (3.1).

                  Присвоїти у=х.

                         Крок 3. Якщо у=w, то закінчити процедуру, – найкоротший

                  шлях з вершини v у вершину w знайдений (це єдиний шлях з v у

                  w, складений з позначених дуг). Якщо у≠w, то перейти до кроку

                  2.

                         Приклад  3.1.  Застосувати  алгоритм  Дейкстри  до  графа,


                  зображеного на рис. 3.1, для знаходження в ньому найкоротшого
                  шляху між вершинами v та w.











                                                       Рисунок 3.1.



                         Розв'язок.

                         Крок 1. Позначаємо вершину v. Вважаємо, що d(v)=0, d(x)=∞

                  для всіх вершин х, які не збігаються з v. Присвоюємо у=v.

                         Крок  2.  (у=v).  Розраховуємо  величину  d(x)  для  кожної  з

                  непозначених вершини за формулою (3.1):

                         d (a ) =  min{d   (a );d (v ) + c (v ,a )} = min{∞    0 ; +  } 4 = 4;


                         d (b ) = min{d    (b );d (v ) + c (v ,b )} =  min{∞   0 ; +  } 7 =  7;

                         d (c ) =  min{d   (c );d (v ) + c (v ,c )} =  min{∞  0 ; +  } 3 = 3;

                         d (d  )  = min{d  (d );d  (v ) + ( dvc  ,  )} = min{ ∞ 0;  + ∞} =  ∞;



                                                              23
   19   20   21   22   23   24   25   26   27   28   29