Capítulo 5: Álgebra booleana Capítulo 5: Álgebra booleana Capítulo 5: Álgebra booleana...

Post on 25-Jan-2016

376 views 15 download

Transcript of Capítulo 5: Álgebra booleana Capítulo 5: Álgebra booleana Capítulo 5: Álgebra booleana...

Capítulo 5: Álgebra Capítulo 5: Álgebra booleanabooleana

Capítulo 5: Álgebra Capítulo 5: Álgebra booleanabooleana

Autor: José Alfredo Jiménez Murillo

Aprender a simplificar expresiones booleanas usando teoremas del álgebra booleana.

Aprender a simplificar expresiones booleanas por medio de mapas de Karnaugh.

Representar expresiones booleanas por medio de bloques lógicos.

-

-

-

Objetivos

El álgebra booleana fue desarrollada por George Boole (1815-1864) y es la forma algebraica en que se manipulan las proposiciones lógicas.

Debido al carácter abstracto de sus principios, el álgebra booleana no tuvo una aplicación directa sino hasta 1938 cuando la compañía de teléfonos Bell de Estados Unidos la utilizó para realizar un análisis de los circuitos de su red telefónica.

Claude E. Shannon, entonces estudiante de postgrado del Instituto Tecnológico de Massachussets, creó a partir del álgebra de Boole la llamada álgebra de conmutación para representar las propiedades de conmutación eléctrica biestables, demostrando con esto que el álgebra booleana se adapta perfectamente al diseño y representación de circuitos lógicos de control basados en relés e interruptores.

Introducción

El álgebra booleana trabaja con señales binarias, y una gran cantidad de sistemas de control, también conocidos como digitales, usan señales binarias.

Las señales binarias sólo pueden tener el valor de falso o verdadero que proviene de sensores que mandan la información al circuito de control, mismo que lleva a cabo la evaluación para obtener un valor que indica si se ejecuta o no una determinada actividad.

Los sensores pueden ser ópticos, magnéticos, de temperatura o de nivel. De cada uno de estos tipos de sensores existen tamaños y modelos, de acuerdo con el uso y funcionamiento; por ejemplo, hay infrarrojos, láser, fotoeléctricos y de ultrasonido, entre otros.

Para resolver un problema práctico en el cual se desea automatizar un proceso, es necesario realizar un análisis detallado de lo que se quiere lograr así como de los tipos de sensores necesarios para obtener las señales.

Determinado lo anterior, se plantea el funcionamiento del circuito lógico en una expresión matemática que recibe el nombre de expresión booleana.

Cada una de las variables de que está integrada la expresión boolena, representa un sensor que provee al circuito de una señal de entrada.

Expresiones booleanas

a) Están compuestas de literales (A, B, C,...) y cada una de ellas representa la señal de un sensor. Un ejemplo es

F = A’BD + AB’CD. b) El valor de las señales o de la función sólo puede ser 0 o 1,

falso o verdadero.

c) Además de literales, en la expresión booleana se puede tener el valor de 0 o 1. Por ejemplo F = A’BD1 + AB’CD + 0.

d) Las literales de las expresiones booleanas pueden estar conectadas por medio de los operadores lógicos And (), Or () y Not (’).

e) Es posible obtener el valor de una expresión booleana sustituyendo en cada una de las literales el valor de 0 o 1, teniendo en cuenta el comportamiento de los operadores lógicos.

Propiedades de las expresiones booleanas

A B C D F

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 0

0 1 0 0 0

0 1 0 1 1

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 0

1 0 1 0 1

1 0 1 1 1

1 1 0 0 0

1 1 0 1 1

1 1 1 0 1

1 1 1 1 1

F es un sistema que funciona solamente cuando un conjunto de señales se presenta.

F = A’BC’D + A’BCD + A’BCD’ + ABC’D + ABCD + ABCD’ + AB’CD + AB’CD’

La tabla de verdad muestra todas las señales existentes cuando se tienen 4 sensores.

La expresión booleana que representa el funcionamiento de F es:

