Чи визначаються межі виконання в Р? (відповідь: ні)


64

Поставляється запитання, чи можна вирішити наступне питання:

Проблема   З огляду на ціле число і машина Тюрінга обіцяє бути в P, чи час виконання щодо довжини вводу ?kMM O(nk)n

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

Відповідь

Емануеле Віола опублікував доказ того, що питання не можна вирішити (див. Нижче).

Фон

Для мене це питання, природно, виникло при розборі відповіді Лука Тевісана на питання: Чи потрібні умови виконання для P ресурсів EXP до верхньої межі? … Чи відомі конкретні приклади?

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

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

--- редагувати (відповісти після відповіді) ---

Я додав теорему Віоли до вікі спільноти MathOverflow "Привабливі проблеми Тюрінга - нерозв'язні". Це перший внесок wiki у клас складності P; це свідчить про новизну, природність та широкий спектр теореми Віоли (та ІМХО також її краси).

--- редагувати (відповісти після відповіді) ---

Монографія Юріса Хартманіса " Обгрунтовані обчислення та властивості доказувальної складності" (1978) охоплює багато того ж матеріалу, що і доказ Емануеле Віоли.


У відповідь на запитання у веб-журналі Lance Fortnow та Білла Газарха, на тему "75 років інформатики", починаючи "Я часто хотів, щоб Тьюрінг тверезо запитав:" Які процеси, які можна перевірити, які можна здійснити при обчисленні число? "... замість того, щоб Тьюрінг задав долено важче запитання:" Які можливі процеси, які можна здійснити при обчисленні числа? ", наступне запитання буде (приблизно)" Чи існують машини Тьюрінга, які є доказовими. в НП, чиє членство в P не можна визначити? "Це означає, що я все ще думаю про це! :)
Джон Сідлз

2
Хоча докази Емануеле Віоли ясніші, дуже схоже запитання було задано і відповіли на Mathoverflow: mathoverflow.net/questions/28056/…
Alex ten Brink

Деякі відповіді та ідеї на цю тему виявилися актуальними для есе / запитань, які Дік Ліптон розмістив у своєму веб- журналі «Втрачений лист Годеля» ; що набір реферату / запитання "Ставати на базі з P = NP". URL: rjlipton.wordpress.com/2011/07/04/getting-on-base-with-pnp
Джон Сідлз

Хоча межі в Р не визначаються, це не зупиняє спробу (обмежуючи себе далі). Приклад, якщо наведено у цій відповіді на класику
Артем Казнатчеєв

1
Це питання надихнуло наступну статтю: arxiv.org/abs/1307.3648
David G

Відповіді:


83

Проблема не вирішена. Зокрема, ви можете звести проблему зупинки до неї наступним чином. З огляду на екземпляр проблеми зупинки, побудуйте нову машину яка працює так: на входах довжини вона моделює на для кроків. Якщо приймає, петлю для кроків і зупиніть; в іншому випадку петля для кроків та зупинка.M n M x n M n 2 n 3(M,x)MnMxnMn2n3

Якщо зупиняється на він робить це на кроках , то час виконання буде . Якщо ніколи не зупиняється, то час запуску принаймні .x t = O ( 1 ) M O ( n 2 ) M M n 3Mxt=O(1)MO(n2)MMn3

Отже, ви можете вирішити, чи приймає , вирішивши, чи час виконання дорівнює або .x M O ( n 2 ) O ( n 3 )MxMO(n2)O(n3)


4
чому M повинен зупинятися на x (якщо він є) на етапі O (1)?
Суреш Венкат

10
х нM і закріплені незалежно від . xn
Ману

2
Дуже розумний доказ, це варіація якогось добре відомого результату чи ви просто його придумали?
Антоніо Е. Поррека

3
@Raphael: Це чітка область, яку я не думаю, що ми вирішили. Деякі сайти обміну stackexchange заохочують редагування відповідей інших. У нас немає політики проти цього, але, як практична справа, я майже ніколи не бачив цього робити. Один технічний момент: якщо відповідь буде відредагована занадто багато, вона стає вікі спільноти, і @Emanuele не отримає додаткових балів повторень, якби його відповідь було анульовано після цього. Я думаю, що додаткове пояснення допоможе уточнити: @John Sidles спочатку думав, що обіцянка не використовується, але доказ використовує більш сильну обіцянку: працює в або , не тільки в P.n 2 n 3Mn2n3
Аарон Стерлінг

2
@John: Поки не опубліковано посилання, врахуйте цю інструкцію .
Рафаель

29

Це перефразовування відповіді Емануели Віоли з метою бути більш зрозумілою.

Покажемо, що задана задача нерозв'язна, зменшуючи загальну задачу зупинки до неї.НPH

Нехай є будь-яким екземпляром проблеми зупинки, тобто ми маємо вирішити, чим ( зупиняється на ). Побудуйте машину Тюрінга яка працює так:(M,x)M(x)MxM

M*(y) = {
  n := |y|
  Simulate M(x) for n steps
  if ( M(x) has halted )
    Execute n*n arbitrary steps
  else
    Execute n*n*n arbitrary steps
}

Тепер ми спостерігаємо такі наслідки:

M(x)n0N:M halts on x after at most n0 stepsy:nn0M(y) executes n2 arbitrary stepsTM(n)O(n2)

і

M(x)nN:M does not halt on x in less than n stepsy:M(y) executes n3 arbitrary stepsTM(n)Ω(n3)

Тому . Якщо припустити, що було алгоритмічно вирішальним, так би і , що створює протиріччя. H(M,x)P(M,2)PH


