Які проблеми є, коли ми знаємо, що у нас є оптимальний алгоритм?


15

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

І як це доведено?


11
Тюрінг-машина - це хитра модель для нижньої межі. Зміна defn може змінити поліном під час виконання, тому вам потрібно бути трохи більш конкретним.
Суреш Венкат

Як ви визначаєте нетривіальне?
funkstar

1
Як каже Суреш, вид ТМ, який ви використовуєте, впливає. Я здогадуюсь, що для мови паліндромів (слів, які ви можете прочитати назад), у нас є оптимальна 1-стрічка TM, яка робить кроки O(n2) для вирішення мови. А для 2-стрічкових ТМ воно вирішується в лінійний час, таким чином, вкрай оптимальним.
Бруно

Відповіді:


18

Будь-який алгоритм, який займає лінійний час і повинен читати весь його вхід, повинен бути асимптотично оптимальним. Аналогічно, як зауважує Рафаель, оптимальним є будь-який алгоритм, час виконання якого є таким же порядком, як розмір виводу.


10
Аналогічно, будь-який алгоритм, час виконання якого є таким же порядком, як розмір виводу, є оптимальним.
Рафаель

9
Я вважаю, що ця відповідь і коментар, що слідує за нею, є повним сучасним рівнем.
Jeffε

9
Добре, що це було
невтішно

1
Для запису коментар Jɛ ff E, схоже, посилається на відповідь Шира нижче.
Андраш Саламон

1
Я мав на увазі відповідь Макса, а не Шира, і коментар Рафаеля щодо відповіді Макса.
Jeffε

8

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

