SlideShare a Scribd company logo
1 of 48
Задачі з теорії графів.
Алгоритми на графах.
Для спеціальності 151 “Автоматизація та комп’ютерно-
інтегровані технології”, КНУБА, 2018
Соболевська Л.Г. sobolevska@atp.in.ua +38 066 251 89 80
ЧИСЛОВІ МЕТОДИ ТА
МОДЕЛЮВАННЯ НА ЕОМ
Сім мостів Кеніґсберґа
2 КНУБА, ФАІТ, 2018
Проблема семи мостів Кенігсберга
3 КНУБА, ФАІТ, 2018
Проблема семи мостів Кенігсберга
Эйлер прийшов до наступних висновків:
 Число непарних вершин графа повинно бути
парне. Не може існувати граф, що мав би
непарне число непарних вершин.
 Якщо всі вершини графа парні, то можна, не
відриваючи олівця від паперу, накреслити граф,
при цьому можна починати з будь-якої вершини
графа й завершити його в тій же вершині.
 Граф з більш ніж двома непарними вершинами
неможливо накреслити одним розчерком.
4 КНУБА, ФАІТ, 2018
Алгоритм пошуку в глибину
 depth-first search, DFS
 Крок 1. Всім вершин графа присвоюється значення не
відвідана. Вибирається перша вершина і позначається
як відвідана.
 Крок 2. Для останньої поміченої як відвідана вершини
вибирається суміжна вершина, яка є першою
поміченою як не відвідана, і їй присвоюється
значення відвідана. Якщо таких вершин немає, то
береться попередня позначена вершина.
 Крок 3. Повторити крок 2 до тих пір, поки всі
вершини не будуть позначені як відвідані
5 КНУБА, ФАІТ, 2018
Алгоритм пошуку в глибину
6 КНУБА, ФАІТ, 2018
Алгоритм пошуку в глибину
7 КНУБА, ФАІТ, 2018
Вихідний граф Ліс обходу в глибину
Класифікація ребер при обході в
глибину
 Дуги орієнтованого графа діляться на категорії залежно від їх ролі в
обході в глибину. Це класифікація застосовується при вирішенні різних
завдань, що базуються на методі обходу.
 Дуги в цьому лісі класифікуються на наступні:
 Дуги дерева - це безпосередньо дуги, з яких складається ліс,
побудований в результаті обходу.
 Зворотні дуги - це все дуги (u, v), що з'єднують вершину u з її предком
v в одному з дерев лісу обходу в глибину. (Зустрічні дуги, що
утворюють цикл довжини 2, можливі в орієнтованих графах,
вважаються зворотними дугами також).
 Прямі дуги - це дуги, що з'єднують вершину з її нащадком, але не
входять в ліс обходу в глибину.
 Перехресні дуги - це всі інші дуги орієнтованого графа, які не попали в
одну з перерахованих вище категорій. Такі дуги, наприклад, можуть
з'єднувати дві вершини одного дерева обходу, якщо жодна з цих
вершин не є предком іншої.
8 КНУБА, ФАІТ, 2018
Алгоритм пошуку в глибину
9 КНУБА, ФАІТ, 2018
Алгоритм пошуку в глибину
10 КНУБА, ФАІТ, 2018
Застосування методу обходу в
глибину
 1. Пошук лексикографічно найменшого шляху в
графі з заданої вершини
 2. Перевірка, чи є одна вершина дерева предком
іншої
 3. Топологічне сортування графа
 4. Завдання LCA (знаходження найменшого
спільного предка)
 5. Перевірка орграфа на ациклічності і
знаходження деякого циклу в графі
 6. Пошук компонент сильної зв'язності в орграфі
 7. Пошук мостів і точок зчленування в
неорієнтованому графі
11 КНУБА, ФАІТ, 2018
Алгоритм пошуку в ширину
 Breadth-First Search, BFS
 Крок 1. Всім вершин графа присвоюється значення не
відвідана. Вибирається перша вершина і позначається
як відвідана (і заноситься в чергу).
 Крок 2. Відвідується перша вершина з черги (якщо
вона не позначена як відвідана). Всі її сусідні вершини
заносяться в чергу. Після цього вона видаляється з
черги.
 Крок 3. Повторюється крок 2 до тих пір, поки черга не
порожня.
12 КНУБА, ФАІТ, 2018
Алгоритм пошуку в ширину
13 КНУБА, ФАІТ, 2018
Алгоритм пошуку в ширину
14 КНУБА, ФАІТ, 2018
Порівняння пошуків
15 КНУБА, ФАІТ, 2018
Задача комівояжера
 Travelling Salesman Problem, TSP
 знаходження найвигіднішого маршруту, що
проходить через вказані міста.
 критерій вигідності маршруту (найкоротший,
найдешевший, сукупний критерій тощо)
 Зазвичай маршрут повинен проходити через
кожне місто тільки один раз.
 Відноситься до класу NP-важких задач.
16 КНУБА, ФАІТ, 2018
Методи розв’язку задачі комівояжера
КНУБА, ФАІТ, 201817
 повний перебор (brute force)
 випадковий перебор
 жадібні алгоритми
 метод найближчого сусіда
 метод включення найближчого міста
 метод найдешевшого включення
 метод мінімального остовного дерева
 метод імітації відпалу
