En la teoría de la complejidad y la teoría de la computabilidad , una máquina oráculo es una máquina abstracta que puede consultar una caja negra llamada oráculo , la cual es capaz de dar una respuesta a cualquier instancia de un problema determinado .en una sola operación. El problema puede ser de cualquier clase de complejidad , o incluso puede ser un problema indecidible como el problema de la parada . Si otro problema es reducible a en tiempo polinomial , entonces la máquina oráculo (con el -oracle ) puede resolveren tiempo polinomial; se puede decir quepertenece a la clase de complejidad relativizada . . Otras clases de complejidad relativizadas como puede definirse de forma análoga. [ 1 ]
Oráculos
Una máquina 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 funcional . El problema no tiene por qué ser computable; no se presupone que el oráculo sea una máquina de Turing o un programa informático. El oráculo es simplemente una " caja negra " capaz de producir una solución para cualquier instancia de un problema computacional dado .
- Un problema de decisión se representa como un conjunto A de números naturales (o cadenas de caracteres ). Una instancia del problema es un número natural (o cadena de caracteres) arbitrario. La solución a la instancia es "SÍ" si el número (o cadena de caracteres) pertenece al conjunto, y "NO" en caso contrario.
- Un problema de función se representa mediante una relación binaria R que relaciona números naturales (o cadenas) con números naturales (o cadenas). Una instancia del problema es una entrada x para R. Una solución es un valor relacionado con x mediante R.
Una máquina oráculo puede realizar todas las operaciones habituales de una máquina de Turing, y también puede consultar al 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 oráculo le proporciona al oráculo un número natural, y el oráculo responde con "sí" o "no" indicando si ese número es un elemento de A.
Definiciones
Existen muchas definiciones equivalentes de máquinas de Turing oráculo, como se analiza a continuación. La que se presenta aquí proviene de van Melkebeek (2003 , p. 43) .
Una máquina oráculo, como una máquina de Turing, incluye:
- una cinta de trabajo : una secuencia de celdas sin principio ni fin, cada una de las cuales puede contener una B (de espacio en blanco) o un símbolo del alfabeto de la cinta;
- un cabezal de lectura/escritura , que descansa sobre una sola celda de la cinta de trabajo y puede leer los datos allí, escribir nuevos datos e incrementar o decrementar su posición a lo largo de la cinta;
- un mecanismo de control , que puede estar en uno de un número finito de estados , y que realizará diferentes acciones (leer datos, escribir datos, mover el cabezal de lectura/escritura y cambiar de estado) dependiendo del estado actual y de los datos que se estén leyendo.
Además de estos componentes, una máquina oráculo también incluye:
- una cinta oráculo , que es una cinta semiinfinita separada de la cinta de trabajo. El alfabeto para la cinta oráculo puede ser diferente del alfabeto para la cinta de trabajo.
- un cabezal oráculo que, al igual que el cabezal de lectura/escritura, puede moverse hacia la izquierda o hacia la derecha a lo largo de la cinta oráculo leyendo y escribiendo símbolos;
- dos estados especiales: el estado ASK y el estado RESPONSE.
De vez en cuando, la máquina oráculo puede entrar en el estado ASK. Cuando esto sucede, se realizan las siguientes acciones en un único paso computacional:
- El contenido de la cinta del oráculo se considera una instancia del problema computacional del oráculo;
- Se consulta al oráculo y el contenido de la cinta del oráculo se reemplaza con la solución a ese caso particular del problema;
- La cabeza del oráculo se mueve al primer cuadrado de la cinta del oráculo;
- El estado de la máquina oráculo cambia a RESPUESTA.
El efecto de cambiar al estado ASK es, por lo tanto, recibir, en un solo paso, una solución a la instancia del problema que está escrita en la cinta del oráculo.
Definiciones alternativas
Existen muchas definiciones alternativas a la presentada anteriormente. Muchas de ellas están especializadas para el caso en que el oráculo resuelve un problema de decisión. En este caso:
- Algunas definiciones, en lugar de escribir la respuesta en la cinta del oráculo, tienen dos estados especiales, SÍ y NO, además del estado ASK. Cuando se consulta al oráculo, el siguiente estado se elige como SÍ si el contenido de la cinta del oráculo está en el conjunto del oráculo, y se elige como NO si el contenido no está en el conjunto del oráculo. [ 2 ]
- Algunas definiciones prescinden de la cinta de oráculo independiente. Al entrar en el estado del oráculo, se especifica un símbolo de cinta. Se consulta al oráculo con el número de veces que aparece este símbolo de cinta en la cinta de trabajo. Si ese número está en el conjunto del oráculo, el siguiente estado es el estado SÍ; si no lo está, el siguiente estado es el estado NO. [ 3 ]
- Otra definición alternativa hace que la cinta del oráculo sea de solo lectura y elimina por completo los estados ASK y RESPONSE. Antes de que se inicie la máquina, la función indicadora del conjunto del oráculo se escribe en la cinta del oráculo usando los símbolos 0 y 1. La máquina puede entonces consultar el oráculo escaneando hasta el cuadrado correcto en la cinta del oráculo y leyendo el valor que se encuentra allí. [ 4 ]
Estas definiciones son equivalentes desde el punto de vista de la computabilidad de Turing: una función es computable mediante un oráculo dado según todas estas definiciones si lo es según 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, que utiliza una cinta de oráculo con su propio alfabeto.
Clases de complejidad de las máquinas oráculo
La clase de complejidad de problemas de decisión resolubles por un algoritmo de clase A con un oráculo para un lenguaje L se denomina A L . Por ejemplo, P SAT es la clase de problemas resolubles en tiempo polinomial por una máquina de Turing determinista con un oráculo para el problema de satisfacibilidad booleana . La notación A B puede extenderse a un conjunto de lenguajes B (o una clase de complejidad B ), utilizando la siguiente definición:
Cuando un lenguaje L es completo para alguna clase B , entonces A L = A B siempre que las máquinas en A puedan ejecutar reducciones utilizadas en la definición de completitud de la clase B. En particular, dado que SAT es NP-completo con respecto a reducciones de tiempo polinomial, P SAT =P NP . Sin embargo, si A = DLOGTIME , entonces A SAT puede no ser igual a A NP . (La definición deLo dado anteriormente no es completamente estándar. En algunos contextos, como la demostración de los teoremas de jerarquía de tiempo y espacio , es más útil asumir que la máquina abstracta define la clasesolo tiene acceso a un único oráculo para un solo idioma. En este contexto,no está definido si la clase de complejidadno tiene ningún problema completo con respecto a las reducciones disponibles para.)
Se entiende que NP ⊆ P NP , pero la cuestión de si NP NP , P NP , NP y P son iguales sigue siendo, en el mejor de los casos, tentativa. Se cree que son diferentes, y esto lleva a la definición de la jerarquía polinómica .
Las máquinas oráculo son útiles para investigar la relación entre las clases de complejidad P y NP , al considerar la relación entre P A y NP A para un oráculo A. En particular, se ha demostrado que existen lenguajes A y B tales que P A =NP A y P B ≠ NP B. [ 5 ] 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 cualquier técnica de prueba que relativice (es decir, que no se vea afectada por la adición de un oráculo) no responderá a la pregunta P = NP. [ 6 ] La mayoría de las técnicas de prueba relativizan. [ 7 ]
Se puede considerar el caso en que se elige un oráculo al azar entre todos los oráculos posibles (un conjunto infinito ). Se ha demostrado en este caso que, con probabilidad 1, P A ≠ NP A. [ 8 ] 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 solo admiten una afirmación con probabilidad 0 o 1. (Esto se deduce de la ley cero-uno de Kolmogorov ). Esto es solo una evidencia débil de que P ≠ NP, ya que una afirmación puede ser verdadera para un oráculo aleatorio pero falsa para las máquinas de Turing ordinarias; por ejemplo, IP A ≠ PSPACE A para un oráculo aleatorio A pero IP = PSPACE . [ 9 ]
Oráculos y problemas de parada
Una máquina con un oráculo para el problema de la parada puede determinar si determinadas máquinas de Turing se detendrán con entradas específicas, pero no puede determinar, en general, si las máquinas con oráculo como ella (es decir, equipadas con un oráculo para el problema de la parada) se detendrán. Esto crea una jerarquía de máquinas, cada una con un oráculo de parada más potente y un problema de parada aún más difícil. Esta jerarquía de máquinas puede utilizarse para definir la jerarquía aritmética . [ 10 ]
Aplicaciones a la criptografía
En criptografía , los oráculos se utilizan para argumentar a favor de la seguridad de los protocolos criptográficos que emplean una función hash . Se proporciona una reducción de seguridad (prueba de seguridad) para el protocolo cuando, en lugar de una función hash, un oráculo aleatorio responde a cada consulta de forma aleatoria pero consistente; se supone que el oráculo está disponible para todas las partes, incluido el atacante, al igual que la función hash. Dicha prueba demuestra que, a menos que el atacante resuelva el problema fundamental de la reducción de seguridad, deberá aprovechar alguna propiedad interesante de la función hash para vulnerar el protocolo; no puede tratar la función hash como una caja negra (es decir, como un oráculo aleatorio).
Véase también
Referencias
Notas a pie de página
- ↑ van Melkebeek 2003 , sección 2.4.
- ↑ Adachi 1990 , pág. 111.
- ↑ Rogers 1967 , pág. 129.
- ↑ Soare 1987 , pág. 47; Rogers 1967 , pág. 130.
- ↑ Baker, Gill y Solovay 1975 , pág. 431.
- ↑ Trevisan 2014 , pág. 2.
- ↑ Trevisan 2014 , pág. 1.
- ↑ Bennett y Gill 1981 , pág. 96.
- ^ Chang y col. 1994 , pág. 29.
- ↑ Börger 1989 , pág. 141.
Fuentes
- Adachi, Akeo (1990). Fundamentos de la teoría de la computación . Tokio: Ohmsha. ISBN 978-4-274-02190-9.
- Baker, Theodore; Gill, John; Solovay, Robert (diciembre de 1975). "Relativizaciones de la pregunta P=?NP" (PDF) . SIAM Journal on Computing . 4 (4). doi : 10.1137/0204037 . ISSN 0097-5397 . Archivado (PDF) del original el 19 de marzo de 2023. Recuperado el 21 de octubre de 2023 .
- Bennett, Charles H.; Gill, John (febrero de 1981). "Relativo a un oráculo aleatorio A, P A != NP A != co-NP A con probabilidad 1" (PDF) . SIAM Journal on Computing . 10 (1). doi : 10.1137/0210008 . ISSN 0097-5397 . Archivado (PDF) del original el 25 de diciembre de 2022.
- Börger, Egon (1989). Computabilidad, complejidad, lógica . Estudios de lógica y fundamentos de las matemáticas. Ámsterdam: North-Holland. ISBN 978-0-444-87406-1.
- Chang, Richard; Chor, Benny ; Goldreich, Oded ; Hartmanis, Juris ; Håstad, Johan ; Ranjan, Desh; Rohatgi, Pankaj (1 de agosto de 1994). "La hipótesis del oráculo aleatorio es falsa" (PDF) . Journal of Computer and System Sciences . 49 (1): 24–39 . doi : 10.1016/S0022-0000(05)80084-4 . ISSN 0022-0000 .
- Davis, Martin , ed. (1 de abril de 1965). Lo indecidible: Artículos básicos sobre proposiciones indecidibles, problemas irresolubles y funciones computables . Hewlett, Nueva York: Raven Press. ISBN 978-0-911216-01-1Consultado el 21 de octubre de 2023 .
- Papadimitriou, Christos (30 de noviembre de 1993). Complejidad computacional . Reading, Massachusetts: Addison-Wesley. ISBN 978-0-201-53082-7.
- Rogers, Hartley (1 de abril de 1967). Teoría de las funciones recursivas y la computabilidad efectiva . Nueva York: McGraw-Hill. OCLC 559483934 .
- Sipser, Michael (1997). Introducción a la teoría de la computación . Boston: PWS Publishing. ISBN 978-0-534-94728-6OCLC 300459879
- Soare, Robert I. (1987). «Fundamentos de conjuntos recursivamente enumerables y el teorema de recursión». Conjuntos recursivamente enumerables y grados . Perspectivas en lógica matemática (1.ª ed.). Springer Berlin, Heidelberg. pp. 27–45 . doi : 10.1007/978-3-662-02460-7_3 (inactivo el 12 de julio de 2025). ISBN 978-3-540-66681-3ISSN 0172-6641
{{cite book}}: CS1 maint: DOI inactivo desde julio de 2025 ( enlace ) - Trevisan, Luca (16 de enero de 2014). "Apuntes para la Lección 4" (PDF) . CS254: Complejidad Computacional. Universidad de Stanford. Archivado (PDF) del original el 1 de abril de 2014. Recuperado el 22 de octubre de 2023 .
- Turing, Alan (1939). Sistemas de lógica basados en ordinales (tesis doctoral). Universidad de Princeton. doi : 10.1112/plms/s2-45.1.161 . hdl : 21.11116/0000-0001-91CE-3 . ProQuest 301792588. Archivado del original el 13 de marzo de 2020 .
- van Melkebeek, Dieter (29 de junio de 2003). Aleatoriedad y completitud en la complejidad computacional . Lecture Notes in Computer Science. Vol. 1950. Springer Berlin Heidelberg. doi : 10.1007/3-540-44545-5 . ISBN 978-3-540-44545-6. ISSN 1611-3349 . OCLC 48909425 . S2CID 27442913 .
- teoría de la computabilidad
- Máquina de Turing
- oráculos de computación