10
Розробка та аналіз алгоритмів 14. Алгоритм Дейкстри Пошук найкоротших шляхів у графі Алгоритм Дейкстри Швидка реалізація алгоритму (с) Олексій Молчановський, Prometheus.org.ua 1

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

Embed Size (px)

Citation preview

Розробка та аналіз алгоритмів

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

• Пошук найкоротших шляхів у графі

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

• Швидка реалізація алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 1

Задача пошуку найкоротших шляхів у графі

1. Пошук найкоротшого шляху від вершини s до вершини t

2. Пошук найкоротших шляхів від вершини s до всіх інших вершин графу

3. Пошук найкоротших шляхів між усіма парами вершин графу

(с) Олексій Молчановський, Prometheus.org.ua 2

• Пошук відбувається у зважених графах

Алгоритм Дейкстри. Загальна ідея

(с) Олексій Молчановський, Prometheus.org.ua 3

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

(с) Олексій Молчановський, Prometheus.org.ua 4

Приклад роботи алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 5

Обмеження в роботі алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 6

Коректність роботи алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 7

Час роботи алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 8

Черги з пріоритетами (Лекція 09. Піраміди)

• Вставка елементу (Insert) – додає елемент до черги

• Визначення максимального елементу (Maximum) – повертає значення найбільшого елементу черги

• Видалення максимального елементу (ExtractMax) – видаляє та повертає найбільший елемент з черги

• Збільшення ключа для елементу (IncreaseKey) – збільшує значення ключа для заданого елементу черги

(с) Олексій Молчановський, Prometheus.org.ua 9

Швидка реалізація алгоритму

(с) Олексій Молчановський, Prometheus.org.ua 10