Чи можна визначити, якщо мова L лежить в NP?


15

Враховуючи мову L, визначену машиною Тюрінга, яка її вирішує, чи можна алгоритмічно визначити, чи лежить L у NP?


Позначений на теорії складності. Не впевнений, що це стосується NP-повноти.
Арябхата

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

1
Чи це не охоплено вступними курсами з обчислюваності як типового застосування теореми Райса?
Моріц

3
Моріц - хоча відповідь "так / ні" на це питання охоплена теоремою Райса, див. Мою відповідь нижче для отримання більш цікавих результатів. Можливо, txwikinger, ви повинні змінити питання на "Яка складність множини {i: L (M_i) знаходиться в NP}?"?
Джошуа Грохов

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

Відповіді:


24

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

Але, більше того, відомо, що набір індексів (тобто множина ТМ, які обчислюють мови в N P ), є Σ 0 3 -комплект ( Σ 0 3 в арифметичній ієрархії обчислюваності, а не поліноміальна ієрархія).NPNPΣ30Σ30

Такі питання вперше досліджував Гаек . Докладніше див., Наприклад, цю статтю Кен Реган.

Ще кілька чудових самородків з паперу Гаека:

  • Набір індексів дорівнює Σ 0 3 -повне.PΣ30
  • є Π 0 2 -комплект{i:PL(Mi)NPL(Mi)}Π20
  • Існує загальна машина Тьюрінга (зупиняється на всіх входах) така, що P L i = N P L i, але твердження " P L i = N P L i " є незалежним (де L i = L ( M i ) ) . Аналогічно для релятивізацій, де P NMiPLi=NPLiPLi=NPLiLi=L(Mi) .PNP

1
Тут питання, як видається, є проблемою, що обіцяє прийняти рішення (обіцяно, що дана мова буде вирішена ТМ, не тільки визнана) на відміну від загальної проблеми рішення. Чи буде теорема Райса все-таки застосовна тут? Нагадаємо, що доказ теореми Райса використовує нерозбірливість зупинки, тому необов'язковість тут є важливою.
Зейю

2
У запитаному питанні мова L була "задана машиною, яка її вирішує". Так було насправді: якщо дано машину Тюрінга M, чи можна визначити, чи L (M) знаходиться в NP. Якщо мова L не була визначена ТМ, а лише була задана як підмножина натуральних чисел, що означає алгоритмічно визначити, якщо L знаходиться в NP? Зокрема, як ми можемо вважати, що L є вхідним в алгоритм, коли сам L не заданий кінцевим описом?
Джошуа Грохов

1
Так, я знаю. Але в теоремі Райса можливо, що ТМ не визначає мову, тобто не обчислює загальну функцію.
Зейю

2
Загально евристичним є те, що, враховуючи семантичну властивість машин Тьюрінга, наприклад "М визначає мову NP", спершу слід спробувати висловити цю властивість логікою першого порядку. Це ставить властивість у рівень арифметичної ієрархії; евристичний полягає в тому, що властивість зазвичай є повною для цього рівня ієрархії. Я хотів би запитати, чи є якісь помітні контрприклади до цього евристичного.
Енді Друкер

2
Якщо зменшити масштаб до ієрархії поліномів, все рідше поводиться так красиво. Наприклад, розглянемо властивість "C - булева схема мінімального розміру (для функції, яку вона обчислює)". Ця проблема є важкою для NP і може бути поміщена в Ієрархію поліномів, але вона відкрита, чи є вона повною для рівня, де вона природно проживає. (такі результати відомі для деяких обмежених класів схем, наприклад, DNF; див. опитування в 2 частині "Повнота в ієрархії поліномів" Шефера та Уманса.)
Енді Друкер

5

Відповідь на ваше буквальне запитання - ні, як вказував Джошуа Грохов.

Однак, як заявив Холгер, можна за лінійним часом перевірити, чи недетермінований апарат Тюрінга (NTM) "тає годинник" і зупиняється після n ^ k кроків на деякий постійний k, шляхом якогось стандартного способу імітації годинника (наприклад, код нижче). Часто, коли папір або книга підкажуть (неправильно), що можна визначити, чи є NTM поліноміальним часом, це те, що вони насправді означають. Можливо, саме тому ви задали це питання? (У мене було те саме питання, коли я вперше вивчив теорію складності і десь побачив твердження про те, що можна перевірити, чи є ТМ багаторазовим.) Справжнє питання: чому можна побажати зробити це, про що я обговорюю нижче після пояснення як .

Існує маса способів додати таку функцію годинника. Наприклад, уявіть на вході x довжини n, по черзі виконуючи одне висловлювання "основного алгоритму", що синхронізується, а потім одне твердження наступного алгоритму, яке закінчується на (щось близьке до) n ^ k кроків:

для i_1 = 1 до n
  для i_2 = 1 до n
...
        для i_k = 1 до n
          не-оп;
повернення;

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

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

Але помилкових позитивів немає. Якщо NTM проходить тест, то він, безумовно, зупиняється в поліноміальний час, отже, він визначає деяку мову NP. Однак, можливо, поведінка його основного алгоритму змінюється, якщо годинник іноді закінчується, перш ніж основний алгоритм зупиниться, що призводить до відхилення обчислень, навіть якщо первинний алгоритм може прийняти, якщо йому дано достатньо часу для завершення. Тому мова, що вирішилася, може відрізнятися від мови основного алгоритму. Але, і це є ключовим, якщо основний алгоритм, який виконується, насправді є поліноміально-часовим алгоритмом, що працює в часі p (n), і якщо константа k в такті є достатньо великою, що n ^ k> p (n), то основний алгоритм завжди зупинятиметься до закінчення годин. У цьому випадку відповідь первинного алгоритму не змінюється, тому первинний алгоритм і тактований NTM, що імітує його, визначають ту саму мову NP.

Чому це важливо? Це означає, що можна "перерахувати всі мови НП" (що, як я вже говорив, в літературі часто неточно вказано як "вирішити, чи є певний NTM багаторазовим" або "перерахувати всі NTM багатопотокового часу"). Точніше, можна перерахувати нескінченний список M_1 M_2, ..., NTM, з властивостями, які

  1. Кожен M_k працює в поліноміальний час (наприклад, приєднавши годинник ^ k до M_k), отже, визначає деяку мову NP, і
  2. Кожна мова NP - це мова, яку вирішили деякі M_i у списку.

Що не відбувається, це те, що кожен поліном-час NTM є у списку. Але кожна мова NP має нескінченну кількість представників NTM. Таким чином, гарантується, що кожна мова NP має принаймні деякі свої представницькі NTM у списку, зокрема всі ті NTM при досить великому індексі k, що n ^ k перевищує час роботи M_k.

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


3

p(n)


2
Це працює лише в тому випадку, якщо це синхронізована недетермінована ТМ. Якщо я просто дам вам синхронізований ТМ (навіть той, який працює в експоненційному часі), все одно не можна визначити, чи є мова, яку вона вирішить, чи є NP. Однак якщо N_1, N_2, ... - це перерахування ТМ з експоненціальними тактовими годинниками, множина {i: L (N_i) знаходиться в NP}, ймовірно, більше не є Sigma_3-повним, оскільки ви вже гарантовані, що N_i є загалом, але це все одно точно не піддається обчисленню.
Джошуа Грохов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.