U1 T1 Boole

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 48

Asignatura de Programación

Unidad 1: Lógica matemática

Tema 1: Álgebra de Boole

Autor/es: Claustro de Computación Aplicada y


Metodologías de la Computación
Año: 2022

www.ups.edu.ec
Resultado de aprendizaje
RA1: Diseña soluciones a problemas de lógica
empleando álgebra de Boole y teoría de
proposiciones.

2
Contenido
1.1 Funciones Booleanas
1.2 Circuitos lógicos combinatorios
1.3 Diseño de soluciones a problemas empleando circuito lógicos combinatorios

3
Subtema 1:

Funciones Booleanas

4
Subtema 1: Funciones Booleanas

George Boole (1815 - 1864)


Matemático de origen inglés que publicó un
tratado sobre las leyes del pensamiento, el
cual sustenta las teorías de la lógica y la
probabilidad. El aporte de Boole fue
fundamental, ya que permitió reducir la
lógica a un álgebra simple (las matemáticas).
Estableció la analogía entre los símbolos
algebraicos y aquellos que representan sus
formas lógicas.
El álgebra Booleana o de Boole,
consiste en un método para resolver
problemas de lógica empleando para
ello valores binarios 1 y 0 y a tres
operadores: AND (y), OR (o) y NOT
(no).

5
Subtema 1: Funciones Booleanas

Álgebra Booleana
El álgebra Booleana se emplea en la construcción de computadoras, circuitos eléctricos,
y dispositivos electrónicos. Es fundamental destacar que los sistemas modernos trabajan
a partir de lógica binaria. Es decir, la representación de dos valores.
Algunas de las aplicaciones más importantes del álgebra de Boole son las que se anotan
a continuación:
• En términos generales, el álgebra de Boole se puede emplear a cualquier sistema en
que cada variable posea dos estados (1 y 0).
• Las computadoras modernas realizan sus operaciones y almacenan la información
empleando valores binarios (1 y 0) y realizan sus operaciones en base al álgebra de
Boole.
• Se emplea en el diseño de circuitos electrónicos.
• Se emplea ampliamente en la programación (condiciones lógicas).

https://youtu.be/u4VhsP-CZbY

6
Subtema 1: Funciones Booleanas

Compuertas Lógicas
Las compuertas lógicas se constituyen en los elementos de construcción fundamental en
la lógica combinatoria, con esto, debemos considerar lo siguiente:

• Las compuertas son circuitos electrónicos que se pueden emplear para


implementar la mayoría de las expresiones lógicas elementales (conocidas
como expresiones Booleanas).
• Básicamente existen tres compuertas: OR, AND y NOT. A partir de éstas se
derivan otras compuertas como las compuertas NAND, NOR, XOR (OR
exclusiva) y XNOR (NOR exclusiva).
• Las compuertas trabajan con dos valores de “verdad”, los números, 1 y 0, y
al igual que en la lógica proposicional, es factible construir tablas de verdad
con cada compuerta y, sus combinaciones con otras compuertas.
• Dentro del álgebra Booleana las variables se emplean para representar el
nivel de voltaje presente en un cable o en las entradas/salidas de un circuito
electrónico.

7
Subtema 1: Funciones Booleanas

Compuertas Lógicas
Por ejemplo, en cierto sistema digital el valor
booleano 0 podría asignarse a cualquier 0 (cero) Lógico 1 (uno) Lógico
voltaje en el intervalo 0 a 0.8 voltios,
mientras que el 1 booleano podría asignarse Falso Verdadero
a cualquier voltaje entre 2 y 5 voltios.
Apagado Encendido
Por ello, se debe tomar en cuenta que el 1 y Bajo Alto
0 booleanos no representan números reales,
sino el estado de una variable de voltaje o el No Sí
nivel lógico.
Interruptor abierto Interruptor cerrado

8
Subtema 1: Funciones Booleanas

Tablas de verdad
Al igual que en el caso de las proposiciones,
las tablas de verdad en el álgebra de Boole se
emplean a fin de describir la forma en que la
salida de un circuito lógico depende de los Entradas Salidas
niveles en sus entradas.

A continuación se puede apreciar un ejemplo A B ? X


donde se ilustran dos circuitos, uno con 2
entradas y un segundo con 3 entradas. Para 0 0 1
cada ejemplo se ha desarrollado la tabla de
verdad correspondiente. 0 1 0

Estas tablas listan todas las posibles