Esta función tiene literales redundantes y por lo tanto debe ser simplificada.

Ejemplo

Cuando se plantea un problema, en general la expresión booleana obtenida no necesariamente es la óptima, esto es, la más fácil, clara y sencilla de implementar utilizando compuertas lógicas.

Una expresión booleana puede ser simplificada empleando:

Teoremas del álgebra booleana.

Mapas de Karnaugh.

a)

b)

Métodos para simplificar expresiones booleanas

Los teoremas se presentan juntamente con su dual.

Para obtener el “dual” de un teorema se convierte cada 0 (cero) en 1 (uno) y cada 1 (uno) en 0 (cero), los signos más (+) se convierten en paréntesis, puntos o simplemente no se ponen, y los puntos en signos más (+). Además de esto, las variables no se complementan ya que al hacerlo se obtendría el complemento en lugar del dual.

En un teorema la letra A representa no sólo una variable, sino también un término o factor, o bien una expresión.

En la siguiente tabla se presentan los teoremas más importantes.

Simplificación de expresiones booleanas mediante teoremas del

álgebra de Boole

Número Teorema Dual

1a. 0A = 0 1 + A = 1

2a. 1A = A 0 + A = A

3a. AA = A A + A = A

4a. AA' = 0 A + A' = 1

5a. AB = BA A + B = B + A

6a. ABC = A(BC) A + B + C = A + (B + C)

7a. (AB...Z)' = A' + B' +...+ Z' (A + B +...+ Z)' = A'B'...Z'

8a. AB + AC = A(B + C) (A + B)(A + C) = A + BC

9a. AB + AB' = A (A + B)(A + B') = A

10a. A + AB = A A(A + B) = A

11a. A + A'B = A + B A(A' + B) = AB

12a. CA + CA'B = CA + CB (C + A)(C + A' + B) = (C + A)(C + B)

13a. AB + A'C + BC = AB + A'C (A + B)(A' + C)(B + C) = (A + B)(A' + C)

Teoremas del álgebra de Boole

F = A’BC’D + A’BCD + A’BCD’ + ABC’D + ABCD + ABCD’ + AB’CD + AB’CD’

A partir de la tabla de verdad se obtuvo la siguiente expresión:

Aplicando el teorema 8a que consiste en factorizar por término común se tiene que

F = A’BD(C’+C) + ABD(C’+C) + BCD’(A’+A) + AB’C(D+D’)

Después de aplicar el 4 dual resulta que

F = A’BD + ABD + BCD’ + AB’C

La simplificación por medio de teoremas es la siguiente.

Ejemplo

Continuación de simplificación por teoremas

Aplicando nuevamente el teorema 8:

F = BD (A’ + A) + BCD’ + AB’C

Después de aplicar 4 dual:

F = BD + BCD’ + AB’C

Aplicando el teorema 8 y el 5:

F = B(D + D’C) + AB’C

Después de aplicar el teorema 11 y 8 a la inversa:

F = BD + BC + AB’C

F = BD + C(B + B’A)

Después de aplicar el teorema 11 y 8 a la inversa:

Aplicando el teorema 8 y el 5:

F = BD + BC + AC Expresión simplificada

Simplificación de expresiones booleanas usando mapas de Karnaugh

El mapa representa un diagrama visual de todas las formas posibles en que se puede plantear una expresión booleana en forma normalizada.

Al reconocer varios patrones se pueden obtener expresiones algebraicas alternas para la misma expresión, y de éstas se puede escoger la más simple.

Las tablas o mapas se dividen en cierto número de casillas, dependiendo de la cantidad de variables que intervengan en la expresión. El número de casillas se puede calcular con la fórmula

número de casillas = 2n

donde n es el número de variables de la función booleana.

Un minitérmino es aquel que forma parte de la expresión y que se puede escribir de la manera más simple, formando lo que se conoce en álgebra elemental como un monomio.

Para que el monomio sea minitérmino debe de incluir todas las variables en cuestión.

