Враховуючи мову L, визначену машиною Тюрінга, яка її вирішує, чи можна алгоритмічно визначити, чи лежить L у NP?
Враховуючи мову L, визначену машиною Тюрінга, яка її вирішує, чи можна алгоритмічно визначити, чи лежить L у NP?
Відповіді:
Ні. По-перше, за теоремою Райса, це властивість ТМ, яка залежить лише від мови, яку вони обчислюють, тому вона не може бути обчислена.
Але, більше того, відомо, що набір індексів (тобто множина ТМ, які обчислюють мови в N P ), є Σ 0 3 -комплект ( Σ 0 3 в арифметичній ієрархії обчислюваності, а не поліноміальна ієрархія).
Такі питання вперше досліджував Гаек . Докладніше див., Наприклад, цю статтю Кен Реган.
Ще кілька чудових самородків з паперу Гаека:
Відповідь на ваше буквальне запитання - ні, як вказував Джошуа Грохов.
Однак, як заявив Холгер, можна за лінійним часом перевірити, чи недетермінований апарат Тюрінга (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, з властивостями, які
Що не відбувається, це те, що кожен поліном-час NTM є у списку. Але кожна мова NP має нескінченну кількість представників NTM. Таким чином, гарантується, що кожна мова NP має принаймні деякі свої представницькі NTM у списку, зокрема всі ті NTM при досить великому індексі k, що n ^ k перевищує час роботи M_k.
Це корисно для виконання таких прийомів, як діагоналізація, які вимагають алгоритмічного перерахування таких нескінченних (або необмежених) списків усіх мов NP. І звичайно, вся ця дискусія стосується багатьох інших видів машин, окрім багаторазових НТМ, таких як багаторазові детерміновані ТМ.