Capítulo 3 ALGEBRA DE BOOLE
Capítulo 3 ALGEBRA DE BOOLE
Capítulo 3 ALGEBRA DE BOOLE
Capítulo 3
ALGEBRA DE BOOLE
3.1. Introducción
Cuando trabajamos en ingeniería, utilizamos ecuaciones y modelos matemáticos que
describen lo que estamos diseñando o analizando. Así por ejemplo, la ecuación
nos indica cuál es la velocidad máxima de transmisión por un canal que tiene un ancho de
banda W y por el que se permiten n estados posibles de la señal transmitida, y será usada
por un Ingeniero de Telecomunicación para el diseño de canales o sistemas de
comunicación. Esa ecuación describe una relación entre ciertas variables, que son objeto de
estudio del Ingeniero.
A lo mejor no entendemos el significado de esta ecuación. No sabemos lo que significa
ancho de banda o velocidad máxima de transmisión, pero sí entendemos las operaciones
que hay en ella: hay productos y logaritmos. Sin saber nada, y partiendo de los datos
iniciales:
De la misma manera, si un físico nos dice que la posición de cierta partícula viene
determinada por la ecuación:
y nos da los siguientes datos: A=5, t=0 y , sabemos calcular el valor de x, que será:
y por las propiedades de los Números Reales, que son los que estamos manejando, sabemos
que “algo por cero es cero” y “algo más cero es algo”:
Porque conocemos las operaciones que el físico ha utilizado y además sabemos algunas
propiedades de ellas.
En estas dos ecuaciones de ejemplo, los números y las variables son Reales. El conjunto
de los Números Reales lo conocemos muy bien, así como todas las operaciones definidas
en él.
Estamos acostumbrados a trabajar con ellos desde pequeños, por eso este tipo de
ecuaciones nos parecen intuitivas y sencillas, aunque no comprendamos lo que significan
las variables usadas.
Hemos dicho que los circuitos digitales trabajan con números, y que estos números se
expresan en binario. Veremos más adelante cómo con un conjunto de ecuaciones
podemos describir lo que hace un circuito, que transforma los números de la entrada y
los saca por la salida.
Sin embargo, puesto que estos números vienen expresados en binario, las variables y
números utilizados NO SON REALES.
Por tanto, vamos a trabajar con unas ecuaciones a las que NO estamos acostumbrados.
Son muy sencillas, pero al principio pueden resultar poco intuitivas. En este capítulo
aprenderemos a trabajar con ellas.
En el Álgebra de Boole hay dos operaciones, denotadas con los símbolos + y ( - ) pero que
_
¡¡no tienen nada que ver con las operaciones que todos conocemos de suma y
producto!!. ¡¡¡No hay que confundirlas!!!!. El + y el del Algebra de Boole se aplican a bits,
_
3.2.1. La operación +
0+0=0
0+1=1
1+0=1
1+1=1
Las tres primeras operaciones nos resultan obvias, son iguales que la suma que conocemos,
sin embargo la expresión 1 + 1 = 1 nos puede resultar chocante. ¿¿Pero no me habían
dicho toda la vida que 1+1=2??, nos podemos estar preguntando. Sí, pero hay que recordar
que aquí estamos utilizando otra operación que NO ES LA SUMA, la denotamos con el
mismo símbolo ’+’, ¡¡pero no es una suma normal!! ¡¡Hay que cambiar el “chip”!!
¡¡Ahora estamos con Algebra de Boole!!
Pasado el pánico inicial, si nos fijamos en esta nueva operación, notamos lo siguiente: El
resultado siempre es igual a ’1’ cuando alguno de los bits sumandos es igual a ’1’. O lo
que es lo mismo, El resultado de esta suma sólo da ’0’ si los dos bits que estamos
sumando son iguales a cero. En caso contrario valdrá ’1’.
¿Y para qué nos sirve esta operación tan extraña? Veamos un ejemplo. Imaginemos que
hay una sala grande a la que se puede acceder a través de dos puertas. En el techo hay una
única lámpara y existen dos interruptores de luz, uno al lado de cada puerta de entrada.
Como es lógico, la luz se enciende cuando algunos de los dos interruptores (o los dos) se
activan. Esto lo podemos expresar mediante una ecuación booleana. Para denotar el estado
de uno de los interruptores utilizaremos la variable booleana A, que puede valor ’0’
(Interruptor apagado) ó ’1’ (interruptor activado). Para el otro interruptor usaremos la
variable B. Y para el estado de la luz, ’0’ (apagada) y ’1’ encendida, usaremos la variable
F.
El estado en el que se encuentra la luz, en función de cómo estén los interruptores viene
dado por la ecuación booleana:
que indica que F=1 (Luz encendida) si alguno de los interruptores está a ’1’ (activado).
A+A=A
1+A=1
0+A=A
3.2.2. La operación “ . “
Esta operación se define así:
En este caso, la operación es más intutitiva, puesto que es igual que el producto de
números Reales. Si nos fijamos, vemos que el resultado sólo vale ’1’ cuando los dos bits
están a ’1’, o visto de otra manera, el resultado es ’0’ cuando alguno de los dos bits es
’0’.
Vamos a ver un ejemplo. Imaginemos una caja de seguridad de un banco que sólo se abre
cuando se han introducido dos llaves diferentes, una la tiene el director y la otra el jefe de
seguridad.
que indica que la caja se abrirá (F=1) sólo si A=1 (una llave introducida) y B=1 (la otra
llave introducida). En cualquier otro caso, F=0, y por tanto la caja no se abrirá.
3.2.3. La negación
La operación de negación nos permite obtener el estado complementario del bit o variable
booleana al que se lo aplicamos. Se define de la siguiente manera:
Las operaciones del Álgebra de Boole las podemos definir utilizando tablas de verdad:
• Operación +
• Operación “.”
2. Elemento Neutro
3. Distributiva
4. Elemento inverso
Ejercicios:
• Asociatividad
• Idempotencia:
• Ley de Absorción
Este teorema es muy importante puesto que nos permite realizar simplificaciones en las
expresiones.
• Leyes de DeMorgan
• Teorema de Shannon:
Este teorema es una generalización de las leyes de DeMorgan. Lo que nos dice es que
si tenemos cualquier expresión booleana negada, es igual a la misma expresión en la que
todas las variables estén negadas y en la que se sustituyan las operaciones + por “ . “ y
viceversa.
• Teorema de expansión:
Ejercicios:
Hacer el ejercicio 2.
Como hemos hecho antes, vamos a ver un ejemplo utilizando una función matemática de
las que todos conocemos. Por ejemplo esta:
Se trata de una función Real que tiene una variable Real (x). Para cada valor de x, otenemos
el valor de la función. Así por ejemplo podemos calcular los siguiente:
Como es una función Real, obtenemos como valores de la función Números Reales.
También podemos definir funciones reales de 2 ó más variables, como por ejemplo:
Como estamos acostumbrados a trabajar con este tipo de funciones, nos resultan sencillas.
Ahora vamos a definir funciones booleanas. Para ello hay que tener en mente que
trabajaremos con variables booleanas y que por tanto usaremos las operaciones + y “.” del
Algebra de Boole, y que como ya sabemos, nada tienen que ver con las operaciones suma
y producto a las que estamos habituados.
El valor devuelto por la función es el negado del que se le pasa por la variable. Como la
variable A es booleana, sólo puede tomar los valores ’0’ y ’1’. Los que la función F toma
son:
Vamos a definir una función un poco más compleja, usando dos variables booleanas, A y
B:
¿Cuando vale F(0,0)? sólo hay que sustituir en la función los valores de A y B por ’0’,
obteniéndose:
Fijándonos en esta función tan sencilla, podemos darnos cuenta de varias cosas:
1. Puesto que las variables de entrada A y B, sólo pueden tomar los valores ’0’ y ’1’, hay 4
casos distintos:
2. Antes de calcular los valores que toma la función, según lo que valgan A y B, se pueden
aplicar algunas propiedades para obtener una función más simplificada (Como
veremos en el apartado 3.7):
Las funciones booleanas pueden ser de muchas más variables, como en los siguientes
ejemplos:
Por cuestiones de comodidad, muchas veces no escribimos entre paréntesis las variables de
la función, así por ejemplo podemos definir una función de 3 variables de la siguiente
manera:
Ejercicios:
Hacer el ejercicio 3
Continuará.....
Nota de Radacción: El lector puede descargar este capítulo y capítulos anteriores del curso
desde la sección “Soporte Técnico” en el sitio web de EduDevices
(www.edudevices.com.ar )
CURSO
Capítulo 3
ALGEBRA DE BOOLE
Continuación ...
y hemos visto cómo podemos obtener todos los valores de esta función.
Existe otra manera de especificar una función booleana y es utilizando las tablas de
verdad. En ellas lo que estamos representando es el valor que debe tomar la función
cuando las variables de entrada toman todos los valores posibles. Así por ejemplo yo puedo
definir una función G de la siguiente manera:
¿Cuánto vale G si A=0 y B=1?. Miramos la tabla y vemos que G vale 1. Esta forma de
definir funciones booleanas es muy sencilla. El número de filas de la tabla de verdad
depende del número de variables que usemos.
Cuanto mayor número de variables, mayor cantidad de filas tendrá la tabla de verdad.
La regla que se cumple es la siguiente: “Si la función tienen n variables, la tabla de verdad
tendrá filas”. Veamos algunos ejemplos:
En la práctica no haremos tablas de verdad de más de 4 variables. Para eso están los
ordenadores :-). Nosotros aprenderemos a definirlas y manejarlas.
¿Qué relación hay entre una función definida mediante expresiones booleanas y una
función definida mediante una tabla de verdad?
Es decir, dada una tabla de verdad, ¿cómo podemos obtener la expresión booleana de la
función? O dada una función mediante una expresión, ¿cómo obtenemos su tabla de
verdad?.
Obtención de una tabla de verdad a partir de una expresión
Esto es bastante sencillo. Lo primero que hay que hacer es identificar el número de
variables de la función, para conocer el tamaño de la tabla de verdad. A continuación
escribimos números en binario en la parte de las variables.
Finalmente vamos fila por fila obteniedo el valor de la función, utilizando la expresión.
Lo mejor es ver un ejemplo. Imaginemos que nos han dado la siguiente función, definida
por la expresión:
3. Calculamos el valor de la función para cada una de las filas. El resultado se muestra a
continuación, dejándose al lector su comprobación:
Ejercicios:
Hacer el ejercicio 4
Cuando diseñemos circuitos combinacionales, será muy normal que tengamos una tabla de
verdad que haya que convertir a expresiones booleanas.
El proceso es sencillo, sin embargo ocurre que dada una tabla de verdad se pueden
obtener multitud de expresiones diferentes, todas ellas equivalentes. Nuestra misión
consistirá en obtener la expresión más simplificada posible. Esto lo iremos viendo en los
siguientes apartados.
Una función que esté en la primera forma canónica se caracteriza porque está formada
por sumas de productos. Y recordemos que por ser una forma canónica, en todos sus
términos se ecuentran todas sus variables.
Vemos que está constituida por la suma de tres términos y en cada uno de los términos
están todas las variables.
Por cada una de estas filas tendremos un sumando, constituido por el producto de todas las
variables, aplicando la siguiente regla:
Si una variable está a ’0’, en la fila escogida, usaremos la variable negada, y si está a ’1’
usaremos la variable sin negar.
Ejemplo:
Ahora nos fijamos en la siguiente fila en la que F=1: A=0, B=1 y C=1, por tanto el segundo
término será:
Y por último nos fijamos en la última fila en la que F=1, en la que A=1, B=1 y C=1, por lo
que el término será:
Esta función está constituida por la suma de tres términos y en cada uno de ellos es el
producto de las tres variables, bien negadas o no.
Vamos en algunos casos que esta expresión representa la misma función que la de la tabla
de verdad:
1. Para A=0, B=1 y C=0, vemos en la tabla de verdad que F=0. Vamos a comprobarlo:
Ejercicios:
A cada uno de los sumandos de una expresión en la primera forma canónica, le corresponde
una fila de la tabla de verdad, es decir, un número en decimal. Así en la función anterior:
el término ...
Representa la fila de la tabla de verdad en la que A=0, B=0 y C=1, que si se pone en
decimal es el número 1.
Por ejemplo:
está constituida por dos términos que van multiplicados, y cada uno de ellos está formado
por sumas.
Si una variable está a ’1’, en la fila escogida, usaremos la variable negada, y si está a ’0’
usaremos la variable sin negar.
Es decir, que esta regla es justo la contraria que cuando estábamos trabajando con la
primera forma canónica.
Ejemplo:
Nos fijamos en las filas en las que F=0. En este ejemplo hay tres. Cada fila representa un
término, que estará multiplicando al resto. Tomamos la primera fila en la que F=0 y vemos
que A=0, B=1 y C=0. Aplicando la regla, el término que obtenemos es:
__
__
Se deja como ejercicio al lector el que compruebe que efectivamente esta expresión
representa la misma función que la de la tabla de verdad.
Ejercicios:
Notación:
Para la segunda forma canónica se usa otra notación. La función F anterior está consituida
por tres términos multiplicados. Si nos fijamos en el primero:
se corresponde con la fila de la tabla de verdad en la que A=0, B=1, C=0, que si lo
__
Continuará.....
Nota de Radacción: El lector puede descargar este capítulo y capítulos anteriores del curso
desde la sección “Soporte Técnico” en el sitio web de EduDevices
(www.edudevices.com.ar )
CURSO
Capítulo 3
ALGEBRA DE BOOLE
Continuación ...
Las funciones booleanas se tienen que simplificar al máximo, para diseñar los circuitos
con el menor número de componentes electrónicos.
Y este será uno de los grandes caballos de batalla de esta asignatura: la simplificación de
las funciones.
Ejemplo:
Tanto la función inicial, como la que hemos obtenido son funciones equivalentes. Tienen la
misma tabla de verdad, sin embargo, la segunda está mucho más simplificada: sólo tiene
dos sumandos y cada sumando tiene sólo dos variables.
Ejemplo:
En este apartado veremos un método para obtener la función más simplificada a partir de
una tabla de verdad.
Vamos a ir poco a poco, viendo los fundamentos de este método. Supongamos que tenemos
una función F(A,B,C) de tres variables, cuya tabla de verdad es:
En total hay 8 casillas, cada una correspondiente a una fila de la tabla de verdad.
Hay dos filas, en al primera fila están todos los valores de F correspondientes a A=0, y
en la segunda correspondientes a A=1.
Hay 4 columnas, y el número que está en la parte superior de cada una de ellas nos
indica los valores de las variables B y C en esa columna.
Dada una casilla cualquiera, mirando el número situado en la misma fila, a la izquierda
del todo nos informa del valor de la variable A y los dos valores superiores, en la misma
columna, nos dan los valores de B y C. Así por ejemplo, si tomamos como referencia la
casilla que está en la esquina inferior derecha, se corresponde con el valor que toma F
cuando A=1, B=1 y C=0.
Entre dos casillas adyacentes cualesquiera, sólo varía una variable de entrada, quedando
las otras dos con los mismos valores. Por ejemplo, si estamos en la casilla inferior
derecha, en la que A=1, B=1 y C=0. Si vamos a la casilla que está a su izquierda
obtenemos un valor de las variables de: A=1, B=1, C=1. Si lo comparamos los valores
de las variables correspondientes a la casilla anterior, vemos que sólo ha cambiado una
de las tres variables, la C. Lo mismo ocurre si nos desplazamos a cualquier otra casilla
adyacente.
Ahora vamos a ver una propiedad “mágica” de esta tabla. Si obtenemos la primera forma
canónica, obtenemos una función con 6 términos. Vamos a fijarnos sólo en los términos
que obtenemos si desarrollamos sólo dos casillas adyacentes, como por ejemplos las
marcadas en gris en la figura:
Los valores de las variables en estas casillas son: A=1, B=1, C=1 y A=1, B=1, C=0. Si
obtenemos los términos de la primera forma canónica y los sumamos:
¡¡Se nos han simplificado!! Es decir, por el hecho de agrupar los términos obtenidos de
estas dos casillas y sumarlos, se han simplificado. Y esto es debido a la propiedad antes
comentada de que entre dos casillas adyacentes sólo varía una de las variables, de manera
que podemos sacar factor común. Estos dos términos son los sumandos 5 y 6 de la primera
forma canónica obtenida anteriormente, que al sumarlos y aplicar aglunas propiedades se
han simplificado.
Si nos fijamos en estas dos casillas adyacentes, la variable C, que es la única que varía de
una a otra, ha desaparecido en la suma. De esta manera podemos afirmar lo siguiente:
Si tomamos dos casillas adyacentes cuyo valor es ’1’ y desarrollamos por la primera
forma canónica, desaparecerá una de las variables. Sólo permanecen las variables que
no cambian de una casilla a otra.
De esta manera, vamos a ver qué pasa si tomamos los siguientes grupos:
¡¡Y está más simplificada que la forma canónica!! Pero...¿Se puede simplificar más? ¡Si!.
Inicialmente la función F tenía 6 sumandos, puesto que tenía 6 unos. Al hacer 3 grupos,
ahora tiene 3 sumandos. ¿Podemos reducir el número de grupos? Si, vamos a ver qué pasa
si tomamos los siguientes grupos:
Ahora sólo hay 2 grupos. El nuevo grupo 2 está constituido por 4 casillas en las que F=1.
La expresión de este grupo se obtiene sumando las expresiones de estas 4 casillas. Las
nuevas expresiones de los grupos quedarían:
Pero... ¿Es la más simplificada? No, todavía podemos simplificarla más. ¿Por qué no
podemos tomar 2 grupos de 4 casillas adyacentes?.
Para obtener una función que no se puede simplificar más hay que tomar el menor
número de grupos con el mayor número de ’1’ en cada grupo.
Hay que tener en cuenta que los grupos de unos que se tomen sólo pueden tener un tamaño
de 1, 2, 4, 8, 16,... (es decir, sólo potencias de dos). Esa es la razón por la que en el ejemplo
anterior los grupos que se han tomado son de tamaño 4 (y no se han tomado de tamaño 3).
Ejemplo
Veamos con un ejemplo cómo podemos aplicar directamente el criterio para obtener una
función
simplificada. Dada la siguiente tabla de verdad, obtener la expresión de F más simplificada
posible:
Colocamos la tabla de verdad como un diagrama de Karnaugh y hacer tres grupos de dos
unos:
La función F la obtenemos sumando las expresiones de los tres grupos, siendo cada uno de
ellos el producto de las dos variables booleanas que permanecen sin cambios dentro de cada
grupo:
Como hemos aplicado correctamente el criterio de máxima simplificación, tenemos la
certeza absoluta de que esta es la expresión más simplificada posible para la función F.
A la hora de formar los grupos hay que tener en cuenta que las casillas situadas más a la
derecha de la tabla son adyacentes a las que están más a la izquierda. Veamos un ejemplo:
Ejemplo:
¿Y qué ocurre si tenemos una función de 4 variables? La idea es la misma pero tendremos
una tabla más grande. El criterio de máxima simplificación es el mismo: hacer el menor
número posible de grupos con el máximo número de ’1’s. Veamos un ejemplo:
Ejemplo:
Sin embargo, ¿es esta la función más simplificada? O lo que es lo mismo, podemos hacer
menos grupos de ’1’s. La respuesta es sí, porque no olvidemos que las casillas de la derecha
son adyacentes a las de la izquierda de la tabla, por lo que podemos hacer sólo dos grupos:
Ejercicios:
Hacer el ejercicio 9.
Continuará.....
Nota de Radacción: El lector puede descargar este capítulo y capítulos anteriores del curso
desde la sección “Artículos Técnicos” en el sitio web de EduDevices
(www.edudevices.com.ar )
CURSO
Capítulo 3
ALGEBRA DE BOOLE
Continuación ...
3.8. La operación
Hay un operación que en electrónica digital se utiliza mucho, llamada XOR y que se denota
por el símbolo
Vamos a obtener las dos formas canónicas de ambas funciones. Estas expresiones las
utilizaremos bastante:
Ejercicios:
Hemos visto una serie de propiedades y teoremas que nos permiten trabajar con
expresiones booleanas y con los que es necesario practicar, haciendo los ejercicios
indicados.
También hemos visto el concepto de función boolena y cómo podemos representar
cualquier función de este tipo mediante tablas de verdad o mediante expresiones
booleanas. También hemos visto cómo es posible obtener una tabla de verdad a partir de
una expresión booleana y cómo obtener una expresión booleana a partir de la tabla de
verdad.
Dada una tabla de verdad, existen multitud de expresiones booleanas, todas ellas
equivalentes, que se pueden obtener. Sin embargo, hemos visto cómo es inmediato obtener
la primera y segunda forma canónica. Sin embargo, las funciones así obtenidas no tienen
porqué ser las más simplificadas posibles. Para simplificar una función podemos utilizar las
propiedades del Algebra de Boole, o también podemos utilizar el método de Karnaugh,
que si lo aplicamos correctamente, conseguiremos obtener la función más simplificada
posible.
Finalmente hemos visto una nueva operación, , que se define a partir de las operaciones
+ y ( . ), y que es conveniente que conozcamos puesto que la usaremos bastante.
Para repasar con todos estos conceptos se recomienda hacer todos los ejercicios y los
problemas de los apartados 3.10
3.10. Ejercicios
Ejercicio 1:
Realizar las siguientes operaciones:
Ejercicio 2:
Aplicar las leyes de Morgan en los siguientes casos:
Ejercicio 3:
Ejercicio 5:
1. Tabla 1:
2. Tabla 2:
Ejercicio 6:
Ejercicio 7:
1. Tabla 1:
2. Tabla 2:
Ejercicio 8:
Ejercicio 9:
Operar con las siguientes expresiones obteniendo la mayor cantidad posible de operaciones
Ejercicio 11:
Ejercicio 12:
Simplificar la función de las siguientes maneras:
Continuará.....
Nota de Radacción: El lector puede descargar este capítulo y capítulos anteriores del curso
desde la sección “Artículos Técnicos” en el sitio web de EduDevices
(www.edudevices.com.ar )