Жадібний алгоритм
 Greedy algorithm
 алгоритм, що полягає в прийнятті локально
оптимальних рішень на кожному етапі,
допускаючи, що кінцеве рішення також
виявиться оптимальним.
18 КНУБА, ФАІТ, 2018
Алгоритм імітації відпалу
КНУБА, ФАІТ, 201819
 (Simulated annealing) - загальний алгоритмічний
метод вирішення задачі глобальної оптимізації,
особливо дискретної і комбінаторної
оптимізації.
 Один із прикладів методів Монте-Карло.
 Використання:
 Навчання нейронних мереж
 Рішення комбінаторних задач
 Рішення задачі комівояжера
Алгоритм імітації відпалу
КНУБА, ФАІТ, 201820
Мурашиний алгоритм
КНУБА, ФАІТ, 201821
 алгоритм оптимізації наслідуванням мурашиної
колонії, Ant colony optimization, ACO.
 один з ефективних поліноміальних алгоритмів
для знаходження наближених рішень задачі
комівояжера, а також вирішення аналогічних
завдань пошуку маршрутів на графах.
 Перша версія алгоритму, запропонована
доктором наук Марко Дориго в 1992 році, була
спрямована на пошук оптимального шляху в
графі.
Мурашиний алгоритм
КНУБА, ФАІТ, 201822
Умова
виходу
Ініціалізація мурах
Додаткові дії
Оновлення феромону
Пошук рішення
Задача про кліку.
 Задача про кліку відноситься до класу NP-
повних задач.
 Вперше вона була сформульована в 1972 році
Річардом Карпом.
 Клікою в неорієнтованому графі називається
підмножина вершин, кожні дві з яких з'єднані
ребром графа.
 Іншими словами, це повний підграф
початкового графа.
 Розмір кліки визначається як число вершин в
ній.
23 КНУБА, ФАІТ, 2018
Задача про кліку
КНУБА, ФАІТ, 201824
 задача розпізнавання
 Потрібно визначити,
чи існує в заданому
графі G кліка розміру k.
 Обчислювальна задача
 знайти в заданому
графі G кліку
максимального
розміру.
1
3
5
6
4
2
Розфарбування графів
 Хроматичної число графа G - мінімальне число
кольорів, в які можна розфарбувати вершини
графа G так, щоб кінці будь-якого ребра мали
різні кольори. Зазвичай позначається χ (G).
 Розфарбувати можна:
 Вершини;
 Ребра.
25 КНУБА, ФАІТ, 2018
Розфарбування графів
КНУБА, ФАІТ, 201826
Розфарбування графів
КНУБА, ФАІТ, 201827
Розфарбування графів
КНУБА, ФАІТ, 201828
Розфарбування графів
29 КНУБА, ФАІТ, 2018
Властивості мінімального остову.
 Мінімальний остов унікальний, якщо ваги всіх
ребер різні. В іншому випадку, може існувати кілька
мінімальних остовів (конкретні алгоритми зазвичай
отримують один з можливих остовів).
 Мінімальний остов є також і остовом з мінімальним
добутком ваг ребер. (Доводиться це легко, досить
замінити ваги всіх ребер на їх логарифми).
 Мінімальний остов є також і остовом з мінімальною
вагою найважчого ребра. (Це твердження випливає
з справедливості алгоритму Крускала)
30 КНУБА, ФАІТ, 2018
Алгоритм Крускала
 (або алгоритм Краскала) - ефективний алгоритм
побудови мінімального остовного дерева зваженого
зв'язного неорієнтованого графа. Алгоритм вперше
описаний Джозефом Крускалом в 1956 році.
 Формулювання.
 Спочатку поточна множина ребер встановлюється
порожньою. Потім, поки це можливо, проводиться
наступна операція: з усіх ребер, додавання яких до
вже наявної множини не викличе появу в ній циклу,
вибирається ребро мінімальної ваги і додається до
вже наявної множини. Коли таких ребер більше
немає, алгоритм завершений. Підграф даного графа,
що містить всі його вершини і знайдену множину
ребер є його остовним деревом мінімальної ваги.
31 КНУБА, ФАІТ, 2018
Виконання алгоритму Крускала
32 КНУБА, ФАІТ, 2018
Виконання алгоритму Крускала
33 КНУБА, ФАІТ, 2018
Виконання алгоритму Крускала
34 КНУБА, ФАІТ, 2018
Алгоритм Прима
 Алгоритм Прима - алгоритм побудови мінімального остовного дерева
зваженого зв'язного неорієнтованого графа. Алгоритм вперше був
відкритий в 1930 році чеським математиком Войцехом Ярніка,
пізніше перевідкритий Робертом Прима в 1957 році, і, незалежно від
них, Е. Дейкстрой в 1959 році.
 Формулювання.
 На вхід алгоритму подається зв'язний неорієнтований граф. Для
кожного ребра задається його вага.
 Спочатку береться довільна вершина і знаходиться ребро, інцидентне
даній вершині із найменшою вагою. Знайдене ребро і дві вершини
з'єднані їм утворюють дерево. Потім, розглядаються ребра графа,
один кінець яких - вже належить дереву, а інший - ні; з цих ребер
вибирається ребро найменшої вартості. Обране на кожному кроці
ребро приєднується до дерева. Таким чином, при виконанні кожного
кроку алгоритму, висота формованого дерева збільшується на 1.
Зростання дерева відбувається до тих пір, поки не будуть вичерпані
всі вершини вихідного графа.
 Результатом роботи алгоритму є мінімальний остов.
