Наиболее распространенный способ возникновения оракулов в теории сложности заключается в следующем: фиксированный оракул предоставляется, скажем, машине Тьюринга с определенными ограниченными ресурсами, и изучается, как оракул увеличивает вычислительную мощность машины.
Есть, однако, другой способ, которым оракулы иногда происходят: как часть ввода . Например, предположим, я хочу изучить алгоритмы вычисления объема заданного многомерного многогранника. Классически, многогранник должен быть указан путем предоставления списка его фасетов или некоторого другого явного представления. Тем не менее, мы можем также поставить проблему вычисления объема многогранника, который определяется оракулом объема, который принимает координаты точки в пространстве в качестве входных данных и выдает «да» тогда и только тогда, когда данная точка находится внутри многогранника. Затем мы можем спросить, какие вычислительные ресурсы необходимы для вычисления объема многогранника, указанного таким образом. В этом конкретном случае мы имеем очень хорошую схему аппроксимации полиномиального времени Дайера, Фриза и Каннана и, что интересно, с точки зрения теории сложности, доказательство того, что случайность существенно помогает в этой задаче, в том, что никакой детерминированный алгоритм не может выполнить так же, как алгоритм Дайера-Фриза-Каннана.
Есть ли систематический способ изучения теории сложности проблем, в которых оракулы предоставляются как часть ввода? Это как-то сводится к обычной теории сложности классов с оракулами? Я предполагаю, что нет, и потому что существует слишком много разных способов, которыми оракул может быть предоставлен как часть ввода, каждая проблема такого рода должна решаться специальным образом. Тем не менее, я был бы рад оказаться неправым в этом вопросе.