viernes, 6 de agosto de 2010

LOGICA COMBINATORIA

La lógica combinatoria es la lógica última y como tal puede ser un modelo simplificado del cómputo, usado en la teoría de computabilidad (el estudio de qué puede ser computado) y la teoría de la prueba (el estudio de qué se puede probar matemáticamente.)

La teoría, a causa de su simplicidad, captura las características esenciales de la naturaleza del cómputo. La lógica combinatoria (LC) es el fundamento del cálculo lambda, al eliminar el último tipo de variable de éste: la variable lambda. En LC las expresiones lambda (usadas para permitir la abstracción funcional) son substituidas por un sistema limitado de combinadores, las funciones primitivas que no contienen ninguna variable libre (ni ligada). Es fácil transformar expresiones lambda en expresiones combinatorias, y puesto que la reducción de un combinador es más simple que la reducción lambda, LC se ha utilizado como la base para la puesta en práctica de algunos lenguajes de programación funcionales no-estrictos en software y hardware.

CIRCUITOS LOGICOS CON COMPUERTAS

La electrónica moderna usa electrónica digital para realizar muchas funciones.


Aunque los circuitos electrónicos podrían parecer muy complejos, en realidad se construyen de un número muy grande de circuitos muy simples.

En un circuito lógico digital se transmite información binaria (ceros y unos) entre estos circuitos y se consigue un circuito complejo con la combinación de bloques de circuitos simples.

La información binaria se representa en la forma de:

- "0" ó "1",

- "abierto" ó "cerrado" (interruptor),

- "On" y "Off",

- "falso" o "verdadero", etc.


Los circuitos lógicos se pueden representar de muchas maneras. En los circuitos de los gráficos anteriores la lámpara puede estar encendida o apagada ("on" o "off"), dependiendo de la posición del interruptor. (apagado o encendido)

Los posibles estados del interruptor o interruptores que afectan un circuito se pueden representar en una tabla de verdad.




PROPOSICIONES SIMPLES

También denominadas atómicas. Son aquellas proposiciones que no se pueden dividir. Ejemplo:




El cielo es azul. (verdadero)



Nomenclatura: p

COMPUERTAS LOGICAS

Las computadoras digitales utilizan el sistema de números binarios, que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. La información está representada en las computadoras digitales en grupos de bits. Utilizando diversas técnicas de codificación los grupos de bits pueden hacerse que representen no solamente números binarios sino también otros símbolos discretos cualesquiera, tales como dígitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas técnicas de codificación, los dígitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de cálculos.
La información binaria se representa en un sistema digital por cantidades físicas denominadas señales, Las señales eléctricas tales como voltajes existen a través del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una señal de 3 volts para represenar el binario "1" y 0.5 volts para el binario "0". La siguiente ilustración muestra un ejemplo de una señal binaria.

Como se muestra en la figura, cada valor binario tiene una desviación aceptable del valor nominal. La región intermedia entre las dos regiones permitidas se cruza solamente durante la transición de estado. Los terminales de entrada de un circuito digital aceptan señales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con señales binarias que caen dentro de las tolerancias permitidas.




La lógica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lógico. La manipulación de información binaria se hace por circuitos lógicos que se denominan Compuertas.

Las compuertas son bloques del hardware que producen señales en binario 1 ó 0 cuando se satisfacen los requisitos de entrada lógica. Las diversas compuertas lógicas se encuentran comúnmente en sistemas de computadoras digitales. Cada compuerta tiene un símbolo gráfico diferente y su operación puede describirse por medio de una función algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad.

A continuación se detallan los nombres, símbolos, gráficos, funciones algebraicas, y tablas de verdad de las compuertas más usadas.


Compuerta AND: (ver funcionamiento)







Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x.

La compuerta AND produce la multiplicación lógica AND: esto es: la salida es 1 si la entrada A y la entrada B están ambas en el binario 1: de otra manera, la salida es 0.

Estas condiciones también son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B están en 1.

El símbolo de operación algebraico de la función AND es el mismo que el símbolo de la multiplicación de la aritmética ordinaria (*).

Las compuertas AND pueden tener más de dos entradas y por definición, la salida es 1 si todas las entradas son 1.

Compuerta OR:

La compuerta OR produce la función sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0.

El símbolo algebraico de la función OR (+), es igual a la operación de aritmética de suma.

