Una función booleana (o una función lógica , o una función del álgebra de la lógica ) [1] de n argumentos - en matemáticas discretas - un mapeo B n → B , donde B = {0,1} es un conjunto booleano . Los elementos del conjunto booleano {1, 0} se suelen interpretar como los valores lógicos "verdadero" y "falso", aunque en el caso general se consideran símbolos formales que no tienen un significado específico. Un entero no negativo n , que denota el número de argumentos, se denomina aridad o localidad de la función; en el caso de n = 0, la función booleana se convierte en una constante booleana . Los elementos del producto cartesiano ( la n-ésima potencia directa) B n se denominan vectores booleanos . El conjunto de todas las funciones booleanas de cualquier número de argumentos a menudo se denota por P 2 , y de n argumentos por P 2 ( n ). Las variables que toman valores de un conjunto booleano se denominan variables booleanas [2] . Las funciones booleanas llevan el nombre del matemático George Boole .
Cuando se trabaja con funciones booleanas, se produce una completa abstracción del significado significativo que se asume en el álgebra de proposiciones [2] . Sin embargo, se puede establecer una correspondencia biunívoca entre las funciones booleanas y las fórmulas del álgebra proposicional si [3] :
Cada función booleana de aridad n se define completamente fijando sus valores en su dominio de definición, es decir, en todos los vectores booleanos de longitud n . El número de dichos vectores es igual a 2 n . Dado que una función booleana puede asumir 0 o 1 en cada vector, el número de todas las funciones booleanas n -arias es 2 (2 n ) . Por lo tanto, en esta sección, solo se consideran las funciones booleanas más simples e importantes.
Casi todas las funciones booleanas de menor aridad (0, 1, 2 y 3) recibieron nombres históricos. Si el valor de la función no depende de una de las variables (es decir, de hecho, para dos vectores booleanos cualesquiera que difieren solo en el valor de esta variable, el valor de la función sobre ellos es el mismo), entonces esto variable, sin reproducir ningún "valor", se denomina ficticia .
Una función booleana se define por un conjunto finito de valores, lo que permite representarla como una tabla de verdad , por ejemplo [4] :
x1 _ | x2_ _ | … | xn − 1 | x norte | f ( x 1 , x 2 , …, x norte ) |
---|---|---|---|---|---|
0 | 0 | … | 0 | 0 | 0 |
0 | 0 | … | 0 | una | 0 |
0 | 0 | … | una | 0 | una |
0 | 0 | … | una | una | 0 |
una | una | … | 0 | 0 | una |
una | una | … | 0 | una | 0 |
una | una | … | una | 0 | 0 |
una | una | … | una | una | 0 |
Para n = 0, el número de funciones booleanas se reduce a dos 2 2 0 = 2 1 = 2, la primera de ellas es idénticamente igual a 0 y la segunda es 1. Se llaman constantes booleanas: idénticamente cero e idénticamente uno .
Tabla de valores y nombres de funciones booleanas nulas:
Sentido | Designacion | Nombre | |
---|---|---|---|
0 | F0,0 = 0 | cero idéntico | |
una | F0,1 = 1 | unidad idéntica, tautología |
Para n = 1, el número de funciones booleanas es 2 2 1 = 2 2 = 4. Estas funciones se definen en la siguiente tabla.
Tabla de valores y nombres de funciones booleanas de una variable:
x0 = x | una | 0 | Designacion | Nombre |
---|---|---|---|---|
0 | 0 | 0 | F1.0 = 0 | cero idéntico |
una | 0 | una | F1,1 = x = ¬ x = x' = NO(x) | negación, lógico "NO", "NOT", "NOR", inversor , SWAP (intercambio) |
2 | una | 0 | F1,2 = x | función de identidad, "SÍ" lógico, repetidor |
3 | una | una | F1.3=1 | unidad idéntica, tautología |
Para n = 2, el número de funciones booleanas es 2 2 2 = 2 4 = 16.
Tabla de valores y nombres de funciones booleanas a partir de dos variables:
x0 = x | una | 0 | una | 0 | Notación de función | Nombre de la función |
---|---|---|---|---|---|---|
x 1 = y | una | una | 0 | 0 | ||
0 | 0 | 0 | 0 | 0 | F2.0=0 | cero idéntico |
una | 0 | 0 | 0 | una | F2,1 = x ↓ y = x NOR y = NOR( x , y ) = x NOR y = NOR ( x , y ) = NOT(MAX(X,Y)) | Flecha perforante - "↓" ( daga de Quine - "†"), función de Webb - "°" [5] , NON-OR, 2OR-NOT, antidisyunción, inversión máxima |
2 | 0 | 0 | una | 0 | F2,2 = x > y = x GT y = GT( x , y ) = x → y = x ↛ y | función de comparación "el primer operando es mayor que el segundo operando", inversa de implicación directa , coimplicación [6] |
3 | 0 | 0 | una | una | F2,3 = y = y' = ¬ y = NO2( x , y ) = NO2( x , y ) | negación (negación, inversión) del segundo operando |
cuatro | 0 | una | 0 | 0 | F2,4 = x < y = x LT y = LT( x , y ) = x ← y = x ↚ y | función de comparación "el primer operando es menor que el segundo operando", implicación inversa, coimplicación inversa [6] |
5 | 0 | una | 0 | una | F2,5 = x = x' = ¬ x = NO1( x , y ) = NO1( x , y ) | negación (negación, inversión) del primer operando |
6 | 0 | una | una | 0 | F2,6 = x >< y = x <> y = x NE y = NE(x, y) = x ⊕ y = x XOR y = XOR( x , y ) | función de comparación "los operandos no son iguales", adición de módulo 2 excluyendo "o" , suma de Zhegalkin [7] |
7 | 0 | una | una | una | F2.7 = x | y = x NAND y = NAND( x , y ) = x NAND y = NAND ( x , y ) = NOT(MIN(X,Y)) | Trazo de Schaeffer , línea de puntos de Chulkov [8] , NAND, 2I-NOT, anticonjunción, inversión mínima |
ocho | una | 0 | 0 | 0 | F2,8 = x ∧ y = x y = xy = x & y = x Y y = Y( x , y ) = x Y y = Y( x , y ) = min ( x , y ) | conjunción , 2I, mínimo |
9 | una | 0 | 0 | una | F2.9 = ( x ≡ y ) = x ~ y = x ↔ y = x EQV y = EQV( x , y ) | función de comparación "los operandos son iguales", equivalencia |
diez | una | 0 | una | 0 | F2,10 = SI1( x , y ) = SI1( x , y ) = x | primer operando |
once | una | 0 | una | una | F2,11 = x ≥ y = x >= y = x GE y = GE( x , y ) = x ← y = x ⊂ y | función de comparación "el primer operando no es menor que el segundo operando", implicación inversa (del segundo argumento al primero) |
12 | una | una | 0 | 0 | F2,12 = SÍ2( x , y ) = SÍ2( x , y ) = y | segundo operando |
13 | una | una | 0 | una | F2.13 = x ≤ y = x <= y = x LE y = LE( x , y ) = x → y = x ⊃ y | función de comparación "el primer operando no es mayor que el segundo operando", implicación directa (material) (del primer argumento al segundo) |
catorce | una | una | una | 0 | F2,14 = x ∨ y = x + y = x O y = O( x , y ) = x O y = O( x , y ) = máx( x , y ) | disyunción , 2OR, máx . |
quince | una | una | una | una | F2.15=1 | unidad idéntica, tautología |
Con dos argumentos , la notación de prefijo , infijo y posfijo es casi la misma en términos de economía.
Algunas funciones que tienen sentido en la tecnología digital , como las funciones de comparación, mínimo y máximo, no tienen sentido en la lógica, ya que en la lógica , en general, los valores booleanos VERDADERO y FALSO no tienen un vínculo estricto con los valores numéricos. (por ejemplo, en TurboBasic , para simplificar algunos cálculos, VERDADERO = -1, y FALSO = 0) y es imposible determinar qué es mayor que VERDADERO o FALSO, mientras que las implicaciones y demás tienen sentido tanto en tecnología digital como en lógica
Para n = 3, el número de funciones booleanas es 2 (2 3 ) = 2 8 = 256. Algunas de ellas se definen en la siguiente tabla:
Tabla de valores y nombres de algunas funciones booleanas a partir de tres variables con nombre propio :
x0 = x | una | 0 | una | 0 | una | 0 | una | 0 | Notación | Títulos |
---|---|---|---|---|---|---|---|---|---|---|
x 1 = y | una | una | 0 | 0 | una | una | 0 | 0 | ||
x 2 \u003d z | una | una | una | una | 0 | 0 | 0 | 0 | ||
una | 0 | 0 | 0 | 0 | 0 | 0 | 0 | una | F3,1 = x ↓ y ↓ z = ↓(x,y,z) = Webb 2 (x,y,z) = NOR(x,y,z) | 3O-NO, función de Webb, flecha de Pierce , daga de Quine - "†" |
23 | 0 | 0 | 0 | una | 0 | una | una | una | F3,23 = = ≥2(x,y,z) | Interruptor mayoritario con inversión, 3PPB-NE, válvula mayoritaria con inversión |
71 | 0 | una | 0 | 0 | 0 | una | una | una | F3.71= | disyunción condicional |
126 | 0 | una | una | una | una | una | una | 0 | F3.126 = (x≠y≠z) = [≠(x,y,z)] = NE(x,y,z) | Desigualdad |
127 | 0 | una | una | una | una | una | una | una | F3,127 = x|y|z = |(x,y,z) = NAND(x,y,z) | 3I-NOT, accidente cerebrovascular de Schaeffer |
128 | una | 0 | 0 | 0 | 0 | 0 | 0 | 0 | F3,128 = x&y&z = &(x,y,z) = (x AND y AND z) = AND(x,y,z) = (x AND y AND z) = AND(x,y,z) = min (x, y, z) | 3I, mínimo |
129 | una | 0 | 0 | 0 | 0 | 0 | 0 | una | F3.129 = (x=y=z) = [=(x,y,z)] = EQV(x,y,z) | Igualdad |
150 | una | 0 | 0 | una | 0 | una | una | 0 | F3,150 = x⊕y⊕z = x⊕ 2 y⊕ 2 z = ⊕ 2 (x,y,z) | Adición ternaria módulo 2 |
216 | una | una | 0 | una | una | 0 | 0 | 0 | F3.216 = f1 | Préstamo de resta ternaria |
232 | una | una | una | 0 | una | 0 | 0 | 0 | F3,232 = f 2 = [>=2(x,y,z)] = ≥2(x,y,z) = (x Y y) O (y Y z) O (z Y x) | Bit de transporte de suma ternaria, interruptor mayoritario, 3PPB, válvula mayoritaria |
254 | una | una | una | una | una | una | una | 0 | F3,254 = (x+y+z) = +(x,y,z) = (x O y O z) = O(x,y,z) = (x O y O z) = O(x, y, z) = máx (x, y, z) | O, máximo |
Con tres o más argumentos, la notación de prefijo (y posfijo) es más económica que la notación de infijo.
La forma habitual de escribir funciones es el prefijo (antes de los operandos). Con la notación infija (entre operandos) de funciones, las funciones se denominan operadores y los argumentos de función se denominan operandos.
El resultado de evaluar una función booleana se puede utilizar como uno de los argumentos de otra función. El resultado de tal operación de superposición puede verse como una nueva función booleana con su propia tabla de verdad. Por ejemplo, una función (superposición de conjunción, disyunción y dos negaciones) corresponderá a la siguiente tabla:
0 | 0 | 0 | una | |
0 | 0 | una | una | |
0 | una | 0 | una | |
0 | una | una | una | |
una | 0 | 0 | 0 | |
una | 0 | una | 0 | |
una | una | 0 | una | |
una | una | una | 0 |
Se dice que un conjunto de funciones es cerrado bajo la operación de superposición si cualquier superposición de funciones de un conjunto dado también está incluida en el mismo conjunto. Los conjuntos cerrados de funciones también se denominan clases cerradas .
Como los ejemplos más simples de clases cerradas de funciones booleanas , uno puede nombrar un conjunto que consta de una función idéntica, o un conjunto , todas las funciones de las cuales son idénticamente iguales a cero, independientemente de sus argumentos. El conjunto de funciones y el conjunto de todas las funciones unarias también son cerrados. Pero la unión de clases cerradas ya no puede ser tal. Por ejemplo, al combinar las clases y podemos usar la superposición para obtener la constante 1, que estaba ausente en las clases originales.
Por supuesto, el conjunto de todas las funciones booleanas posibles también es cerrado.
Dos funciones booleanas son idénticas entre sí si toman valores iguales en cualquier conjunto de argumentos idénticos. La identidad de las funciones f y g se puede escribir, por ejemplo, de la siguiente manera:
Mirando las tablas de verdad de las funciones booleanas, es fácil obtener las siguientes identidades:
Y verificar las tablas construidas para algunas superposiciones dará los siguientes resultados:
( Leyes de Morgan ) |
( distributividad de la conjunción y la disyunción)
La función se llama función dual si . Es fácil mostrar que en esta igualdad f y g pueden intercambiarse, es decir, las funciones f y g son duales entre sí. De las funciones más simples, las constantes 0 y 1 son duales entre sí, y la dualidad de conjunción y disyunción se deriva de las leyes de De Morgan. La función idéntica, como la función de negación, es dual consigo misma.
Si en una identidad booleana reemplazamos cada función por su dual, nuevamente obtenemos la identidad correcta. En las fórmulas anteriores, es fácil encontrar pares duales entre sí.
Un sistema de funciones booleanas se llama completo si es posible construir su superposición, que es idéntica a cualquier función predefinida. También dicen que el cierre de un determinado sistema coincide con el del conjunto .
El matemático estadounidense Emil Post introdujo las siguientes clases cerradas de funciones booleanas:
Demostró que cualquier clase cerrada de funciones booleanas que no coincida con está enteramente contenida en una de estas cinco llamadas clases precompletas , pero ninguna de las cinco está enteramente contenida en la unión de las otras cuatro. Así, el criterio de Post para la completitud de un sistema se reduce a averiguar si todo el sistema está contenido por completo en una de las clases precompletas. Si para cada clase en el sistema hay una función que no está incluida en él, dicho sistema estará completo y, con la ayuda de las funciones incluidas en él, será posible obtener cualquier otra función booleana. Post demostró que el conjunto de clases cerradas de funciones booleanas es un conjunto contable .
Tenga en cuenta que hay funciones que no están incluidas en ninguna de las clases de Post. Cualquiera de estas funciones por sí sola forma un sistema completo. Los ejemplos incluyen el trazo de Schaeffer o la flecha de Pierce .
El teorema de Post abre el camino para representar funciones booleanas de una forma sintáctica que en algunos casos resulta mucho más conveniente que las tablas de verdad. El punto de partida aquí es encontrar algún sistema completo de funciones . Entonces cada función booleana puede ser representada por algún término en la firma , que en este caso también se llama fórmula . En cuanto al sistema de funciones elegido, es útil conocer las respuestas a las siguientes preguntas:
Las respuestas positivas a estas y otras preguntas aumentan significativamente el valor aplicado del sistema de funciones elegido.
Una conjunción simple o conjunto es una conjunción de un conjunto finito de variables o sus negaciones, donde cada variable ocurre como máximo una vez. La forma normal disyuntiva o DNF es la disyunción de conjunciones simples. Conjunción elemental
Por ejemplo - es un DNF.
Una forma normal disyuntiva perfecta o SDNF con respecto a un conjunto finito dado de variables es un DNF tal que cada conjunción contiene todas las variables del conjunto dado y en el mismo orden. Por ejemplo: .
Es fácil ver que cada función booleana corresponde a algún DNF y a una función distinta del cero idéntico, incluso un SDNF. Para ello basta con encontrar en la tabla de verdad de esta función todos los vectores booleanos en los que su valor sea igual a 1, y para cada uno de esos vectores construir una conjunción , donde . La disyunción de estas conjunciones es el SDNF de la función original, ya que en todos los vectores booleanos sus valores coinciden con los valores de la función original. Por ejemplo, para una implicación , el resultado es , que se puede simplificar a .
La forma normal conjuntiva (CNF) se define dualmente a DNF. Una disyunción simple o disjunción es una disyunción de una o más variables o sus negaciones, y cada variable se incluye en ella no más de una vez. CNF es una conjunción de disyunciones simples.
Una forma normal conjuntiva perfecta (PCNF), con respecto a un conjunto finito dado de variables, es tal CNF, en el que cada disyunción incluye todas las variables de este conjunto, y en el mismo orden. Dado que (C)CNF y (C)DNF son mutuamente duales, las propiedades de (C)CNF repiten todas las propiedades de (C)DNF, en términos generales, "exactamente lo contrario".
CNF se puede convertir a su equivalente DNF abriendo paréntesis de acuerdo con la regla:
que expresa la distributividad de la conjunción con respecto a la disyunción. Después de eso, es necesario eliminar las variables repetidas o sus negaciones en cada conjunción, y también descartar de la disyunción todas las conjunciones en las que aparece la variable junto con su negación. En este caso, el resultado no será necesariamente SDNF, incluso si el CNF original era SKNF. Del mismo modo, siempre se puede pasar de DNF a CNF. Para ello, utilice la regla
expresando la distributividad de la disyunción con respecto a la conjunción. El resultado debe transformarse de la manera descrita anteriormente, reemplazando la palabra "conjunción" por "disyunción" y viceversa.
La forma normal algebraica (nombre común en la literatura extranjera) o polinomio de Zhegalkin (nombre usado en la literatura nacional) es una forma de representación de una función lógica como un polinomio con coeficientes de la forma 0 y 1, en el que la operación de conjunción ("Y" , AND), y como suma - suma módulo 2 (exclusivo "OR", XOR). Para obtener el polinomio de Zhegalkin, haga lo siguiente:
Una variable de una función booleana se llama esencial si para una función booleana hay dos conjuntos de valores de sus argumentos que difieren solo en el valor de esta variable y los valores de la función booleana en ellos difieren. Si los valores de esta función coinciden en ellos, entonces la variable se llama ficticia. Una variable es esencial si y solo si entra en un DNF perfecto de una función booleana o entra en un polinomio de Zhegalkin de una función booleana.
Dos funciones booleanas se llaman iguales si los conjuntos de sus variables esenciales son iguales y los valores de las funciones coinciden en cualquiera de los dos conjuntos iguales de valores de las variables esenciales. [9]
diccionarios y enciclopedias | |
---|---|
En catálogos bibliográficos |