En la teoría de la complejidad computacional , el lenguaje TQBF es un lenguaje formal que consiste en las fórmulas booleanas cuantificadas verdaderas . Una fórmula booleana (totalmente) cuantificada es una fórmula en lógica proposicional cuantificada (también conocida como lógica proposicional de segundo orden ) donde cada variable se cuantifica (o se limita ), utilizando cuantificadores existenciales o universales , al comienzo de la oración. Tal fórmula es equivalente a verdadero o falso (ya que no hay variables libres ). Si tal fórmula evalúa a verdadero, entonces esa fórmula está en el lenguaje TQBF. También se conoce como QSAT ( SAT cuantificado ).
En la teoría de la complejidad computacional, el problema de la fórmula booleana cuantificada ( QBF ) es una generalización del problema de satisfacibilidad booleana en el que se pueden aplicar tanto cuantificadores existenciales como cuantificadores universales a cada variable. Dicho de otro modo, pregunta si una forma oracional cuantificada sobre un conjunto de variables booleanas es verdadera o falsa. Por ejemplo, la siguiente es una instancia de QBF:
QBF es el problema completo canónico para PSPACE , la clase de problemas solucionables mediante una máquina de Turing determinista o no determinista en un espacio polinomial y tiempo ilimitado. [1] Dada la fórmula en forma de un árbol de sintaxis abstracta , el problema se puede resolver fácilmente mediante un conjunto de procedimientos recursivos mutuos que evalúan la fórmula. Un algoritmo de este tipo utiliza un espacio proporcional a la altura del árbol, que es lineal en el peor de los casos, pero utiliza un tiempo exponencial en el número de cuantificadores.
Siempre que MA ⊊ PSPACE, como se cree ampliamente, QBF no se puede resolver, ni se puede verificar una solución dada, ni en tiempo polinomial determinista ni en tiempo probabilístico (de hecho, a diferencia del problema de satisfacibilidad, no se conoce ninguna forma de especificar una solución de manera sucinta). Se puede resolver utilizando una máquina de Turing alternada en tiempo lineal, ya que AP = PSPACE, donde AP es la clase de problemas que las máquinas alternadas pueden resolver en tiempo polinomial. [2]
Cuando se mostró el resultado seminal IP = PSPACE (ver sistema de prueba interactivo ), se hizo exhibiendo un sistema de prueba interactivo que podía resolver QBF resolviendo una aritmetización particular del problema. [3]
Las fórmulas QBF tienen varias formas canónicas útiles. Por ejemplo, se puede demostrar que existe una reducción de muchos a uno en tiempo polinómico que moverá todos los cuantificadores al principio de la fórmula y hará que se alternen entre cuantificadores universales y existenciales. Existe otra reducción que resultó útil en la prueba IP = PSPACE, donde no se coloca más de un cuantificador universal entre el uso de cada variable y el cuantificador que vincula esa variable. Esto fue fundamental para limitar la cantidad de productos en ciertas subexpresiones de la aritmetización.
Se puede suponer que una fórmula booleana completamente cuantificada tiene una forma muy específica, llamada forma normal prenex . Tiene dos partes básicas: una parte que contiene solo cuantificadores y una parte que contiene una fórmula booleana no cuantificada que generalmente se denota como . Si hay variables booleanas, la fórmula completa se puede escribir como
donde cada variable cae dentro del alcance de algún cuantificador. Al introducir variables ficticias, cualquier fórmula en forma normal prenex se puede convertir en una oración donde se alternan cuantificadores existenciales y universales. Usando la variable ficticia ,
La segunda oración tiene el mismo valor de verdad pero sigue la sintaxis restringida. Suponer que las fórmulas booleanas completamente cuantificadas están en forma normal prenex es una característica frecuente de las demostraciones.
Existe un algoritmo recursivo simple para determinar si un QBF está en TQBF (es decir, es verdadero). Dado un QBF
Si la fórmula no contiene cuantificadores, podemos simplemente devolver la fórmula. De lo contrario, quitamos el primer cuantificador y verificamos ambos valores posibles para la primera variable:
Si , entonces devuelve . Si , entonces devuelve . [4]
¿Qué tan rápido se ejecuta este algoritmo? Para cada cuantificador en el QBF inicial, el algoritmo realiza dos llamadas recursivas solo en un subproblema linealmente más pequeño. Esto le da al algoritmo un tiempo de ejecución exponencial O(2 n ) . [ cita requerida ]
¿Cuánto espacio utiliza este algoritmo? En cada invocación del algoritmo, necesita almacenar los resultados intermedios del cálculo de A y B. Cada llamada recursiva quita un cuantificador, por lo que la profundidad recursiva total es lineal en el número de cuantificadores. Las fórmulas que carecen de cuantificadores se pueden evaluar en un espacio logarítmico en el número de variables. El QBF inicial estaba completamente cuantificado, por lo que hay al menos tantos cuantificadores como variables. Por lo tanto, este algoritmo utiliza un espacio O ( n + log n ) = O ( n ). Esto hace que el lenguaje TQBF sea parte de la clase de complejidad PSPACE . [ cita requerida ]
A pesar de la completitud PSPACE de QBF, se han desarrollado muchos solucionadores para resolver estas instancias. (Esto es análogo a la situación con SAT , la versión de cuantificador existencial único; aunque es NP-completo , todavía es posible resolver muchas instancias de SAT de manera heurística). [5] [6] El caso donde solo hay 2 cuantificadores, conocido como 2QBF, ha recibido especial atención. [7] [ palabras ambiguas ]
La competición de solucionadores QBF QBFEVAL se ha estado realizando más o menos anualmente desde 2004; [5] [6] los solucionadores deben leer instancias en formato QDIMACS y en los formatos QCIR o QAIGER. [8] Los solucionadores QBF de alto rendimiento generalmente usan QDPLL (una generalización de DPLL ) o CEGAR. [5] [6] [7] La investigación sobre la resolución de QBF comenzó con el desarrollo de DPLL de retroceso para QBF en 1998, seguido por la introducción del aprendizaje de cláusulas y la eliminación de variables en 2002; [9] por lo tanto, en comparación con la resolución SAT, que ha estado en desarrollo desde la década de 1960, QBF es un campo de investigación relativamente joven a partir de 2017. [9] [ palabras ambiguas ]
Algunos solucionadores QBF destacados incluyen:
Los solucionadores QBF se pueden aplicar a la planificación (en inteligencia artificial), incluida la planificación segura; esta última es fundamental en aplicaciones de robótica. [14] Los solucionadores QBF también se pueden aplicar a la verificación de modelos acotados , ya que proporcionan una codificación más corta que la que sería necesaria para un solucionador basado en SAT. [14]
La evaluación de un QBF puede verse como un juego de dos jugadores entre un jugador que controla variables cuantificadas existencialmente y un jugador que controla variables cuantificadas universalmente. Esto hace que los QBF sean adecuados para codificar problemas de síntesis reactiva . [14] De manera similar, los solucionadores de QBF se pueden utilizar para modelar juegos adversarios en la teoría de juegos . Por ejemplo, los solucionadores de QBF se pueden utilizar para encontrar estrategias ganadoras para juegos de geografía , que luego se pueden jugar automáticamente de forma interactiva. [15]
Los solucionadores QBF se pueden utilizar para la comprobación de equivalencia formal y también se pueden utilizar para sintetizar funciones booleanas. [14]
Otros tipos de problemas que pueden codificarse como QBF incluyen:
En QBFEVAL 2020, se introdujo una "vía DQBF" en la que se permitió que las instancias tuvieran cuantificadores Henkin (expresados en formato DQDIMACS). [8]
El lenguaje TQBF sirve en la teoría de la complejidad como el problema PSPACE-completo canónico . Ser PSPACE-completo significa que un lenguaje está en PSPACE y que el lenguaje también es PSPACE-hard . El algoritmo anterior muestra que TQBF está en PSPACE. Demostrar que TQBF es PSPACE-hard requiere demostrar que cualquier lenguaje en la clase de complejidad PSPACE se puede reducir a TQBF en tiempo polinomial. Es decir,
Esto significa que, para un lenguaje PSPACE L, se puede decidir si una entrada x está en L verificando si está en TQBF, para alguna función f que se requiere ejecutar en tiempo polinomial (en relación con la longitud de la entrada). Simbólicamente,
Para demostrar que TQBF es PSPACE-hard, se requiere la especificación de f .
Por lo tanto, supongamos que L es un lenguaje PSPACE. Esto significa que L puede decidirse mediante una máquina de Turing determinista de espacio polinomial (DTM). Esto es muy importante para la reducción de L a TQBF, porque las configuraciones de cualquier máquina de Turing de este tipo se pueden representar como fórmulas booleanas, con variables booleanas que representan el estado de la máquina, así como el contenido de cada celda en la cinta de la máquina de Turing, con la posición de la cabeza de la máquina de Turing codificada en la fórmula por el orden de la fórmula. En particular, nuestra reducción utilizará las variables y , que representan dos configuraciones posibles de la DTM para L, y un número natural t, para construir una QBF que es verdadera si y solo si la DTM para L puede pasar de la configuración codificada en a la configuración codificada en en no más de t pasos. La función f , entonces, construirá a partir del DTM para L un QBF , donde es la configuración inicial del DTM, es la configuración de aceptación del DTM, y T es el número máximo de pasos que el DTM podría necesitar para moverse de una configuración a la otra. Sabemos que T = O (exp( n k )) para algún k , donde n es la longitud de la entrada, porque esto limita el número total de configuraciones posibles del DTM relevante. Por supuesto, el DTM no puede dar más pasos que las configuraciones posibles a alcanzar a menos que entre en un bucle, en cuyo caso nunca alcanzará de todos modos.
En esta etapa de la prueba, ya hemos reducido la cuestión de si una fórmula de entrada w (codificada, por supuesto, en ) está en L a la cuestión de si el QBF , es decir, , está en TQBF. El resto de esta prueba demuestra que f se puede calcular en tiempo polinomial.
Para , el cálculo de es sencillo: una de las configuraciones cambia a la otra en un solo paso o no lo hace. Como la máquina de Turing que representa nuestra fórmula es determinista, esto no presenta ningún problema.
Para , el cálculo de implica una evaluación recursiva, buscando un denominado "punto medio" . En este caso, reescribimos la fórmula de la siguiente manera:
Esto convierte la cuestión de si se puede llegar en t pasos en la cuestión de si se llega a un punto medio en pasos, que a su vez llega en pasos. La respuesta a la última pregunta, por supuesto, da la respuesta a la primera.
Ahora bien, t solo está limitado por T, que es exponencial (y por lo tanto no polinomial) en la longitud de la entrada. Además, cada capa recursiva prácticamente duplica la longitud de la fórmula. (La variable es solo un punto medio; para t mayor, hay más paradas en el camino, por así decirlo). Por lo tanto, el tiempo requerido para evaluar recursivamente de esta manera también podría ser exponencial, simplemente porque la fórmula podría volverse exponencialmente grande. Este problema se resuelve cuantificando universalmente utilizando variables y sobre los pares de configuración (por ejemplo, ), lo que evita que la longitud de la fórmula se expanda debido a las capas recursivas. Esto produce la siguiente interpretación de :
Esta versión de la fórmula puede calcularse en tiempo polinómico, ya que cualquier instancia de la misma puede calcularse en tiempo polinómico. El par ordenado cuantificado universalmente simplemente nos dice que cualquiera sea la elección que se haga de , .
Por lo tanto, TQBF es PSPACE-hard. Junto con el resultado anterior de que TQBF está en PSPACE, esto completa la prueba de que TQBF es un lenguaje PSPACE-completo.
(Esta prueba sigue a Sipser 2006 pp. 310–313 en todos los puntos esenciales. Papadimitriou 1994 también incluye una prueba).
{{cite journal}}
: CS1 maint: multiple names: authors list (link)