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 ({\ displaystyle xy}), 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.


No comments