Las compuertas OR pueden tener más de dos entradas y por definición la salida es 1 si cualquier entrada es 1.
Compuerta NOT: (ver funcionamiento)






El circuito NOT es un inversor que invierte el nivel lógico de una señal binaria. Produce el NOT, o función complementaria. El símbolo algebraico utilizado para el complemento es una barra sobra el símbolo de la variable binaria.

Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa.

El círculo pequeño en la salida de un símbolo gráfico de un inversor designa un inversor lógico. Es decir cambia los valores binarios 1 a 0 y viceversa.


Compuerta Separador (yes):


Un símbolo triángulo por sí mismo designa un circuito separador, el cual no produce ninguna función lógica particular puesto que el valor binario de la salida es el mismo de la entrada.

Este circuito se utiliza simplemente para amplificación de la señal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producirá una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma.

De ésta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontraría en la pequeña cantidad de corriente aplicada a la entrada del separador.


Compuerta NAND: (ver funcionamiento)


Es el complemento de la función AND, como se indica por el símbolo gráfico, que consiste en una compuerta AND seguida por un pequeño círculo (quiere decir que invierte la señal).

La designación NAND se deriva de la abreviación NOT - AND. Una designación más adecuada habría sido AND invertido puesto que es la función AND la que se ha invertido.

Las compuertas NAND pueden tener más de dos entradas, y la salida es siempre el complemento de la función AND.



Compuerta NOR: (ver funcionamiento)


La compuerta NOR es el complemento de la compuerta OR y utiliza el símbolo de la compuerta OR seguido de un círculo pequeño (quiere decir que invierte la señal). Las compuertas NOR pueden tener más de dos entradas, y la salida es siempre el complemento de la función OR.

ECUACIONES BOOLEANAS

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 cualquier sistema algebraico existen una serie de postulados iniciales, de aquí se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el álgebra booleana a menudo emplea los siguientes postulados:



•Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada 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 los posibles valores de A y B.

•Asociativo. Se dice que un operador binario " º " es asociativo si (A º B) º C = A º (B º C) para todos los 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 un operador binario " º " si A º I = A.

•Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " º " si A º 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 y valores:

- Los dos posibles valores en el sistema booleano son cero y uno, a menudo llamaremos a éstos valores respectivamente como falso y verdadero.

- El símbolo · representa la operación lógica AND. Cuando se utilicen nombres de variables de una sola letra se eliminará el símbolo ·, por lo tanto AB representa la operación lógica AND entre las variables 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 OR entre 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 el sí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 la expresió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 AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia están adyacentes, entonces se evalúan de izquierda a derecha. El operador lógico NOT es asociativo por la derecha.

Utilizaremos además los siguientes postulados:



•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 existe elemento 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 complemento ló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 es buena idea familiarizarse con algunos de los teoremas más importantes de los cuales podemos mencionar 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 + A'B = A + B

•Teorema 12: A' · (A + B') = A'B'

•Teorema 13: AB + AB' = A

