Содержание
-
“Алгоритми пошуку оптимального рішення задачі та найкоротшого шляху”
Підготував: студент групи ФЕІ-41 Коблан Ігор
-
Пошук маршруту у графі
-
Алгоритм Террі
Знаходить шлях між двома вершинами графа
-
Обхід графів
-
Пошук у ширину Пошук у глибину
-
Пошук відстані між вершинами графа
-
Хвильовий алгоритм - алгоритм, що дозволяє знайти мінімальний шлях в графі з ребрами одиничної довжини. Заснований на алгоритмі пошуку в ширину. Застосовується для знаходження найкоротшого шляху в графі, в загальному випадку знаходить лише його довжину. Хвильовий алгоритм
-
Приклад роботи Хвильового алгоритму
-
Приклад роботи двонапрямленого Хвильового алгоритму
-
Алгоритм на графах, який знаходить найкоротший шлях від однієї вершини графа до всіх інших вершин. Класичний алгоритм Дейкстри працює тільки для графів без циклів від'ємної довжини. АлгоритмДейкстри
-
Алгоритм Белмана — Форда
Алгоритм шукаєнайкоротший шлях відзаданоївершини до всіхінших. Ідея в тому, що ми зберігаємо в масивівідстані до кожноївершиниі на кожному кроці алгоритму оновлємоцізначення, якщознайшли ребро яке покращує результат. Таким чином, післяпісля кожного крокуматимемо масивнайкоротшихшляхів.
-
Алгоритм Флойда-Уоршола
Для k от 1 до |V| виконатиДля i от 1 до |V| виконати Для j от 1 до |V| виконати Якщо вага i->k и k->j не нульові, и i не рівноj, тоЯкщо вага i->k + вес k->j меньше веса i->j, то заменить его их суммой Матриця суміжності
-
-
Алгоритм Джонсона
Алгоритм Джонсона дозволяє знайти найкоротші шляхи між усіма парами вершин зваженого орієнтованого графу. Цей алгоритм працює, якщо у графі містяться ребра з додатними чи від’ємними вагами, але відсутні негативні цикли.
-
Висновки
Підіб’ємо підсумки. Якщо необхідно знайти відстань від однієї вершини до іншої або до всіх вершин графу і ваги всіх ребер графу є додатними або дорівнюють нулю, то найбільш ефективним виявляється алгоритм Дейкстри із часом роботи О(m lgn). Якщо ж ваги ребер можуть бути від’ємними, то необхідно застосовувати алгоритм Белмана-Форда, час роботи якого О(nm). Якщо необхідно знайти відстані між усіма парами вершин графу, граф є розрядженим і всі ребра мають невід’ємні ваги, то можна виконати n разів алгоритм Дейкстри. Якщо ж граф є розрядженим, але в ньому можуть бути ребра з від’ємними вагами, то необхідно використовувати алгоритм Джонсона. Якщо необхідно знайти відстані між усіма парами вершин, ваги ребер можуть бути від’ємними і граф не є розрядженим (m прямує до n2), то необхідно використовувати алгоритм Флойда-Уоршола. Жоден з наведених алгоритмів не може бути застосований для графів, які містять негативні цикли. Проте алгоритм Белмана-Форда (як і алгоритм Джонсона), а також алгоритм Флойда-Уоршола можуть виявити такі цикли.
-
Дяую за увагу
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.