Ejemplo

F = A‘BC + AB’C’ + A’CNo es minitérmino porque le faltan variables

Son minitérminos

Simplificación de expresiones booleanas usando mapas de Karnaugh

Ejemplo

Simplificar F=A’B’ +A’B

B

A 0 1

0 1 1

1

a) Se representa cada minitérmino de la expresión boolena por un 1 en la celda correspondiente.

B

A 0 1

0 1 1

1

b) Se agrupan los unos adyacentes en bloques cuadrados o rectangulares de 1, 2, 4, 8, 16, 32, …, 2n

c) Se lee la función boolena simplificada, eliminando las variables que cambian de valor de un 1 al otro 1 del bloque, y se conservan las que no sufren cambio alguno.

F = A’ Resultado

Agrupar la información con el menor número posible de bloques ya que de cada bloque se obtiene cuando menos una literal.

Se recomienda

Los bloques deben estar conformados por el mayor número de casillas, ya que entre más grande sea el número de casillas agrupadas por un bloque más simple será la expresión booleana resultante.

Representar en un mapa de Karnaugh y determinar la expresión booleana simplificada de:

Ejemplo

YZ

X 00 01 11 10

0 1 1 1

1 1

F = X’Y’Z’ + X’Y’Z + X’YZ’ +XYZ’

Después de representar la información en el mapa y agruparla se tiene:

La expresión simplificada es:

F= X’Y’ + YZ’

YZ

X 00 01 11 10

0 1 1 1

1 1 1

A partir del siguiente mapa

La expresión sin simplificar es:

F = X’Y’Z + X’YZ + X’YZ’ + XYZ +XYZ’

La expresión booleana simplificada es:

F = X’Z + Y

Un 1 puede ser parte de más de un bloque.

Todos los bloques deben tener por lo menos un 1 exclusivo de él.

Ejemplo

YZ

WX 00 01 11 10

00 1 1

01 1 1

11 1 1

10 1 1 1

F= W’X’Y’Z’ + WX’Y’Z’ + WX’Y’Z + YZ’ + W’XYZ + WXYZ + WXY

Ejemplo

Como YZ’ no es minitérmino se le debe de agregar las variables faltantes con todas las combinaciones posibles:

YZ’= W’X’YZ’ + W’XYZ’ + WX’YZ’ + WXYZ’

Las esquinas del mapa se pueden doblar y formar un bloque de cuatro unos adyacentes.

F = X’Z’ + XY + WX’Y’

Función booleana simplificada:

Simplificar:

F = A’BC’D + A’BCD + A’BCD’ + ABC’D + ABCD + ABCD’ + AB’CD + AB’CD’

Ejemplo

Considérese la expresión booleana

La función booleana simplificada en:

a) Sumas de productos esCD

AB 00 01 11 10

00

01 1 1 1

11 1 1 1

10 1 1

F = BD + BC + AC

En el caso de sumas de productos se utilizan los unos.

La función booleana simplificada en:

b) Productos de sumas es:

CD

AB 00 01 11 10

00 0 0 0 0

01 0

11 0

10 0 0

F’ = A’B’ + C’D’ + B’C’

Se complementa la función

(F’)’ = (A’B’ + C’D’ + B’C’)’

En el caso de productos de sumas se utilizan los ceros.

F = (A+B)(C+D)(B+C)

Esta función booleana resultante es equivalente a la obtenida en el inciso (a).

Ejemplo

CDE

AB 000 001 011 010 110

111 101 100

00 4

01

11 1

10 X 2 3 5

Como se muestra a continuación, un mapa de 5 variables es equivalente a dos mapas de 4:

Mapa de 5 variables

Cada celda en un mapa de cinco, tiene 5 celdas adyacentes.

CDE

AB 000 001 011 010 110

111 101 100

00

01

11

10

Las dos celdas en guinda pueden formar un bloque de 4 con las celdas en verde.

Más sobre mapas de cinco variables

Las 4 celdas guindas se

pueden agrupar con 4 verdes para formar un bloque

