12 Графи

13
Розробка та аналіз алгоритмів 12. Графи Що таке граф? Представлення графів Задача пошуку в графах Пошук вшир Застосування пошуку вшир (с) Олексій Молчановський, Prometheus.org.ua 1

Transcript of 12 Графи

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

12. Графи

• Що таке граф?

• Представлення графів

• Задача пошуку в графах

• Пошук вшир

• Застосування пошуку вшир

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

Що таке граф?

• Граф – це сукупність об’єктів та зв’язків між ними

(с) Олексій Молчановський, 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

Пошук вшир (Breadth-First Search, BFS)

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

Пошук вшир. Алгоритм

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

Пошук найкоротших шляхів за допомогою BFS

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

Зв’язність неорієнтованого графу

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

Алгоритм пошуку компонент зв’язності

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