13.6: Expresiones booleanas
( \newcommand{\kernel}{\mathrm{null}\,}\)
En esta sección, utilizaremos nuestros antecedentes de las secciones anteriores y la teoría de conjuntos para desarrollar un procedimiento para simplificar las expresiones booleanas. Este procedimiento tiene una aplicación considerable a la simplificación de circuitos en teoría de conmutación o diseño lógico.
Definición13.6.1: Boolean Expression
Dejar[B;∨,∧,−] ser cualquier álgebra booleana, y dejarx1,x2,…,xk ser variables enB; esto es, variables que pueden asumir valores deB. Una expresión booleana generada porx1,x2,…,xk es cualquier combinación válida de losxi y los elementos deB con las operaciones de meet, join, y complementación.
Esta definición es el análogo de la definición de una proposición generada por un conjunto de proposiciones, presentada en la Sección 3.2.
Cada expresión booleana generada pork variables,e(x1,…,xk), define una funciónf:Bk→B dondef(a1,…,ak)=e(a1,…,ak). SiB es un álgebra booleana finita, entonces hay un número finito de funciones desdeBk dentroB. Esas funciones que se definen en términos de expresiones booleanas son llamadas funciones booleanas. Como veremos, hay un número infinito de expresiones booleanas que definen cada función booleana. Naturalmente, se preferirá la “más corta” de estas expresiones. Dado que los circuitos electrónicos pueden describirse como funciones booleanas conB=B2, esta economización es bastante útil.
En lo que sigue, hacemos uso del Ejercicio 7.1.5 de la Sección 7.1 para contar el número de funciones.
Ejemplo13.6.1: Two Variables Over B2
Considera algún álgebra booleana de orden 2,[B;∨,∧,−]. ¿Cuántas funcionesf:B2→B hay? Primero, todas las álgebras booleanas de orden 2 son isomórficas a[B2;∨,∧,−] así que queremos determinar el número de funcionesf:B22→B2. si consideramos una función booleana de dos variables,x1 yx2, observamos que cada variable tiene dos valores posibles 0 y 1, por lo que hay22 formas de asignar estos dos valores a lask=2 variables. De ahí que la siguiente tabla tenga22=4 filas. Hasta el momento tenemos una mesa como ésta:
\ begin {ecuación*}\ begin {array} {cc|c} x_1 & x_2 & f\ left (x_1, x_2\ derecha)\\\ hline 0 & 0 &? \\ 0 & 1 &? \\ 1 & 0 &? \\ 1 & 1 &? \\\ end {array}\ end {ecuación*}
¿Cuántas posibles funciones diferentes puede haber? Para enumerar algunos:f1(x1,x2)=x1,f2(x1,x2)=x2,f3(x1,x2)=x1∨x2,f4(x1,x2)=(x1∧¯x2)∨x2,f5(x1,x2)=x1∧x2∨¯x2, etc. Cada uno de estos rellenará los signos de interrogación en la tabla anterior. Las mesas paraf1 yf3 son
\ begin {ecuación*}\ begin {array} {lr}\ begin {array} {cc|c} x_1 & x_2 & f_1\ left (x_1, x_2\ derecha)\\\ hline 0 & 0 & 0\\ 0 & 1 & 0\\ 1 & 0 & 1\\ 1 & 1 & 1 & 1\\\ end {array} &\ begin {array} {cc|c} x_1 y x_2 y f_3\ izquierda (x_1, x_2\ derecha)\\ hline 0 & 0 & 0\\ 0 & 1 & amp; 1\\ 1 & 0 & 1\\ 1 & 1 & 1 & 1\\\ end {array}\\ end {array}\ end {equation*}
Dos funciones son diferentes si y solo si sus tablas son diferentes para al menos una fila. Por supuesto mediante el uso de las leyes básicas del álgebra booleana podemos ver quef3=f4. ¿Por qué? Entonces, si simplemente enumeramos por fuerza bruta todas las “combinaciones” dex1 and x2 obtendremos duplicaciones innecesarias. Sin embargo, observamos que para cualquier combinación de las variablesx1, y solox2 hay dos valores posibles paraf(x1,x2), saber 0 o 1. Así, podríamos escribir24=16 diferentes funciones en 2 variables.
Ahora, vamos a contar el número de diferentes funciones booleanas en un entorno más general. Consideraremos dos casos: primero, cuándo y segundoB=B2, cuándoB es cualquier álgebra booleana finita con2n elementos.
LetB=B2. Cada funciónf:Bk→B se define en términos de una tabla que tiene2k filas. Por lo tanto, dado que hay dos posibles imágenes para cada elemento deBk, hay 2 elevadas a las funciones2k, o22k diferentes. Mostraremos que cada una de estas funciones es una función booleana.
Ahora supongamos que|B|=2n>2. Una función deBk haciaB adentro todavía se puede definir en términos de una tabla. Hay|B|k filas en cada tabla y|B| posibles imágenes para cada fila. Por lo tanto, se2n elevan al poder2nk diferentes funciones. Mostraremos que sin>1, no cada una de estas funciones es una función booleana.
Dado que todos los álgebras booleanos son isomórficos a un álgebra booleana de conjuntos, los análogos de declaraciones en conjuntos son útiles en álgebras booleanas.
Definición 13.6.2: Minterm
Una expresión booleana generada porx1,x2,…,xk que tiene la forma
\ begin {ecuación*}\ underset {i=1} {\ overset {k} {\ land}} y_i,\ end {ecuación*}
donde cada unoyi puede serxi o¯xi se llama un minterm generado porx1,x2,…,xk. Utilizamos la notaciónMδ1δ2⋯δk para el minterm generado porx1,x2,…,xk, dondeyi=xi siδi=1 yyi=¯xi siδi=0
Un ejemplo de la notación es queM110=x1∧x2∧¯x3.
Por una aplicación directa de la Regla de Productos vemos que existen2k diferentes minterms generados porx1,…,xk.
Definición 13.6.3: Minterm Normal Form
Una expresión booleana generada porx1,…,xk está en forma normal minterm si es la unión de expresiones de la formaa∧m, dondea∈B ym es un minterm generado por Esx1,…,xk. decir, es de la forma
p∨j=1(aj∧mj)
dondep=2k, ym1,m2,…,mp son los minterms generados porx1,…,xk.
Nota13.6.1
- Parece que requerimos cada minterm generado porx1,…,xk, in(???), y realmente lo hacemos. Sin embargo, algunos de los valores deaj pueden ser los00, que efectivamente hacen desaparecer al minterm correspondiente.
- SiB=B2, entonces cada unoaj en una forma normal minterm es 0 o 1. Por lo tanto,aj∧mj es 0 omj.
Teorema13.6.1: Uniqueness of Minterm Normal Form
Lete(x1,…,xk) be a booleana expresión sobre B. Existe una forma normal minterm únicaM(x1,…,xk) que es equivalente ae(x1,…,xk) en el sentido de que e y M definen la misma función desdeBk dentroB.
La singularidad en este teorema no incluye el posible ordenamiento de los minterms enM (comúnmente conocido como “singularidad hasta el orden de minterms”). La prueba de este teorema sería bastante larga, y no muy instructiva, por lo que dejaremos que el lector interesado lo intente. Las implicaciones del teorema son muy interesantes, sin embargo.
Si|B|=2n, entonces se2n elevan a las2k diferentes formas normales minterm. Dado que cada forma normal minterm diferente define una función diferente, hay un número similar de funciones booleanas desdeBk dentroB. SiB=B2, hay tantas funciones booleanas (2 elevadas a la2k) como funciones desdeBk dentroB, ya que hay 2elevado a las2n funciones desdeBk haciaB. La importancia de este resultado es que cualquier función deseada puede realizarse utilizando circuitos electrónicos que tengan valores 0 o 1 (apagado o encendido, positivo o negativo).
Los circuitos multivalores más complejos correspondientes a álgebras booleanas con más de dos valores no tendrían esta flexibilidad debido al número de formas normales minterm, y de ahí el número de funciones booleanas, es estrictamente menor que el número de funciones.
Cerraremos esta sección examinando las formas normales minterm para expresiones terminadasB2, ya que son un punto de partida para la economización de circuitos.
Ejemplo13.6.2
Considerar la expresión booleanaf(x1,x2)=x1∨¯x2. Un método para determinar la forma normal minterm def es pensar en términos de conjuntos. Considera el diagrama con la traducción habitual de notación en la Figura13.6.1. Entonces
\ begin {equation*}\ begin {split} f\ left (x_1, x_2\ right) &=\ left (\ overline {x_1}\ land\ overline {x_2}\ right)\ lor\ left (x_1\ land\ overline {x_2}\ right)\ lor\ left (x_1\ land x_2\ right)\\ & = M_ {00}\ or M_ {10}\ or M_ {11}\ final {división}\ final {ecuación*}