1 0 1
combinaciones de niveles lógicos presentes 1 1 0
en las entradas A y B, y A, B y C,
respectivamente

9
Subtema 1: Funciones Booleanas

Tablas de verdad Entradas Salidas


Al igual que en el caso de las proposiciones,
las tablas de verdad en el álgebra de Boole se
emplean a fin de describir la forma en que la A B C ? X
salida de un circuito lógico depende de los 0 0 0 0
niveles en sus entradas.
0 0 1 1
A continuación se puede apreciar un ejemplo 0 1 0 1
donde se ilustran dos circuitos, uno con 2
entradas y un segundo con 3 entradas. Para 0 1 1 0
cada ejemplo se ha desarrollado la tabla de 1 0 0 0
verdad correspondiente.
1 0 1 0
Estas tablas listan todas las posibles 1 1 0 0
combinaciones de niveles lógicos presentes
en las entradas A y B, y A, B y C, 1 1 1 1
respectivamente

10
Subtema 1: Funciones Booleanas

Preguntas
1. ¿Qué es el Algebra de Boole?
a) Una herramienta de gran utilidad para el estudio de los sistemas digitales
b) Un conjunto de proposiciones lógicas de naturaleza binaria
c) Un conjunto cerrado de elementos binarios relacionados por las operaciones lógicas suma y producto
2. ¿Cuántos valores puede tomar una variable lógica o Booleana?
a) 8
b) 2
c) 10
3. ¿Qué son las compuertas lógicas?
a) Dispositivos que son para limpieza de equipo de computo
b) Son circuitos electrónicos diseñados para obtener resultados booleanos
c) Dispositivos que ayudan a una función mas rápida de un ordenador

11
Subtema 2:

Circuitos lógicos combinatorios

12
Subtema 2: Circuitos lógicos combinatorios

Compuerta OR
Entradas Salidas
La operación que se lleva a cabo con esta compuerta devolverá en la
salida un valor de 1 cuando al menos una de las dos entradas sea 1.

Es importante observar que esta compuerta recibe dos entradas. Se A B X=A+B


puede observar la tabla de verdad correspondiente a esta compuerta, el
símbolo que la representa y su ecuación correspondiente. 0 0 0
0 1 1
1 0 1
1 1 1

𝑋 =𝐴+𝐵
13
Subtema 2: Circuitos lógicos combinatorios

Compuerta AND
Entradas Salidas
La operación que se lleva a cabo con esta compuerta devolverá en la
salida un valor lógico de 1 cuando las dos entradas sean 1.

Es importante observar la tabla de verdad correspondiente a esta A B X=A∙B


compuerta, el símbolo que la representa y su ecuación correspondiente.
0 0 0
0 1 0
1 0 0
1 1 1

𝑋 =𝐴∙𝐵
14
Subtema 2: Circuitos lógicos combinatorios

Compuerta Not Entradas Salidas


La operación que se lleva a cabo con esta compuerta devolverá en la
salida un valor lógico negado al que se reciba como entrada.
A X = ~A
Esta compuerta únicamente recibe una entrada. Podemos observar su
tabla de verdad, el símbolo que la representa (a través de la barra sobre 0 1
la variable) y su ecuación correspondiente.
1 0

De igual forma que en otras notaciones,


también se puede emplear el símbolo “primo”:
A’ = 𝐴ҧ variable con barra (como acento).
También 𝑁𝑜𝑡 𝐴, ¬𝐴, ~𝐴 (virgulilla).
𝑋 = 𝐴ҧ
15
Subtema 2: Circuitos lógicos combinatorios

Compuerta XOR
La operación que se lleva a cabo con esta compuerta devolverá en la Entradas Salidas
salida un valor lógico de 1 siempre y cuando las dos entradas sean
distintas. Esta compuerta recibe dos entradas.
A B X = 𝐴⨁𝐵
0 0 0
0 1 1
1 0 1
1 1 0

𝑋 = 𝐴⨁𝐵 = 𝐴 ∙ 𝐵ത + 𝐴ҧ ∙ 𝐵
= (𝐴 + 𝐵) ∙ (𝐴ҧ ∙ 𝐵)

16
Subtema 2: Circuitos lógicos combinatorios

Compuerta XNOR
Representa la combinación de dos compuertas: una XOR seguida de una Entradas Salidas
NOT. Es importante observar que esta compuerta recibe dos entradas.
Podemos observar su tabla de verdad, el símbolo que la representa y su
ecuación correspondiente.
A B X = 𝐴⨁𝐵
0 0 1
0 1 0
1 0 0
1 1 1

