Машина Oracle

редактировать
Абстрактная машина, используемая для изучения проблем принятия решений
Системы черного ящика
Blackbox.svg
Система
Черный ящик ·Машина Oracle
Методы и методы
Тестирование черного ящика ·Черный ящик
Связанные методы
Прямая связь ·Обфускация ·Распознавание образов ·Белый ящик ·Тестирование белого ящика ·Идентификация системы
Основы
Априорная информация ·Системы управления ·Открытые системы ·Исследование операций ·Термодинамические системы
  • v
  • t

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

Содержание
  • 1 Оракулы
  • 2 Определения
    • 2.1 Альтернативные определения
  • 3 Классы сложности машин-оракулов
  • 4 Оракулы и проблемы остановки
  • 5 Приложения для криптографии
  • 6 См. Также
  • 7 Ссылки
Оракулы

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

  • Проблема решения представлена ​​как набор A натуральных чисел (или строк). Пример проблемы - произвольное натуральное число (или строка). Решение экземпляра - «ДА», если число (строка) находится в наборе, и «НЕТ» в противном случае.
  • Функциональная проблема представлена ​​функцией f от натуральных чисел (или строк) до натуральных числа (или строки). Пример проблемы - это вход x для f. Решением является значение f (x).

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

Определения

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

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

  • a рабочую ленту : последовательность ячеек без начала и конца, каждая из которых может содержать B (для пробела) или символ из алфавит ленты;
  • a головка чтения / записи, которая опирается на одну ячейку рабочей ленты и может считывать данные с нее, записывать новые данные и увеличивать или уменьшать свою позицию на ленте;
  • a управление механизм, который может находиться в одном из конечного числа состояний и который будет выполнять различные действия (чтение данных, запись данных, перемещение механизма управления и изменение состояний) в зависимости от текущего состояния и считываемые данные.

В дополнение к этим компонентам машина оракула также включает:

  • ленту оракула, которая представляет собой полубесконечную ленту, отдельную от рабочей ленты. Алфавит для ленты оракула может отличаться от алфавита для рабочей ленты.
  • голова оракула, которая, как и головка чтения / записи, может перемещаться влево или вправо по ленте оракула чтение и запись символов;
  • два специальных состояния: состояние ASK и состояние RESPONSE.

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

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

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

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

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

  • Некоторые определения вместо записи ответа на ленту оракула имеют два специальных состояния ДА и НЕТ в дополнение к состоянию ЗАПРОС. При обращении к оракулу следующее состояние выбирается как ДА, если содержимое ленты оракула находится в наборе оракула, и выбирается НЕТ, если содержимое не находится в наборе оракула (Adachi 1990: 111).
  • Некоторые определения избегают отдельной ленты оракула. При входе в состояние оракула указывается символ ленты. Оракулу задают вопрос, сколько раз этот символ ленты появляется на рабочей ленте. Если это число находится в наборе оракула, следующим состоянием будет состояние ДА; в противном случае следующим состоянием будет состояние NO (Rogers 1967: 129).
  • Другое альтернативное определение делает ленту oracle доступной только для чтения и полностью исключает состояния ASK и RESPONSE. Перед запуском машины индикаторная функция набора оракулов записывается на ленту оракула с использованием символов 0 и 1. Затем машина может запросить оракула путем сканирования до нужного квадрата на ленте оракула. и считывание значения, расположенного там (Soare 1987: 47, Rogers 1967: 130).

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

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

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

AB = ⋃ L ∈ BAL {\ displaystyle A ^ {B} = \ bigcup _ {L \ in B} A ^ {L}}A ^ {B} = \ bigcup _ {L \ in B} A ^ {L}

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

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

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

Можно рассмотреть случай, когда оракул выбирается случайным образом из всех возможных оракулов (бесконечное множество). В этом случае было показано, что с вероятностью 1 P ≠ NP (Bennett and Gill 1981). Когда вопрос верен почти для всех оракулов, он считается верным для случайного оракула. Такой выбор терминологии оправдан тем фактом, что случайные оракулы поддерживают утверждение только с вероятностью 0 или 1. (Это следует из закона нуля или единицы Колмогорова.) Это лишь слабое свидетельство того, что P ≠ NP, поскольку утверждение может быть истинным для случайного оракула, но ложным для обычных машин Тьюринга; например, IP ≠ PSPACE для случайного оракула A, но IP = PSPACE (Chang et al., 1994).

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

Машина с оракулом для проблемы остановки может определить, остановятся ли определенные машины Тьюринга при определенных входных данных, но они не могут определить, в целом остановятся ли машины, эквивалентные самим себе. Это создает иерархию машин, каждая из которых имеет более мощный останавливающий оракул и еще более сложную проблему остановки. Эту иерархию машин можно использовать для определения арифметической иерархии (Börger 1989).

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

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

См. Также
Ссылки
  • Акео Адачи, Основы теории вычислений, Омша, 1990.
  • Т. П. Бейкер, Дж. Гилл, Р. Соловай. Релятивизации P =? Н.П. Вопрос. SIAM Journal on Computing, 4 (4): 431-442 (1975)
  • C. Х. Беннетт, Дж. Гилл. Относительно случайного оракула A, P! = NP! = Co-NP с вероятностью 1. SIAM Journal on Computing, 10 (1): 96-113 (1981)
  • Эгон Бёргер. «Вычислимость, сложность, логика». North-Holland, 1989.
  • Ричард Чанг, Бенни Чор, Одед Голдрайх, Юрис Хартманис, Йохан Хастад, Деш Ранджан, Панкадж Рохатги. Гипотеза случайного оракула неверна. Журнал компьютерных и системных наук, том 49, выпуск 1, стр. 24–39. Август 1994. ISSN 0022-0000. http://citeseer.ist.psu.edu/282397.html
  • Мартин Дэвис, редактор: The Undecidable, Basic Papers on Undecidable Propositions, Unsolvable Problems And Computable Functions, Raven Press, New York, 1965. В этом томе находится статья Тьюринга. Статьи включают работы Геделя, Черча, Россера, Клини и Поста.
  • C. Пападимитриу. Вычислительная сложность. Addison-Wesley, 1994. Раздел 14.3: Оракулы, стр. 339–343.
  • Хартли Роджерс младший, Теория рекурсивных функций и эффективная вычислимость, McGraw-Hill, 1967.
  • Майкл Сипсер. Введение в теорию вычислений. PWS Publishing, 1997. ISBN 0-534-94728-X. Раздел 9.2: Релятивизация, стр. 318–321.
  • Роберт И. Соар, Рекурсивно перечислимые множества и степени, Перспективы математической логики, Springer, 1987.
  • Алан Тьюринг, Системы на основе логики по ординалам, Тр. Лондонская математика. soc., 45, 1939
  • Дитер ван Мелкебек, Случайность и полнота в вычислительной сложности, Lecture Notes in Computer Science 1950, Springer, 2000.
Последняя правка сделана 2021-06-01 13:42:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте