Page 44 - 4336
P. 44

Присвоїти  d(v)=0  та  d(x)=∞  для  всіх  х,  відмінних  від  v.

            Позначити вершину v та присвоїти у=v (у – остання з позначених

            вершин).

                   Крок 2.  Для  кожної  непозначеної  вершини  х  наступним

            чином перерахувати величину d(x):

                                     d (x )   min{d  (x );d (y ) c  (y , x )}.                 (4.1)


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

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

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

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

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

            цієї дуги досягався мінімум відповідно до виразу (4.1). Присвоїти

            у=х.

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

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

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

            2.

                   Слід  відзначити,  що  щораз,  коли  позначається  деяка

            вершина (не вважаючи вершини v), позначається і деяка дуга, що

            заходить  у  дану  вершину.  Таким  чином,  на  будь-якому  етапі

            алгоритму  в  кожну  вершину  заходить  не  більше  ніж  одна

            позначена дуга. Крім того, позначені дуги не можуть утворювати

            у  вихідному  графі  цикл,  тому  що  в  алгоритмі  не  може

            позначатися  дуга,  кінцеві  вершини  якої  вже  позначені.  Отже,

            можна зробити висновок про те, що позначені дуги утворюють у

            вихідному  графі  орієнтоване  дерево  з  коренем  у  вершині  v.  Це

            дерево  називається  орієнтованим  деревом  найкоротших  шляхів.

            Єдиний  шлях  від  вершини  v  до  будь-якої  вершини  х,  що




                                                        44
   39   40   41   42   43   44   45   46   47   48   49