La forma normal disyuntiva perfecta (PDNF) es una de las formas de representar una función del álgebra de la lógica (función booleana) en forma de expresión lógica. Es un caso especial de DNF que cumple las siguientes tres condiciones [1] :
Cualquier fórmula booleana que no sea idénticamente falsa puede reducirse a SDNF, y de manera única, es decir, para cualquier función satisfacible del álgebra lógica, existe su propio SDNF, y el único [2] .
DNF es la "suma de productos", y la operación AND (conjunción) actúa como la operación de "multiplicación", y la operación OR (disyunción) actúa como la operación de "suma". Los factores son diversas variables, y se pueden incluir en el producto tanto en forma directa como inversa.
A continuación se muestra un ejemplo de un DNF:
En términos generales, un DNF puede contener términos repetidos y cada término puede contener factores repetidos, por ejemplo:
Desde un punto de vista matemático, tal clonación no tiene sentido, ya que en el álgebra de Boole, multiplicar cualquier expresión por sí misma y sumar la expresión a sí misma no cambia el resultado ( ), pero sumar una expresión con su propio inverso y multiplicar por su propia inversión da constantes ( ). En la última expresión, puede eliminar los términos y factores repetidos de la siguiente manera:
Por esta razón, los DNF con términos y factores repetidos generalmente se usan solo con fines auxiliares, por ejemplo, en la transformación analítica de expresiones.
SDNF es la forma canónica de representar una función booleana como DNF, en la que están prohibidas las repeticiones de términos y factores. Además, cada término debe contener todas las variables (en forma directa o inversa).
A continuación se muestra un ejemplo de SDNF:
El significado de SDNF es que
Para obtener el SDNF de una función, se requiere compilar su tabla de verdad . Por ejemplo, tome una de las tablas de verdad:
0 | 0 | 0 | una |
0 | 0 | una | una |
0 | una | 0 | una |
0 | una | una | 0 |
una | 0 | 0 | 0 |
una | 0 | una | 0 |
una | una | 0 | una |
una | una | una | 0 |
En las celdas del resultado , solo se marcan aquellas combinaciones que llevan la expresión lógica al estado de uno. Además, se consideran los valores de las variables, en los que la función es igual a 1. Si el valor de una variable es igual a 0, entonces se escribe con inversión. Si el valor de la variable es 1, entonces no hay inversión.
La primera línea contiene 1 en el campo especificado. Se anotan los valores de las tres variables, estos son:
Los valores cero, aquí todas las variables están representadas por ceros, se escriben en la expresión final por el inverso de esta variable. El primer miembro del SDNF de la función considerada se ve así:
Variables de segundo miembro:
en este caso se representará sin inversión:
Таким образом анализируются все ячейки . Совершенная ДНФ этой функции будет дизъюнкцией всех полученных членов ( элементарный ).
El DNF perfecto de esta función es: