Складність з’єднання-знаходження з контур-стисненням, без рангу


10

У Вікіпедії сказано, що об'єднання за рангом без стиснення траєкторії дає амортизовану часову складність , і що об'єднання за ступеневим, так і стисненим шляхом дає амортизовану часову складність (де є обернена функція Акермана). Однак у ньому не згадується час запуску стиснення контуру без рангового об'єднання, що зазвичай я реалізую сам.O(logn)O(α(n))α

Яка амортизована часова складність об'єднання-пошуку з оптимізацією шляху стиснення, але без об'єднання за ранговою оптимізацією?


5
Зауважимо, що - обернена функція Акермана, а не . Тут "обернена" означає зворотну як функцію, а не зворотну: тобто, якщо , , а не . α(n)1/A(n,n))f(n)=A(n,n)α(n)=f1(n)1/f(n)
DW

Я розумію, що це відносно давнє запитання, але дивіться мою відповідь та відповідний документ: epubs.siam.org/doi/abs/10.1137/S0097539703439088 . Можливо, я пропустив деталь чи дві деталі під час копіювання за межі. У такому випадку, будь ласка, запропонуйте редагувати :-)
BearAqua,

Відповіді:


4

У 2005 році Сейдель і Шарір довели, що використання стиснення траєкторії з довільним зв’язком приблизно на операціях має складність приблизно .mO((m+n)log(n))

Див. [1], розділ 3 (Довільне зв’язування): Нехай позначає час виконання об'єднання-знаходження з операціями та елементами. Вони довели наступне:f(m,n)mn

П. 3.1. Для будь-якого цілого маємо .k>1f(m,n)(m+(k1)n)logk(n)

Згідно з [1], встановлення дає .k=m/n+1

f(m,n)(2m+n)logm/n+1n

Аналогічне обмеження було надано за допомогою більш складного методу Тарджана та Ван Ліувена в [2], Розділ 3:

Лема 7 із [2]. Припустимо, . У будь-якій послідовності заданих операцій, реалізованих за допомогою будь-якої форми ущільнення та наївного зв’язку, загальна кількість вузлів на шляхах пошуку становить не більше При наполовину та наївному зв’язуванні загальна кількість вузлів на шляхах пошуку становить не більше .mn(4m+n)log1+m/nn(8m+2n)log1+m/n(n)

Лемма 9 із [2]. Припустимо, . У будь-якій послідовності заданих операцій, здійснених за допомогою стиснення та наївного зв’язку, загальна кількість вузлів на контурах пошуку становить щонайбільше .m<nn+2mlogn+m

[1]: Р. Сейдель та М. Шарір. Аналіз згори вниз стиснення контуру. Сіам Дж. Обчислювальна техніка, 2005, Вип. 34, № 3, стор 515-525.

[2]: Р. Тарджан та Дж. Ван Левен. Найгірший аналіз заданих алгоритмів союзу. J. ACM, Vol. 31, № 2, квітень 1984 р., С. 245-281.


2

Я не знаю, що таке амортизований час роботи, але я можу навести одну можливу причину, чому в деяких ситуаціях ви хочете використовувати обидва, а не просто стиснення контуру: найгірший час виконання операції якщо ви використовуєте просто стиснення контуру, що набагато більше, ніж якщо ви використовуєте обидва об'єднання за рангом і стисненням контуру.Θ(n)

Розглянемо послідовність операцій Союзу, зібраних злісно, ​​щоб отримати дерево глибиною (це лише послідовний шлях вузлів, де кожен вузол є дочірньою частиною попереднього вузла). Тоді виконання однієї операції пошуку на найглибшому вузлі займає час. Таким чином, найгірший час роботи за операцію - .nn1Θ(n)Θ(n)

На противагу цьому, при оптимізації об'єднання за рангом, найгірший час роботи на одну операцію становить : жодна операція не може зайняти більше часу, ніж . Для багатьох застосувань це не має значення: матиме значення лише загальний час виконання всіх операцій (тобто амортизований час виконання), а не найгірший час для однієї операції. Однак у деяких випадках може мати значення найгірший час на одну операцію: наприклад, скорочення часу на найгірший випадок на одну операцію доO(logn)O(logn)O(logn) може бути корисним в інтерактивному додатку, де ви хочете переконатися, що жодна операція не може спричинити тривалу затримку (наприклад, ви хочете, щоб гарантія того, що жодна операція не може спричинити замерзання програми на тривалий час) або в режимі реального часу додаток, де ви хочете гарантувати, що ви завжди будете виконувати гарантії в режимі реального часу.

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