Класи складності у випадках, відмінних від «найгіршого»


10

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

Інше питання розглядає найкращу складність справи , наведену нижче:

Чи існує клас (природних) проблем, вирішення яких потребує хоча б експоненціального часу?

Для уточнення, розглянемо деякі EXP -повний мови . Очевидно, що не всі екземпляри L вимагають експоненціального часу: Є екземпляри, про які можна вирішити навіть у многочлен. Отже, найкраща складність випадку L не є експоненціальним часом.LLL

EDIT: Оскільки виникло кілька неоднозначностей, я хочу спробувати уточнити це ще більше. Під складністю «кращого випадку» я маю на увазі клас складності, складність якого проблеми нижча, обмежена якоюсь функцією. Наприклад, визначте BestE як клас мов, який не може бути визначений у часі менше, ніж якийсь лінійний показник. Символічно нехай позначає довільну машину Тюрінга, а c , n 0 і n - натуральні числа:Mcn0n

LBestE (c)(M)[(L(M)=L)(n0)(n>n0)(x{0,1}n)[T(M(x))2c|x|]]

де позначає тривалість часу, перш ніж M зупиняється на вході x .T(M(x))Mx

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

І все-таки зауважте, що аналог багаточленного часу ( BestP ) є природним, оскільки кожен апарат Тьюрінга вимагає часу хоча б прочитати його вхід.|x|

PS: Можливо, замість того, щоб оцінити як "для всієї машини Тьюрінга ", ми повинні обмежити його деяким заздалегідь заданим класом машин Тьюрінга, наприклад, машинами Тьюрінга в поліномі. Таким чином, ми можемо визначити такі класи, як B e s t ( n 2 ) , який є класом мов, що вимагає принаймні квадратичного часу, щоб визначитися з поліноміальними машинами Тьюрінга.MBest(n2)

PS2: Можна також розглянути аналог складності ланцюга, в якому ми розглядаємо найменший розмір / глибину схеми для визначення мови.


Тільки тому, що є випадки SAT, які є простими, це не означає, що очікуваний час їх є многочленом. Я не впевнений, що розумію ваше запитання ..
Лев Рейзін

@ Лев Рейзін: Я не мав на увазі, що SAT очікується у багато разів. Я мав на увазі, оскільки SAT має легкі екземпляри, ми не можемо сказати, що складність "найкращого випадку" є складною.
MS Dousti

О, я бачу, середня складність випадку та найкраща складність випадку - це два окремих питання! Я якось пропустив це в першому читанні - моя помилка.
Лев Рейзін

Я не можу повністю проаналізувати ваше визначення BestE. M і x сидять поза їх кількісною оцінкою ... також, ви не хочете, щоб відхиляла вхідні дані, які відсутні в L ? ML
Райан Вільямс

@Ryan: Дякую за вказівку на недолік. Я це виправив.
MS Dousti

Відповіді:


13

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

Ось формальне твердження: для кожного зв'язаного часу існує мова L T I M E [ T ( n ) ] з властивістю, що кожен детермінований алгоритм, який правильно розпізнає L, повинен працювати в часі асимптотично більше, ніж t ( n ) на всіх, крім кінцево багато входів, протягом досить невеликого часу t ( n ) . T(n)LTIME[T(n)]Lt(n)t(n)

"Досить малий" означає .t(n)logt(n)o(T(n))

Припустимо , ми виберемо для прикладу, і отримати жорсткий мову L . Тоді будь-який алгоритм, який правильно розпізнає L, повинен зайняти щонайменше 2 n / n 2 рази на всіх входах минуло певну довжину. Це здається, що ви шукаєте у своєму класі BestE.T(n)=2nLL2n/n2

Довідка:

John G. Geske, Dung T. Huynh, Joel I. Seiferas: Примітка про набори майже повсюди і складні набори та розділення класів детермінованого часу та складності Інф. Обчислення. 92 (1): 97-104 (1991)


Дуже добре, дякую. Я думаю, ви досить добре зрозуміли моє запитання, і ваше вступне речення "Я не можу зовсім розібрати ваші визначення" - це лише знак вашої скромності :)
MS Dousti

