Як використання машин Oracle Turing не призводить до суперечностей?


9

Як ми можемо гарантувати, що ми продовжуємо робити обгрунтовані та обґрунтовані твердження про класи складності під час використання Oracle Turing Machines? Згідно з моїм розумінням (виходячи з визначень, наведених у вступних підручниках з цієї теми), оракули Тьюрінгові машини можуть визначати статус членства рядка щодо мови оракула за один крок обчислення. Однак часто використовувані мови оракула неможливо вирішити за постійний час (наприклад, візьміть досконалий оракул у EXPTIME). Мені це здається "відкриттям дверей" протиріч, і зрештою, все випливає із суперечності.


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

@Raphael Під "ти" в коментарі в думках ви маєте на увазі теоретиків складності взагалі чи я зокрема?
Арі

Колишній. Ну, і те, інакше.
Рафаель

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

Відповіді:


8

Існує кілька способів поглянути на це.

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

Ми можемо записувати функції, які працюють на значення, яких у нас немає.

Наприклад, розглянемо число зупинки h, що не можна обчислити. Я можу записати функцію

haltingPlusOne:{h}N

haltingPlusOne(x)=x+1.

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

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

Важливо також усвідомити, що коли ми говоримо щось на кшталт "Не існує машини Тьюрінга, яка б вирішила проблему зупинки", це означає, що немає ТМ, що відповідає стандартному визначенню ТМ, яке вирішує проблему зупинки.

В основному оракул говорить: "Припустимо, у нас є ТМ, який відповідає нормальному визначенню, за винятком також припущення, що ми можемо вирішити якусь проблему". Тому немає протиріччя, оскільки ми не припускаємо, що нормальна TM приймає проблему, ми припускаємо, що існує спеціальна TM, яка приймає проблему.

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

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


Я погоджуюся з / розумію вашу відповідь, але лише до певного моменту: Наприклад, я бачу, що ваша функція haltingPlusOne чітко визначена, але не бачу, як ми можемо робити якісь значущі висновки з оракулів, оскільки ми могли зробити будь-який "якщо" викладення помилкового твердження і дійти до будь-якого висновку, тобто "Якщо" n+1=n для всіх натуральних чисел n1то є лише одне натуральне число ".
Арі

1
Річ у тому, що твердження не є хибними, ми просто не можемо їх побудувати. Ключовим є те, що оракули не є машинами Тюрінга, це не означає, що їх не існує.
jmite

"знайти правильний вхід" "знайти правильний вихід" ?

2

Ну, я б сказав, що важливою особливістю Oracle TM є те, що вони мають доступ до oracle, який важко вирішити. Якщо ви можете вирішити оракулA в постійний час, то для кожного класу B ти мав би B=BA. То навіщо взагалі мати оракул у цьому випадку?

Тож у чому сенс використовувати Oracle TM? Я б сказав, що це дозволяє нам переважно теоретичні міркування щодо (ступеня) жорсткості проблем. Оракул може бути навіть невирішеним. У цьому випадку можна визначити цілу ієрархію невирішених проблем (ступінь Тюрінга). Звичайно, якщо ваш oracle є проблемою зупинки, ви не можете перетворити ваш Oracle TM в традиційний TM.

Концепція Oracle TM також важлива для визначення сильної форми скорочень (Turing скорочення).

Зауважимо, що більш теоретична мотивація Oracle TM може мати наслідки поза світом оракула . Ви, можливо, знаєте відомеP проти NP релятивізуючий результат.

В якості останнього зауваження зауважте, що для запиту оракул вам слід написати рядок запиту wспочатку на стрічці oracle. Таким чином, ви не можете визначити членство в постійний час, але вчасно|w|.

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