Monografias | Algebra BooleanaAlgebra BooleanaResumen: Reseña Histórica. Álgebra Booleana. Álgebra Booleana y circuitos electrónicos. Circuitos Combinacionales. Relación entre la lógica combinacional y secuencial con la programación. Los Teoremas Básicos del Algebra Booleana. Indice 1. Introducción
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 la computadora digital. Son usadas ampliamente en el diseño de circuitos de
distribución y computadoras, y sus aplicaciones van en aumento en muchas otras
áreas. En el nivel de lógica digital de una computadora, lo que comúnmente se
llama hardware, y que está formado por los componentes electrónicos de la máquina,
se trabaja con diferencias de tensión, las cuales generan funciones que son
calculadas por los circuitos que forman el nivel. Éstas funciones, en la etapa
de diseña del hardware, son interpretadas como funciones de boole. 2. Reseña Histórica
A mediados del siglo XIX,
George Boole (1815-1864), en sus libros: "The Mathematical Analysis of
Logic" (1847) y "An Investigation of te Laws of Thought" (1854),
desarrolló la idea de que las proposiciones lógicas podían ser tratadas
mediante herramientas matemáticas. Las proposiciones lógicas (asertos, frases
o predicados de la lógica clásica) son aquellas que únicamente pueden tomar
valores Verdadero/Falso, o preguntas cuyas únicas respuestas posibles sean Sí/No.
Según Boole, estas proposiciones pueden ser representadas mediante símbolos y
la teoría que permite trabajar con estos símbolos, sus entradas (variables) y
sus salidas (respuestas) es la Lógica Simbólica desarrollada por él. Dicha lógica
simbólica cuenta con operaciones lógicas que siguen el comportamiento de
reglas algebraicas. Por ello, al conjunto de reglas de la Lógica Simbólica se
le denomina ÁLGEBRA DE BOOLE.
A mediados del siglo XX el
álgebra Booleana resultó de una gran importancia práctica, importancia que se
ha ido incrementando hasta nuestros días, en el manejo de información digital
(por eso hablamos de Lógica Digital). Gracias a ella, Shannon (1930) pudo
formular su teoría de la codificación y John Von Neumann pudo enunciar el
modelo de arquitectura que define la estructura interna de los ordenadores desde
la primera generación.
Todas las variables y
constantes del Álgebra booleana, admiten sólo uno de dos valores en sus
entradas y salidas: Sí/No, 0/1 o Verdadero/Falso. Estos valores bivalentes y
opuestos pueden ser representados por números binarios de un dígito (bits),
por lo cual el Álgebra booleana se puede entender cómo el Álgebra del Sistema
Binario. Al igual que en álgebra tradicional, también se trabaja con letras
del alfabeto para denominar variables y formar ecuaciones para obtener el
resultado de ciertas operaciones mediante una ecuación o expresión booleana.
Evidentemente los resultados de las correspondientes operaciones también serán
binarios.
Todas las operaciones
(representadas por símbolos determinados) pueden ser materializadas mediante
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 o ló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 un circuito
semiconductor), etcétera.
Los dispositivos con los
cuales se implementan las funciones lógicas son llamados puertas (o compuertas)
y, habitualmente, son dispositivos electrónicos basados en transistores. Estos
dispositivos, y otros que veremos a lo largo de esta unidad, son los que
permiten el diseño, y la ulterior implementación, de los circuitos de
cualquier ordenador moderno, así como de muchos de los elementos físicos que
permiten la existencia de las telecomunicaciones modernas, el control de máquinas,
etcétera. De hecho, pensando en los ordenadores como una jerarquía de niveles,
la base o nivel inferior sería ocupada por la lógica digital (en el nivel más
alto del ordenador encontraríamos los actuales lenguajes de programación de
alto nivel).
En esta unidad se
representan las puertas lógicas elementales, algunas puertas complejas y
algunos ejemplos de circuitos digitales simples, así como algunas cuestiones de
notación. Por otra parte se plantean actividades de trabajo, muchas de las
cuales implican una respuesta escrita en vuestro cuaderno de trabajo. El deseo
del autor es que os resulte sencillo y ameno adentraros en el mundo de la lógica
digital y despertaros la curiosidad, tanto por ella, como por la matemática que
subyace en ella.
3. Álgebra Booleana
El álgebra booleana es un
sistema matemático deductivo centrado en los valores cero y uno (falso y
verdadero). Un operador binario " º " definido en éste juego de
valores acepta un par de entradas y produce un solo valor booleano, por ejemplo,
el operador booleano AND acepta dos entradas booleanas y produce una sola salida
booleana. Para nuestros propósitos basaremos el álgebra booleana en
el siguiente juego de operadores y valores: Es posible probar todos los teoremas del álgebra booleana
utilizando éstos postulados, además es buena idea familiarizarse con algunos
de los teoremas más importantes de los cuales podemos mencionar los siguientes:
Los teoremas siete y ocho son conocidos como Teoremas de
DeMorgan en honor al matemático que los descubrió.
Características: Propiedades Del Álgebra De Boole
Función Booleana
El número posible de casos es 2n.
Las funciones booleanas se pueden representar como la suma de
productos mínimos (minterms) iguales a 1.
En nuestro ejemplo la función booleana será: Diagramas De Karnaugh
4. Álgebra Booleana y circuitos electrónicos
La relación que existe entre la lógica booleana y los
sistemas de cómputo es fuerte, de hecho se da una relación uno a uno entre las
funciones booleanas y los circuitos electrónicos de compuertas digitales. Para
cada función booleana es posible diseñar un circuito electrónico y viceversa,
como las funciones booleanas solo requieren de los operadores AND, OR y NOT
podemos construir nuestros circuitos utilizando exclusivamente éstos operadores
utilizando las compuertas lógicas homónimas
A OR B
Si se tiene la necesidad de construir diferentes compuertas
de la manera descrita, bien hay dos buenas razones, la primera es que las
compuertas NAND son las más económicas y en segundo lugar es preferible
construir circuitos complejos utilizando los mismos bloques básicos. Observe
que 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 la correspondencia 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.
5. Circuitos Combinacionales
Un 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ógica individual, un
circuito combinacional a menudo implementa varias funciones booleanas
diferentes, es muy importante recordar éste echo, cada salida representa una
función booleana diferente.
Un ejemplo común de un circuito combinacional es el
decodificador de siete segmentos, se trata de un circuito que acepta cuatro
entradas y determina cuál de los siete segmentos se deben iluminar para
representar la respectiva entrada, de acuerdo con lo dicho en el párrafo
anterior, se deben implementar siete funciones de salida diferentes, una para
cada segmento. Las cuatro entradas para cada una de éstas funciones booleanas
son los cuatro bits de un número binario en el 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ón lógica debe
producir un uno (para el segmento encendido) para una entrada dada si tal
segmento en particular debe ser iluminado, por ejemplo, el segmento e
debe iluminarse para los valores 0000, 0010, 0110 y 1000.
En la siguiente tabla se puede ver qué segmentos deben
iluminarse de acuerdo al valor de entrada, tenga en cuenta que sólo se están
representando valores en el rango de 0 a 9, los decodificadores para las
pantallas de siete segmentos comerciales tienen capacidad para desplegar valores
adicionales que corresponden a las letras A a la F para representaciones
hexadecimales, sin embargo la mecánica para iluminar los respectivos segmentos
es similar a la aquí representada para los valores numéricos.
0
a
b
c
d
e
f
1
b
c
2
a
b
d
e
g
3
a
b
c
d
g
4
b
c
f
g
5
a
c
d
f
g
6
c
d
e
f
g
7
a
b
c
8
a
b
c
d
e
f
g
9
a
b
c
f
g
Los circuitos combinacionales son la base de muchos
componentes en un sistema de cómputo básico, se puede construir circuitos para
sumar, restar, comparar, multiplicar, dividir y muchas otras aplicaciones más.
Circuitos Secuenciales
6. Relación entre la lógica combinacional y secuencial con
la programación
En ésta lección hemos dado una repasada muy básica a los
elementos que forman la base de los modernos sistemas de cómputo, en la sección
dedicada al diseño electrónico estudiaremos a profundidad los conceptos aquí
presentados, pero para aquellos que están más interesados en el aspecto
programático podemos decir que con los elementos vistos en ésta lección es
posible implementar 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 implementar directamente en hardware. Ésto sugiere que la lógica
booleana es la base computacional en los modernos sistemas de cómputo actuales.
Cualquier programa que Usted escriba, independientemente del lenguaje que
utilice, sea éste de alto ó bajo nivel, se puede especificar como una
secuencia de ecuaciones booleanas.
Un hecho igualmente interesante es el punto de vista opuesto,
es posible implementar cualquier función de hardware directamente en software,
en la actualidad ésta es la función principal del lenguaje ensamblador y otros
con capacidad de trabajar directamente en hardware, como el C y el C++. Las
consecuencias de éste fenómeno apenas se están explotando, se infiere la
existencia de un futuro muy prometedor para el profesional de la programación,
especialmente aquellos dedicados a los sistemas incrustados (embedded systems),
los microcontroladores y los profesionales dedicados a la Programación
Orientada a Objetos. Para tener éxito en éstos campos de la investigación es
fundamental comprender las funciones booleanas y la manera de implementarlas en
software. Aún y cuando Usted no desee trabajar en hardware, es importante
conocer las funciones booleanas ya que muchos lenguajes de alto nivel procesan
expresiones booleanas, como es el caso de los enunciados if-then ó los
bucles while.
7. Los Teoremas Básicos Del Algebra Booleana
Los Teoremas Básicos del álgebra Booleana son:
TEOREMA 1 A
B
C
B+C
AB
AC
AB+AC
A (B+C)
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
TEOREMA
2
A+A = A
AA = A
A
A
A+A
0
0
0
1
1
1
A
A
AA
0
0
0
1
1
1
TEOREMA
3
Redundancia
A+AB = A
A
B
AB
X
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
A
(A+B) = A
A
B
A+B
X
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
TEOREMA
4
0+A = A
Equivalente a una compuerta OR con una de sus terminales
conectada a tierra
A
B=0
X
0
0
0
1
0
1
1A
= A
Equivalente a una compuerta AND con una de sus terminales
conectada a 1
A
B=1
X
0
1
0
1
1
1
1+A
= 1
A
B=1
X
0
1
1
1
1
1
0A
= 0
A
B=0
X
0
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||