Máquina de oráculo

Compartir Imprimir Citar
Máquina abstracta utilizada para estudiar problemas de decisión

En la teoría de la complejidad y la teoría de la computabilidad, una máquina oracular es una máquina abstracta utilizada para estudiar problemas de decisión. Se puede visualizar como una máquina de Turing con una caja negra, llamada oráculo, que es capaz de resolver determinados problemas en una sola operación. El problema puede ser de cualquier clase de complejidad. Incluso se pueden utilizar problemas indecidibles, como el problema de detención.

Oráculos

Una máquina de oráculo puede concebirse como una máquina de Turing conectada a un oráculo. El oráculo, en este contexto, es una entidad capaz de resolver algún problema, que por ejemplo puede ser un problema de decisión o un problema de función. El problema no tiene que ser computable; no se supone que el oráculo sea una máquina de Turing o un programa de computadora. El oráculo es simplemente una "caja negra" que es capaz de producir una solución para cualquier instancia de un problema computacional dado:

Una máquina de oráculo puede realizar todas las operaciones habituales de una máquina de Turing y también puede consultar el oráculo para obtener una solución a cualquier instancia del problema computacional para ese oráculo. Por ejemplo, si el problema es un problema de decisión para un conjunto A de números naturales, la máquina del oráculo proporciona al oráculo un número natural y el oráculo responde con un "sí" o "no" indicando si ese número es un elemento de A.

Definiciones

Hay muchas definiciones equivalentes de las máquinas de Turing de Oracle, como se explica a continuación. El que se presenta aquí es de van Melkebeek (2000:43).

Una máquina de Oracle, como una máquina de Turing, incluye:

Además de estos componentes, una máquina Oracle también incluye:

De vez en cuando, la máquina Oracle puede entrar en el estado ASK. Cuando esto sucede, las siguientes acciones se realizan en un solo paso computacional:

El efecto de cambiar al estado ASK es recibir, en un solo paso, una solución a la instancia del problema que está escrita en la cinta de Oracle.

Definiciones alternativas

Existen muchas definiciones alternativas a la presentada anteriormente. Muchos de estos están especializados para el caso en que el oráculo resuelve un problema de decisión. En este caso:

Estas definiciones son equivalentes desde el punto de vista de la computabilidad de Turing: una función es computable por Oracle desde un oráculo dado bajo todas estas definiciones si es computable por Oracle bajo cualquiera de ellas. Sin embargo, las definiciones no son equivalentes desde el punto de vista de la complejidad computacional. En general, se requiere una definición como la de van Melkebeek, utilizando una cinta de oráculo que puede tener su propio alfabeto.

Clases de complejidad de Oracle Machines

La clase de complejidad de los problemas de decisión que puede resolver un algoritmo de clase A con un oráculo para un lenguaje L se llama AL. Por ejemplo, PSAT es la clase de problemas que se pueden resolver en tiempo polinómico mediante una máquina de Turing determinista con un oráculo para el problema booleano de satisfacibilidad. La notación AB se puede extender a un conjunto de lenguajes B (o una clase de complejidad B), usando la siguiente definición:

AB=⋃ ⋃ L▪ ▪ BAL{displaystyle A^{B}=bigcup ¿Qué?

Cuando un idioma L está completo para alguna clase B, entonces AL= AB siempre que las máquinas en A pueden ejecutar reducciones utilizadas en la definición de la integridad de la clase B. En particular, dado que el SAT está completo con respecto a las reducciones de tiempo polinomio, PSAT= PNP. Sin embargo, si A = DLOGTIME, entonces ASAT no igual ANP. (Nota que la definición de AB{displaystyle A^{B} dado arriba no es completamente estándar. En algunos contextos, como la prueba del tiempo y la jerarquía espacial teoremas, es más útil asumir que la máquina abstracta que define clase A{displaystyle A} sólo tiene acceso a un oráculo único para un idioma. En este contexto, AB{displaystyle A^{B} no se define si la clase de complejidad B{displaystyle B} no tiene ningún problema completo con respecto a las reducciones disponibles A{displaystyle A}.)

Se entiende que NP ⊆ PNP, pero la cuestión de si NPNP, PNP, NP y P son iguales sigue siendo provisional en el mejor de los casos. Se cree que son diferentes, y esto lleva a la definición de la jerarquía polinomial.

Las máquinas de Oracle son útiles para investigar la relación entre las clases de complejidad P y NP, considerando la relación entre PA y NPA para un oráculo A. En particular, se ha demostrado que existen lenguajes A y B tales que PA=NPA y PB≠NPB (Baker, Gill y Solovay 1975). El hecho de que la pregunta P = NP relativice en ambos sentidos se toma como evidencia de que responder a esta pregunta es difícil, porque una técnica de prueba que relativiza (es decir, que no se ve afectada por la adición de un oráculo) no responderá a la pregunta P = pregunta NP. La mayoría de las técnicas de demostración relativizan.

Se puede considerar el caso en que un oráculo se elige al azar entre todos los oráculos posibles (un conjunto infinito). Se ha demostrado en este caso, que con probabilidad 1, PA≠NPA (Bennett y Gill 1981). Cuando una pregunta es verdadera para casi todos los oráculos, se dice que es verdadera para un oráculo aleatorio. Esta elección de terminología se justifica por el hecho de que los oráculos aleatorios respaldan una declaración con probabilidad 0 o 1 solamente. (Esto se deduce de la ley cero-uno de Kolmogorov). Esta es solo una evidencia débil de que P≠NP, ya que una declaración puede ser verdadera para un oráculo aleatorio pero falsa para las máquinas de Turing ordinarias; por ejemplo, IPA≠PSPACEA para un oráculo aleatorio A pero IP = PSPACE (Chang et al., 1994).

Oráculos y problemas de detención

Una máquina con un oráculo para el problema de la detención puede determinar si las máquinas de Turing particulares se detendrán ante determinadas entradas, pero no puede determinar, en general, si las máquinas equivalentes a ella se detendrán. Esto crea una jerarquía de máquinas, cada una con un oráculo de detención más poderoso y un problema de detención aún más difícil. Esta jerarquía de máquinas se puede utilizar para definir la jerarquía aritmética (Börger 1989).

Aplicaciones a la criptografía

En criptografía, los oráculos se utilizan para presentar argumentos a favor de la seguridad de los protocolos criptográficos en los que se utiliza una función hash. Se otorga una reducción de seguridad para el protocolo en el caso de que, en lugar de una función hash, un oráculo aleatorio responda cada consulta de manera aleatoria pero consistente; Se supone que el oráculo está disponible para todas las partes, incluido el atacante, como lo está la función hash. Tal prueba muestra que, a menos que el atacante resuelva el problema central de la reducción de la seguridad, debe hacer uso de alguna propiedad interesante de la función hash para romper el protocolo; no pueden tratar la función hash como una caja negra (es decir, como un oráculo aleatorio).