Las álgebras booleanas

  • 493 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
493
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
4
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Las álgebras booleanas, estudiadas por primera vez en detalle por George Boole , constituyen unárea de las matemáticas que ha pasado a ocupar un lugar prominente con el advenimiento de lacomputadora digital. Son usadas ampliamente en el diseño de circuitos de distribución ycomputadoras, y sus aplicaciones van en aumento en muchas otras áreas. En el nivel de lógicadigital de una computadora, lo que comúnmente se llama hardware, y que está formado por loscomponentes electrónicos de la máquina, se trabaja con diferencias de tensión, las cuales generanfunciones que son calculadas por los circuitos que forman el nivel. Éstas funciones, en la etapa dediseña del hardware, son interpretadas como funciones de boole.En el presente trabajo se intenta dar una definición de lo que es un álgebra de boole; se tratan lasfunciones booleanas, haciendo una correlación con las fórmulas proposicionales. Asimismo, seplantean dos formas canónicas de las funciones booleanas, que son útiles para varios propósitos,tales como el de determinar si dos expresiones representan o no la misma función. Pero paraotros propósitos son a menudo engorrosas, por tener más operaciones que las necesarias.Particularmente, cuando estamos construyendo los circuitos electrónicos con que implementarfunciones booleanas, el problema de determinar una expresión mínima para una función es amenudo crucial. No resultan de la misma eficiencia en dinero y tiempo, principalmente, dosfunciones las cuales calculan lo mismo pero donde una tiene menos variables y lo hace en menortiempo. Como solución a este problema, se plantea un método de simplificación, que hace uso deunos diagramas especiales llamados mapas o diagramas de Karnaugh, y el cual tiene la limitaciónde poder trabajar adecuadamente sólo con pocas variables.Se realizan estas presentaciones con el fin de demostrar la afinidad existente entre el álgebra deboole y la lógica proposicional, y con el objeto de cimentar el procedimiento de simplificaciónpresentado en la lógica de proposiciones.Reseña HistóricaA mediados del siglo XIX, George Boole (1815-1864), en sus libros: "TheMathematicalAnalysis ofLogic" (1847) y "AnInvestigation of te Laws of Thought" (1854), desarrolló la idea de que lasproposiciones lógicas podían ser tratadas mediante herramientas matemáticas. Las proposicioneslógicas (asertos, frases o predicados de la lógica clásica) son aquellas que únicamente puedentomar valores Verdadero/Falso, o preguntas cuyas únicas respuestas posibles sean Sí/No. SegúnBoole, estas proposiciones pueden ser representadas mediante símbolos y la teoría que permitetrabajar con estos símbolos, sus entradas (variables) y sus salidas (respuestas) es la LógicaSimbólica desarrollada por él. Dicha lógica simbólica cuenta con operaciones lógicas que siguen elcomportamiento de reglas algebraicas. Por ello, al conjunto de reglas de la Lógica Simbólica se ledenomina ÁLGEBRA DE BOOLE.A mediados del siglo XX el álgebra Booleana resultó de una gran importancia práctica, importanciaque se ha ido incrementando hasta nuestros días, en el manejo de información digital (por esohablamos de Lógica Digital). Gracias a ella, Shannon (1930) pudo formular su teoría de lacodificación y John Von Neumann pudo enunciar el modelo de arquitectura que define laestructura interna de los ordenadores desde la primera generación.Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 1
  • 2. Todas las variables y constantes del Álgebra booleana, admiten sólo uno de dos valores en susentradas y salidas: Sí/No, 0/1 o Verdadero/Falso. Estos valores bivalentes y opuestos pueden serrepresentados por números binarios de un dígito (bits), por lo cual el Álgebra booleana se puedeentender cómo el Álgebra del Sistema Binario. Al igual que en álgebra tradicional, también setrabaja con letras del alfabeto para denominar variables y formar ecuaciones para obtener elresultado de ciertas operaciones mediante una ecuación o expresión booleana. Evidentemente losresultados de las correspondientes operaciones también serán binarios.Todas las operaciones (representadas por símbolos determinados) pueden ser materializadasmediante elementos físicos de diferentes tipos (mecánicos, eléctricos, neumáticos o electrónicos)que admiten entradas binarias o lógicas y que devuelven una respuesta (salida) también binaria ológica. Ejemplos de dichos estados son: Abierto/Cerrado (interruptor), Encendida/Apagada(bombilla), Cargado/Descargado (condensador) , Nivel Lógico 0/Nivel lógico 1 (salida lógica de uncircuito semiconductor), etcétera.Los dispositivos con los cuales se implementan las funciones lógicas son llamados puertas (ocompuertas) y, habitualmente, son dispositivos electrónicos basados en transistores. Estosdispositivos, y otros que veremos a lo largo de esta unidad, son los que permiten el diseño, y laulterior implementación, de los circuitos de cualquier ordenador moderno, así como de muchosde los elementos físicos que permiten la existencia de las telecomunicaciones modernas, el controlde máquinas, etcétera. De hecho, pensando en los ordenadores como una jerarquía de niveles, labase o nivel inferior sería ocupada por la lógica digital (en el nivel más alto del ordenadorencontraríamos los actuales lenguajes de programación de alto nivel).En esta unidad se representan las puertas lógicas elementales, algunas puertas complejas yalgunos ejemplos de circuitos digitales simples, así como algunas cuestiones de notación. Por otraparte se plantean actividades de trabajo, muchas de las cuales implican una respuesta escrita envuestro cuaderno de trabajo. El deseo del autor es que os resulte sencillo y ameno adentraros enel mundo de la lógica digital y despertaros la curiosidad, tanto por ella, como por la matemáticaque subyace en ella.Álgebra BooleanaEl álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno (falsoy verdadero). Un operador binario " º " definido en éste juego de valores acepta un par deentradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dosentradas booleanas y produce una sola salida booleana.Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 2
  • 3. Para cualquier sistema algebraico existen una serie de postulados iniciales, de aquí se puedendeducir reglas adicionales, teoremas y otras propiedades del sistema, el álgebra booleana amenudo emplea los siguientes postulados:•Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si paracada par de valores booleanos se produce un solo resultado booleano.•Conmutativo. Se dice que un operador binario " º " es conmutativo si A º B = B º A para todos losposibles valores de A y B.•Asociativo. Se dice que un operador binario " º " es asociativo si (A º B) º C = A º (B º C) para todoslos valores booleanos A, B, y C.•Distributivo. Dos operadores binarios " º " y " % " son distributivos si A º (B % C) = (A º B) % (A º C)para todos los valores booleanos A, B, y C.•Identidad. Un valor booleano I se dice que es un elemento de identidad con respecto a unoperador binario " º " si A º I = A.•Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " º " siA º I = B, y B es diferente de A, es decir, B es el valor opuesto de A.Para nuestros propósitos basaremos el álgebra booleana en el siguiente juego de operadores yvalores: - Los dos posibles valores en el sistema booleano son cero y uno, a menudo llamaremos a éstosvalores respectivamente como falso y verdadero. - El símbolo · representa la operación lógica AND. Cuando se utilicen nombres de variables de unasola letra se eliminará el símbolo ·, por lo tanto AB representa la operación lógica AND entre lasvariables A y B, a esto también le llamamos el producto entre A y B.- El símbolo "+" representa la operación lógica OR, decimos que A+B es la operación lógica ORentre A y B, también llamada la suma de A y B. - El complemento lógico, negación ó NOT es un operador unitario, en éste texto utilizaremos elsímbolo " " para denotar la negación lógica, por ejemplo, A denota la operación lógica NOT de A. - Si varios operadores diferentes aparecen en una sola expresión booleana, el resultado de laexpresión depende de la procedencia de los operadores, la cual es de mayor a menor, paréntesis,operador lógico NOT, operador lógico AND y operador lógico OR. Tanto el operador lógico ANDcomo el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia estánadyacentes, entonces se evalúan de izquierda a derecha. El operador lógico NOT es asociativo porla derecha.Utilizaremos además los siguientes postulados:Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 3
  • 4. •P1 El álgebra booleana es cerrada bajo las operaciones AND, OR y NOT•P2 El elemento de identidad con respecto a · es uno y con respecto a + es cero. No existeelemento de identidad para el operador NOT•P3 Los operadores · y + son conmutativos.•P4 · y + son distributivos uno con respecto al otro, esto es, A· (B+C) = (A·B)+(A·C) y A+ (B·C) =(A+B) ·(A+C).•P5 Para cada valor A existe un valor A tal que A·A = 0 y A+A = 1. Éste valor es el complementológico de A.•P6 · y + son ambos asociativos, ésto es, (AB) C = A (BC) y (A+B)+C = A+ (B+C).Es posible probar todos los teoremas del álgebra booleana utilizando éstos postulados, además esbuena idea familiarizarse con algunos de los teoremas más importantes de los cuales podemosmencionar los siguientes:•Teorema 1: A + A = A•Teorema 2: A · A = A•Teorema 3: A + 0 = A•Teorema 4: A · 1 = A•Teorema 5: A · 0 = 0•Teorema 6: A + 1 = 1•Teorema 7: (A + B) = A · B•Teorema 8: (A · B) = A + B•Teorema 9: A + A · B = A•Teorema 10: A · (A + B) = A•Teorema 11: A + AB = A + B•Teorema 12: A · (A + B) = AB•Teorema 13: AB + AB = A•Teorema 14: (A + B) · (A + B) = A•Teorema 15: A + A = 1Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 4
  • 5. •Teorema 16: A · A = 0Los teoremas siete y ocho son conocidos como Teoremas de DeMorgan en honor al matemáticoque los descubrió.Características:Un álgebra de Boole es un conjunto en el que destacan las siguientes características: 1- Se han definido dos funciones binarias (que necesitan dos parámetros) que llamaremos aditiva(que representaremos por x+ y) y multiplicativa (que representaremos por xy) y una función monaria (de un solo parámetro)que representaremos por x.2- Se han definido dos elementos (que designaremos por 0 y 1)Y 3- Tiene las siguientes propiedades:•Conmutativa respecto a la primera función: x + y = y + xConmutativa respecto a la segunda función: xy = yxAsociativa respecto a la primera función: (x + y) + z = x + (y +z)Asociativa respecto a la segunda función: (xy)z = x(yz)Distributiva respecto a la primera función: (x +y)z = xz + yzDistributiva respecto a la segunda función: (xy) + z = (x + z)( y + z)Identidad respecto a la primera función: x + 0 = xIdentidad respecto a la segunda función: x1 = xComplemento respecto a la primera función: x + x = 1Complemento respecto a la segunda función: xx = 0Propiedades Del Álgebra De Boole1.Idempotente respecto a la primera función: x + x = xIdempotente respecto a la segunda función: xx = xMéndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 5
  • 6. Maximalidad del 1: x + 1 = 1Minimalidad del 0: x0 = 0Involución: x = xInmersión respecto a la primera función: x + (xy) = xInmersión respecto a la segunda función: x(x + y) = xLey de Morgan respecto a la primera función: (x + y) = xyLey de Morgan respecto a la segunda función: (xy) = x + yFunción Booleana Una función booleana es una de A x A x A x....A en A, siendo A un conjunto cuyos elementos son 0y 1 y tiene estructura de álgebra de Boole. Supongamos que cuatro amigos deciden ir al cine si lo quiere la mayoría. Cada uno puede votar sio no. Representemos el voto de cada uno por xi. La función devolverá sí (1) cuando el numero devotos afirmativos sea 3 y en caso contrario devolverá 0.Si x1 vota 1, x2 vota 0, x3 vota 0 y x4 vota 1 la función booleana devolverá 0. Producto mínimo (es el número posible de casos) es un producto en el que aparecen todas lasvariables o sus negaciones.El número posible de casos es 2n.Siguiendo con el ejemplo anterior. Asignamos las letras A, B, C y D a los amigos. Los posibles casosson:Votos ResultadoABCD1111 11110 11101 11100 0Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 6
  • 7. 1011 11010 01001 01000 00111 10110 00101 00100 00011 00010 00001 00000 0Las funciones booleanas se pueden representar como la suma de productos mínimos (minterms)iguales a 1.En nuestro ejemplo la función booleana será:f(A,B,C,D) = ABCD + ABCD + ABCD + ABCD + ABCDDiagramas De KarnaughLos diagramas de Karnaugh se utilizan para simplificar las funciones booleanas. Se construye una tabla con las variables y sus valores posibles y se agrupan los 1 adyacentes,siempre que el número de 1 sea potencia de 2.En esta página tienes un programa para minimización de funciones booleanas mediante mapas deKarnaughÁlgebra Booleana y circuitos electrónicosMéndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 7
  • 8. La relación que existe entre la lógica booleana y los sistemas de cómputo es fuerte, de hecho se dauna relación uno a uno entre las funciones booleanas y los circuitos electrónicos de compuertasdigitales. Para cada función booleana es posible diseñar un circuito electrónico y viceversa, comolas funciones booleanas solo requieren de los operadores AND, OR y NOT podemos construirnuestros circuitos utilizando exclusivamente éstos operadores utilizando las compuertas lógicashomónimas Un hecho interesante es que es posible implementar cualquier circuito electrónico utilizando unasola compuerta, ésta es la compuerta NAND Para probar que podemos construir cualquier función booleana utilizando sólo compuertasNAND, necesitamos demostrar cómo construir un inversor (NOT), una compuerta AND y unacompuerta OR a partir de una compuerta NAND, ya que como se dijo, es posible implementarcualquier función booleana utilizando sólo los operadores booleanos AND, OR y NOT. Paraconstruir un inversor simplemente conectamos juntas las dos entradas de una compuerta NAND.Una vez que tenemos un inversor, construir una compuerta AND es fácil, sólo invertimos la salidade una compuerta NAND, después de todo, NOT ( NOT (A AND B)) es equivalente a A AND B. Porsupuesto, se requieren dos compuertas NAND para construir una sola compuerta AND, nadie hadicho que los circuitos implementados sólo utilizando compuertas NAND sean lo óptimo, solo seha dicho que es posible hacerlo. La otra compuerta que necesitamos sintetizar es la compuertalógica OR, ésto es sencillo si utilizamos los teoremas de DeMorgan, que en síntesis se logra en trespasos, primero se reemplazan todos los "·" por "+" después se invierte cada literal y por último seniega la totalidad de la expresión:A OR BA AND B.......................Primer paso para aplicar el teorema de DeMorganA AND B.....................Segundo paso para aplicar el teorema de DeMorgan(A AND B)..................Tercer paso para aplicar el teorema de DeMorgan(A AND B) = A NAND B.....Definición de OR utilizando NANDSi se tiene la necesidad de construir diferentes compuertas de la manera descrita, bien hay dosbuenas razones, la primera es que las compuertas NAND son las más económicas y en segundolugar es preferible construir circuitos complejos utilizando los mismos bloques básicos. Observeque es posible construir cualquier circuito lógico utilizando sólo compuertas de tipo NOR (NOR =NOT(A OR B)). La correspondencia entre la lógica NAND y la NOR es ortogonal entre lacorrespondencia de sus formas canónicas. Mientras que la lógica NOR es útil en muchos circuitos,la mayoría de los diseñadores utilizan lógica NAND.Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 8
  • 9. Circuitos CombinacionalesUn circuito combinacional es un sistema que contiene operaciones booleanas básicas (AND, OR,NOT), algunas entradas y un juego de salidas, como cada salida corresponde a una función lógicaindividual, un circuito combinacional a menudo implementa varias funciones booleanasdiferentes, es muy importante recordar éste echo, cada salida representa una función booleanadiferente.Un ejemplo común de un circuito combinacional es el decodificador de siete segmentos, se tratade un circuito que acepta cuatro entradas y determina cuál de los siete segmentos se debeniluminar para representar la respectiva entrada, de acuerdo con lo dicho en el párrafo anterior, sedeben implementar siete funciones de salida diferentes, una para cada segmento. Las cuatroentradas para cada una de éstas funciones booleanas son los cuatro bits de un número binario enel rango de 0 a 9. Sea D el bit de alto orden de éste número y A el bit de bajo orden, cada funciónlógica debe producir un uno (para el segmento encendido) para una entrada dada si tal segmentoen particular debe ser iluminado, por ejemplo, el segmento e debe iluminarse para los valores0000, 0010, 0110 y 1000.En la siguiente tabla se puede ver qué segmentos deben iluminarse de acuerdo al valor deentrada, tenga en cuenta que sólo se están representando valores en el rango de 0 a 9, losdecodificadores para las pantallas de siete segmentos comerciales tienen capacidad paradesplegar valores adicionales que corresponden a las letras A a la F para representacioneshexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos es similar a laaquí representada para los valores numéricos.Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 9
  • 10. Los circuitos combinacionales son la base de muchos componentes en un sistema de cómputobásico, se puede construir circuitos para sumar, restar, comparar, multiplicar, dividir y muchasotras aplicaciones más.Circuitos Secuenciales Un problema con la lógica secuencial es su falta de "memoria". En teoría, todas las funciones desalida en un circuito combinacional dependen del estado actual de los valores de entrada,cualquier cambio en los valores de entrada se refleja (después de un intervalo de tiempo llamadoretardo de propagación) en las salidas. Desafortunadamente las computadoras requieren de lahabilidad para "recordar" el resultado de cálculos pasados. Éste es el dominio de la lógicasecuencial. Una celda de memoria es un circuito electrónico que recuerda un valor de entradadespués que dicho valor ha desaparecido. La unidad de memoria más básica es el flip-Méndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 10
  • 11. flopSet/Reset. Aunque recordar un bit sencillo es importante, la mayoría de los sistemas decómputo requieren recordar un grupo de bits, ésto se logra combinando varios flip-flop enparalelo, una conexión de éste tipo recibe el nombre de registro. A partir de aquí es posibleimplementar diferentes circuitos como registros de corrimiento y contadores, éstos últimostambién los conocemos como circuitos de reloj. Con los elementos mencionados es posibleconstruir un microprocesador completo.Relación entre la lógica combinacional y secuencial con la programaciónEn ésta lección hemos dado una repasada muy básica a los elementos que forman la base de losmodernos sistemas de cómputo, en la sección dedicada al diseño electrónico estudiaremos aprofundidad los conceptos aquí presentados, pero para aquellos que están más interesados en elaspecto programático podemos decir que con los elementos vistos en ésta lección es posibleimplementar máquinas de estado, sin embargo la moraleja de ésta lección es muy importante:cualquier algoritmo que podamos implementar en software, lo podemos a su vez implementardirectamente en hardware. Ésto sugiere que la lógica booleana es la base computacional en losmodernos sistemas de cómputo actuales. Cualquier programa que Usted escriba,independientemente del lenguaje que utilice, sea éste de alto ó bajo nivel, se puede especificarcomo una secuencia de ecuaciones booleanas.Un hecho igualmente interesante es el punto de vista opuesto, es posible implementar cualquierfunción de hardware directamente en software, en la actualidad ésta es la función principal dellenguaje ensamblador y otros con capacidad de trabajar directamente en hardware, como el C y elC++. Las consecuencias de éste fenómeno apenas se están explotando, se infiere la existencia deun futuro muy prometedor para el profesional de la programación, especialmente aquellosdedicados a los sistemas incrustados (embeddedsystems), los microcontroladores y losprofesionales dedicados a la Programación Orientada a Objetos. Para tener éxito en éstos camposde la investigación es fundamental comprender las funciones booleanas y la manera deimplementarlas en software. Aún y cuando Usted no desee trabajar en hardware, es importanteconocer las funciones booleanas ya que muchos lenguajes de alto nivel procesan expresionesbooleanas, como es el caso de los enunciados if-thenó los bucles whileMéndez Ezequiel C.I.16.713.787 Carrera 78 Sección “C” Página 11