A maneira mais comum pela qual os oráculos ocorrem na teoria da complexidade é a seguinte: Um oráculo fixo é disponibilizado para, digamos, uma máquina de Turing com certos recursos limitados e estuda-se como o oráculo aumenta o poder computacional da máquina.
Há, no entanto, outra maneira pela qual os oráculos às vezes ocorrem: como parte da entrada . Por exemplo, suponha que eu queira estudar algoritmos para calcular o volume de um dado polítopo de alta dimensão. Classicamente, o polytope precisaria ser especificado, fornecendo uma lista de suas facetas ou alguma outra representação explícita. No entanto, também podemos colocar o problema de calcular o volume de um politopo especificado por um oráculo de volume., que toma as coordenadas de um ponto no espaço como entrada e gera "yes" se e somente se o ponto especificado estiver dentro do politopo. Em seguida, podemos perguntar quais recursos computacionais são necessários para calcular o volume de um politopo especificado dessa maneira. Nesse caso em particular, temos o belo esquema de aproximação de tempo polinomial de Dyer, Frieze e Kannan e, curiosamente do ponto de vista da teoria da complexidade, uma prova de que a aleatoriedade ajuda de maneira essencial para esse problema, pois nenhum algoritmo determinístico pode executar tão bem quanto o algoritmo Dyer-Frieze-Kannan.
Existe uma maneira sistemática de estudar a teoria da complexidade dos problemas em que os oráculos são fornecidos como parte da entrada? De alguma forma, reduz à teoria usual das classes de complexidade com oráculos? Meu palpite é que não, e que, como existem muitas maneiras diferentes de fornecer um oráculo como parte da entrada, todo problema desse tipo deve ser tratado de maneira ad hoc. No entanto, eu ficaria feliz em provar que estou errado neste ponto.