Чи є проблеми, чий найвідоміший алгоритм запустив час роботи


18

Я ніколи раніше не бачив алгоритм із журналом у знаменнику, і мені цікаво, чи є справді корисні алгоритми з цією формою?

Я розумію багато речей, які можуть спричинити множення журнального фактору за час виконання, наприклад, сортування або алгоритми на основі дерева, але що може спричинити поділ на коефіцієнт журналу?


24
Mergesort, з f(n)=nlog2н .
Jeffε

12
@ Jɛ ff E snarky Mcsnarkster
Суреш Венкат

5
Сортування Radix - це дійсно O(nlogn/logn) . Що відбувається далі, це те, що через випадковий доступ ви можете зберегти фактор журналу ....
Саріель Хар-Пелед

Цікаво, чи може теорема ієрархії DTIME використовуватись як аргумент щодо існування таких алгоритмів, враховуючи, що можна зробити подібний трюк економії простору в моделі оперативної пам'яті.
chazisop

Відповіді:


41

Звичайна відповідь на те, "що може спричинити вас до поділу журналом?" це поєднання двох речей:

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

Я думаю, що є багато прикладів, але класичним прикладом є алгоритм чотирьох росіян для найдовших загальних підрядів і т. Д. Він насправді закінчується , оскільки він використовує ідею упаковки бітів, але потім економить секунду фактор журналу, використовуючи іншу ідею: заміна блоків бітних операцій O ( log 2 n ) одним пошуком таблиці.O(n2/log2n)O(log2n)


35

Кубик Рубіка - дуже природний (і для мене несподіваний) приклад. н×н×н куба вимагає Θ(n2/logn) кроки , щоб вирішити. (Зверніть увагу, що це тета-позначення, тому це щільна верхня і нижня межа).

Це показано в цій роботі [1].

Можливо, варто згадати, що складність вирішення конкретних примірників куба Рубіка є відкритою, але можна припустити, що вона буде важкою для NP (обговорюється тут, наприклад, NP NP ) [2]. Алгоритм Θ(n2/logn) гарантує рішення, і він гарантує, що всі рішення є асимптотично оптимальними, але можуть не вирішувати конкретні екземпляри оптимально. Ваше визначення корисного може не застосовуватись тут, оскільки кубики Рубіка, як правило, не вирішені за допомогою цього алгоритму (алгоритм Коцімба, як правило, використовується для маленьких кубів, оскільки він дає швидкі, оптимальні рішення на практиці).

[1] Ерік Д. Демейн, Мартін Л. Демен, Сара Айзенстат, Анна Любів та Ендрю Уінслоу. Алгоритми розв’язування кубиків Рубіка. Матеріали 19-го щорічного європейського симпозіуму з алгоритмів (ESA 2011), 5–9 вересня 2011 р., Стор. 689–700

[2] Ерік Д. Демен, Сара Ейзенштат та Михайло Рудой. Оптимально вирішити кубик Рубіка оптимально. Матеріали 35-го Міжнародного симпозіуму з теоретичних аспектів інформатики (STACS 2018), 28 лютого - 3 березня 2018 р., Сторінки 24: 1-24: 13.


16

Прикладом відображається в знаменнику без біткових трюкових пакувальних робіт, є нещодавній документ Агарвал, Бен Аврахам, Каплан та Шарір про обчислення дискретної відстані Фреше між двома полігональними ланцюгами за час O ( n 2 журнал журналу n / log n ) . Хоча я не знайомий з деталями алгоритму, одна загальна хитрість - розділити вклад на порівняно невеликі шматки, а потім вміло поєднати відповіді (звичайно, це звучить як ділити і перемагати, але ти не отримуєш журнал n в знаменнику з якимись хитрими хитрощами)lognO(n2loglogn/logn)


5
Це більш складний екземпляр техніки "Чотирьох росіян", описаної у відповіді Девіда.
Jeffε

13

Не зовсім те, про що ви просили, але ситуація "в дикій природі", коли в знаменнику з'являється коефіцієнт журналу, - це папір " Галька і програми розгалуження для оцінки дерева " Стівена Кука, П'єра Маккензі, Дастіна Вер, Марка Бравермана та Рахул Сантанам.

Проблема оцінювання дерев (TEP) полягає в: заданому дереві відміченого значеннями { 1 , , k } на листках і функціях { 1 , , k }d{1,,k} на внутрішніх вузлах , оцініть дерево. Тут кожен внутрішній вузол отримує значення своєї анотованої функції щодо значень своїх дітей. Це проста проблема, і справа полягає в тому, щоб показати, що її неможливо вирішити в логарифмічному просторі (коли висота дерева є частиною введення). Для цього нас цікавить розмір програм розгалуження, що вирішують TEP.{1,,k}d{1,,k}

