Forma estándar de la función booleana
En lógica booleana , una fórmula está en forma normal conjuntiva ( CNF ) o forma normal clausular si es una conjunción de una o más cláusulas , donde una cláusula es una disyunción de literales ; en otras palabras, es un producto de sumas o un AND de OR . Como forma normal canónica , es útil en la demostración automática de teoremas y la teoría de circuitos .
En la demostración automatizada de teoremas, la noción de " forma normal clausal " se utiliza a menudo en un sentido más estricto, es decir, una representación particular de una fórmula CNF como un conjunto de conjuntos de literales.
Definición
Se considera que una fórmula lógica está en CNF si es una conjunción de una o más disyunciones de uno o más literales . Al igual que en la forma normal disyuntiva (DNF), los únicos operadores proposicionales en CNF son o ( ), y ( ), y no ( ). El operador no solo se puede usar como parte de un literal, lo que significa que solo puede preceder a una variable proposicional .
La siguiente es una gramática libre de contexto para CNF:
- CNF → ( Disyunción ) CNF
- CNF → ( Disyunción )
- Disyunción → Disyunción literal
- Disyunción → Literal
- Literal → Variable
- Literal → Variable
Donde Variable es cualquier variable.
Todas las siguientes fórmulas en las variables , y están en forma normal conjuntiva:
Las siguientes fórmulas no están en forma normal conjuntiva:
- , ya que un AND está anidado dentro de un NOT
- , ya que un OR está anidado dentro de un NOT
- , ya que un AND está anidado dentro de un OR
Conversión a CNF
En la lógica clásica, cada fórmula proposicional se puede convertir en una fórmula equivalente que esté en CNF. Esta transformación se basa en reglas sobre equivalencias lógicas : eliminación de doble negación , leyes de De Morgan y la ley distributiva .
Algoritmo básico
El algoritmo para calcular un equivalente CNF de una fórmula proposicional dada se basa en la forma normal disyuntiva (DNF) : paso 1. [2]
Luego se convierte a intercambiando AND con OR y viceversa mientras se niegan todos los literales. Eliminar todos los .
Conversión por medios sintácticos
Convierte a CNF la fórmula proposicional .
Paso 1 : Convertir su negación a forma normal disyuntiva. [2]
, [a]
donde cada uno es una conjunción de literales . [b]
Paso 2 : Niega . Luego, desplaza hacia adentro aplicando las equivalencias de De Morgan (generalizadas) hasta que ya no sea posible.
donde
Paso 3 : Eliminar todas las dobles negaciones.
Ejemplo
Convertir a CNF la fórmula proposicional . [c]
El equivalente DNF (completo) de su negación es [2]
Conversión por medios semánticos
Se puede derivar un equivalente CNF de una fórmula a partir de su tabla de verdad . Nuevamente, considere la fórmula . [c]
La tabla de verdad correspondiente es
Un equivalente CNF de es
Cada disyunción refleja una asignación de variables para las cuales se evalúa como F(también).
Si en dicha asignación una variable
- es Verdadero, entonces el literal se establece en la disyunción,
- es F(alse), entonces el literal se establece en la disyunción.
Otros enfoques
Dado que todas las fórmulas proposicionales se pueden convertir en una fórmula equivalente en forma normal conjuntiva, las demostraciones a menudo se basan en el supuesto de que todas las fórmulas son CNF. Sin embargo, en algunos casos esta conversión a CNF puede conducir a una explosión exponencial de la fórmula. Por ejemplo, traducir la fórmula no CNF
en CNF produce una fórmula con cláusulas:
Cada cláusula contiene o para cada .
Existen transformaciones en CNF que evitan un aumento exponencial del tamaño al preservar la satisfacibilidad en lugar de la equivalencia . Se garantiza que estas transformaciones solo aumentarán linealmente el tamaño de la fórmula, pero introducirán nuevas variables. Por ejemplo, la fórmula anterior se puede transformar en CNF agregando variables de la siguiente manera:
Una interpretación satisface esta fórmula sólo si al menos una de las nuevas variables es verdadera. Si esta variable es , entonces tanto como son verdaderas también. Esto significa que cada modelo que satisface esta fórmula también satisface la original. Por otro lado, sólo algunos de los modelos de la fórmula original satisfacen esta: dado que no se mencionan en la fórmula original, sus valores son irrelevantes para la satisfacción de esta, lo que no es el caso en la última fórmula. Esto significa que la fórmula original y el resultado de la traducción son equisatisfacibles pero no equivalentes .
Una traducción alternativa, la transformación de Tseitin , incluye también las cláusulas . Con estas cláusulas, la fórmula implica ; a menudo se considera que esta fórmula "define" un nombre para .
Número máximo de disyunciones
Consideremos una fórmula proposicional con variables, .
Hay posibles literales: .
tiene subconjuntos no vacíos. [d]
Este es el número máximo de disyunciones que puede tener una CNF. [e]
Todas las combinaciones veritativas-funcionales se pueden expresar con disyunciones, una por cada fila de la tabla de verdad. En el ejemplo siguiente, están subrayadas.
Ejemplo
Consideremos una fórmula con dos variables y .
La CNF más larga posible tiene disyunciones: [e]
Esta fórmula es una contradicción .
Complejidad computacional
Un conjunto importante de problemas en la complejidad computacional implica encontrar asignaciones a las variables de una fórmula booleana expresada en forma normal conjuntiva, de modo que la fórmula sea verdadera. El problema k -SAT es el problema de encontrar una asignación satisfactoria a una fórmula booleana expresada en CNF en la que cada disyunción contiene como máximo k variables. 3-SAT es NP-completo (como cualquier otro problema k -SAT con k >2) mientras que se sabe que 2-SAT tiene soluciones en tiempo polinomial . Como consecuencia, [f] la tarea de convertir una fórmula en una DNF , preservando la satisfacibilidad, es NP-difícil ; dually , convertir en CNF, preservando la validez , también es NP-difícil; por lo tanto, la conversión preservando la equivalencia en DNF o CNF es nuevamente NP-difícil.
Los problemas típicos en este caso son las fórmulas en "3CNF": forma normal conjuntiva con no más de tres variables por conjunto. Los ejemplos de este tipo de fórmulas que se encuentran en la práctica pueden ser muy numerosos, por ejemplo, con 100.000 variables y 1.000.000 de conjuntos.
Una fórmula en CNF se puede convertir en una fórmula equisatisfacible en " k CNF" (para k ≥3) reemplazando cada conjunción con más de k variables por dos conjunciones y con Z una nueva variable, y repitiendo tantas veces como sea necesario.
Lógica de primer orden
En lógica de primer orden, la forma normal conjuntiva se puede llevar más allá para obtener la forma normal clausal de una fórmula lógica, que luego se puede utilizar para realizar una resolución de primer orden . En la demostración automatizada de teoremas basada en resolución, una fórmula CNF
Vea un ejemplo a continuación.
Conversión desde la lógica de primer orden
Para convertir la lógica de primer orden a CNF:
- Convertir a forma normal de negación .
- Eliminar implicaciones y equivalencias: reemplazar repetidamente con ; reemplazar con . Con el tiempo, esto eliminará todas las apariciones de y .
- Mueva los NOT hacia adentro aplicando repetidamente la ley de De Morgan . Específicamente, reemplace con ; reemplace con ; y reemplace con ; reemplace con ; con . Después de eso, a puede aparecer solo inmediatamente antes de un símbolo de predicado.
- Estandarizar variables
- En el caso de oraciones como las que usan el mismo nombre de variable dos veces, cambie el nombre de una de las variables. Esto evita confusiones posteriores al eliminar cuantificadores. Por ejemplo, se cambia el nombre a .
- Skolemizar la declaración
- Mueva los cuantificadores hacia afuera: reemplace repetidamente con ; reemplace con ; reemplace con ; reemplace con . Estos reemplazos preservan la equivalencia, ya que el paso de estandarización de variables anterior aseguró que no ocurra en . Después de estos reemplazos, un cuantificador puede aparecer solo en el prefijo inicial de la fórmula, pero nunca dentro de un , o .
- Reemplace repetidamente con , donde es un nuevo símbolo de función -aria, una denominada " función de Skolem ". Este es el único paso que conserva únicamente la satisfacibilidad en lugar de la equivalencia. Elimina todos los cuantificadores existenciales.
- Abandone todos los cuantificadores universales.
- Distribuir OR hacia adentro sobre AND: reemplazar repetidamente con .
Ejemplo
A modo de ejemplo, la fórmula que dice "Quien ama a todos los animales, es a su vez amado por alguien" se convierte en CNF (y posteriormente en forma de cláusula en la última línea) de la siguiente manera (resaltando las reglas de reemplazo redexes en ):
De manera informal, se puede pensar que la función Skolem da como resultado la persona que ama, mientras que da como resultado el animal (si lo hay) que no ama. La tercera última línea desde abajo se lee como " no ama al animal , o bien es amado por " .
La segunda última línea desde arriba, , es el CNF.
Véase también
Notas
- ^ número máximo de conjunciones para
- ^ número máximo de literales para
- ^ ab = (( NO (p Y q)) SI FALSO (( NO r) N Y (p XOR q)))
- ^
- ^ ab Se supone que no ocurren repeticiones y variaciones (como ) basadas en la conmutatividad y asociatividad de y .
- ^ dado que una forma de comprobar la satisfacibilidad de una CNF es convertirla en una DNF , cuya satisfacibilidad se puede comprobar en tiempo lineal
- ^ número máximo de disyunciones número máximo de literales
Referencias
- Andrews, Peter B. (2013). Introducción a la lógica matemática y la teoría de tipos: hacia la verdad a través de la prueba . Springer. ISBN 978-9401599344.
- Howson, Colin (11 de octubre de 2005) [1997]. Lógica con árboles: una introducción a la lógica simbólica. Routledge. ISBN 978-1-134-78550-6.
- Jackson, Paul; Sheridan, Daniel (10 de mayo de 2004). "Conversiones de la forma de cláusula para circuitos booleanos" (PDF) . En Hoos, Holger H.; Mitchell, David G. (eds.). Teoría y aplicaciones de las pruebas de satisfacibilidad . 7.ª Conferencia internacional sobre teoría y aplicaciones de las pruebas de satisfacibilidad, SAT. Documentos seleccionados revisados. Notas de clase en informática. Vol. 3542. Vancouver, BC, Canadá: Springer 2005. pp. 183–198. doi :10.1007/11527695_15. ISBN 978-3-540-31580-3.
- Kleine Büning, Hans; Lettmann, Theodor (28 de agosto de 1999). Lógica proposicional: deducción y algoritmos. Cambridge University Press . ISBN 978-0-521-63017-7.
- Russel, Stuart ; Norvig, Peter , eds. (2010) [1995]. Inteligencia artificial: un enfoque moderno (PDF) (3.ª ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 978-0-13-604259-4. Archivado (PDF) del original el 31 de agosto de 2017.
- Tseitin, Grigori S. (1968). "Sobre la complejidad de la derivación en el cálculo proposicional" (PDF) . En Slisenko, AO (ed.). Estructuras en matemáticas constructivas y lógica matemática, parte II, Seminarios de matemáticas (traducido del ruso) . Instituto Matemático Steklov. pp. 115–125.
- Whitesitt, J. Eldon (24 de mayo de 2012) [1961]. Álgebra de Boole y sus aplicaciones. Courier Corporation. ISBN 978-0-486-15816-7.
Enlaces externos
- "Herramienta Java para convertir una tabla de verdad en CNF y DNF". Universidad de Marburgo . Consultado el 31 de diciembre de 2023 .