Слайд 2Сфери застосування алгоритмів пошуку найкоротших шляхів
Пошук шляхів на мапах міст та країн
Пошук
![Сфери застосування алгоритмів пошуку найкоротших шляхів Пошук шляхів на мапах міст та](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-1.jpg)
маршрутів для передачі даних у мережах
Пошук маршрутів у інших задачах, де доцільно використовувати графи
Слайд 3Види алгоритмів пошуку найкоротших шляхів
Пошук шляху із однієї заданої точки в іншу
![Види алгоритмів пошуку найкоротших шляхів Пошук шляху із однієї заданої точки в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-2.jpg)
(алгоритм A*, etc)
Пошук шляхів із однієї заданої точки до усіх інших (алгоритм Дейкстри, алгоритм Белмана-Форда, etc)
Пошук шляхів між усіма парами точок на графі(алгоритм Флойда-Уоршала, алгоритм Джонсона, etc)
Слайд 4Постановка завдання
Розробити алгоритм пошуку найкоротших шляхів для кожної пари точок на графі
![Постановка завдання Розробити алгоритм пошуку найкоротших шляхів для кожної пари точок на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-3.jpg)
із кластерною топологією
Розроблений алгоритм повинен мати меншу за
складність на графі із кластерною топологією
Слайд 5Алгоритм Флойда-Уоршала
Базується на переборі усіх вершин i, j, k та перевірці умови:
Якщо
![Алгоритм Флойда-Уоршала Базується на переборі усіх вершин i, j, k та перевірці](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-4.jpg)
найкоротший шлях між i та j проходить через вершину k, то відстані від i до k та від j до k додаються
Інакше обирається інша k та продовжується пошук
Пункти 1 та 2 повторюються у циклі по усьому графу
Слайд 6Існуючі спроби рішень
Паралелізація алгоритму на декількох процесорах
Модифікації алгоритму
Рекурсивне обрання підматриць, відновлення
![Існуючі спроби рішень Паралелізація алгоритму на декількох процесорах Модифікації алгоритму Рекурсивне обрання](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-5.jpg)
результату через FMM
Слайд 7Кластерна топологія графів
У звичайному графі вершини
зв'язані одна з одною як завгодно,
без
![Кластерна топологія графів У звичайному графі вершини зв'язані одна з одною як](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-6.jpg)
строгого порядку.
Під кластерною топологією будемо
розуміти існування угруповання
вершин на графі, зв’язаних одна з
одною значно більшою кількістю
ребер, ніж із іншими такими
угрупованнями.
Слайд 8Ідея алгоритму
Алгоритм базується на принципі divide and conquer - розділяй та володарюй.
Розіб’ємо
![Ідея алгоритму Алгоритм базується на принципі divide and conquer - розділяй та](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-7.jpg)
задачу на підзадачи, що будуть мати меншу розмірність, а потім проведемо певні дії для одержання суцільного результату
Слайд 9Зовнішній каркас графа
За умовою наявності кластерної топології, лише через малу кількість вершин
![Зовнішній каркас графа За умовою наявності кластерної топології, лише через малу кількість](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-8.jpg)
одного кластеру можна потрапити до іншого кластеру.
Будемо називати усі ці вершини зовнішнім каркасом графа.
Слайд 10Опис алгоритму
Знаходження усіх найкоротших шляхів всередині кожного з кластерів
Знаходження усіх найкоротших шляхів
![Опис алгоритму Знаходження усіх найкоротших шляхів всередині кожного з кластерів Знаходження усіх](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-9.jpg)
на зовнішньому каркасі графа
Знаходження усіх найкоротших шляхів між точками з одного кластеру до точок з кожного іншого кластеру
Слайд 11Математична оцінка складності алгоритму
Позначення:
Кількість вершин у всьому графі – N
Кількість кластерів –
![Математична оцінка складності алгоритму Позначення: Кількість вершин у всьому графі – N](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-10.jpg)
К
Кількість вершин у i-тому кластері графа –
(де i = 1..K )
Кількість зовнішніх точок – op
Кількість зовнішніх шляхів – ops
Слайд 12Математична оцінка складності алгоритму
Для кожного кластера застосувати алгоритм Флойда-Уоршала –
Для зовнішніх точок
![Математична оцінка складності алгоритму Для кожного кластера застосувати алгоритм Флойда-Уоршала – Для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-11.jpg)
застосувати алгоритм Флойда-Уоршала –
Пошук шляхів між кластерами –
Результуюча формула:
Слайд 13Аналіз моделі
Спрощена оцінка при гіпотезі рівновеликих кластерів:
Підвищення ефективної кількості зовнішніх точок
![Аналіз моделі Спрощена оцінка при гіпотезі рівновеликих кластерів: Підвищення ефективної кількості зовнішніх](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-12.jpg)
із ростом числа справжніх кластерів у графі
Слайд 14Аналіз моделі
Зменшення долі ефективної кількості зовнішніх вершин у графі залежно від кількості
![Аналіз моделі Зменшення долі ефективної кількості зовнішніх вершин у графі залежно від кількості кластерів](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-13.jpg)
кластерів
Слайд 15Вибір мови програмування
Враховуючи основну вимогу до алгоритму – швидкодію, для реалізації було
![Вибір мови програмування Враховуючи основну вимогу до алгоритму – швидкодію, для реалізації](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-14.jpg)
вирішено обрати мову С++
Переваги С++:
Відсутність віртуального середовища обробки
Прямі операції з пам'яттю на рівні мови
Наявність допоміжних алгоритмів STL
Слайд 16Результати роботи програми
На вхід було запропоновано:
Граф із більш ніж 1800 точок мапи
![Результати роботи програми На вхід було запропоновано: Граф із більш ніж 1800](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-15.jpg)
України
Автоматично згенеровані графи
На виході було отримано:
Однакові матриці шляхів за звичайним алгоритмом Флойда-Уоршала та розробленою модифікацією
Час виконання модифікованого алгоритму виявився меншим при вдало обраних кластерах
Слайд 17Фрагмент таблиці тестувань часу роботи
![Фрагмент таблиці тестувань часу роботи](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-16.jpg)
Слайд 18Висновки
Реалізовано алгоритм пошуку найкоротших шляхів між усіма парами точок на графі із
![Висновки Реалізовано алгоритм пошуку найкоротших шляхів між усіма парами точок на графі](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-17.jpg)
кластерною топологією.
Проведено тестування, в ході якого виявлено зменшення часу виконання у модифікованому алгоритмі.
Приведено повну та спрощену оцінки складності алгоритму, на базі спрощеної проведено аналіз алгоритму.
Результати роботи можуть бути використані у будь-якій сфері, де встає необхідність пошуку найкоротших шляхів на графі, якщо його топологія кластерна.
Слайд 21Недоліки автоматичних алгоритмів кластеризації у розглянутій задачі
Невідома кількість кроків => обчислювальна складність
![Недоліки автоматичних алгоритмів кластеризації у розглянутій задачі Невідома кількість кроків => обчислювальна](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382009/slide-20.jpg)
(k-means, forel, etc)
Невідповідність початковим припущенням алгоритмів реальних графів (EM, SEM, etc)
Відома занадто велика складність алгоритмів (KRAB, etc)
Невідповідність визначенню кластерної топології(найкоротший незамкнений шлях)