4.3 Aplicación del algebra booleana (Compuertas lógicas)
4.3
Aplicación del algebra booleana (Compuertas lógicas)
El álgebra booleana como cálculo de dos valores es fundamental
para los circuitos de computadora, la programación de computadoras y la lógica
matemática, y también se usa en otras áreas de las matemáticas, como la teoría
de conjuntos y las estadísticas.
Computadoras A principios del siglo
XX, varios ingenieros eléctricos reconocieron intuitivamente que el álgebra de
Boole era análogo al comportamiento de ciertos tipos de circuitos
eléctricos. Claude Shannon demostró formalmente que
tal comportamiento era lógicamente equivalente al álgebra booleana en su tesis
de maestría de 1937, Un análisis
simbólico de relés y circuitos de conmutación .
Hoy en día,
todas las computadoras modernas de propósito general realizan
sus funciones utilizando lógica booleana de dos valores; es decir, sus
circuitos eléctricos son una manifestación física de la lógica booleana de dos
valores. Lo logran de varias maneras: como voltajes en cables en circuitos
de alta velocidad y dispositivos de almacenamiento capacitivos, como
orientaciones de un dominio magnético en dispositivos de almacenamiento
ferromagnéticos, como agujeros en tarjetas perforadas o cinta de papel, y así
sucesivamente. (Algunas computadoras antiguas utilizaban circuitos o
mecanismos decimales en lugar de circuitos lógicos de dos valores).
Por supuesto,
es posible codificar más de dos símbolos en cualquier medio dado. Por
ejemplo, uno podría usar respectivamente 0, 1, 2 y 3 voltios para codificar un
alfabeto de cuatro símbolos en un cable, o agujeros de diferentes tamaños en
una tarjeta perforada. En la práctica, las restricciones estrictas de alta
velocidad, pequeño tamaño y baja potencia se combinan para hacer del ruido un
factor importante. Esto hace que sea difícil distinguir entre símbolos
cuando hay varios símbolos posibles que podrían aparecer en un solo sitio. En
lugar de intentar distinguir entre cuatro voltajes en un cable, los diseñadores
digitales se han establecido en dos voltajes por cable, alto y bajo.
Las
computadoras usan circuitos booleanos de dos valores por las razones
anteriores. Las arquitecturas de computadoras más comunes usan secuencias
ordenadas de valores booleanos, llamados bits, de 32 o 64 valores, por ejemplo,
01101000110101110101010101010101011. Al programar en código de máquina , lenguaje ensamblador y algunos otros lenguajes de programación, los
programadores trabajan con la estructura digital de bajo nivel del registros de datos . Estos registros
funcionan con voltajes, donde cero voltios representan 0 booleano, y un voltaje
de referencia (a menudo + 5V, + 3.3V, + 1.8V) representa booleano 1. Estos
lenguajes admiten operaciones numéricas y operaciones lógicas. En este
contexto, "numérico" significa que la computadora trata las
secuencias de bits como números binarios(base
dos números) y ejecuta operaciones aritméticas como sumar, restar, multiplicar
o dividir. "Lógico" se refiere a las operaciones lógicas
booleanas de disyunción, conjunción y negación entre dos secuencias de bits, en
las que cada bit en una secuencia se compara simplemente con su contraparte en
la otra secuencia. Por lo tanto, los programadores tienen la opción de
trabajar y aplicar las reglas de álgebra numérica o álgebra booleana según sea
necesario. Una característica diferenciadora principal entre estas
familias de operaciones es la existencia de la operación de acarreo en la primera, pero no en la
segunda.
Lógica de dos valores
Otras áreas
donde dos valores son una buena opción son la ley y las matemáticas. En la
conversación relajada de todos los días, se aceptan respuestas complejas o con
matices como "quizás" o "solo los fines de semana". En
situaciones más específicas, como un tribunal de justicia o matemáticas basadas
en teoremas, se considera ventajoso formular preguntas para admitir una
respuesta simple de sí o no: si el acusado es culpable o no culpable, si la
proposición es verdadera o falsa. —Y no permitir ninguna otra respuesta. Por
muy importante que sea la camisa de fuerza que esto pueda demostrar en la
práctica para el encuestado, el principio de la simple pregunta de sí o no se
ha convertido en una característica central de la lógica tanto matemática como
judicial, haciendo que la lógica de dos valores merezca organización y estudio
por derecho propio.
Un concepto central
de la teoría de conjuntos es la pertenencia. Ahora, una organización puede
permitir múltiples grados de membresía, como novatos, asociados y completos. Sin
embargo, con conjuntos, un elemento está dentro o fuera. Los candidatos
para ser miembros de un conjunto funcionan igual que los cables de una
computadora digital: cada candidato es miembro o no miembro, así como cada uno
de los cables es alto o bajo.
Al ser el
álgebra una herramienta fundamental en cualquier área susceptible de
tratamiento matemático, estas consideraciones se combinan para hacer que el
álgebra de dos valores sea de fundamental importancia para el hardware de
computadora, la lógica matemática y la teoría de conjuntos.
La lógica de dos valores se puede extender
a la lógica de valores múltiples , en
particular reemplazando el dominio booleano {0, 1} con el intervalo de la
unidad [0,1], en cuyo caso, en lugar de solo tomar los valores 0 o 1, cualquier
valor entre y incluyendo 0 y 1 pueden ser asumidos. Algebraicamente, la
negación (NO) se reemplaza con 1 - x , la conjunción (AND) se
reemplaza con la multiplicación (), y la disyunción (OR)
se define a través de la ley de De
Morgan . La interpretación de estos valores como valores
de verdad lógica produce una lógica de
múltiples valores, que forma la base de la lógica difusa y la lógica probabilística . En estas
interpretaciones, un valor se interpreta como el "grado" de verdad,
en qué medida una proposición es verdadera o la probabilidad de que la
proposición sea verdadera.
Operaciones booleanas
La aplicación
original para operaciones booleanas fue la lógica matemática , donde combina los
valores de verdad, verdaderos o falsos, de fórmulas individuales.
Los lenguajes
naturales como el inglés tienen palabras para varias operaciones booleanas, en
particular conjunción ( y ), disyunción ( o ), negación ( no )
e implicación ( implica ). Pero no es sinónimo de y no . Cuando
se usan para combinar afirmaciones situacionales como "el bloque está
sobre la mesa" y "los gatos beben leche", que ingenuamente son
verdaderos o falsos, los significados de estos conectivos lógicosA
menudo tienen el significado de sus contrapartes lógicas. Sin embargo, con
descripciones de comportamientos como "Jim caminó por la puerta", uno
comienza a notar diferencias como la falta de conmutación, por ejemplo, la
conjunción de "Jim abrió la puerta" con "Jim entró por la
puerta" en ese orden es no es equivalente a su conjunción en la otra
orden, desde y generalmente significa y luego en tales
casos. Las preguntas pueden ser similares: el orden "¿Es el cielo
azul y por qué el cielo es azul?" Tiene más sentido que el orden
inverso. Los comandos conjuntivos sobre el comportamiento son como
afirmaciones de comportamiento, como vestirse e ir a la escuela . Comandos
disyuntivos como amarme o dejarme o pescar o cortar cebotienden
a ser asimétricas por la implicación de que una alternativa es menos
preferible. Los sustantivos unidos como el té y la leche generalmente
describen la agregación como con la unión establecida, mientras que el té
o la leche es una opción. Sin embargo, el contexto puede revertir
estos sentidos, ya que entre sus opciones están el café y el té, lo que
generalmente significa lo mismo que sus opciones son el café o el té (alternativas). La
doble negación, como en "No me gusta la leche", rara vez significa
literalmente "Me gusta la leche", sino que conlleva algún tipo de
cobertura, como para dar a entender que existe una tercera posibilidad. "No
no P" se puede interpretar libremente como "seguramente P", y
aunque P necesariamente implica "no P "Lógica intuicionista . En vista del
uso altamente idiosincrásico de las conjunciones en lenguajes naturales, el
álgebra de Boole no puede considerarse un marco confiable para interpretarlos.
Las
operaciones booleanas se utilizan en lógica digital para
combinar los bits transportados en cables individuales, interpretándolos así en
{0,1}. Cuando se utiliza un vector de n compuertas
binarias idénticas para combinar dos vectores de bit cada uno de n bit,
las operaciones de bit individuales pueden entenderse colectivamente como una
sola operación en valores de un álgebra booleana con 2 n elementos.
La teoría de conjuntos ingenua interpreta
las operaciones booleanas como acciones en subconjuntos de un conjunto X determinado . Como
vimos anteriormente, este comportamiento es exactamente paralelo a las
combinaciones de coordenadas de los vectores de bits, con la unión de dos
conjuntos correspondientes a la disyunción de dos vectores de bits y así
sucesivamente.
El álgebra
booleana libre de 256 elementos en tres generadores se implementa en pantallas de computadora basadas en gráficos de trama ,
que utilizan bit blit para manipular regiones enteras que consisten
en píxeles ,
y dependen de las operaciones booleanas para especificar cómo se debe combinar
la región de origen con el destino, normalmente Con la ayuda de una tercera
región llamada la máscara . Modernas tarjetas de vídeo ofrecen
todo 2 2 3 = 256 operaciones ternarias para este propósito, con
la opción de operación como un parámetro de un byte (8 bits). Las
constantes SRC = 0xaa o 10101010, DST = 0xcc o 11001100, y MSK = 0xf0 o
11110000 permiten operaciones booleanas como (SRC ^ DST) y MSK (que significa
XOR el origen y el destino y luego Y el resultado con la máscara) para ser
escrito directamente como una constante que denota un byte calculado en tiempo
de compilación, 0x60 en el ejemplo (SRC ^ DST) y MSK, 0x66 si solo SRC ^ DST,
etc. En el tiempo de ejecución, la tarjeta de video interpreta el byte como la
operación raster indicada por la expresión original de una manera uniforme que
requiere un hardware notablemente pequeño y que lleva tiempo completamente
independiente de la complejidad de la expresión.
Los sistemas
de modelado sólido para diseño asistido por computadora ofrecen una variedad de
métodos para construir objetos a partir de otros objetos, uno de ellos es la combinación
de operaciones booleanas. En este método, el espacio en el que existen los
objetos se entiende como un conjunto S de voxels (el análogo
tridimensional de los píxeles en gráficos bidimensionales) y las formas se
definen como subconjuntos de S, permitiendo que los objetos se combinen
como conjuntos a través de unión, intersección, etc. Un uso obvio es en la
construcción de una forma compleja a partir de formas simples simplemente como
la unión de esta última. Otro uso es en la escultura entendida como
remoción de material: cualquier operación de rectificado, fresado, fresado o
taladrado que se puede realizar con maquinaria física en materiales físicos
puede simularse en la computadora con la operación booleana x ∧
¬ y o x - y , que en la teoría de
conjuntos es la diferencia de conjuntos, elimina los elementos de y de
los de x. Por lo tanto, dadas las dos formas, una para ser mecanizada
y la otra para el material a remover, el resultado de mecanizar la primera para
remover la última se describe simplemente como su diferencia establecida.
Post Comment
No comments