𝑋 = 𝐴⨁𝐵 = 𝐴 ∙ 𝐵 + 𝐴ҧ ∙ 𝐵ത

17
Subtema 2: Circuitos lógicos combinatorios

Compuerta NOR
Representa la combinación de dos compuertas: una OR seguida de una Entradas Salidas
NOT. Es importante observar que esta compuerta recibe dos entradas.
Podemos observar su tabla de verdad, el símbolo que la representa y su
ecuación correspondiente.
A B X=𝐴+𝐵
0 0 1
0 1 0
1 0 0
1 1 0

𝑋 =𝐴+𝐵
18
Subtema 2: Circuitos lógicos combinatorios

Compuerta NAND
Representa la combinación de dos compuertas: una AND seguida de una Entradas Salidas
NOT. Es importante observar que esta compuerta recibe dos entradas.
Podemos observar su tabla de verdad, el símbolo que la representa y su
ecuación correspondiente.
A B X = 𝐴𝐵
0 0 1
0 1 1
1 0 1
1 1 0

𝑋 =𝐴∙𝐵

19
Subtema 2: Circuitos lógicos combinatorios

Relaciona las tablas con las compuertas

a b

¿?
c d

20
Subtema 3:

Diseño de soluciones a problemas


empleando circuito lógicos
combinatorios

21
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Descripción de circuitos lógicos en forma algebraica


Una función lógica o circuito se define
de forma completa cuando para todas
las posibles combinaciones de las
variables de entrada la función de valor
se encuentra establecida:
• El número de combinaciones
depende de la cantidad de variables
de entrada (A, B, C, D, . . . ).
• Total de combinaciones = 2n, donde
n representa cuántas variables se
tiene a la entrada del circuito.
• También es posible obtener una
función lógica a partir de una tabla
de verdad.

22
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Descripción de circuitos lógicos en forma algebraica


Supongamos que x(A, B, C) representa
un circuito con tres variables y la
siguiente tabla de verdad (Ejemplo de A B C X
tabla de verdad con tres variables de
0 0 0 1
entrada)
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

23
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Descripción de circuitos lógicos en forma algebraica


Si deseamos obtener el circuito o
función lógica a partir de esta tabla,
debemos únicamente considerar A B C X
aquellas salidas que tienen un valor de
1 para x (Ejemplo de tabla de verdad
𝐴ҧ ∙ 𝐵ത ∙ 𝐶ҧ 0 0 0 1
con tres variables de entrada) 0 0 1 0
0 1 0 0
𝐴ҧ ∙ 𝐵 ∙ 𝐶 0 1 1 1
𝐴 ∙ 𝐵ത ∙ 𝐶ҧ 1 0 0 1
1 0 1 0
𝐴 ∙ 𝐵 ∙ 𝐶ҧ 1 1 0 1
𝐴∙𝐵∙𝐶 1 1 1 1

24
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Descripción de circuitos lógicos en forma algebraica


Con ello, el circuito o función lógica se expresaría como se indica en la ecuación:

𝑋 = 𝐴ҧ ∙ 𝐵ത ∙ 𝐶ҧ + 𝐴ҧ ∙ 𝐵 ∙ 𝐶 + 𝐴 ∙ 𝐵ത ∙ 𝐶ҧ + 𝐴 ∙ 𝐵 ∙ 𝐶ҧ + 𝐴 ∙ 𝐵 ∙ 𝐶

Como se puede apreciar, la ecuación es grande, y si no la simplificamos, el circuito resultante empleará muchas
compuertas y no será práctico de construir. Por ello, a continuación se estudiarán los teoremas del álgebra de Boole, y
posteriormente, cómo reducir estas ecuaciones a través de Mapas de Karnaugh.

25
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Propiedades del álgebra de Boole


Suponga que x e y son funciones lógicas cuyos valores pueden ser 0 o 1. Las siguientes propiedades se cumplen:

Conmutativa: x + y = y + x; y también x · y = y · x
Asociativa: x + (y + z) = (x + y) + z; y también x · (y · z) = (x · y) · z
Distributiva: x · (y + z) = x · y + x · z; y también (x + y)(x + z) = x + (y · z)
Teorema de De Morgan’s - NOR: (𝑥 + 𝑦) = 𝑥 ̅ · 𝑦 ̅
Teorema de De Morgan’s - NAND: (𝑥 · 𝑦) = 𝑥 ̅ + 𝑦 ̅

