La forma más común en que ocurren los oráculos en la teoría de la complejidad es la siguiente: se pone a disposición un oráculo fijo , por ejemplo, para una máquina de Turing con ciertos recursos limitados, y uno estudia cómo el oráculo aumenta el poder computacional de la máquina.
Sin embargo, a veces se producen oráculos: como parte de la entrada . Por ejemplo, supongamos que quiero estudiar algoritmos para calcular el volumen de un politopo de alta dimensión dado. Clásicamente, el politopo necesitaría especificarse proporcionando una lista de sus facetas o alguna otra representación explícita. Sin embargo, también podemos plantear el problema de calcular el volumen de un politopo especificado por un oráculo de volumen , que toma las coordenadas de un punto en el espacio como entrada y emite "sí" si y solo si el punto dado se encuentra dentro del politopo. Luego podemos preguntar qué recursos computacionales son necesarios para calcular el volumen de un politopo que se especifica de esta manera. En este caso particular, tenemos el esquema de aproximación de tiempo polinómico muy agradable de Dyer, Frieze y Kannan y, curiosamente desde el punto de vista de la teoría de la complejidad, una prueba de que la aleatoriedad ayuda de una manera esencial para este problema, ya que ningún algoritmo determinista puede funcionar tan bien como el algoritmo Dyer-Frieze-Kannan.
¿Existe una forma sistemática de estudiar la teoría de la complejidad de los problemas en los que se proporcionan oráculos como parte de la entrada? ¿De alguna manera se reduce a la teoría habitual de las clases de complejidad con oráculos? Mi conjetura es que no, y debido a que hay muchas maneras diferentes en que un oráculo podría ser suministrado como parte de la entrada, cada problema de este tipo debe ser manejado de manera ad hoc. Sin embargo, estaría feliz de que me demuestren que estoy equivocado en este punto.