En matemáticas y ciencias de la computación , el Entscheidungsproblem ( en alemán , "problema de decisión"; pronunciado [ɛntˈʃaɪ̯dʊŋspʁoˌbleːm] ) es un desafío planteado por David Hilbert y Wilhelm Ackermann en 1928. [1] Pide un algoritmo que considere una declaración ingresada y responda "sí" o "no" según sea universalmente válida, es decir, válida en todas las estructuras . Alonzo Church y Alan Turing demostraron que un algoritmo de este tipo era imposible en 1936.
Según el teorema de completitud de la lógica de primer orden , un enunciado es universalmente válido si y sólo si puede deducirse utilizando reglas lógicas y axiomas, por lo que el Entscheidungsproblem también puede verse como la búsqueda de un algoritmo para decidir si un enunciado dado es demostrable utilizando las reglas de la lógica .
En 1936, Alonzo Church y Alan Turing publicaron artículos independientes [2] que demostraban que una solución general al Entscheidungsproblem es imposible, suponiendo que la noción intuitiva de " efectivamente calculable " está capturada por las funciones computables por una máquina de Turing (o equivalentemente, por aquellas expresables en el cálculo lambda ). Esta suposición ahora se conoce como la tesis de Church-Turing .
El origen del Entscheidungsproblem se remonta a Gottfried Leibniz , quien en el siglo XVII, después de haber construido una exitosa máquina calculadora mecánica , soñó con construir una máquina que pudiera manipular símbolos para determinar los valores de verdad de los enunciados matemáticos. [3] Se dio cuenta de que el primer paso tendría que ser un lenguaje formal limpio , y gran parte de su trabajo posterior estuvo dirigido a ese objetivo. En 1928, David Hilbert y Wilhelm Ackermann plantearon la pregunta en la forma descrita anteriormente.
Continuando con su "programa", Hilbert planteó tres cuestiones en una conferencia internacional en 1928, la tercera de las cuales se conocería como " El problema de decisión de Hilbert ". [4] En 1929, Moses Schönfinkel publicó un artículo sobre casos especiales del problema de decisión, que fue preparado por Paul Bernays . [5]
Incluso en 1930, Hilbert creía que no existiría ningún problema irresoluble. [6]
Antes de poder responder a la pregunta, era necesario definir formalmente el concepto de "algoritmo". Esto lo hizo Alonzo Church en 1935 con el concepto de "calculabilidad efectiva" basado en su cálculo λ , y Alan Turing al año siguiente con su concepto de máquinas de Turing . Turing reconoció inmediatamente que se trataba de modelos equivalentes de computación .
En 1935-36, Alonzo Church dio una respuesta negativa al Entscheidungsproblem ( teorema de Church ) y, poco después, de forma independiente, Alan Turing en 1936 ( prueba de Turing ). Church demostró que no existe una función computable que decida, para dos expresiones dadas de cálculo λ, si son equivalentes o no. Se basó en gran medida en trabajos anteriores de Stephen Kleene . Turing redujo la cuestión de la existencia de un «algoritmo» o «método general» capaz de resolver el Entscheidungsproblem a la cuestión de la existencia de un «método general» que decida si una máquina de Turing dada se detiene o no (el problema de la detención ). Si se entiende por «algoritmo» un método que puede representarse como una máquina de Turing, y con la respuesta a la última pregunta negativa (en general), la pregunta sobre la existencia de un algoritmo para el Entscheidungsproblem también debe ser negativa (en general). En su artículo de 1936, Turing dice: "Correspondiente a cada máquina de computación 'it' construimos una fórmula 'Un(it)' y mostramos que, si hay un método general para determinar si 'Un(it)' es demostrable, entonces hay un método general para determinar si 'it' alguna vez imprime 0".
El trabajo de Church y de Turing estuvo fuertemente influenciado por el trabajo anterior de Kurt Gödel sobre su teorema de incompletitud , especialmente por el método de asignar números (una numeración de Gödel ) a fórmulas lógicas para reducir la lógica a aritmética.
El problema de Entscheidung está relacionado con el décimo problema de Hilbert , que pide un algoritmo para decidir si las ecuaciones diofánticas tienen solución. La inexistencia de dicho algoritmo, establecido por el trabajo de Yuri Matiyasevich , Julia Robinson , Martin Davis y Hilary Putnam , con la pieza final de la prueba en 1970, también implica una respuesta negativa al problema de Entscheidung .
Utilizando el teorema de deducción , el Entscheidungsproblem abarca el problema más general de decidir si una oración de primer orden dada está implicada por un conjunto finito dado de oraciones, pero la validez en teorías de primer orden con infinitos axiomas no puede reducirse directamente al Entscheidungsproblem. Tales problemas de decisión más generales son de interés práctico. Algunas teorías de primer orden son decidibles algorítmicamente ; ejemplos de esto incluyen la aritmética de Presburger , los cuerpos reales cerrados y los sistemas de tipos estáticos de muchos lenguajes de programación . Por otro lado, la teoría de primer orden de los números naturales con adición y multiplicación expresada por los axiomas de Peano no puede decidirse con un algoritmo.
De forma predeterminada, las citas en la sección son de Pratt-Hartmann (2023). [7]
El problema clásico de Entscheidungsproblem plantea la pregunta de si, dada una fórmula de primer orden, es verdadera en todos los modelos. El problema finitario plantea la pregunta de si es verdadera en todos los modelos finitos. El teorema de Trakhtenbrot muestra que esto también es indecidible. [8] [7]
Algunas notaciones: significa el problema de decidir si existe un modelo para un conjunto de fórmulas lógicas . es el mismo problema, pero para modelos finitos . El problema de un fragmento lógico se llama decidible si existe un programa que puede decidir, para cada conjunto finito de fórmulas lógicas en el fragmento, si existe o no.
Existe una jerarquía de decidibilidades. En la parte superior se encuentran los problemas indecidibles. Debajo de ellos se encuentran los problemas decidibles. Además, los problemas decidibles se pueden dividir en una jerarquía de complejidad.
La lógica aristotélica considera 4 tipos de oraciones: "Todos los p son q", "Todos los p no son q", "Algunos p son q", "Algunos p no son q". Podemos formalizar estos tipos de oraciones como un fragmento de lógica de primer orden: donde son predicados atómicos, y . Dado un conjunto finito de fórmulas lógicas aristotélicas, es NLOGSPACE -completo decidir su . También es NLOGSPACE-completo decidir para una ligera extensión (Teorema 2.7): La lógica relacional extiende la lógica aristotélica al permitir un predicado relacional. Por ejemplo, "Todo el mundo ama a alguien" se puede escribir como . En general, tenemos 8 tipos de oraciones: Es NLOGSPACE -completo decidir su (Teorema 2.15). La lógica relacional se puede extender a 32 tipos de oraciones al permitir , pero esta extensión es EXPTIME -completa (Teorema 2.24).
El fragmento de lógica de primer orden donde los únicos nombres de variable son es NEXPTIME -completo (Teorema 3.18). Con , es RE -completo decidir su , y co-RE-completo decidir (Teorema 3.15), por lo tanto indecidible.
El cálculo de predicados monádicos es el fragmento en el que cada fórmula contiene solo predicados 1-arios y ningún símbolo de función. Es NEXPTIME-completo (Teorema 3.22).
Toda fórmula de primer orden tiene una forma normal prenexa. Para cada posible prefijo cuantificador de la forma normal prenexa, tenemos un fragmento de lógica de primer orden. Por ejemplo, la clase de Bernays–Schönfinkel , , es la clase de fórmulas de primer orden con prefijo cuantificador , símbolos de igualdad y sin símbolos de función .
Por ejemplo, el artículo de Turing de 1936 (p. 263) observó que, dado que el problema de detención de cada máquina de Turing es equivalente a una fórmula lógica de primer orden de forma , el problema es indecidible.
Los límites precisos se conocen claramente:
Börger et al. (2001) [11] describe el nivel de complejidad computacional para cada fragmento posible con cada combinación posible de prefijo cuantificador, aridad funcional, aridad predicada e igualdad/no igualdad.
Disponer de procedimientos prácticos de decisión para clases de fórmulas lógicas es de considerable interés para la verificación de programas y circuitos. Las fórmulas lógicas booleanas puras se suelen decidir utilizando técnicas de resolución SAT basadas en el algoritmo DPLL .
Para problemas de decisión más generales de teorías de primer orden, las fórmulas conjuntivas sobre aritmética lineal real o racional se pueden decidir utilizando el algoritmo simplex , las fórmulas en aritmética lineal entera ( aritmética de Presburger ) se pueden decidir utilizando el algoritmo de Cooper o la prueba Omega de William Pugh . Las fórmulas con negaciones, conjunciones y disyunciones combinan las dificultades de las pruebas de satisfacibilidad con las de la decisión de conjunciones; generalmente se deciden hoy en día utilizando técnicas de resolución SMT , que combinan la resolución SAT con procedimientos de decisión para conjunciones y técnicas de propagación. La aritmética de polinomios reales, también conocida como la teoría de cuerpos cerrados reales , es decidible; este es el teorema de Tarski-Seidenberg , que se ha implementado en computadoras utilizando la descomposición algebraica cilíndrica .