Мінусом є, однак, що ця міра складності майже виправдано використовується при квантовій обробці інформації, оскільки забезпечує простий спосіб довести розрив між квантовою та класичною обчислювальною потужністю. Найвідоміший квантовий алгоритм у цій структурі - алгоритм Гровера . З огляду на двійкову рядок для якої існує одинарна i така, що x i = n , вам потрібно знайти i . Класично (без квантового комп'ютера) оптимальним є найтривіальніший алгоритм: вам потрібно запитувати цю рядок в середньому n / 2 рази, щоб знайтиx1,,xnixi=nin/2 . Гровер надав квантовий алгоритм, який робить це в O ( iзапити до рядка. Це також було доведено оптимальним.O(n)


2
Дійсно, складність запитів є основою для відповіді Макса. Для більшості проблем будь-який алгоритм, мабуть, «повинен прочитати весь вхід» або принаймні постійну частку введення.
Jeffε

6
  • Якщо ви готові змінити свою модель, у структурах даних досить низькі межі. Див. Нижні межі для структур даних для покажчиків на хороші посилання на нижні межі в структурах даних.
  • Із призначеного для сортування, у моделі порівняння, про яку тут згадували деякі люди, можна отримати аналогічну межу для проблеми опуклого корпусу, розглядаючи випадок, коли вхід складається з точок уздовж графіка зростаюча функція в першому квадранті площини.Ω(nlogn)

2
+1 для згадування структур даних. Але я не думаю, що неможливо отримати корисну нижню межу для опуклих корпусів через порівняльну нижню межу для сортування. Причина полягає в тому, що модель порівняння взагалі недостатньо потужна для обчислення опуклих корпусів. Замість цього працює використання більш потужної моделі, такої як алгебраїчні дерева рішень, в яких можна обчислити корпуси, а потім адаптувати нижню межу для сортування до цієї більш потужної моделі.
Девід Еппштейн

Має сенс, дякую за роз’яснення!
Абель Моліна

3
  1. Порівняльне сортування за допомогою порівняння (сортування злиття, щоб назвати одне) є оптимальним, доказ включає просто обчислення висоти дерева з n ! листя.O(nlogn)n!

  2. Припускаючи, що створено унікальну гру Ігор, Кхот, Кіндлер, Моссел та Оодоннел показали, що наблизити до максимального кроку краще NP-алгоритм Goemans та Williamson. Так що в цьому сенсі G&W є оптимальним (якщо припустити також, що ).PNP

  3. Деякі розподілені алгоритми можуть бути оптимальними щодо деяких умов (наприклад, частка протиборчих процесорів), але оскільки ви згадали машини Тьюрінга, я думаю, це не той тип прикладів, який ви шукаєте.


2
Чи відповідає пункт 2 на питання чи ні, залежить від того, що запитуючий означає "оптимальний", хоча я сумніваюся, що запитуючий запитує в цьому сенсі (інакше є багато, багато чітких результатів наближення, які навіть не вимагають UGC). Більше того, я не думаю, що ні пункт 1, ні 3 не відповідають на це питання.
Цуйосі Іто

@TsuyoshiIto, важко здогадатися, що саме мав на увазі запитувач, і саме це змусило мене спробувати відповіді в різних напрямках у надії потрапити на щось корисне для нього / її. Що змушує вас сказати, що (1), до речі, не є вірною відповіддю?
Шир

2
Запитувач спеціально запитує алгоритм, оптимальний для машини Тьюрінга .
Цуйосі Іто

6
Чи "порівняльне сортування" насправді є "проблемою"? Або це проблема і обмеження на модель обчислення?
Jeffε

3

Припустимо , ви отримуєте вхід і просять вирішити , якщо RAM машина M Завершує на вході х після т кроків. За теоремою ієрархії часу оптимальним алгоритмом для вирішення цього є моделювання виконання M ( x ) для t кроків, що можна зробити за час O ( t )w=M,x,tMxtM(x)tO(t) .

(Примітка. Для машин Тьюрінга моделювання виконання виконує дії O ( t log t ) ; ми знаємо лише нижню межу Ω ( t )MO(tlogt)Ω(t) . Отже, це не зовсім оптимально для машин Тьюрінга).

Є деякі інші проблеми, які містять версію проблеми зупинки як підзаговорку. Наприклад, для вирішення того, чи є пропозиція наслідком WS1S, потрібен час 2 O ( | θ | ), і це оптимально.θ2↑↑O(|θ|)


3

Я не впевнений, що ви маєте на увазі під "нетривіальним", але як щодо цього. . Ця мова не є регулярною, тому будь-яка TM, яка вирішила, повинна працювати у Ω ( n log n ) . Простий алгоритм (перетинання всіх інших 0) є оптимальним.L={02k|k0}Ω(nlogn)


3

Якщо ви дозволяєте динамічні проблеми структури даних, ми знаємо деякі суперлінійні оптимальні алгоритми часу. Це в моделі зондової комірки, яка настільки ж сильна, як слово RAM, тобто це не так обмежена модель, наприклад, алгебраїчні дерева рішень.

Один із прикладів - зберігання префіксальних сум під динамічним оновленням. Почнемо з масиву чисел , а мета - зберегти структуру даних, яка дозволяє виконувати наступні операції:A[1],,A[n]

  • Додайте до A [ i ] , заданого i та ΔΔA[i]iΔ
  • Обчисліть префіксну суму , задану ij=1iA[i]i

Ви можете легко підтримувати обидві операції в час зі структурою даних на основі доповненого бінарного дерева з A [ i ] на листках. Патраску та Демейне показали, що це оптимально: для будь-якої структури даних існує послідовність з n доповнень та префіксів суми запитів, які повинні приймати загальний час Ω ( n log n ) .O(logn)A[i]nΩ(nlogn)

Іншим прикладом є об'єднання пошуку : почніть з розділу на одиночні кнопки та збережіть структуру даних, яка дозволяє виконувати дві операції:{1,n}

  • Союз: задані і j , замініть частину, що містить i, і частину, що містить j, їх об'єднаннямijij
  • Знайдіть: задано , виведіть канонічний елемент із частини, що містить iii

Тарджан показав, що класична роз'єднана множина лісових структур даних із об'єднанням евристики стиснення за рангом і трактом займає час на операцію, де α - обернена функція Акермана. Фредман і Сакс показали, що це оптимально: для будь-якої структури даних існує послідовність n об'єднань і пошуку операцій, які повинні зайняти час Ω ( n α ( n ) ) .O(α(n))αnΩ(nα(n))


1

Багато алгоритмів потокової передачі мають верхні межі, що відповідають їх нижнім.


0

Є два дещо схожі алгоритми пошуку, які [наскільки я розумію] є оптимальними на основі певних обмежень впорядкування / розподілу введення. однак презентація алгоритмів, як правило, не підкреслює цю оптимальність.

  • золотий розріз пошуку для знаходження максимуму чи мінімуму (екстремуму) одномодальної функції. передбачає, що введення - це унімодальна функція. знаходить його в логарифмічному часі в середньому. наскільки я пам'ятаю, можливо, в книзі « Структура та інтерпретація комп’ютерних програм abelson & sussman» було підтверджено оптимальність .

  • двійковий пошук знаходить точку в логарифмічному часі в середньому в відсортованому списку, але вимагає сортування введення.

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


-1

Багато алгоритмів підлінійного часу мають верхні межі, що відповідають їх нижнім.


3
Позначено як дублікат.
Jeffε

Алгоритм підлінійного часу та алгоритм потокового потоку - це різні області.
Бін Фу

1
Це правда, але слід поєднувати відповіді в одну.
Суреш Венкат

Деякі приклади оптимальних підлінійних алгоритмів часу можуть бути
Бін Фу

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