26
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Teoremas de funciones NOT, AND y OR


El álgebra de Boole está gobernada por un conjunto específico de teoremas que permiten simplificar las expresiones.
Ello facilita la implementación física de los circuitos y reduce el costo. Los teoremas para las funciones NOT, AND y OR
son los que se detallan en la Tabla siguiente:

NOT AND OR

ഥ=𝟏
𝟎 𝟎∙𝑿=𝟎 𝟎+𝑿=𝑿
ഥ=𝟎
𝟏 𝟏∙𝑿=𝑿 𝟏+𝑿=𝟏
ഥ=𝑿
𝑿 𝑿∙𝑿=𝑿 𝑿+𝑿=𝑿
ഥ=𝟎
𝑿∙𝑿 ഥ=𝟏
𝑿+𝑿

27
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Teoremas de funciones NOT, AND y OR


En general para las funciones o circuitos Booleanos x, y, z es
factible establecer los siguientes teoremas:

Teorema de la simplificación: Teorema de la factorización y la multiplicación:


x+x·y=x (x + y)(x + z) = x · z + x · y
Ejemplo x(x + y) = x x · y + x · z = (x + z)(x + y)
x · y + x · y’ = x Teorema de consenso:
(x + y)(x + y’) = x x·y+x·z+y·z=x·y+x·z
(x + y)(x + z)(y + z) = (x + y)(x + z)
Teorema de absorción:
x+x·y=x

REGLAS
x(x + y) = x
Ejemplo x + x’ y = x + y
Ejemplo x ( x’ + y) = x y

28
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Ejemplo de simplificación de expresiones


Simplifique la expresión: x = 𝐴𝐵𝐶 + 𝐴𝐵𝐶 + 𝐴𝐵𝐶
Solución:
Paso 1: Dado que los dos primeros términos poseen el producto A𝐵 en común, podemos sacar
factor común:
x = A𝐵(𝐶 + C) + ABC
= A𝐵(1) + ABC
= A𝐵 + ABC
Paso 2: Factorizamos la variable A: x = A(𝐵 + BC)
Paso 3: Aplicamos el teorema absorción: x = A(𝐵 + C)
29
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
Un método semigráfico basado en los mapas de Karnaugh es más apropiado para simplificar expresiones Booleanas
complejas. Un mapa de Karnaugh, al igual que las tablas de verdad, provee una representación lógica de las funciones.
Está compuesto por un número de celdas que se calcula a través, en base a las n entradas que tiene el sistema: 2n
En la siguiente imagen podemos apreciar dos formas de representar un mapa de Karnaugh de tres variables.

30
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
Para realizar la simplificación de una expresión
Booleana compleja, podemos emplear un mapa de
Karnaugh tomando en consideración las siguientes
premisas:
• Se debe colocar un valor de 1 en aquellas celdas
donde la tabla de verdad indica que la salida x es
distinta de 0.
• Las celdas del mapa de Karnaugh se etiquetan de
forma que las celdas adyacentes en forma
horizontal difieran sólo por una variable. Por
ejemplo, en el mapa (b) de la imagen anterior, la
celda superior izquierda es ¯𝐴 · ¯𝐵 · ¯𝐶 , mientras
que la celda contigua en la misma fila ¯𝐴 · ¯𝐵 · C
(solo difiere C).
• A fin de realizar el proceso de simplificación,
podemos agrupar los 1 en potencias de dos (2, 4 u
8) celdas.
31
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
A fin de simplificar la expresión, deberemos seguir
estas reglas:
• Las celdas que contienen 1 se conocen como
minterm (mínimo termino) y las que tienen 0
maxterm (máximo termino). Estas se deberán
agrupar de acuerdo a las funciones lógicas con las
que trabajemos.
• No se pueden hacer agrupaciones en diagonal, las
celdas que estén en los bordes (por ejemplo
primera fila) podrán agruparse con las de la última
fila, misma columna).
• Con el fin de determinar la ecuación lógica
resultante, se deben considerar aquellas variables
que no cambian dentro del grupo. Las que sí lo
hagan se eliminan.

32
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
A continuación se presenta un ejemplo que ilustra
cómo realizar la simplificación de un circuito. Ejemplo
de aplicación de Mapas de Karnaugh.

Dadas tres entradas (A, B, C), diseñe un circuito lógico


en el que se active un LED siempre y cuando una
única entrada esté activa a la vez.

Solución:
Paso 1. En primer lugar debemos construir la tabla de
verdad que nos permitirá armar el mapa de Karnaugh
para realizar la simplificación correspondiente.