У Розділі 5 представлені жорсткі межі для дерев висотою 3, як для TEP, так і для відповідної проблеми BEP, в якій вихід деяким чином згортається до . Для TEP пов'язана дорівнює Θ ( k 2 d - 1 ) , тоді як для BEP прив'язка дорівнює Θ ( k 2 d - 1 / log k ) , тобто ви отримуєте економію log k .{0,1}Θ(k2d1)Θ(k2d1/logk)logk


12

Незважаючи на те, що мова йде не про час виконання, я вважав, що варто згадати класичний результат Хопкрофта, Пола та Валіанта: [1], оскільки він все ще в дух "що може змусити вас зберегти фактор журналу".TIME[t]SPACE[t/logt]

Це дає безліч прикладів проблем, найвідоміша верхня межа про складність простору має журнал у знаменнику. (В залежності від вашої точки зору, я думаю, що або робить цей приклад дуже цікавим - яка дивовижна теорема! - або дуже нецікавим - це, мабуть, не "насправді корисно".)

[1] Хопкрофт, Пол і Валіант. Про час та простір . J. ACM 24 (2): 332-337, 1977.



8

Найвідоміший алгоритм обчислення відстані редагування (він же Левенштейн) між двома рядками довжиною займає час O ( ( n / log n ) 2 ) :nO((n/logn)2)

Вільям Дж. Масек, Майк Патерсон: Швидший алгоритм обчислювальних рядків Редагування відстаней. J. Comput. Сист. Наук. 20 (1): 18-31 (1980).


4
Знову ж таки, це є варіацією алгоритму «Чотири росіяни».
Девід Еппштейн

7

Θ(n/logn) відображається як правильна межа для проблеми, розглянутої Грегом та Полом Валіантом (немає підключення до бітових хитрощів):

Грегорі Валіант та Пол Валіант, Сила лінійних оцінювачів, 2011. У 52-му щорічному симпозіумі IEEE про основи інформатики, FOCS 2011.


7

Ось ще один приклад жорсткої межі, що має коефіцієнт журналу. (Це теорема 6.17 від булевої функції складності: аванси та межі Стасіса Юкна.)

Розмір формули (над повною бінарною основою або де-де-Моргановою) проблемою розрізнення елемента становить , де nΘ(n2/logn)n - кількість біт на вході.

Причина, що коефіцієнт журналу з'являється в знаменнику, полягає в тому, що для представлення цілих чисел між 1 і poly ( m ) потрібно n : = O ( m log m ) бітів, оскільки кожне ціле число вимагає бітів O ( log m ) . Отже, верхня межа, яка виглядає природно в m , як Θ ( m 2 log m ) , стає Θ ( n 2 / log n )mpoly(m)n:=O(mlogm)O(logm)mΘ(m2logm)Θ(n2/logn) , коли виражається через , де n - кількість бітів на вході.nn


2

Пошук простих факторів n шляхом пробного поділу, коли список простих чисел уже подано. Є праймес менший ніж n, тому якщо ці прайми надані вам, то пробний поділ n на кожен з них приймаєθ(nθ(nlog(n))(припустимо, що поділ є операцією постійного часу)θ(nlog(n))


3
2n/lognn
Yuval Filmus

-2

O(f(n))O(f(n)logf(n)) DTIME, due to the time hierarchy theorem. so this applies to a linear DTIME algorithm that exists, f(n)=n, that runs impossibly in O(nlogn) DTIME.


2
on a TM, DTIME(n/logn) is trivial as it doesn't allow the machine to read the whole input. also, the DTIME notation makes the big-oh notation unnecessary.
Sasho Nikolov

?? there is still theory for sublinear time algorithms...
vzn

3
sublinear algorithms make sense in oracle & random access models. DTIME is standardly defined w.r.t. multitape TM, and that's the definition used in the hierarchy theorem for DTIME.
Sasho Nikolov

1
No, @SashoNikolov, DTIME(n/logn) is not trivial. Compare "Are the first n/lgn bits of the input all zeros?" with "Do the first n/lgn bits of the input encode a satisfiable boolean formula?"
Jeffε

5
@JɛffE: You cannot test “Are the first n/lgn bits of the input all zeros?” in O(n/logn) time on a TM, since you do not know what n is without first reading the whole input, which takes time n. It is a standard fact that if f(n)<n, then DTIME(f(n)) contains only languages the membership in which can be determined from the first k bits of input for a constant k (and therefore are computable in constant time).
Emil Jeřábek supports Monica
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.