stringtranslate.com

Машина Оракула

В теории сложности и теории вычислимости машина оракула — это абстрактная машина , используемая для изучения проблем принятия решений . Ее можно представить как машину Тьюринга с черным ящиком , называемым оракулом , который способен решать определенные проблемы за одну операцию. Проблема может быть любого класса сложности . Можно использовать даже неразрешимые проблемы , такие как проблема остановки .

Оракулы

Машину оракула можно представить как машину Тьюринга, подключенную к оракулу . Оракул в этом контексте — это сущность, способная решать некоторую задачу, например, задачу принятия решения или задачу функции . Задача не обязательно должна быть вычислимой; оракул не считается машиной Тьюринга или компьютерной программой. Оракул — это просто « черный ящик », способный выдавать решение для любого экземпляра заданной вычислительной задачи:

Машина оракула может выполнять все обычные операции машины Тьюринга, а также может запрашивать оракул, чтобы получить решение для любого экземпляра вычислительной задачи для этого оракула. ​​Например, если проблема является проблемой принятия решения для множества A натуральных чисел, машина оракула предоставляет оракулу натуральное число, и оракул отвечает «да» или «нет», указывая , является ли это число элементом A.

Определения

Существует много эквивалентных определений оракульных машин Тьюринга, как обсуждается ниже. Представленное здесь определение взято из van Melkebeek (2003, стр. 43).

Машина-оракул, как и машина Тьюринга, включает в себя:

Помимо этих компонентов, машина оракула также включает в себя:

Время от времени машина оракула может входить в состояние ASK. Когда это происходит, в одном вычислительном шаге выполняются следующие действия:

Таким образом, эффект перехода в состояние ASK заключается в получении за один шаг решения экземпляра проблемы, записанного на ленте оракула.

Альтернативные определения

Существует много альтернативных определений, представленных выше. Многие из них специализированы для случая, когда оракул решает проблему принятия решения. В этом случае:

Эти определения эквивалентны с точки зрения вычислимости Тьюринга: функция вычислима оракулом из данного оракула при всех этих определениях, если она вычислима оракулом при любом из них. Однако определения не эквивалентны с точки зрения вычислительной сложности. Определение, такое как определение ван Мелкебека, использующее ленту оракула, которая может иметь свой собственный алфавит, требуется в общем случае.

Классы сложности машин оракула

Класс сложности задач принятия решений , решаемых алгоритмом из класса A с оракулом для языка L, называется A L . Например, P SAT — это класс задач, решаемых за полиномиальное время детерминированной машиной Тьюринга с оракулом для проблемы булевой выполнимости . Обозначение A B можно расширить до множества языков B (или класса сложности B), используя следующее определение:

Когда язык L является полным для некоторого класса B, то A L =A B при условии, что машины в A могут выполнять сокращения, используемые в определении полноты класса B. В частности, поскольку SAT является NP-полным относительно сокращений за полиномиальное время, P SAT =P NP . Однако, если A = DLOGTIME , то A SAT может не равняться A NP . (Определение, данное выше, не является полностью стандартным. В некоторых контекстах, таких как доказательство теорем об иерархии времени и пространства , более полезно предположить, что абстрактная машина, определяющая класс, имеет доступ только к одному оракулу для одного языка. В этом контексте не определяется, если класс сложности не имеет никаких полных проблем относительно сокращений, доступных для .)

Понятно, что NP ⊆ P NP , но вопрос о том, равны ли NP NP , P NP , NP и P , остается в лучшем случае предварительным. Считается, что они различны, и это приводит к определению полиномиальной иерархии .

Машины Oracle полезны для исследования взаимосвязи между классами сложности P и NP , рассматривая взаимосвязь между P A и NP A для оракула A. В частности, было показано, что существуют языки A и B, такие что P A = NP A и P B ≠ NP B . [4] Тот факт, что вопрос P = NP релятивизирует оба способа, рассматривается как доказательство того, что ответить на этот вопрос сложно, потому что метод доказательства, который релятивизирует (т. е. не зависит от добавления оракула), не ответит на вопрос P = NP. [5] Большинство методов доказательства релятивизируют. [6]

Можно рассмотреть случай, когда оракул выбирается случайным образом из всех возможных оракулов (бесконечное множество). В этом случае было показано, что с вероятностью 1 P A ≠NP A . [7] Когда вопрос истинен для почти всех оракулов, говорят, что он истинен для случайного оракула . Такой выбор терминологии оправдан тем фактом, что случайные оракулы поддерживают утверждение с вероятностью только 0 или 1. (Это следует из закона Колмогорова «ноль-один »). Это лишь слабое доказательство того, что P ≠ NP, поскольку утверждение может быть истинным для случайного оракула, но ложным для обычных машин Тьюринга; [ оригинальное исследование? ] например, IP A ≠ PSPACE A для случайного оракула A, но IP = PSPACE . [8]

Оракулы и проблемы остановки

Машина с оракулом для проблемы остановки может определить, остановятся ли конкретные машины Тьюринга на определенных входных данных, но она не может определить, в общем случае, остановятся ли машины, эквивалентные ей самой. Это создает иерархию машин, каждая из которых имеет более мощный оракул остановки и еще более сложную проблему остановки. Эту иерархию машин можно использовать для определения арифметической иерархии . [9]

Приложения к криптографии

В криптографии оракулы используются для аргументации в пользу безопасности криптографических протоколов, где используется хэш-функция . Снижение безопасности для протокола дается в случае, когда вместо хэш-функции случайный оракул отвечает на каждый запрос случайным, но последовательным образом; предполагается, что оракул доступен всем сторонам, включая злоумышленника, как и хэш-функция. Такое доказательство показывает, что если злоумышленник не решит сложную проблему, лежащую в основе снижения безопасности, он должен использовать некоторое интересное свойство хэш-функции, чтобы взломать протокол; он не может рассматривать хэш-функцию как черный ящик (т. е. как случайный оракул).

Смотрите также

Ссылки

Сноски

  1. ^ Адачи 1990, стр. 111.
  2. Роджерс 1967, стр. 129.
  3. ^ Соаре 1987, с. 47; Роджерс 1967, с. 130.
  4. Бейкер, Гилл и Соловей 1975, стр. 431.
  5. ^ Тревизан 2014, стр. 2.
  6. ^ Тревизан 2014, стр. 1.
  7. ^ Беннетт и Гилл 1981, стр. 96.
  8. ^ Чанг и др. 1994, стр. 29.
  9. ^ Бёргер 1989, стр. 141.

Источники