de 8

Mapa de 6 variables

DEF

ABC

000 001 011 010 110 111 101 100

000

001

011

010

110

111

101

100

CDE

AB 000 001 011 010 110

111 101 100

00 1 1 1 1 1 1 1

01 1 1

11

10 1 1 1 1 1 1

Ejemplo

Considérese el siguiente mapa:

Determinar la función boolena simplificada en:

a) Sumas de productos.

b) Productos de sumas.

CDE

AB 000 001 011 010 110

111 101 100

00 1 1 1 1 1 1 1

01 1 1

11

10 1 1 1 1 1 1

Solución en sumas de productos

La función booleana simplificada es:

F = B’D’E’ + A’B’C’ + A’DE’ + A’B’D + B’DE’ + AB’C

Algunas veces

existe más de una

solución, y ésta es una

de ellas.

CDE

AB 000 001 011 010 110

111 101 100

00 0

01 0 0 0 0 0 0

11 0 0 0 0 0 0 0 0

10 0 0

Solución en productos de sumas

F’ = BD’ + BE + AB + AC’E + A’CD’E

(F’)’ = (BD’ + BE + AB + AC’E + A’CD’E)’

F = (B’+D)(B’+E’)(A’+B’)(A’+C+E’)(A+C’+D+E’)

Compuertas lógicas

Un bloque lógico es una representación simbólica gráfica de una o más variables de entrada a un operador lógico.

Los símbolos varían de acuerdo con el área en donde se utilizan. En mecánica se les llama válvulas (paso del aire o aceite), en electricidad apagadores, contactos (paso de corriente eléctrica) y en electrónica puertas o compuertas (paso de pulsos eléctricos).

Aquí sólo se abordarán los símbolos usados en electrónica para la representación de las compuertas, ya que son los que interesan al área de la computación, sin embargo el tratamiento teórico por medio del álgebra booleana es válido para todos ellos independientemente del área.

Compuerta Símbolo

O (Or)

Y (And)

No (Not)

A

BAB

AB

A + B

AA’

A

BAB’ + A’B

Or-exclusivo (Xor)

Compuertas básicas

Las compuertas pueden recibir una o más señales de entrada.

En la tabla, A y B son señales que entran a la compuerta y pueden tener un valor de 1 o 0 dependiendo de si existe o no la señal.

Esos valores de entrada generan una sola salida, que a su vez también es 0 o 1 dependiendo de la compuerta de que se trate.

Ejemplo

Representar con compuertas básicas la siguiente expresión boolena:

F= (A’B+C(D+A’)+B)’

A’

A B C D

A’B

(D+A’) C(D+A’) A’B+C(D+A’)+B

F= (A’B+C(D+A’)+B )’

También existen compuertas lógicas compuestas como Nand y Nor, que son una combinación de los operadores Not y And para la primera y Not y Or para la segunda.

Compuertas compuestas

Compuerta Símbolo

Nor

Nand A

B

(AB)’

A

B

(A + B)’

AB

AB + A’B’Xnor AA’

AA’

Cuando es solamente una la señal que entra, tanto Nand como Nor actúan como una compuerta Not.

A

B

A’

B’

(A’B’)’=A+B

BA (AB)’ AB

A A’

Or

And

Not

Con las compuertas compuestas Nand y Nor es posible obtener todas las compuertas básicas de tal manera que en general los circuitos electrónicos se implementan exclusivamente con alguna de ellas.

Compuertas compuestas

Ejemplo

Representar exclusivamente con compuertas NAND la siguiente expresión boolena:

F = CB’+BD’ +A’

A B C D

B’ (CB’)’

(BD’)’D’

[ (CB’)’(BD’)’A ]’ = CB’ + BD’ +A’

Representar exclusivamente con compuertas NOR la siguiente expresión boolena:

F = CB’+BD’ +A’

A B C D

C’ (C’+B)’

A’

B’

[ (C’+B)’+(B’+D)’+A’ ]’

(B’+D)’