12

З позитивного боку вирішується, чи працює односмугова машина Тьюрінга за часом для заданих , див .:C , D NnCn+DC,DN

Девід Гайсер: Перевірка того, чиCn+D працюють односмугові недетерміновані машини Тюрінга за часом , arXiv: 1312.0496


1
Не бракує незвичної поведінки у невеликих односмугових ТМ. :)
Каве

4

Проблема також була вирішена в моїй статті " Інтенсивний зміст теореми Райса " POPL'2008, де я доводжу, що жодна "кліка складності" не може бути вирішена. Класика складності - це клас програм закритих програм wrt із подібною поведінкою та складністю. Я також надаю необхідні умови для напіврозкладних властивостей.

Програми, які виконуються в O (n ^ k), - це кліка складності у вищезгаданому сенсі, отже, набір не вирішується.

Результат також нещодавно поширився на субрекурсивні настройки (наприклад, P) Матьє Хойруп: Розв'язувальні властивості субрекурсивних функцій (ICALP 2016).


2

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

Для уточнення повноти, хоча умова P-часу також є , існує вирішальний набір кодів таким, що всі машини в є поліноміальним часом, а питання - завершити на .Σ20SSO(n2)Σ20S

Щоб довести це, виберіть повний , з поліноміальний час обчислюваною (для двійкових чисел).Σ20φφ(x)kmψ(x,k,m)ψ

Тоді утримується, якщо наступна машина - де - вхідна довжина (машина піклується лише про вхідну довжину):φ(x)O(n2)n

для в 0 до :     якщо : # перевірена з допомогою петлі         зупинки     чекати кроки зупинитиkn
m<nψ(x,k,m)

n2

Зауважте, що для кожного не надто малого , чи програма завжди зупиняється на (наприклад), кроки, є , але запитання про межі надійним чином дає .cn2+cΠ10Σ20


-1

ось останні останні нові більш систематичні аналізи / кути / результати з цього питання та пов'язані з ними, впроваджуючи поняття "алгоритмічна перевіряемость" та аналог Рис-подібного-Thm для теорії складності. один відповідний розділ з реферату наступний, і існує багато інших пов'язаних теорем, пов'язаних з доказовістю P vs NP тощо

  • Чому поняття обчислювальної складності важко перевірити математикою / Хромкович

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

    Зауважимо, що якщо P! = NP є доказовим у AV-математиці, то для кожного алгоритму A можна довести, що "A не вирішує SATISFIABILITY або A не працює в поліноміальний час". Цікаво, що ми нарешті показуємо, що існують алгоритми, для яких не можна ні довести, що вони не працюють у поліноміальний час, і що вони не вирішують SATISFIABILITY. Більше того, існує алгоритм, що розв'язує SATISFIABILITY, для якого в AV-математиці не можна довести, що він не працює в поліноміальний час.

    Крім того, ми показуємо, що P = NP має на увазі існування алгоритмів X, для яких твердження «X вирішує SATISFIABILITY в поліноміальний час» не є доказовим в AV-математиці.


-3

Рішення від Viola можна узагальнити до будь-якого часу роботи (крім полі): Ви можете зменшити проблему зупинки до неї наступним чином. З огляду на екземпляр (M, x) проблеми зупинки, побудуйте нову машину M ', яка працює так: на входах довжини n вона моделює M на x для f (n) кроків або поки M не зупиняється, де f (n ) - будь-яка довільна зростаюча функція (більша за постійну) n. (Прим .: M 'зчитує поступово введення, щоб уникнути втрати лінійного часу [O (n)] просто для того, щоб прочитати весь вхід, якщо він досить великий і M зупиняється.)

Якщо M зупиняється на x, він робить це на кроках T = O (1), то час роботи M 'буде O (1). Якщо M ніколи не зупиняється, то час запуску M ′ дорівнює O (n ^ 2 * f (n)).

Отже, ви можете вирішити, чи приймає M х, вирішивши, чи час виконання M 'O (1) або O (n ^ 2 * f (n)).

Тоді допоміжний код від Рафаеля можна відповідно узагальнити:

Нехай (M, x) є будь-яким екземпляром проблеми зупинки, тобто ми маємо вирішити, чи зупиняється M на x. Побудуйте детерміновану машину Тюрінга (DTM) M *, яка працює так:

  1. M * (вхід) = {
  2. n: = 0
  3. Прочитайте перший символ із введення
  4. Петля:
  5. n: = n + 1
  6. Моделюйте M (x) для f (n) кроків або до зупинки M (x)
  7. Прочитайте наступний символ із введення
  8. Цикл, поки не закінчиться_в_введення або поки M (x) не зупиниться
  9. }

Тепер ми спостерігаємо такі наслідки:

M зупиняється на x після максимум k (постійних) кроків => T (M *) = O (1) і

M ніколи не зупиняється на x => T (M *) = O (n ^ 2 * f (n))

Тому навіть вирішити, чи буде час роботи довільної DTM просто більшим за постійний, настільки ж важко, як і проблема зупинки. □


2
1) Будь ласка, використовуйте LaTeX. 2) Який новий внесок у це питання? 3) Ваші міркування помилкові. Моделювання вимагає часу , тому що безумовно, не може працювати в постійний час. O ( n ) M MO(n)M
Рафаель

Якщо досить великий n, якщо M (x) зупиняється, його моделювання також зупиняється і повертається до M * протягом n0 (постійних) кроків.
Андре Луїз Барбоса
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.