2
За умови, що я правильно здогадався, ваше визначення має бути приблизно таким: "L \ in BestE \ iff (\ існує c) (\ forall M) [(L (M) = L) \ Rightarrow (\ існує n_0) (\ forall n > n_0) (\ forall x \ in \ {0,1 \} ^ n) [T (M (x))> 2 ^ {c | x |})]. "
Райан Вільямс

Так, ви праві. Я відредагував визначення в останню хвилину і неправильно замінив деякі кількісні показники. Я виправив питання, грунтуючись на вашому визначенні.
MS Dousti

12

Існує ряд класів, які намагаються вирішити різні поняття складності середнього випадку. У зоопарку складності деякі класи, які можуть вас зацікавити:

AvgP

HeurP

DistNP

(NP, P-зразок)

Arora / Barak охоплює багато подібних класів (у гл. 18), визначаючи distP, distNP та sampNP.

Точний взаємозв'язок між усіма цими класами характеризується п’ятьма світами Імпальяццо, про які раніше було задано інше питання .

Щодо питання складності "найкращого випадку", я не впевнений, що я цілком розумію, що ви маєте на увазі. Шукаєте EXP ?

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


Дуже добре зроблено! Ось що мені було потрібно для складної частини питання середньої складності. Щодо частини "найкращого випадку", я помітив, що оригінальна постановка питання була розпливчастою. Моє ліжко! Я її багато редагував, тому, будь ласка, подумайте про її ще раз.
MS Dousti

5

TIME[T(n)]CLCLLLCLCLL¯=ΣLCBestEE

(Історична сторона: поняття імунітету вперше було розроблено Постом у 1944 р. В теорії обчислюваності, задовго до того, як Р навіть було визначено. Пост насправді вважався "простими множинами" - множина проста, якщо її доповнення незахищене. Теоретик обчислюваності, слово "імунітет" зазвичай означає "імунітет до обчислювальних множин". У цьому режимі імунітет еквівалентний "імунітету до сетів", оскільки кожен нескінченний набір ce містить нескінченний обчислювальний. Я вважаю, що документ Пост також був першим, хто запровадив Поняття про скорочення багатьох, але я не міг присягнутись на це.)


MLLM(x)=1

LLC

1
@Sadeq: виправлено, дякую. @Ryan: Правда (або це було пару годин тому: він з тих пір оновив визначення). Тоді це був би імунітет замість двоімунітету. Так чи інакше, в основному я просто хотів вказати на ключове слово "імунітет".
Джошуа Грохов

2

Різні випадки мають більше сенсу, коли говорити про алгоритми, а не про проблеми. З іншого боку, класи складності - це проблеми, а не алгоритми. Тому клас складності, який завжди є найгіршим випадком для будь-якого алгоритму, обумовлений визначенням.

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

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

Θ

Що стосується найкращого випадку, для кожної проблеми неважко знайти найменшу кількість необхідних ресурсів. Припустимо, що вхід має довжину O (n), а вихід довжиною O (m). Тоді наступний TM M завжди працює в O (n) + O (m) для кращого випадку:

M {Введення, інстанція, рішення}

  1. Порівняйте даний примірник із екземпляром, закодованим у машині.
  2. Якщо вони рівні, поверніть розчин, закодований.
  3. Інше, зробіть жорстокий пошук.

-1

O(1)


1
Я не думаю, що це вважається правильним алгоритмом проблеми. Однак ваш алгоритм можна змінити таким чином, щоб він спочатку перевіряв, чи вхід дорівнює конкретному екземпляру, який ви заздалегідь визначили (за O (1) час). Якщо це так, він виводить попередньо обчислену відповідь. Якщо ні, ви вирішуєте даний примірник будь-якими способами. Думаючи про це, будь-який правильний алгоритм працює в O (1) час для кожного екземпляра, якщо ми можемо брати різні константи позаду O-позначення для різних примірників. Ось чому «складність найкращого випадку» в прямому сенсі не є корисною.
Цуйосі Іто

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

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