Tabla13.6.1: Definición de la función booleanag
x1 | x2 | x3 | g(x1,x2,x3) |
---|---|---|---|
\ (x_1\) ">0 | \ (x_2\) ">0 | \ (x_3\) ">0 | \ (g (x_1, x_2, x_3)\) ">1 |
\ (x_1\) ">0 | \ (x_2\) ">0 | \ (x_3\) ">1 | \ (g (x_1, x_2, x_3)\) ">0 |
\ (x_1\) ">0 | \ (x_2\) ">1 | \ (x_3\) ">0 | \ (g (x_1, x_2, x_3)\) ">0 |
\ (x_1\) ">0 | \ (x_2\) ">1 | \ (x_3\) ">1 | \ (g (x_1, x_2, x_3)\) ">1 |
\ (x_1\) ">1 | \ (x_2\) ">0 | \ (x_3\) ">0 | \ (g (x_1, x_2, x_3)\) ">0 |
\ (x_1\) ">1 | \ (x_2\) ">0 | \ (x_3\) ">1 | \ (g (x_1, x_2, x_3)\) ">0 |
\ (x_1\) ">1 | \ (x_2\) ">1 | \ (x_3\) ">0 | \ (g (x_1, x_2, x_3)\) ">1 |
\ (x_1\) ">1 | \ (x_2\) ">1 | \ (x_3\) ">1 | \ (g (x_1, x_2, x_3)\) ">0 |
Ejemplo13.6.3
Considera la funcióng:B32→B2 definida por Table13.6.1.
La forma normal minterm para seg puede obtener tomando la unión de minterms que corresponden a filas que tienen un valor de imagen de 1. Sig(a1,a2,a3)=1, entonces incluye el mintermy1∧y2∧y3 donde
\ begin {ecuation*} y_j=\ begin {cases} x_j &\ textrm {if} a_j=1\\\ bar {x_j} &\ textrm {if} a_j=0\\\ end {casos}\ end {ecuación*}
O, para usar notación alternativa, incluirMa1a2a3 en la expresión if y solo sig(a1,a2,a3)=1
Por lo tanto,
\ begin {ecuación*} g\ izquierda (x_1, x_2, x_3\ derecha) =\ izquierda (\ overline {x_1}\ tierra\ overline {x_2}\ tierra\ overline {x_3}\ derecha)\ lor\ izquierda (\ overline {x_1}\ tierra x_2\ tierra x_3\ derecha)\ lor\ izquierda (x_1\ tierra x_2\ tierra x_3\ derecha)\ lor\ izquierda (x_1\ tierra x_1} _2\ tierra\ overline {x_3}\ derecha). \ end {ecuación*}
La forma normal minterm es un primer paso para obtener una forma económica de expresar una función booleana dada. Para funciones de más de tres variables, el enfoque de teoría de conjuntos anterior tiende a ser incómodo. Se utilizan otros procedimientos para escribir la forma normal. El más conveniente es el mapa de Karnaugh, una discusión del cual se puede encontrar en cualquier texto lógico de teoría de diseño/cambio (ver, por ejemplo, [18]), en Wikipedia.
Ejercicios
Ejercicio13.6.1
- Escribe las 16 posibles funciones de Ejemplo13.6.1.
- Escribe las tablas de varias de las funciones booleanas anteriores para demostrar que efectivamente son diferentes.
- Determinar las formas normales minterm de
- g1(x1,x2)=x1∨x2,
- g2(x1,x2)=¯x1∨¯x2
- g3(x1,x2)=¯x1∧x2
- g4(x1,x2)=1
- Responder
-
- f1(x1,x2)=0f2(x1,x2)=(¯x1∧¯x2)f3(x1,x2)=(¯x1∧x2)f4(x1,x2)=(x1∧¯x2)f5(x1,x2)=(x1∧x2)f6(x1,x2)=((¯x1∧¯x2)∨(¯x1∧x2))=¯x1f7(x1,x2)=((¯x1∧¯x2)∨(x1∧¯x2))=¯x2f8(x1,x2)=((¯x1∧¯x2)∨(x1∧x2))=((x1∧x2)∨(¯x1∧¯x2))f9(x1,x2)=((¯x1∧x2)∨(x1∧¯x2))=((x1∧¯x2)∨(¯x1∧x2))f10(x1,x2)=((¯x1∧x2)∨(x1∧x2))=x2f11(x1,x2)=((x1∧¯x2)∨(x1∧x2))=x1f12(x1,x2)=((¯x1∧¯x2)∨(¯x1∧x2)∨(x1∧¯x2))=(¯x1∨¯x2)f13(x1,x2)=((¯x1∧¯x2)∨(¯x1∧x2)∨(x1∧x2))=(¯x1∨x2)f14(x1,x2)=((¯x1∧¯x2)∨(x1∧¯x2)∨(x1∧x2))=(x1∨¯x2)f15(x1,x2)=((¯x1∧x2)∨(x1∧¯x2)∨(x1∧x2))=(x1∨x2)f16(x1,x2)=((¯x1∧¯x2)∨(¯x1∧x2)∨(x1∧¯x2)∨(x1∧x2))=1
- La tabla de verdad para las funciones en la parte (a) son
\ begin {ecuation*}\ begin {array} {llllllllll} x_1 & x_2 & f_1 & f_2 & f_3 & f_4 & f_5 & f_6 & f_7 & f_8\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1\\ 0 & 1 & 1\ 0 & 1\ 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0\\ 1 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1\\ end {array}\ end {equation*}
\ begin {ecuación*}\ begin {array} {llllllllll} x_1 y x_2 & f_9 & f_ {10} & f_ {11} & f_ {12} & f_ {13} & f_ {14} & f_ {15} & f_ {16}\\ 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1 & 0 & 1 & 1 & 1 & 1 & 0 & 1 & 0 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1\\ 1 & 1 & 0 & 1 & 1 & 0 & 1 & 1 & 1 & 1 & 1 & 1\\ end {array}\ end {ecuación*} -
- g1(x1,x2)=f15(x1,x2)
- g2(x1,x2)=f12(x1,x2)
- g3(x1,x2)=f12(x1,x2)
- g4(x1,x2)=f16(x1,x2)
Ejercicio13.6.2
Considere la expresión booleanaf(x1,x2,x3)=(¯x3∧x2)∨(¯x1∧x3)∨(x2∧x3) en[B32;∨,∧,−].
- Simplifica esta expresión usando leyes básicas de álgebra booleana.
- Escribe esta expresión en forma normal minterm.
- Escriba la tabla para la función dada definida porf y compárela con las tablas de las funciones en las partes a y b.
- ¿Cuántas posibles funciones diferentes en tres variables[B2;∨,∧,−] hay?
Ejercicio13.6.3
Dejar[B;∨,∧,−] ser un álgebra booleana de orden 4, y dejarf ser una función booleana de dos variables enB.
- ¿Cuántos elementos hay en el dominio de f?
- ¿Cuántas funciones booleanas diferentes hay de dos, variables? ¿Tres variables?
- Determinar la forma normal minterm def(x1,x2)=x1∨x2.
- SiB={0,a,b,1}, define una función desdeB2 dentroB que no es una función booleana.
- Responder
-
- El número de elementos en el dominio def es16=42=|B|2
- Con dos variables, hay43=256 diferentes funciones booleanas. Con tres variables, existen48=65536 diferentes funciones booleanas.
- f(x1,x2)=(1∧¯x1∧¯x2)∨(1∧¯x1∧¯x2)∨(1∧x1∧¯x2)∨(0∧x1∧x2)
- Considerarf:B2→B, definido porf(0,0)=0f(0,1)=1,f(1,0)=a,f(1,1)=a,f(0,a)=b, y, con las imágenes de todos los demás paresB2 definidos arbitrariamente. Esta función no es una función booleana. Si asumimos que es función booleana entonces sef puede calcular con una expresión booleanaM(x1,x2). Esta expresión se puede poner en forma normal minterm:
M(x1,x2)=(c1∧¯x1∧¯x2)∨(c2∧¯x1∧x2)∨(c3∧x1∧¯x2)∨(c4∧x1∧x2)
f(0,0)=0⇒M(0,0)=0⇒c1=0f(0,1)=1⇒M(0,0)=1⇒c2=1f(1,0)=a⇒M(0,0)=a⇒c3=af(1,1)=a⇒M(0,0)=a⇒c4=a
Por lo tanto,M(x1,x2)=(¯x1∧x2)∨(a∧x1∧¯x2)∨(a∧x1∧x2) y así, usando esta fórmula,M(0,a)=(¯0∧a)∨(a∧0∧¯a)∨(a∧0∧a)=a Esto contradicef(0,a)=b, y así nof es una función booleana.