33
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
Paso 2. Con base a la tabla, armamos el mapa de
Karnaugh correspondiente.

11 10

34
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
Paso 3. Analizamos en el mapa qué agrupaciones podemos hacer

11 10

Paso 4. Simplificamos aquellas variables que cambian de estado

x = 𝐴 · 𝐵 · 𝐶+ 𝐴𝐶
35
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Mapas de Karnaugh
Paso 5. Diseñamos el circuito
x = 𝐴 · 𝐵 · 𝐶+ 𝐴𝐶

36
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas


En esta sección se proveerán ejemplos sobre problemas que se pueden resolver a través de la implementación de
circuitos lógicos combinatorios.

EJEMPLO 1
Dadas 3 entradas (A, B, C), diseñe un circuito lógico combinatorio que devuelva 1 uno en la salida (x) cuando se
cumplan las siguientes condiciones:
Solo entrada C tiene un valor de 1.
Solo entrada B tiene un valor de 1.
Las entradas B y C tienen un valor de 1

37
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas

Mapa de Karnaugh

x = 𝑨 · 𝑩· 𝑪+ 𝑨 · 𝑩 + 𝑨 · 𝑩 · 𝑪 38
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas

x = 𝑨 · 𝑩· 𝑪+ 𝑨 · 𝑩 · 𝑪 + 𝑨 · 𝑩 · 𝑪+ 𝑨 · 𝑩 · 𝑪
x = 𝑨 · 𝑩· 𝑪+ 𝑨 · 𝑩 · 𝑪 + 𝑩 · 𝑪 39
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas


En esta sección se proveerán ejemplos sobre problemas que se pueden resolver a través de la implementación de
circuitos lógicos combinatorios.

EJEMPLO 2
Dadas 4 entradas (A, B, C, D), diseñe dos circuitos lógicos combinatorios que cumplan las siguientes condiciones:
Circuito 1: que devuelva 1 uno en la salida (x) la entrada represente un numero binario par. Ejemplos de números
pares serían: 0010, 0100, · · ·
Circuito 2: que devuelva 1 uno en la salida (x) la entrada represente un numero binario impar. Ejemplos de números
pares serían: 001, 0011, 1001, · · ·
Es importante tener en mente que se pueden realizar varias combinaciones en un mapa de Karnaugh

40
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas

41
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Planteamiento y resolución de problemas

LogiSim
http://www.cburch.com/logisim/
42
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Reglas del Álgebra de Boole

https://youtu.be/89_f_7orNjc

43
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Resuelve simplificando y obtén el desarrollo


Ejercicios Respuestas

44
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Resuelve simplificando y obtén el desarrollo


Ejercicios Respuesta

45
Subtema 3: Diseño de soluciones a problemas empleando circuito lógicos combinatorios

Resuelve simplificando y obtén el desarrollo


Ejercicios Respuesta

46
Referencias:
▪ A. Aguilar Marquez, Matemáticas Simplificadas, Pearson, 2009.
▪ A. K. Maini, Digital electronics: principles, devices and applications, John Wiley & Sons, 2007.
▪ Li, W. N., Reddy, S. M., & Sahni, S. K. On path selection in combinational logic circuits. IEEE Transactions on Computer-
Aided Design of Integrated Circuits and Systems, 8(1), 56-63, 1989
▪ S. K. Sarkar, A. K. De, S. and Sarkar, Foundation of Digital Electronics and Logic Design, Pan Stanford Publishing, 2015.
▪ J.R. Tocci, N. Widmer, G. Moss, Sistemas digitales: principios y aplicaciones, Pearson Educación, 2007.
▪ J. E. Whitesitt, Boolean algebra and its applications, Dover Publications Inc., 2010.
▪ L. Joyanes Aguilar; Fundamentos generales de programación; Editorial McGraw Hill, 5ta Edición; Madrid 2013.
▪ R. Martínez Fernández; Programación en C: Ejercicios; Editorial UPM, 1ra redición; Madrid 2014.
▪ D. Abbott; Linux for embedded and real time aplications; Editorial Newnes, 3ra edition; 2013.

REVISA INFORMACIÓN ADICIONAL EN:


http://www.ups.edu.ec/web/guest/bibliotecas
http://aleph.ups.edu.ec/F?func=find-b-0
http://www.ups.edu.ec/web/guest/base-de-datos-bibliotecas 47
Gracias por su atención

www.ups.edu.ec

También podría gustarte