35 КНУБА, ФАІТ, 2018
Виконання алгоритму Прима
36 КНУБА, ФАІТ, 2018
Виконання алгоритму Прима
37 КНУБА, ФАІТ, 2018
Алгоритм Борувки
 це алгоритм знаходження мінімального остовного дерева
в графі.
 Вперше був опублікований в 1926 році Отакаром Борувка
як метод знаходження оптимальної електричної мережі в
Моравії. Кілька разів був перевідкритий, наприклад
Флорек, Перкаль і Солліне. Останній, крім того, був
єдиним західним ученим з цього списку, і тому алгоритм
часто називають алгоритмом Солліне, особливо в
літературі з паралельних обчислень.
 Формулювання.
 Робота алгоритму складається з декількох ітерацій, кожна
з яких складається з послідовного додавання ребер до
остовного лісу графа, до тих пір, поки ліс не
перетвориться в дерево, тобто, ліс, що складається з однієї
компоненти зв'язності.
38 КНУБА, ФАІТ, 2018
Алгоритм Борувки
39 КНУБА, ФАІТ, 2018
Алгоритми пошуку найкоротшого
шляху
 Алгоритм Дейкстри (Dijkstra's algorithm) -
алгоритм на графах, винайдений
нідерландським вченим Едсгером Дейкстрою в
1959 році.
 Знаходить найкоротші шляхи від однієї з
вершин графа до всіх інших.
 Алгоритм працює тільки для графів без ребер
негативного ваги. Алгоритм широко
застосовується в програмуванні і технологіях,
наприклад, його використовують протоколи
маршрутизації OSPF і IS-IS.
40 КНУБА, ФАІТ, 2018
Алгоритм Дейкстри
КНУБА, ФАІТ, 201841
 Дан зважений орієнтований граф без дуг негативного ваги. Знайти
найкоротші шляхи від деякої вершини графа до всіх інших вершин
цього графа.
 Кожній вершині з V зіставимо мітку - мінімальна відома відстань від
цієї вершини до a. Алгоритм працює покроково - на кожному кроці
він «відвідує» одну вершину і намагається зменшувати мітки. Робота
алгоритму завершується, коли всі вершини відвідані.
 Ініціалізація. Мітка самої вершини a покладається рівною 0, мітки
інших вершин - нескінченності. Це відображає те, що відстані від a до
інших вершин поки невідомі. Всі вершини графа позначаються як
невідвідані.
 Крок алгоритму. Якщо всі вершини відвідані, алгоритм завершується.
В іншому випадку, з ще не відвіданих вершин вибирається вершина u,
що має мінімальну позначку. Ми розглядаємо різні маршрути, в яких
u є передостаннім пунктом. Вершини, в які ведуть ребра з u, назвемо
сусідами цієї вершини. Для кожного сусіда вершини u, крім
позначених відвіданими, розглянемо нову довжину шляху, що
дорівнює сумі значень поточної мітки u і довжини ребра, що з'єднує u
з цим сусідом. Якщо отримане значення довжини менше значення
мітки сусіда, замінимо значення мітки отриманим значенням
довжини. Розглянувши всіх сусідів, відмітимо вершину u як відвідану
і повторимо крок алгоритму.
Виконання алгоритму Дейкстри.
42 КНУБА, ФАІТ, 2018
Виконання алгоритму Дейкстри.
43 КНУБА, ФАІТ, 2018
Виконання алгоритму Дейкстри.
44 КНУБА, ФАІТ, 2018
Алгоритм хвильового трасування
 хвильовий алгоритм, алгоритм Лі
 алгоритм пошуку шляху, алгоритм пошуку
найкоротшого шляху на планарному графі.
 Належить до алгоритмів, заснованих на методах
пошуку в ширину.
45 КНУБА, ФАІТ, 2018
Виконання хвильового алгоритму в
околицях Фон Неймана
10 9 8 7 6 7 8 9 10 11 12 13
9 8 5 6 7 8 12
8 7 4 5 6 7 8 9 10 11
7 6 5 4 3 4 5 6 7 8 9 10
6 5 4 3 2 3 4 5 6 7 8 9
7 1 2 3 9 10
6 0 1 2 8 9
5 4 3 2 1 2 3 4 5 6 7 8
46 КНУБА, ФАІТ, 2018
Виконання хвильового алгоритму в
околицях Мура
6 6 6 6 6 6 6 6 6 7 8 8
5 5 5 5 5 5 7
5 4 4 4 4 4 4 5 6 7
5 4 3 3 3 3 3 3 4 5 6 7
5 4 3 2 2 2 2 3 4 5 6 7
5 1 1 2 6 7
5 0 1 2 6 7
4 3 2 1 1 1 2 3 4 5 6 7
47 КНУБА, ФАІТ, 2018
48
Дякую за увагу!
КНУБА, ФАІТ, 2018

More Related Content

What's hot

Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5Ιωάννου Γιαννάκης
 
алгоритми
алгоритмиалгоритми
алгоритмиmtrad
 
Команди і виконавці
Команди і виконавціКоманди і виконавці
Команди і виконавціAllaGureva
 
Threads 02: Acesso exclusivo e comunicação entre threads
Threads 02: Acesso exclusivo e comunicação entre threadsThreads 02: Acesso exclusivo e comunicação entre threads
Threads 02: Acesso exclusivo e comunicação entre threadsHelder da Rocha
 
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.VsimPPT
 
Календарне планування 7 клас - Інформатика (Scratch)
Календарне планування 7 клас - Інформатика (Scratch)Календарне планування 7 клас - Інформатика (Scratch)
Календарне планування 7 клас - Інформатика (Scratch)VsimPPTX
 
5 клас урок 27 нова програма
5 клас урок 27 нова програма5 клас урок 27 нова програма
5 клас урок 27 нова програмаЮлія Артюх
 
ознака паралельності прямої і площини
ознака паралельності прямої і площиниознака паралельності прямої і площини
ознака паралельності прямої і площиниanyaanya1
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуванняЗахарова Олена
 
Оцінка трудомісткості і термінів проекту
Оцінка трудомісткості і термінів проектуОцінка трудомісткості і термінів проекту
Оцінка трудомісткості і термінів проектуOleg Nazarevych
 
Урок 30. Величини (змінні і константи), їхні властивості
Урок 30. Величини (змінні і константи), їхні властивостіУрок 30. Величини (змінні і константи), їхні властивості
Урок 30. Величини (змінні і константи), їхні властивостіВасиль Тереховський
 
формати файлів текстових документів
формати файлів текстових документівформати файлів текстових документів
формати файлів текстових документівЛунга Лілія
 
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...StAlKeRoV
 
лекція 4.числові ряди.збіжність ряду
лекція 4.числові ряди.збіжність рядулекція 4.числові ряди.збіжність ряду
лекція 4.числові ряди.збіжність рядуcit-cit
 
презентація многогранники
презентація многогранникипрезентація многогранники
презентація многогранникиVasilij Goncharenko
 
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος Γ
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος ΓΒασικες γνωσεις λυκειου για ΕΑΠ - μέρος Γ
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος ΓMath Studies
 
Логарифми їх властивості
Логарифми їх властивостіЛогарифми їх властивості
Логарифми їх властивостіBogdan Stozhurskiy
 
Алгоритмізація та програмування
Алгоритмізація та програмуванняАлгоритмізація та програмування
Алгоритмізація та програмуванняt0hins
 

What's hot (20)

Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
Εισαγωγή στις αρχές της επιστήμης των ΗΥ κεφ 2 2 5
 
алгоритми
алгоритмиалгоритми
алгоритми
 
Команди і виконавці
Команди і виконавціКоманди і виконавці
Команди і виконавці
 
Threads 02: Acesso exclusivo e comunicação entre threads
Threads 02: Acesso exclusivo e comunicação entre threadsThreads 02: Acesso exclusivo e comunicação entre threads
Threads 02: Acesso exclusivo e comunicação entre threads
 
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
Урок 26 для 10 класу - Проектування та створення об'єктів мультимедіа.
 
Календарне планування 7 клас - Інформатика (Scratch)
Календарне планування 7 клас - Інформатика (Scratch)Календарне планування 7 клас - Інформатика (Scratch)
Календарне планування 7 клас - Інформатика (Scratch)
 
5 клас урок 27 нова програма
5 клас урок 27 нова програма5 клас урок 27 нова програма
5 клас урок 27 нова програма
 
ознака паралельності прямої і площини
ознака паралельності прямої і площиниознака паралельності прямої і площини
ознака паралельності прямої і площини
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмування
 
Оцінка трудомісткості і термінів проекту
Оцінка трудомісткості і термінів проектуОцінка трудомісткості і термінів проекту
Оцінка трудомісткості і термінів проекту
 
Урок 30. Величини (змінні і константи), їхні властивості
Урок 30. Величини (змінні і константи), їхні властивостіУрок 30. Величини (змінні і константи), їхні властивості
Урок 30. Величини (змінні і константи), їхні властивості
 
5 клас інформатика. всі уроки
5 клас інформатика. всі уроки5 клас інформатика. всі уроки
5 клас інформатика. всі уроки
 
формати файлів текстових документів
формати файлів текстових документівформати файлів текстових документів
формати файлів текстових документів
 
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...
2 клас 6 урок. Увімкнення та вимкнення комп'ютера та інших пристроїв. Робочий...
 
Частина_2
Частина_2Частина_2
Частина_2
 
лекція 4.числові ряди.збіжність ряду
лекція 4.числові ряди.збіжність рядулекція 4.числові ряди.збіжність ряду
лекція 4.числові ряди.збіжність ряду
 
презентація многогранники
презентація многогранникипрезентація многогранники
презентація многогранники
 
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος Γ
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος ΓΒασικες γνωσεις λυκειου για ΕΑΠ - μέρος Γ
Βασικες γνωσεις λυκειου για ΕΑΠ - μέρος Γ
 
Логарифми їх властивості
Логарифми їх властивостіЛогарифми їх властивості
Логарифми їх властивості
 
Алгоритмізація та програмування
Алгоритмізація та програмуванняАлгоритмізація та програмування
Алгоритмізація та програмування
 

More from Lesia Sobolevska

Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.
Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.
Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.Lesia Sobolevska
 
Моделювання на ЕОМ. Теоретичні питання моделювання.
Моделювання на ЕОМ. Теоретичні питання моделювання.Моделювання на ЕОМ. Теоретичні питання моделювання.
Моделювання на ЕОМ. Теоретичні питання моделювання.Lesia Sobolevska
 
Вступ в спеціальність 151 АКІТ. Лекція №4.
Вступ в спеціальність 151 АКІТ. Лекція №4.Вступ в спеціальність 151 АКІТ. Лекція №4.
Вступ в спеціальність 151 АКІТ. Лекція №4.Lesia Sobolevska
 
Вступ в спеціальність 151 АКІТ. Лекція №3.
Вступ в спеціальність 151 АКІТ. Лекція №3.Вступ в спеціальність 151 АКІТ. Лекція №3.
Вступ в спеціальність 151 АКІТ. Лекція №3.Lesia Sobolevska
 
Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.Lesia Sobolevska
 
Вступ в спеціальність 151 АКІТ
Вступ в спеціальність 151 АКІТВступ в спеціальність 151 АКІТ
Вступ в спеціальність 151 АКІТLesia Sobolevska
 
Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Lesia Sobolevska
 
Ai №7. Системи підтримки прийняття рішень.
Ai №7. Системи підтримки прийняття рішень.Ai №7. Системи підтримки прийняття рішень.
Ai №7. Системи підтримки прийняття рішень.Lesia Sobolevska
 
Ai №6. Експертні системи.
Ai №6. Експертні системи.Ai №6. Експертні системи.
Ai №6. Експертні системи.Lesia Sobolevska
 
Ai №5. Азиломарські принципи ШІ
Ai №5. Азиломарські принципи ШІAi №5. Азиломарські принципи ШІ
Ai №5. Азиломарські принципи ШІLesia Sobolevska
 
Моделювання на ЕОМ. Лекція №8. Теорія графів.
Моделювання на ЕОМ. Лекція №8. Теорія графів.Моделювання на ЕОМ. Лекція №8. Теорія графів.
Моделювання на ЕОМ. Лекція №8. Теорія графів.Lesia Sobolevska
 
Моделювання на ЕОМ. Лекція №7. Теорія графів.
Моделювання на ЕОМ. Лекція №7. Теорія графів.Моделювання на ЕОМ. Лекція №7. Теорія графів.
Моделювання на ЕОМ. Лекція №7. Теорія графів.Lesia Sobolevska
 
Принципы и проблемы построения Smart city
Принципы и проблемы построения Smart cityПринципы и проблемы построения Smart city
Принципы и проблемы построения Smart cityLesia Sobolevska
 
Интелектауальні системи та їх ПЗ №1-2
Интелектауальні системи та їх ПЗ №1-2Интелектауальні системи та їх ПЗ №1-2
Интелектауальні системи та їх ПЗ №1-2Lesia Sobolevska
 
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.Lesia Sobolevska
 
Моделювання на ЕОМ. Лекції №1-№3
Моделювання на ЕОМ. Лекції №1-№3Моделювання на ЕОМ. Лекції №1-№3
Моделювання на ЕОМ. Лекції №1-№3Lesia Sobolevska
 
Computers and Computing Works lecture №10
Computers and Computing Works lecture №10Computers and Computing Works lecture №10
Computers and Computing Works lecture №10Lesia Sobolevska
 
Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Lesia Sobolevska
 

More from Lesia Sobolevska (20)

Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.
Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.
Моделювання на ЕОМ. Теорія подібності. Рекурсія. Моделювання в реальному часі.
 
Моделювання на ЕОМ. Теоретичні питання моделювання.
Моделювання на ЕОМ. Теоретичні питання моделювання.Моделювання на ЕОМ. Теоретичні питання моделювання.
Моделювання на ЕОМ. Теоретичні питання моделювання.
 
Smart Slavutich Hacaton
Smart Slavutich HacatonSmart Slavutich Hacaton
Smart Slavutich Hacaton
 
Вступ в спеціальність 151 АКІТ. Лекція №4.
Вступ в спеціальність 151 АКІТ. Лекція №4.Вступ в спеціальність 151 АКІТ. Лекція №4.
Вступ в спеціальність 151 АКІТ. Лекція №4.
 
Вступ в спеціальність 151 АКІТ. Лекція №3.
Вступ в спеціальність 151 АКІТ. Лекція №3.Вступ в спеціальність 151 АКІТ. Лекція №3.
Вступ в спеціальність 151 АКІТ. Лекція №3.
 
Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.Вступ в спеціальність 151 АКІТ. Лекція №2.
Вступ в спеціальність 151 АКІТ. Лекція №2.
 
Вступ в спеціальність 151 АКІТ
Вступ в спеціальність 151 АКІТВступ в спеціальність 151 АКІТ
Вступ в спеціальність 151 АКІТ
 
Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.Ai №8. Штучні нейронні мережі.
Ai №8. Штучні нейронні мережі.
 
Ai №7. Системи підтримки прийняття рішень.
Ai №7. Системи підтримки прийняття рішень.Ai №7. Системи підтримки прийняття рішень.
Ai №7. Системи підтримки прийняття рішень.
 
Ai №6. Експертні системи.
Ai №6. Експертні системи.Ai №6. Експертні системи.
Ai №6. Експертні системи.
 
Ai №5. Азиломарські принципи ШІ
Ai №5. Азиломарські принципи ШІAi №5. Азиломарські принципи ШІ
Ai №5. Азиломарські принципи ШІ
 
Ai №4.
Ai №4.Ai №4.
Ai №4.
 
Моделювання на ЕОМ. Лекція №8. Теорія графів.
Моделювання на ЕОМ. Лекція №8. Теорія графів.Моделювання на ЕОМ. Лекція №8. Теорія графів.
Моделювання на ЕОМ. Лекція №8. Теорія графів.
 
Моделювання на ЕОМ. Лекція №7. Теорія графів.
Моделювання на ЕОМ. Лекція №7. Теорія графів.Моделювання на ЕОМ. Лекція №7. Теорія графів.
Моделювання на ЕОМ. Лекція №7. Теорія графів.
 
Принципы и проблемы построения Smart city
Принципы и проблемы построения Smart cityПринципы и проблемы построения Smart city
Принципы и проблемы построения Smart city
 
Интелектауальні системи та їх ПЗ №1-2
Интелектауальні системи та їх ПЗ №1-2Интелектауальні системи та їх ПЗ №1-2
Интелектауальні системи та їх ПЗ №1-2
 
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.
Моделювання на ЕОМ. Лекція №4. Теорія подабності. Рекурсія.
 
Моделювання на ЕОМ. Лекції №1-№3
Моделювання на ЕОМ. Лекції №1-№3Моделювання на ЕОМ. Лекції №1-№3
Моделювання на ЕОМ. Лекції №1-№3
 
Computers and Computing Works lecture №10
Computers and Computing Works lecture №10Computers and Computing Works lecture №10
Computers and Computing Works lecture №10
 
Computers and Computing Works lecture №9
Computers and Computing Works lecture №9Computers and Computing Works lecture №9
Computers and Computing Works lecture №9
 

Моделювання на ЕОМ. Задачі з теорії графів. Алгоритми на графах.

  • 1. Задачі з теорії графів. Алгоритми на графах. Для спеціальності 151 “Автоматизація та комп’ютерно- інтегровані технології”, КНУБА, 2018 Соболевська Л.Г. sobolevska@atp.in.ua +38 066 251 89 80 ЧИСЛОВІ МЕТОДИ ТА МОДЕЛЮВАННЯ НА ЕОМ
  • 2. Сім мостів Кеніґсберґа 2 КНУБА, ФАІТ, 2018
  • 3. Проблема семи мостів Кенігсберга 3 КНУБА, ФАІТ, 2018
  • 4. Проблема семи мостів Кенігсберга Эйлер прийшов до наступних висновків:  Число непарних вершин графа повинно бути парне. Не може існувати граф, що мав би непарне число непарних вершин.  Якщо всі вершини графа парні, то можна, не відриваючи олівця від паперу, накреслити граф, при цьому можна починати з будь-якої вершини графа й завершити його в тій же вершині.  Граф з більш ніж двома непарними вершинами неможливо накреслити одним розчерком. 4 КНУБА, ФАІТ, 2018
  • 5. Алгоритм пошуку в глибину  depth-first search, DFS  Крок 1. Всім вершин графа присвоюється значення не відвідана. Вибирається перша вершина і позначається як відвідана.  Крок 2. Для останньої поміченої як відвідана вершини вибирається суміжна вершина, яка є першою поміченою як не відвідана, і їй присвоюється значення відвідана. Якщо таких вершин немає, то береться попередня позначена вершина.  Крок 3. Повторити крок 2 до тих пір, поки всі вершини не будуть позначені як відвідані 5 КНУБА, ФАІТ, 2018
  • 6. Алгоритм пошуку в глибину 6 КНУБА, ФАІТ, 2018
  • 7. Алгоритм пошуку в глибину 7 КНУБА, ФАІТ, 2018 Вихідний граф Ліс обходу в глибину
  • 8. Класифікація ребер при обході в глибину  Дуги орієнтованого графа діляться на категорії залежно від їх ролі в обході в глибину. Це класифікація застосовується при вирішенні різних завдань, що базуються на методі обходу.  Дуги в цьому лісі класифікуються на наступні:  Дуги дерева - це безпосередньо дуги, з яких складається ліс, побудований в результаті обходу.  Зворотні дуги - це все дуги (u, v), що з'єднують вершину u з її предком v в одному з дерев лісу обходу в глибину. (Зустрічні дуги, що утворюють цикл довжини 2, можливі в орієнтованих графах, вважаються зворотними дугами також).  Прямі дуги - це дуги, що з'єднують вершину з її нащадком, але не входять в ліс обходу в глибину.  Перехресні дуги - це всі інші дуги орієнтованого графа, які не попали в одну з перерахованих вище категорій. Такі дуги, наприклад, можуть з'єднувати дві вершини одного дерева обходу, якщо жодна з цих вершин не є предком іншої. 8 КНУБА, ФАІТ, 2018
  • 9. Алгоритм пошуку в глибину 9 КНУБА, ФАІТ, 2018
  • 10. Алгоритм пошуку в глибину 10 КНУБА, ФАІТ, 2018
  • 11. Застосування методу обходу в глибину  1. Пошук лексикографічно найменшого шляху в графі з заданої вершини  2. Перевірка, чи є одна вершина дерева предком іншої  3. Топологічне сортування графа  4. Завдання LCA (знаходження найменшого спільного предка)  5. Перевірка орграфа на ациклічності і знаходження деякого циклу в графі  6. Пошук компонент сильної зв'язності в орграфі  7. Пошук мостів і точок зчленування в неорієнтованому графі 11 КНУБА, ФАІТ, 2018
  • 12. Алгоритм пошуку в ширину  Breadth-First Search, BFS  Крок 1. Всім вершин графа присвоюється значення не відвідана. Вибирається перша вершина і позначається як відвідана (і заноситься в чергу).  Крок 2. Відвідується перша вершина з черги (якщо вона не позначена як відвідана). Всі її сусідні вершини заносяться в чергу. Після цього вона видаляється з черги.  Крок 3. Повторюється крок 2 до тих пір, поки черга не порожня. 12 КНУБА, ФАІТ, 2018
  • 13. Алгоритм пошуку в ширину 13 КНУБА, ФАІТ, 2018
  • 14. Алгоритм пошуку в ширину 14 КНУБА, ФАІТ, 2018
  • 16. Задача комівояжера  Travelling Salesman Problem, TSP  знаходження найвигіднішого маршруту, що проходить через вказані міста.  критерій вигідності маршруту (найкоротший, найдешевший, сукупний критерій тощо)  Зазвичай маршрут повинен проходити через кожне місто тільки один раз.  Відноситься до класу NP-важких задач. 16 КНУБА, ФАІТ, 2018
  • 17. Методи розв’язку задачі комівояжера КНУБА, ФАІТ, 201817  повний перебор (brute force)  випадковий перебор  жадібні алгоритми  метод найближчого сусіда  метод включення найближчого міста  метод найдешевшого включення  метод мінімального остовного дерева  метод імітації відпалу
  • 18. Жадібний алгоритм  Greedy algorithm  алгоритм, що полягає в прийнятті локально оптимальних рішень на кожному етапі, допускаючи, що кінцеве рішення також виявиться оптимальним. 18 КНУБА, ФАІТ, 2018
  • 19. Алгоритм імітації відпалу КНУБА, ФАІТ, 201819  (Simulated annealing) - загальний алгоритмічний метод вирішення задачі глобальної оптимізації, особливо дискретної і комбінаторної оптимізації.  Один із прикладів методів Монте-Карло.  Використання:  Навчання нейронних мереж  Рішення комбінаторних задач  Рішення задачі комівояжера
  • 21. Мурашиний алгоритм КНУБА, ФАІТ, 201821  алгоритм оптимізації наслідуванням мурашиної колонії, Ant colony optimization, ACO.  один з ефективних поліноміальних алгоритмів для знаходження наближених рішень задачі комівояжера, а також вирішення аналогічних завдань пошуку маршрутів на графах.  Перша версія алгоритму, запропонована доктором наук Марко Дориго в 1992 році, була спрямована на пошук оптимального шляху в графі.
  • 22. Мурашиний алгоритм КНУБА, ФАІТ, 201822 Умова виходу Ініціалізація мурах Додаткові дії Оновлення феромону Пошук рішення
  • 23. Задача про кліку.  Задача про кліку відноситься до класу NP- повних задач.  Вперше вона була сформульована в 1972 році Річардом Карпом.  Клікою в неорієнтованому графі називається підмножина вершин, кожні дві з яких з'єднані ребром графа.  Іншими словами, це повний підграф початкового графа.  Розмір кліки визначається як число вершин в ній. 23 КНУБА, ФАІТ, 2018
  • 24. Задача про кліку КНУБА, ФАІТ, 201824  задача розпізнавання  Потрібно визначити, чи існує в заданому графі G кліка розміру k.  Обчислювальна задача  знайти в заданому графі G кліку максимального розміру. 1 3 5 6 4 2
  • 25. Розфарбування графів  Хроматичної число графа G - мінімальне число кольорів, в які можна розфарбувати вершини графа G так, щоб кінці будь-якого ребра мали різні кольори. Зазвичай позначається χ (G).  Розфарбувати можна:  Вершини;  Ребра. 25 КНУБА, ФАІТ, 2018
  • 30. Властивості мінімального остову.  Мінімальний остов унікальний, якщо ваги всіх ребер різні. В іншому випадку, може існувати кілька мінімальних остовів (конкретні алгоритми зазвичай отримують один з можливих остовів).  Мінімальний остов є також і остовом з мінімальним добутком ваг ребер. (Доводиться це легко, досить замінити ваги всіх ребер на їх логарифми).  Мінімальний остов є також і остовом з мінімальною вагою найважчого ребра. (Це твердження випливає з справедливості алгоритму Крускала) 30 КНУБА, ФАІТ, 2018
  • 31. Алгоритм Крускала  (або алгоритм Краскала) - ефективний алгоритм побудови мінімального остовного дерева зваженого зв'язного неорієнтованого графа. Алгоритм вперше описаний Джозефом Крускалом в 1956 році.  Формулювання.  Спочатку поточна множина ребер встановлюється порожньою. Потім, поки це можливо, проводиться наступна операція: з усіх ребер, додавання яких до вже наявної множини не викличе появу в ній циклу, вибирається ребро мінімальної ваги і додається до вже наявної множини. Коли таких ребер більше немає, алгоритм завершений. Підграф даного графа, що містить всі його вершини і знайдену множину ребер є його остовним деревом мінімальної ваги. 31 КНУБА, ФАІТ, 2018
  • 35. Алгоритм Прима  Алгоритм Прима - алгоритм побудови мінімального остовного дерева зваженого зв'язного неорієнтованого графа. Алгоритм вперше був відкритий в 1930 році чеським математиком Войцехом Ярніка, пізніше перевідкритий Робертом Прима в 1957 році, і, незалежно від них, Е. Дейкстрой в 1959 році.  Формулювання.  На вхід алгоритму подається зв'язний неорієнтований граф. Для кожного ребра задається його вага.  Спочатку береться довільна вершина і знаходиться ребро, інцидентне даній вершині із найменшою вагою. Знайдене ребро і дві вершини з'єднані їм утворюють дерево. Потім, розглядаються ребра графа, один кінець яких - вже належить дереву, а інший - ні; з цих ребер вибирається ребро найменшої вартості. Обране на кожному кроці ребро приєднується до дерева. Таким чином, при виконанні кожного кроку алгоритму, висота формованого дерева збільшується на 1. Зростання дерева відбувається до тих пір, поки не будуть вичерпані всі вершини вихідного графа.  Результатом роботи алгоритму є мінімальний остов. 35 КНУБА, ФАІТ, 2018
  • 38. Алгоритм Борувки  це алгоритм знаходження мінімального остовного дерева в графі.  Вперше був опублікований в 1926 році Отакаром Борувка як метод знаходження оптимальної електричної мережі в Моравії. Кілька разів був перевідкритий, наприклад Флорек, Перкаль і Солліне. Останній, крім того, був єдиним західним ученим з цього списку, і тому алгоритм часто називають алгоритмом Солліне, особливо в літературі з паралельних обчислень.  Формулювання.  Робота алгоритму складається з декількох ітерацій, кожна з яких складається з послідовного додавання ребер до остовного лісу графа, до тих пір, поки ліс не перетвориться в дерево, тобто, ліс, що складається з однієї компоненти зв'язності. 38 КНУБА, ФАІТ, 2018
  • 40. Алгоритми пошуку найкоротшого шляху  Алгоритм Дейкстри (Dijkstra's algorithm) - алгоритм на графах, винайдений нідерландським вченим Едсгером Дейкстрою в 1959 році.  Знаходить найкоротші шляхи від однієї з вершин графа до всіх інших.  Алгоритм працює тільки для графів без ребер негативного ваги. Алгоритм широко застосовується в програмуванні і технологіях, наприклад, його використовують протоколи маршрутизації OSPF і IS-IS. 40 КНУБА, ФАІТ, 2018
  • 41. Алгоритм Дейкстри КНУБА, ФАІТ, 201841  Дан зважений орієнтований граф без дуг негативного ваги. Знайти найкоротші шляхи від деякої вершини графа до всіх інших вершин цього графа.  Кожній вершині з V зіставимо мітку - мінімальна відома відстань від цієї вершини до a. Алгоритм працює покроково - на кожному кроці він «відвідує» одну вершину і намагається зменшувати мітки. Робота алгоритму завершується, коли всі вершини відвідані.  Ініціалізація. Мітка самої вершини a покладається рівною 0, мітки інших вершин - нескінченності. Це відображає те, що відстані від a до інших вершин поки невідомі. Всі вершини графа позначаються як невідвідані.  Крок алгоритму. Якщо всі вершини відвідані, алгоритм завершується. В іншому випадку, з ще не відвіданих вершин вибирається вершина u, що має мінімальну позначку. Ми розглядаємо різні маршрути, в яких u є передостаннім пунктом. Вершини, в які ведуть ребра з u, назвемо сусідами цієї вершини. Для кожного сусіда вершини u, крім позначених відвіданими, розглянемо нову довжину шляху, що дорівнює сумі значень поточної мітки u і довжини ребра, що з'єднує u з цим сусідом. Якщо отримане значення довжини менше значення мітки сусіда, замінимо значення мітки отриманим значенням довжини. Розглянувши всіх сусідів, відмітимо вершину u як відвідану і повторимо крок алгоритму.
  • 45. Алгоритм хвильового трасування  хвильовий алгоритм, алгоритм Лі  алгоритм пошуку шляху, алгоритм пошуку найкоротшого шляху на планарному графі.  Належить до алгоритмів, заснованих на методах пошуку в ширину. 45 КНУБА, ФАІТ, 2018
  • 46. Виконання хвильового алгоритму в околицях Фон Неймана 10 9 8 7 6 7 8 9 10 11 12 13 9 8 5 6 7 8 12 8 7 4 5 6 7 8 9 10 11 7 6 5 4 3 4 5 6 7 8 9 10 6 5 4 3 2 3 4 5 6 7 8 9 7 1 2 3 9 10 6 0 1 2 8 9 5 4 3 2 1 2 3 4 5 6 7 8 46 КНУБА, ФАІТ, 2018
  • 47. Виконання хвильового алгоритму в околицях Мура 6 6 6 6 6 6 6 6 6 7 8 8 5 5 5 5 5 5 7 5 4 4 4 4 4 4 5 6 7 5 4 3 3 3 3 3 3 4 5 6 7 5 4 3 2 2 2 2 3 4 5 6 7 5 1 1 2 6 7 5 0 1 2 6 7 4 3 2 1 1 1 2 3 4 5 6 7 47 КНУБА, ФАІТ, 2018