(C’+B)’+(B’+D)’+A’ = CB’+BD’+A’

Ejemplo

A B C D

Considérese el siguiente circuito:

a) ¿Cuál es la función boolena sin simplificar que sale del circuito?

b) ¿Cuál es la función booleana simplificada?

Ejemplo

A B C D

Respuestas

a) Función boolena sin simplificar

B’

A+D

AC+A’C’

D’

[B’(A+D)]’

(AC+A’C’)D+ (AC+A’C’)’D’

F

F = [B’(A+D)]’ [(AC+A’C’)D+ (AC+A’C’)’D’]

b) Función boolena simplificada.

F = [B’(A+D)]’ [(AC+A’C’)D+ (AC+A’C’)’D’]

F = [B+(A+D)’] [ACD+A’C’D+ (A’+C’)(A+C)D’]

F = [B+A’D’] [ACD+A’C’D+ A’CD’+AC’D’]

F = ABCD+A’BC’D+A’BCD’+ABC’D’+A’CD’

F = A’CD’(B+1)+ABCD+A’BC’D+ABC’D’

F = A’CD’+ABCD+A’BC’D+ABC’D’

Respuestas

A B C D F

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 1

0 1 0 0 0

0 1 0 1 0

0 1 1 0 1

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 1 0 1

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Ejemplo

Considérese la tabla de al lado:

Determinar:

a) La función booleana sin simplificar.b) La función booleana simplificada en sumas de

productos.c) La función booleana simplificada en productos

de sumas.d) Probar por medio de una tabla de verdad que

las expresiones de los incisos (b) y (c) son equivalentes.

e) Representar exclusivamente con compuertas NAND la función boolena del inciso (b).

A B C D F

0 0 0 0 1

0 0 0 1 1

0 0 1 0 1

0 0 1 1 1

0 1 0 0 0

0 1 0 1 0

0 1 1 0 1

0 1 1 1 1

1 0 0 0 1

1 0 0 1 0

1 0 1 0 1

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 0

1 1 1 1 0

Respuestas

a) Función booleana sin simplificar se puede obtener cuando F=1.

F = A’B’C’D’ + A’B’C’D + A’B’CD + A’B’CD’ + A’BCD + A’BCD’ +AB’C’D’ AB’CD’

b) La función booleana simplificada en sumas de productos es

CD

AB 00 01 11 10

00 1 1 1 1

01 1 1

11

10 1 1

A partir de la función boolena:

F = A’B’C’D’ + A’B’C’D + A’B’CD + A’B’CD’ + A’BCD + A’BCD’ +AB’C’D’ AB’CD’

F = A’B’ +A’C+ B’D’

Respuestas

c) La función booleana simplificada en productos de sumas es

CD

AB 00 01 11 10

00

01 0 0

11 0 0 0 0

10 0 0

F’ = AB +BC’+ AD

(F’)’ =( AB +BC’+ AD)’

F =(A’+B’)(B’+C)(A’+D’)

Respuestas

A B C D A’ B’ C’ D’ A’B’ A’C B’D’ F A’+B’ B’+C A’+D’ F

0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1

0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1

0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1

0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 1

0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0

0 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0

0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1

0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1

1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1

1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0

1 0 1 0 0 1 0 1 0 0 1 1 1 1 1 1

1 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0

1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0

1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0

1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 0

1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0

F = A’B’ +A’C+ B’D’ F =(A’+B’)(B’+C)(A’+D’)=d)

Respuestas

F = A’B’ +A’C+ B’D’

F=[ (A’B’)’(A’C’)’(B’D’)’ ]’

=A’B’+A’C+B’D’

A B C D

B’

(A’B’)’

D’

A’

(B’D’)’

(A’C)’

e) Representar exclusivamente con compuertas NAND la función boolena del inciso (b).

Respuestas

Aplicaciones

Construcción de Robots.

Diseño y construcción de sistemas de producción automatizados.

Microprogramación.

Construcción de todo tipo de aparatos electrónicos-

-

-

-