Обмежена проблема зупинки вирішується. Чому це не суперечить теоремі Райса?


9

Одне твердження теореми Райса наведено на сторінці 35 "Комп'ютерна складність: сучасний підхід" (Арора-Барак):

Часткова функція від {0,1} до {0,1}це функція, яка не обов'язково визначається на всіх її входах. Ми говоримо, що ТМM обчислює часткову функцію f якщо для кожного x на якому f визначено, M(x)=f(x) і для кожного x на якому f не визначено M переходить у нескінченний цикл, коли виконується на вході x. ЯкщоS це набір часткових функцій, які ми визначаємо fS бути булевою функцією, що на вході α виходи 1 iff Mα обчислює часткову функцію в S. Теорема Райса говорить про те, що для кожного нетривіальногоS, функція fS не обчислюється.

У Вікіпедії зазначено, що мови обмежених машин для встановлення часу закінчуються ЕКСПЕКТНО. Я думаю, що ця мова виглядає приблизно так{(α,x,n):Mα приймає x менше ніж n кроки}. Тож нехайMбути деяким DTM, який вирішує цю обмежену мову в експоненціальний час. Схоже, що цей DTM вирішує якусь властивість для ВСІХ машин для випробування, тому моя інтуїція підказує мені, що теорема Райса виключає таке рішення. Але очевидноM обчислює загальну функцію.

Що мені не вистачає у зв’язку між цією мовою та теоремою Райса?

Відповіді:


13

Мова

{(α,x,n):Mα accepts x in less than n steps}

не є набором індексу, тобто не має форми

LP={MM is TM, fP. fM=f}

для деякого безлічі (частково рекурсивні) функцій , з (часткові) функції обчислюються TM . Теорема Райса робить заяви лише про такий ; багато "інтуїтивно зрозумілих" перефразовок не є корисними. Дивіться також тут .PfMMLP

Зауважте, що це не лише технічна деталь. Теорема Райса не стосується

L={MM accepts M in less than M steps} ,

або. Ви можете зрозуміти, чому?

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

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


+1. Особливо для гіперпосилання, яке, ймовірно, стосується і тут. Однак я все одно намагався внести "інтуїтивний" аналіз як альтернативну відповідь.
Jirka Hanika

6

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

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


5

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


Перший аргумент є формалістичним, але правильним. Другий аргумент мене бентежить (я не впевнений, що міг би чітко визначити локальність / глобальність; і я не знаю, що це означає для обчислення функції "з набору функцій").
Jirka Hanika

Перший аргумент насправді є просто синтаксичним, про що згадував Рафаель у своїй відповіді. Локальна / глобальна проблема мала на меті вказати на різницю між міркуваннями про результат на одному вході та всіма вхідними даними (я не мав на увазі це у формальному сенсі, це може означати щось інше в іншому контексті). Обчислення функції з заданого набору просто означає, що ви запитуєте, чи функція обчисленаMα є в S.
Аріель

Теорема Райсу НЕ вимагає пояснення поведінки машини на всіх входах. Наприклад, неможливо класифікувати програми виходячи з того, чи приймуть їх у кінцевому підсумку при запуску на вхід "5". А точніше, ви можете визначити таку класифікацію, яка ігнорує поведінку на більшості входів просто чудово, але класифікація все ще не є рекурсивною.
Jirka Hanika

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

3

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

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