Визначення діаметра графа
Зміст
1 Властивості та структура алгоритму
1.1 Загальний опис алгоритму
Діаметромнеорієнтованого графа називається максимальна довжина найкоротшого шляху між двома вершинами. Класичний спосіб визначення діаметра – виконати пошук завширшки від усіх вершин, тоді діаметр дорівнює максимальному зі знайдених відстаней. Складність такого підходу становить [math]O(mn)[/math] , і в гіршому випадку (наприклад, коли граф є циклом) цю оцінку, мабуть, не можна поліпшити.
АлгоритмiFUB[1] (англ.iterativeFringe Upper Bound) дозволяє зменшити кількість викликів алгоритму пошуку завширшки. Для багатьох реальних графів буде достатньо декількох викликів і загальна складність буде близька до лінійної [math]O(m)[/math] .
1.2 Математичне опис алгоритму
1.3 Обчислювальне ядро алгоритму
1.4 Макроструктура алгоритму
1.5 Схема реалізації послідовного алгоритму
1.6 Послідовна складність алгоритму
Послідовна складність алгоритмуiFUB дорівнює [math]O(Bm)[/math] , де [math]B[/math] – кількість викликів алгоритму пошуку завширшки, складність кожного виклику [math]O(m )[/math] . У найгіршому випадку (граф є циклом) [math]B = n[/math] і загальна складність дорівнює [math]O(mn)[/math] , проте для багатьох реальних графів [math]B = O(1)[/ math] та загальна складність складає [math]O(m)[/math] .
1.7 Інформаційний граф
1.8 Ресурс паралелізму алгоритму
1.9 Вхідні та вихідні дані алгоритму
Вхідні дані: неорієнтований граф [math](V, E)[/math] ([math]n[/math] вершин [math]v_i[/math] та [math]m[/math] ребер).
Обсяг вхідних даних: [math]O(m + n)[/math] .
Вихідні дані: діаметр графа [math](V,E)[/math] .
Обсяг вихідних даних: [math]O(1)[/math] .