En la teoría de la complejidad computacional , una máquina de Turing alternante ( ATM ) es una máquina de Turing no determinista ( NTM ) con una regla para aceptar cálculos que generaliza las reglas utilizadas en la definición de las clases de complejidad NP y co-NP . El concepto de ATM fue establecido por Chandra y Stockmeyer [1] e independientemente por Kozen [2] en 1976, con una publicación conjunta en una revista en 1981. [3]
La definición de NP utiliza el modo existencial de computación: si cualquier elección lleva a un estado de aceptación, entonces todo el cómputo acepta. La definición de co-NP utiliza el modo universal de computación: solo si todas las elecciones llevan a un estado de aceptación, todo el cómputo acepta. Una máquina de Turing alternante (o para ser más precisos, la definición de aceptación para una máquina de este tipo) alterna entre estos modos.
Una máquina de Turing alternante es una máquina de Turing no determinista cuyos estados se dividen en dos conjuntos: estados existenciales y estados universales . Un estado existencial es de aceptación si alguna transición lleva a un estado de aceptación; un estado universal es de aceptación si cada transición lleva a un estado de aceptación. (Por lo tanto, un estado universal sin transiciones acepta incondicionalmente; un estado existencial sin transiciones rechaza incondicionalmente). La máquina en su conjunto acepta si el estado inicial es de aceptación.
Formalmente, una máquina de Turing alternada (de una cinta) es una tupla de 5 donde
Si M está en un estado con entonces se dice que esa configuración está aceptando , y si la configuración está rechazando . Se dice que una configuración con está aceptando si todas las configuraciones alcanzables en un paso están aceptando, y rechazando si alguna configuración alcanzable en un paso está rechazando. Se dice que una configuración con está aceptando cuando existe alguna configuración alcanzable en un paso que está aceptando y rechazando cuando todas las configuraciones alcanzables en un paso están rechazando (este es el tipo de todos los estados en un NTM clásico excepto el estado final). Se dice que M acepta una cadena de entrada w si la configuración inicial de M (el estado de M es , la cabeza está en el extremo izquierdo de la cinta y la cinta contiene w ) está aceptando, y que rechaza si la configuración inicial está rechazando.
Tenga en cuenta que es imposible que una configuración sea a la vez de aceptación y rechazo; sin embargo, algunas configuraciones pueden no ser ni de aceptación ni de rechazo, debido a la posibilidad de cálculos no terminantes.
Al decidir si una configuración de un cajero automático es de aceptación o de rechazo utilizando la definición anterior, no siempre es necesario examinar todas las configuraciones alcanzables a partir de la configuración actual. En particular, una configuración existencial puede etiquetarse como de aceptación si se descubre que alguna configuración sucesora la acepta, y una configuración universal puede etiquetarse como de rechazo si se descubre que alguna configuración sucesora la rechaza.
Un ATM decide un lenguaje formal en el tiempo si, en cualquier entrada de longitud n , examinar configuraciones solo hasta los pasos es suficiente para etiquetar la configuración inicial como aceptable o rechazada. Un ATM decide un lenguaje en el espacio si examinar configuraciones que no modifican celdas de cinta más allá de la celda de la izquierda es suficiente.
Un lenguaje que es decidido por algún ATM en el tiempo para alguna constante se dice que está en la clase , y un lenguaje decidido en el espacio se dice que está en la clase .
Tal vez el problema más natural para que las máquinas alternantes lo resuelvan es el problema de la fórmula booleana cuantificada , que es una generalización del problema de satisfacibilidad booleana en el que cada variable puede estar limitada por un cuantificador existencial o universal. La máquina alternante se ramifica existencialmente para probar todos los valores posibles de una variable cuantificada existencialmente y universalmente para probar todos los valores posibles de una variable cuantificada universalmente, en el orden de izquierda a derecha en el que están limitados. Después de decidir un valor para todas las variables cuantificadas, la máquina acepta si la fórmula booleana resultante se evalúa como verdadera, y rechaza si se evalúa como falsa. Por lo tanto, en una variable cuantificada existencialmente, la máquina acepta si se puede sustituir un valor por la variable que hace que el problema restante sea satisfacible, y en una variable cuantificada universalmente, la máquina acepta si se puede sustituir cualquier valor y el problema restante es satisfacible.
Una máquina de este tipo decide fórmulas booleanas cuantificadas en el tiempo y en el espacio .
El problema de satisfacibilidad booleana puede verse como el caso especial en el que todas las variables están cuantificadas existencialmente, lo que permite que el no determinismo ordinario, que utiliza solo ramificaciones existenciales, lo resuelva de manera eficiente.
Las siguientes clases de complejidad son útiles para definir para los cajeros automáticos:
Son similares a las definiciones de P , PSPACE y EXPTIME , considerando los recursos utilizados por un cajero automático en lugar de una máquina de Turing determinista. Chandra, Kozen y Stockmeyer [3] demostraron los teoremas
cuando y .
Una forma más general de estas relaciones se expresa mediante la tesis de la computación paralela .
Una máquina de Turing alternada con k alternancias es una máquina de Turing alternada que cambia de un estado existencial a un estado universal o viceversa no más de k −1 veces. (Es una máquina de Turing alternada cuyos estados se dividen en k conjuntos. Los estados en conjuntos pares son universales y los estados en conjuntos impares son existenciales (o viceversa). La máquina no tiene transiciones entre un estado en el conjunto i y un estado en el conjunto j < i .)
es la clase de lenguajes decidibles en el tiempo por una máquina que comienza en un estado existencial y se alterna en la mayoría de los casos. Se denomina nivel j de la jerarquía.
se define de la misma manera, pero comenzando en un estado universal; consiste en los complementos de los idiomas en .
Se define de manera similar para el cálculo limitado en el espacio.
Consideremos el problema de minimización de circuitos : dado un circuito A que calcula una función booleana f y un número n , determine si hay un circuito con como máximo n puertas que calcule la misma función f . Una máquina de Turing alternada, con una alternancia, comenzando en un estado existencial, puede resolver este problema en tiempo polinomial (suponiendo un circuito B con como máximo n puertas, luego cambiando a un estado universal, suponiendo una entrada y verificando que la salida de B en esa entrada coincida con la salida de A en esa entrada).
Se dice que una jerarquía colapsa al nivel j si cada idioma en el nivel de la jerarquía está en su nivel j .
Como corolario del teorema de Immerman-Szelepcsényi , la jerarquía del espacio logarítmico colapsa a su primer nivel. [4] Como corolario, la jerarquía colapsa a su primer nivel cuando el espacio es construible [ cita requerida ] .
Una máquina de Turing alternada en tiempo polinomial con k alternancias, comenzando en un estado existencial (respectivamente, universal) puede resolver todos los problemas de la clase (respectivamente, ). [5] Estas clases a veces se denotan como y , respectivamente. Consulte el artículo sobre jerarquía polinomial para obtener más detalles.
Otro caso especial de jerarquías temporales es la jerarquía logarítmica .