Поглиблений аналіз модифікованого алгоритму Борівки


11

Алгоритм Борівки - один із стандартних алгоритмів для обчислення мінімального діапазону дерева для графа , при .G=(V,E)|V|=n,|E|=m

Псевдокод:

MST T = empty tree
Begin with each vertex as a component
While number of components > 1
    For each component c
       let e = minimum edge out of component c
       if e is not in T
           add e to T  //merging the two components connected by e

Кожну ітерацію зовнішньої петлі ми називаємо круглою. У кожному раунді внутрішня петля розрізає кількість компонентів хоча б навпіл. Тому існує максимум раундів. У кожному раунді внутрішня петля дивиться на кожен край максимум двічі (один раз з кожного компонента). Тому час роботи не більше .O(logn)O(mlogn)

Тепер припустимо, що після кожного раунду ми видаляємо всі ребра, які з'єднують лише вершини в межах одного компонента, а також видаляємо дублікати країв між компонентами, щоб внутрішня петля дивилася лише на деяку кількість ребер m '<m, які є ребрами мінімальної ваги, які підключіть два раніше відключені компоненти.

Як ця оптимізація впливає на час роботи?

Якби ми якось знали, що в кожному раунді воно скоротить кількість ребер навпіл, то час роботи значно покращиться: .T(m)=T(m/2)+O(m)=O(m)

Однак, хоча оптимізація різко зменшить кількість обстежених ребер (лише один край на останньому раунді, і не більше # компонентів вибирають 2 загалом), не ясно, як / якщо ми можемо використовувати цей факт для посилення аналізу часу виконання.


У гіршому випадку (ланцюжок) ви видалите рівно один край на раунд, тому не можете використовувати цей факт для покращення меж для загального графіка. Ви можете розглянути, наприклад, лише повні графіки.
Xodarap

@Xodarap, якщо - простий шлях (це те, що ви маєте на увазі ланцюгом?), То в першому раунді ви вибираєте принаймні половину ребер. Ці краї видаляються з наступних раундів. G
Джо

Зауважте, що ви можете використовувати одну з високооптимізованих структур пошуку об'єднання для вдосконалення цього алгоритму.
Рафаель

Відповіді:


5

|Е|3|V|-6|Е|=О(|V|)

Довідка:

  • Магістр дисертації, Клод Андерсон (на стор. 100 описано найгірший виклад алгоритму Борівки). [посилання]

  • "Два лінійних алгоритми часу для MST для другорядних закритих графіків класів". Archivum mathematicum 40 (3): 315–320, 2004. [посилання]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.