•Teorema 14: (A' + B') · (A' + B) = A'

•Teorema 15: A + A' = 1

•Teorema 16: A · A' = 0

Los teoremas siete y ocho son conocidos como Teoremas de DeMorgan en honor al matemático que 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 + x

Conmutativa respecto a la segunda función: xy = yx

Asociativa 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 + yz

Distributiva respecto a la segunda función: (xy) + z = (x + z)( y + z)

Identidad respecto a la primera función: x + 0 = x

Identidad respecto a la segunda función: x1 = x

Complemento respecto a la primera función: x + x' = 1

Complemento respecto a la segunda función: xx' = 0

Propiedades Del Álgebra De Boole



1.Idempotente respecto a la primera función: x + x = x

Idempotente respecto a la segunda función: xx = x

Maximalidad del 1: x + 1 = 1

Minimalidad del 0: x0 = 0

Involución: x'' = x

Inmersión respecto a la primera función: x + (xy) = x

Inmersión respecto a la segunda función: x(x + y) = x

Ley de Morgan respecto a la primera función: (x + y)' = x'y'

Ley de Morgan respecto a la segunda función: (xy)' = x' + y'

Función Booleana

Una función booleana es una aplicación de A x A x A x....A en A, siendo A un conjunto cuyos elementos son 0 y 1 y tiene estructura de álgebra de Boole.

Supongamos que cuatro amigos deciden ir al cinesi lo quiere la mayoría. Cada uno puede votar si o no. Representemos el voto de cada uno por xi. La función devolverá sí (1) cuando el numero de votos 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 las variables 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 casos son:

Votos Resultado

ABCD

1111 1

1110 1

1101 1

1100 0

1011 1

1010 0

1001 0

1000 0

0111 1

0110 0

0101 0

0100 0

0011 0

0010 0

0001 0

0000 0



Las funciones booleanas se pueden representar como la suma de productosmínimos (minterms) iguales a 1.



En nuestro ejemplo la función booleana será:

f(A,B,C,D) = ABCD + ABCD' + ABC'D + AB'CD + A'BCD



Diagramas De Karnaugh

Los 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 de Karnaugh

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 cualquier sistema algebraico existen una serie de postulados iniciales, de aquí se pueden deducir reglas adicionales, teoremas y otras propiedades del sistema, el álgebra booleana a menudo emplea los siguientes postulados:



•Cerrado. El sistema booleano se considera cerrado con respecto a un operador binario si para cada 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 los posibles valores de A y B.

•Asociativo. Se dice que un operador binario " º " es asociativo si (A º B) º C = A º (B º C) para todos los 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 un operador binario " º " si A º I = A.

•Inverso. Un valor booleano I es un elemento inverso con respecto a un operador booleano " º " si A º 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 y valores:

- Los dos posibles valores en el sistema booleano son cero y uno, a menudo llamaremos a éstos valores respectivamente como falso y verdadero.

- El símbolo · representa la operación lógica AND. Cuando se utilicen nombres de variables de una sola letra se eliminará el símbolo ·, por lo tanto AB representa la operación lógica AND entre las variables 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 OR entre 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 el sí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 la expresió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 AND como el OR son asociativos por la izquierda. Si dos operadores con la misma procedencia están adyacentes, entonces se evalúan de izquierda a derecha. El operador lógico NOT es asociativo por la derecha.

Utilizaremos además los siguientes postulados:



•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 existe elemento 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 complemento ló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 es buena idea familiarizarse con algunos de los teoremas más importantes de los cuales podemos mencionar 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 + A'B = A + B

•Teorema 12: A' · (A + B') = A'B'

•Teorema 13: AB + AB' = A

•Teorema 14: (A' + B') · (A' + B) = A'

•Teorema 15: A + A' = 1

•Teorema 16: A · A' = 0

Los teoremas siete y ocho son conocidos como Teoremas de DeMorgan en honor al matemático que 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 + x

Conmutativa respecto a la segunda función: xy = yx

Asociativa 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 + yz

Distributiva respecto a la segunda función: (xy) + z = (x + z)( y + z)

Identidad respecto a la primera función: x + 0 = x

Identidad respecto a la segunda función: x1 = x

Complemento respecto a la primera función: x + x' = 1

Complemento respecto a la segunda función: xx' = 0

Propiedades Del Álgebra De Boole



1.Idempotente respecto a la primera función: x + x = x

Idempotente respecto a la segunda función: xx = x

Maximalidad del 1: x + 1 = 1

Minimalidad del 0: x0 = 0

Involución: x'' = x

Inmersión respecto a la primera función: x + (xy) = x

Inmersión respecto a la segunda función: x(x + y) = x

Ley de Morgan respecto a la primera función: (x + y)' = x'y'

Ley de Morgan respecto a la segunda función: (xy)' = x' + y'

Función Booleana

Una función booleana es una aplicación de A x A x A x....A en A, siendo A un conjunto cuyos elementos son 0 y 1 y tiene estructura de álgebra de Boole.

Supongamos que cuatro amigos deciden ir al cinesi lo quiere la mayoría. Cada uno puede votar si o no. Representemos el voto de cada uno por xi. La función devolverá sí (1) cuando el numero de votos 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 las variables 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 casos son:

Votos Resultado

ABCD

1111 1

1110 1

1101 1

1100 0

1011 1

1010 0

1001 0

1000 0

0111 1

0110 0

0101 0

0100 0

0011 0

0010 0

0001 0

0000 0



Las funciones booleanas se pueden representar como la suma de productosmínimos (minterms) iguales a 1.



En nuestro ejemplo la función booleana será:

f(A,B,C,D) = ABCD + ABCD' + ABC'D + AB'CD + A'BCD



Diagramas De Karnaugh

Los 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 de Karnaugh