Алгоритм Дейкстри

В основу алгоритму Дейкстри покладено метод «найшвидшого спуску», що дає можливість на основі переліку вузлів мережі, взаємозв’язку між ними і довжини каналів зв’язку віднайти найкоротші шляхи від джерела інформації до всіх інших вузлів. Розглянемо роботу алгоритму на прикладі мережі, зображеної на рис. 8.4.

 

 

Рис. 8.4. Приклад мережі передачі даних

 

Побудова найкоротших шляхів здійснюється поетапно: починаючи з вузла А1 і до всіх інших вузлів. Процес є ітераційним і закінчується після того, як охоплено останній вузол мережі. На першому етапі обчислюються довжини (D1,i) всіх шляхів, що ведуть з першої вершини до решти вершин, пов’язаних з нею (у нашому випадку це множина вершин А ={А2, А3, А5}), для яких довжини шляхів збігаються з довжинами дуг: L1,2 =2; L1,3 = 1;
L1,5 = 4. Відповідно до значень формується таблиця маршрутів (табл. 8.1), перший стовпчик якої вказує на крок ітерації, другий — на кількість вершин, для яких формуються шляхи, а інші — на шлях і його довжину.

 

Таблиця 8.1.Таблиця маршрутів алгоритму Дейкстри

Крок ітерації Множина вершин Шлях
D(1,2) D(1,3) D(1,4) D(1,5) D(1,6)
{A1} L1,2=2 L1,3=1 - L1,5=4 -
13} L1,2=2 L1,3=1 (L1,3+L3,4)=4 (L1,3+L3,5)=3 -
135} L1,2=2 L1,3=1 (L1,3+L3,4)=4 (L1,3+L3,5)=3 (L1,3+L3,5+L5,6)=5
1352} L1,2=2 L1,3=1 (L1,3+L3,4)=3 (L1,3+L3,5)=3 (L1,3+L3,5+L5,6)=5
13524} L1,2=2 L1,3=1 (L1,3+L3,4)=3 (L1,3+L3,5)=3 (L1,3+L3,5+L5,6)=5
135246} L1,2=2 L1,3=1 (L1,3+L3,4)=3 (L1,3+L3,5)=3 (L1,3+L3,5+L5,6)=5

 

З-поміж доступних шляхів вибирається мінімальний (у нашому прикладі це шлях з першої вершини у третю (D1,3)). Далі обчислюються шляхи, що ведуть з вершини А1 у всі вершини, суміжні з вершиною А3. Це здійснюється додаванням до значення шляху (D1,3) довжини відповідної дуги. Одержані значення шляхів вносяться у таблицю маршрутів. Якщо в якусь із вершин шлях уже раніше визначався, то фіксується мінімальне значення шляху. Так, наприклад, після першого кроку довжина шляху D1,5 = L1,5 = 4, а після другого кроку формується нове значення шляху D1,5, (L1,3+L3,5) = 3, яке і вноситься у таблицю маршрутів. Загалом, правило відновлення маршрутів визначається умовою згідно з Dj,i=(min[Dj,i, Dj,k+Lk,і]), де Dj,i — довжина маршруту з вихідної вершини у розрахункову; Dj,k — довжина шляху з вихідної вершини у поточну; а Lk,i — довжина дуги між поточною і розрахунковою вершинами.

Унаслідок третього кроку ітерації формується новий маршрут D1,6. На наступних етапах ітерації здійснюється подальше коригування маршрутів доти, поки не будуть розглянуті всі вершини графа зв’язків. Аналогічно обчислюються маршрути і для інших вузлів мережі передачі даних.








Дата добавления: 2015-08-11; просмотров: 815;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.