Función booleana

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] :

Información básica

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 .

Tablas de verdad

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

Funciones nulas

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

Funciones unarias

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

Funciones binarias

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

Funciones ternarias

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.

Sistemas completos de funciones booleanas

Superposición y clases cerradas de funciones

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.

Identidad y dualidad

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í.

Completitud del sistema, criterio de Post

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 .

Representación de funciones booleanas

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.

Forma normal disyuntiva (DNF)

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 .

Forma normal conjuntiva (CNF)

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.

Forma normal algebraica (ANF o polinomio de Zhegalkin)

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:

  1. Obtener funciones sdnf
  2. Reemplazar Todo O con O Exclusivo
  3. En todos los términos, reemplace los elementos con negación con la construcción: ("elemento" "OR exclusivo" 1)
  4. Abra los paréntesis de acuerdo con las reglas del álgebra de Zhegalkin y proporcione términos idénticos en pares

Clasificación de funciones booleanas

Variables esenciales y ficticias

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]

Véase también

Literatura

Enlaces

  1. Igoshin, 2008 , Capítulo 2. Funciones booleanas.
  2. 1 2 Igoshin, 2008 , pág. 94.
  3. Igoshin, 2008 , pág. 104-105.
  4. Samofalov, 1987 .
  5. Funciones booleanas elementales . Consultado el 9 de noviembre de 2016. Archivado desde el original el 10 de noviembre de 2016.
  6. 1 2 Preguntas seleccionadas de la teoría de funciones booleanas. // A. S. Balyuk y otros Ed. S. F. Vinokurov y N. A. Peryazev. — M.: FIZMATLIT, 2001. — 192 p. - S. 13.
  7. Igoshin, 2008 , pág. 96.
  8. IA Nasyrov. ayuda para la enseñanza Consultado el 20 de noviembre de 2020. Archivado desde el original el 22 de diciembre de 2019.
  9. Gavrilov G.P., Sapozhenko A.A. Colección de problemas de matemática discreta. - M., Nauka, 1977. - pág. 44, 46, 47