ALGEBRA BOOLEANA Un sistema axiomático es una colección de conocimientos ordenados jerárquica-mente mediante reglas o leyes lógicas aplicadas a un número limitado de conceptos o principios básicos. Un sistema axiomático se compone de: ● TÉRMINOS PRIMITIVOS: No se definen ● DEFINICIONES: Conceptos que se crean mediante conectivos lógicos de los términos primitivos ● AXIOMAS: Proposiciones no demostrables que se establecen como ciertas, son las nociones fundamentales de la teoría. ● TEOREMAS: Leyes que se demuestran aplicando los axiomas, se derivan de los axiomas. Un sistema axiomático BIEN FORMULADO satisface: ● CONSISTENCIA LOGICA. Carece de proposiciones contradictorias ● INDEPENDENCIA DE SUS AXIOMAS: ninguno de sus axiomas puede deducirse de los otros axiomas. ● COMPLETITUD: posee el número suficiente y necesario de enunciados lógicos que garanticen que toda proposición que se infiera de la teoría es consecuencia lógica de los axiomas. ALGEBRA BOOLEANA (ALGEBRA LOGICA) Es un sistema axiomático que debe su nombre a George Boole quien a mediados del siglo XIX desarrolló una teoría lógica que utilizaba símbolos en lugar de palabras. Claude E. Shannon, casi un siglo después (1938) la aplicó a la teoría de circuitos lógicos. Un ÁLGEBRA DE BOOLE es un sistema de elementos B={0,1} y los operadores binarios: ·, +, y, ’ Operador + Operador · OPERADOR se le llama se le llama ‘ Operador OR Operador AND se le llama Operador NOT VARIABLES Y CONSTANTES BOOLEANAS Una variable booleana representa cada uno de los dos estados posibles que puede adoptar las variable. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener sólo dos valores posibles: 1 1 valor alto activado si cerrado ó 0 ! ! ! ! valor bajo desactivado no abierto Se corresponden con señales de entrada, de salida o intermedias. Se representan mediante caracteres alfabéticos .A., .B., .X.... Pueden tomar dos valores (0 ó 1). Se denomina literal a una variable o a su complemento x, x' OPERACIONES DEL ALGEBRA BOOLEANA Y COMPUERTAS BÁSICAS SUMA LOGICA (OR) + 0 1 0 0 1 Símbolo lógico para la compuerta OR 1 1 1 PRODUCTO LOGICO (AND) x 0 1 0 0 0 Símbolo lógico para la compuerta AND 1 0 1 INVERSION LOGICA (NOT) x x' o x 0 1 1 0 Símbolo lógico para la compuerta NOT POSTULADOS DEL ALGEBRA BOOLEANA Un algebra booleana es un sistema algebraico definido sobre un conjunto B con al menos dos elementos, y dos operaciones definidas : suma (operación OR) y producto (operación AND) y que satisface las siguientes propiedades: P1.ELEMENTOS NEUTROS: Existen en B, el elemento neutro de la suma (0) y el elemento neutro de la multiplicación (1) tales que para todo x en B a) x+0 = x b) x.1 =x P2.CONMUTATIVAS: Para todo elemento x en B 2 a) x+y = y+x b) xy=yx P3.ASOCIATIVAS: para todo x, y, z en B a) x+(y+z)=(x+y)+z b) x(yz)=(xy)z P4.DISTRIBUTIVAS: para todo x, y, z en B a) x+(yz)=(x+y)(x+z) b) x(y+z)=xy+xz P5.COMPLEMENTOS ( o inversión lógica): para cada x en B existe un único elemento x o x' llamado el complemento de x tal que a) x + x' = 1 b) xx'=0 PRINCIPIO DE DUALIDAD Dos expresiones booleanas se dicen duales una de la otra, si una se puede obtener de la otra cambiando las operaciones + por * y viceversa y cambiando cero por uno 3 Cualquier teorema o identidad algebraica deducible de los postulados anteriores puede transformarse en un segundo teorema o identidad válida sin mas que intercambiar (+) por (·) y 1 por 0. Ejemplos Expresión Expresión Dual x+y = 1 x*y = 0 X*0=0 x+1=1 PROPIEDADES DEL ALGEBRA BOOLEANA Teorema 1. Leyes de idempotencia. Para todo x en B, x*x=x ,y, x+x=x ∀ x∈B , x∗x=x Dual: ∀ x∈B , xx=x x*1=x Postulado 1b) x+0=x Postulado 1a) x*(x+x')=x Postulado 5a) x+(x*x')=x Postulado 5b) x*x+x*x'=x Postulado 4a) (x+x)*(x+x') =x Postulado 4a) x*x+0=x Postulado 5b) (x+x)*1=x Postulado 5a) x*x=x Postulado 1a) x+x=x Postulado 1b) Teorema 2. Leyes de acotación. Para todo x en B, x*0=0 ,y, x+1=1 ∀ x∈B , x∗0=0 x*0=x*0+0 Dual: Postulado 1a) ∀ x∈B , x1=1 x+1=(x+1)*1 Postulado 1b) x+1=1*(x+1) Postulado 2b) x*0=x*0+x*x' Postulado 5b) x+1=(x+x')(x+1) Postulado 5a) x*0=x(0+x') Postulado 4b) x+1=x+(x'*1) Postulado 5a) x*0=x*x' Postulado 1a) x+1= x+x' Postulado 1b) X*0=0 Postulado 5b) x+1=1 Postulado 1a) 4 LEYES DEL ALGEBRA BOOLEANA Y SUS LEYES DUALES NOMBRE LEY LEY DUAL x+0=x x*1=x x+x'=1 x*x'=0 x+x=x x*x=x X+1=1 X*0=0 x+x*y=x x*(x+y)=x x + x’ y = x+y x*(x’ +y) =x*y Modulativa Complemento Idempotencia Acotación Absorción (x')'=x (0')'=0 (1')'=1 Involución D'Morgan (x+y)' = x' * y' (x*y)' = x'+y' 5 NOMBRE O EXCLUSIVA (XOR) LEY LEY DUAL x⊕y=x'∗yx∗y ' x y x⊕y 0 0 0 0 1 1 1 0 1 1 1 0 Símbolo lógico para la compuerta XOR Con base en las equivalencias lógicas pueden definirse las compuertas básicas en términos de sumas o productos a) (x*y)' = x'+y' Compuerta AND b) (x'+y')' = x*y Compuerta OR c) (x*y)' = x' + y' Compuerta NAND d) (x + y)' = x'*y' Compuerta NOR e) (x⊕y)' = (x'+y)*(x+y') = x*y + x’ *y’ Compuerta XNOR 6 OTRAS PROPIEDADES a) (x*y)+(x' * z)+(y*z)=(x * y) + (x' * z) b) (x + y)* (x' + z) * (y+z) = (x+y) * (x' +z) c) (x * y) +(x*y'*z ) = x*y + x*z d) (x + y) *(x+y'+z) = (x+y) *( x +z) Funciones de Conmutación Hallar la función y simplificar el circuito F(x,y,z) = (x'+z') (x'y +x'z) +yz' ( z'+z'x) F(x,y,z) = (x'+z') (x'y +x'z) +yz' ( z'(1+x)) F(x,y,z) = (x'+z') (x'y +x'z) +yz'z'1 F(x,y,z) = (x'+z') (x'y +x'z) +yz' F(x,y,z) = x' (x'y +x'z)+z'(x'y +x'z) +yz' F(x,y,z)=x'x'y++x'x'z+x'yz'+x'zz' + yz' F(x,y,z)= x'y++x'z+x'yz'+x'zz' + yz' F(x,yz)= x'y++x'z+x'yz'+x'0 + yz' F(x,y,z)=x'y+x'z+x'yz'+yz' F(x,y,z)=x'y+x'z+(x'+1)yz' F(x,y,z)=x'y+x'z+yz' F(x,y,z)= yz'+x'z 7 EJERCICIOS 1. Obtener la expresión Booleana correspondiente a los siguientes circuitos lógicos: a) b) c) 2. Simplificar las siguientes expresiones a) xy'yz'' b) [xy 'x'y''] c) [x'(y'+z')]' d) (x+y)(x'+y') 3. Obtener el diagrama lógico equivalente de la expresión a) (x+y)(x'+y') b) (x'+y)(x+y') c) x'y' + xy d) xy'+x'y 8 SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS Si x, y, z ... son variables lógicas, cualquier combinación de ellas mediante las operaciones lógicas de suma, producto o complementación se denomina expresión booleana. A cada expresión booleana se le asocia una función booleana. FUNCIONES DE CONMUTACIÓN: Una variable binaria es una variable discreta que puede asumir sólo dos valores. Una función de conmutación de una o más variables, es una variable binaria cuyo valor depende de los valores de las variables de conmutación. El símbolo f se emplea para denotar una función de conmutación: f = f(x, y, z,...); las variables x, y, z,.., son variables independientes, mientras f es una función dependiente. Ejemplos 1. f(x)=x+x' En este caso el dominio de la función es el conjunto {0,1} y el rango de la función es también el conjunto {0,1} . Podemos calcular el valor de La tabla de verdad de la Podemos la función en casa uno de los función es: utilizando puntos del conjunto de sagital salida f(0)= 0+0' = 0+1 =1 x f f(1)= 1+1' = 1+0 =1 0 1 1 representarla un diagrama 1 La función puede simplificarse como f(x)=1 2. f(x,y)= xy'+x'y' En este caso el dominio de la función es el conjunto de parejas ordenadas {(0,0),(0,1), (1,0) , (1,1) } y el rango de la función es el conjunto {0,1} . Podemos calcular el valor de la función en cada uno de los puntos del conjunto de salida f(0,0) f(0,1) f(1,0) f(1,1) = = = = 0.1+1.1 0.0+1.0 1.1+0.1 1.0+0.0 = = = = 1 0 1 0 La tabla de verdad de la función es: x y f 0 0 1 0 1 0 1 0 1 1 1 0 9 Podemos representarla utilizando un diagrama sagital Supongamos que tenemos la tabla de verdad de la función dada en el segundo ejemplo y queremos encontrar la función correspondiente y reducirla a una expresión más sencilla (si es posible). Tenemos dos opciones: OPCIÓN 1: Consideramos unicamente las columnas de la tabla donde el valor de la función es 1. x y f 0 0 1 Aprovechamos que 1.1=1 y 1+1=1 Expresamos cada 1 de las filas como producto de unos, empleando las variables originales o su complemento 1 0 1 En la primera fila x=0 y y=0. Para expresar 1 como producto de las variables escribimos x' y' En la segunda fila x=1 y y=0. Para expresar 1 como producto de las variables escribimos x y' Sumando las dos expresiones se obtiene f(x,y)= x' y' + x y' Utilizamos las leyes y propiedades del algebra booleana para simplificar la expresión f(x,y)= x' y' + x y' f(x,y)= (x' + x) y' (Distributiva del producto respecto a la suma) f(x,y) = 1y' f(x,y)= y' Se puede verificar que el valor de la función f(x,y)= y' en los demás puntos del dominio es 0 OPCIÓN 2: Consideramos unicamente las columnas de la tabla donde el valor de la función es 0. x y f 0 1 1 1 1 1 Aprovechamos que 0+0=0 y 0.0=0 Expresamos cada 0 de las filas como suma de ceros, empleando las variables originales o su complemento En la primera fila x=0 y y=1. Para expresar 0 como suma de las variables escribimos x + y' En la segunda fila x=1 y y=1. Para expresar 0 como suma de las variables escribimos x'+ y' Multiplicando las dos expresiones se obtiene f(x,y)= (x+y')(x'+y') Utilizamos las leyes y propiedades del algebra booleana para simplificar la expresión f(x,y)= (x+y')(x'+y') f(x,y)= x(x' + y')+ y'(x' +y') (Distributiva del producto respecto a la suma) f(x,y) = xx' + xy' + x'y' +y'y' f(x,y) = 0 +(x + x')y' + y' f(x,y)= y' +y' f(x,y) = y' Se puede verificar que el valor de la función f(x,y)= y' en los demás puntos del dominio 10 es 1 Dadas n variables lógicas la tabla de la función tiene n 2 2 funciones distintas. En el caso de n=2 existen existen 3 2 8 2 =2 =256 funciones distintas. n 2 casillas y se pueden definir 2 2 funciones distintas, para n=3 2 Para n=2 si miramos las distintas opciones de la tabla podemos asociar a cada función una cadena de 4 bits y de acuerdo con su representación en la base decimal se le asocia el subíndice. En la tabla 1 se observan todas las funciones de dos variables. FUNCIONES LÓGICAS DE DOS VARIABLES Expresiones equivalentes y compuertas x 0 0 1 1 Función Lógica Expresión Equivalente y 0 1 0 1 F0 0 0 0 0 xx' 0 F1 0 0 0 1 xy (x'+y')' F2 0 0 1 0 xy' (x'+y)' F3 0 0 1 1 x x F4 0 1 0 0 x'y (x+y')' F5 0 1 0 1 y y F6 0 1 1 0 x'y+xy' x⊕y F7 0 1 1 1 x+y (x'y')' OR F8 1 0 0 0 (x+y)' x'y' NOR F9 1 0 0 1 x'y'+xy (x⊕y)' F10 1 0 1 0 y' y' F11 1 0 1 1 x+y' (x'y)' F12 1 1 0 0 x' x' F13 1 1 0 1 x'+y (xy')' F14 1 1 1 0 (xy)' x' +y' F15 1 1 1 1 y+y' 1 11 Otra expresión Compuertas Nombre AND (x→ y)' (y→ x)' (x↔y)' x↔y XOR XNOR y→ x NOT x→ y NAND Símbolo En la tabla se observa que dos funciones de dos variables son complementarias si i+j=15 F 'i=F j si y solo si i+j=15 Propiedades de la operación XOR 1. Conmutativa x⊕y = y⊕x 2. Asociativa x⊕(y⊕z) = (x⊕y)⊕z 3. Distributiva de la operación AND con respecto a la operación XOR x.(y⊕z) = (x.y)⊕(x.z) Ejemplo 1: Escribir y simplificar la función booleana cuya tabla de verdad es: x y z f(x,y,z) 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 x'y'z' x'yz' xy'z xyz Consideramos las filas cuyo resultado es uno, y lo expresamos como producto de las variables o de su complemento Escribimos la función definida como la suma de los productos f(x,y,z) = x'y'z'+ x'yz' + xy'z + xyz Haciendo uso de las propiedades de las operaciones booleanas se simplifica la expresión obtenida f(x,y,z) = ( x'z'y'+ x'zy') + (xzy' + xzy) Asociativa de la + y conmutativa de la . f(x,y,z) = x'z' (y'+y) + xz (y+y') Distributiva f(x,y,z) = x'z' +xz Complemento f(x,y) = x ↔ z Es sencillo verificar que el valor de la función es cero en las otras casillas de la tabla 12 2. Si consideramos las filas de ceros y expresamos cada cero como suma de las variables o sus complementos se obtiene: 0 0 1 x + y + z' 0 1 1 x + y' + z' 1 0 0 x' + y + z 1 1 0 x'+ y' + z Escribimos la función f como el producto de las sumas de ceros f(x,y,z) = (x + y + z')( x + y' + z')(x' + y + z)(x'+ y' + z) = (x + z' + y ')( x + z' + y') (x' + z + y )(x' + z + y') = (x + z' + yy') (x' + z + yy') = (x+ z')(x' +z) = xx' + xz + x'z' +zz' = xz + x'z' = x ↔z Esta función es la misma que se había obtenido antes. FORMAS NORMALES DE LAS FUNCIONES BOOLEANAS MINTÉRMINO (mi): término producto en el que aparecen todas las variables, ya sean complementadas o sin complementar. Un mintérmino es un término producto que es 1 exactamente en una línea de la tabla de Verdad. MAXTÉRMINO (Mi): término suma en el que aparecen todas las variables, ya sean complementadas o sin complementar. Un maxtérmino es un término suma que es 0 exactamente en una línea de la tabla de verdad. FORMA NORMAL DISYUNTIVA O FORMA CANÓNICA DISYUNTIVA ( Suma de Mintérminos o Suma de Productos) Una función booleana tiene la forma normal disyuntiva si está escrita como la suma de términos (de valor 1) donde cada término es un producto que involucra todas las variables complementadas o no Un mintérmino es un término producto que es 1 exactamente en una línea de la tabla de Verdad. La fórmula compuesta por todos los mintérminos será idénticamente 1. Cada fórmula de conmutación puede expresarse como suma de mintérminos. Y esa fórmula es única. A cada término de la forma normal disyuntiva se le llama término minimal o mintérmino y se denota como mi La forma normal disyuntiva de n variables tiene 2n términos y se denomina forma normal disyuntiva completa de n variables Forma NORMAL DISYUNTIVA COMPLETA (para dos variables) 13 Dec x y mi Mintérmino 0 0 0 x'y' 1 1 0 1 x'y 1 2 1 0 xy' 1 3 1 1 xy 1 f(x,y) = x'y'+x'y+ xy' +xy =1 Ejemplo 2: Hallar y simplificar la función booleana Dec x y z f(x,y,z) Mintérmino En este caso hay menos unos que ceros, utilizamos la forma normal disyuntiva. 1 x'y'z' 0 0 0 0 1 0 0 1 0 2 0 1 0 1 x'yz' 3 0 1 1 1 x'yz 4 1 0 0 0 5 1 0 1 0 6 1 1 0 0 f(x,y,z) = x'y'z' +x'y(z + z') 7 1 1 1 0 f(x,y,z) = x'y'z' +x'y f(x,y,z) = x'y'z' + x'yz' +x'yz Simplificando: FORMA NORMAL CONJUNTIVA O FORMA CANÓNICA CONJUNTIVA ( Producto de Maxtérminos o Producto de sumas) Una función booleana tiene la forma normal conjuntiva si está escrita como producto de términos (de valor cero) donde cada término es la suma de todas las variables complementadas o no. A cada término de la forma normal conjuntiva se le llama término maximal o maxtérmino y se denota como Mi La fórmula compuesta por todos los maxtérminos será idénticamente 0. Cada fórmula puede expresarse como producto de maxtérminos. Y es única La forma normal disyuntiva de n variables tiene 2n términos y se denomina forma normal disyuntiva completa de n variables Forma NORMAL CONJUNTIVA COMPLETA (para dos variables) Dec x y Mi Maxtérmino 0 0 0 x+y 0 1 0 1 x+y' 0 2 1 0 x'+y 0 3 1 1 x'+y' 0 f(x,y) = (x+y)(x+y')(x'+y)(x'+y') = 0 14 Mintérminos y Maxtérminos para 3 variables Dec x y z Mintérmino Maxtérmino 0 0 0 0 m0 x’ y’ z’ M0 x+y+z 1 0 0 1 m1 x’ y’ z M1 x+y+z’ 2 0 1 0 m2 x’ y z’ M2 x+y’+z 3 0 1 1 m3 x’ y z M3 x+y’+z’ 4 1 0 0 m4 x y’ z’ M4 x’+y+z 5 1 0 1 m5 x y’ z M5 x’ + y +z’ 6 1 1 0 m6 x y z’ M6 x’+y’+z 7 1 1 1 m7 xyz M7 x’+y’+z’ Ejemplo 3: Hallar y simplificar la función booleana x y z f(x,y,z) Maxtérmino En este caso hay menos ceros que unos, utilizamos la forma normal conjuntiva. 0 0 0 1 f(x,y,z) = (x'+y+z)(x'+y+z')(x'+y'+z') 0 0 1 1 0 1 0 1 f(x,y,z) = (x'+y+z)(x'+z'+y)(x'+z'+y') 0 1 1 1 f(x,y,z) = (x'+y+z)(x'+z'+yy') 1 0 0 0 x'+y+z f(x,y,z) = (x'+y+z)(x'+z') 1 0 1 0 x'+y+z' f(x,y,z) = x'+(x+z)z' 1 1 0 1 1 1 1 0 f(x,y,z) = x'+yz'+zz' x'+y'+z' f(x,y,z) = x'+yz' Las formas normales completas permiten de manera sencilla la conversión de una forma normal a la otra mediante el empleo de la doble negación Ejemplo 4. Hallar la forma normal conjuntiva de la función f(x,y,z) = xyz + xyz' + xy'z + xy'z' + x'yz Escribimos f como el complemento del complemento f''=f: [ ' fx, y , z= xyzxyz'xy' zxy'z 'x'yz ' ] La primera negación (la de adentro) la calculamos con las leyes D'Morgan fx, y , z=[ x'y 'z ' x'y 'zx'yz'x'yz' xy 'z'] ' Para el segundo complemento, escribimos los maxtérminos de 3 variables que hacen falta (hay 5 términos faltan 3 términos) 15 f(x,y,z) = (x+y'+z)(x+y+z')(x+y+z) Ejemplo 5. Hallar la forma normal disyuntiva de la función f(x,y,z) = (x + y'+z)(x'+y+z')(x+y+z') [ ' fx, y , z= xy 'zx'yz' xyz' ' ] Como en el caso anterior para la negación interna utilizamos las leyes D'Morgan ' fx, y , z=[ xy 'z 'x'yz''xyz' '] ' fx, y , z=[ x' yz' xy' z x' y 'z ] Para la segunda negación buscamos, en la forma normal disyuntiva completa, los mintérminos que hacen falta (5 mintérminos) f(x,y,z)= xyz + x'yz +xyz' + xy'z' + x'y'z' MAPAS DE KARNAUGH (MAPAS K) Fueron inventados en1950 por Maurice Karnaugh un físico y matemático de los laboratorios Bell. Los mapas de Karnaugh es uno de los métodos más prácticos. Se puede decir que es el más poderoso, cuando el número de variables de entrada es menor o igual a cinco; más allá, ya no es tan práctico. En general, el mapa de Karnaugh se considera como la forma gráfica de una tabla de verdad,o como una extensión del diagrama de Venn. Dada una función de n variables se construyen cajas de 2n celdas, es otra forma de representar la tabla de verdad de la función. Cada mintérmino tiene un lugar asignado dentro del diagrama de karnaugh. Para armar cualquier Diagrama de Karnaugh los casilleros contiguos verticales u horizontales deben contener mintérminos adyacentes, es decir, donde sólo cambie una variable entre uno y otro. 16 Mapa K para 2 variables x' La variable y está en toda la fila sin negar x 0 y' 0 a0 a2 y 1 a1 a3 x' y' 0 y 1 x 0 La variable x está en toda la columna sin negar 1 1 Mapa K para 3 variables x' xy z 00 x 01 11 10 z' 0 a0 a2 a6 a4 z 1 a1 a3 a7 a5 x' xy z 00 z' 0 z 1 x 01 11 10 Mapa K para 4 variables x' 00 z' z x 11 01 10 00 a0 a4 a12 a8 01 a1 a5 a13 a9 11 a3 a7 a15 a11 10 a2 a6 a14 a10 y' y w' w w' y' En estas dirección se puede bajar el software para simplificar mapas de Karnuagh: • • • • GKMap Karnaugh Map Minimizer WinLogiLab Boolean Calculator: VK, Truth Tables,... 17