




















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: LOGICA Y METODOS DISCREETOS, Profesor: Jesus Miranda, Carrera: Ingeniería Informática, Universidad: UGR
Tipo: Apuntes
1 / 28
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





















Comenzamos este curso estudiando una estructura algebraica conocida como Álgebra de Boole. El nombre de la estructura se debe al matemático británico George Boole que vivió en el siglo XIX y que en su trabajo The Laws of Thought (Las leyes del pensamiento), publicado en 1854, presentó esta estructura. En este trabajo pone de manifiesto la analogía existente entre los símbolos algebraicos y las maneras de representar formas lógicas. Sin embargo, la primera persona que intentó combinar las matemáticas y la lógica fue Leibniz (el que desarrolló las base del cálculo diferencial e integral a la par que Newton). Él esperaba obtener la verdad o falsedad de cualquier afirmación, en cualquier disciplina científica, mediante operaciones algebraicas. Sin embargo, no obtuvo resultados relevantes. Posteriormente, y antes que Boole, Augustus de Morgan también buscó una fusión entre el álgebra y la lógica. En el trabajo que hemos mencionado (y cuyo título completo es Una investigación de las leyes del pen- samiento en las que se basan las teorías matemáticas de la lógica y las probabilidades), Boole transformó la lógica en un tipo de álgebra (álgebra de Boole). Según el propio autor:
El propósito de este tratado es investigar las leyes fundamentales de la mente mediante las que se lleva a cabo el razonamiento, expresarlas en el lenguaje simbólico del Cálculo y, sobre estos cimientos, establecer la ciencia de la lógica y construir su método...
Vamos pues a estudiar brevemente esta estructura.
Definición 1. Sea B un conjunto. Decimos que B tiene estructura de álgebra de Boole si en B tenemos definidas dos operaciones, ∨ y ∧ tales que:
Para cualesquiera x, y, z ∈ B, x ∨ (y ∨ z) = (x ∨ y) ∨ z; x ∧ (y ∧ z) = (x ∧ y) ∧ z (Asociatividad).
Para cualesquiera x, y ∈ B, x ∨ y = y ∨ x; x ∧ y = y ∧ x (Conmutatividad).
Para cualesquiera x, y, z ∈ B, x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z); x ∨ (y ∧ z) = (x ∨ y) ∧ (x ∨ z) (Distributividad).
Existen 0 , 1 ∈ B tales que para cualquier x ∈ B, x ∨ 0 = x y x ∧ 1 = x (Elementos neutros).
Para cada x ∈ B existe x ∈ B tal que x ∨ x = 1 y x ∧ x = 0 (Complementario).
Veamos algunos ejemplos de álgebras de Boole.
Ejemplo 1.1.1.
∨ 0 1 0 0 1 1 1 1
mientras que 0 = 1 y 1 = 0. Si X = {a}, compara las álgebras de Boole P(X) y B.
(x 1 , x 2 , · · · , xn) ∨ (y 1 , y 2 , · · · , yn) = (x 1 ∨ y 1 , x 2 ∨ y 2 , · · · , xn ∨ yn) (x 1 , x 2 , · · · , xn) ∧ (y 1 , y 2 , · · · , yn) = (x 1 ∧ y 1 , x 2 ∧ y 2 , · · · , xn ∧ yn)
Los elementos cero y uno vinen dados por 0 = (0, 0 , · · · , 0) y 1 = (1, 1 , · · · , 1), mientras que el complementario por (x 1 , x 2 , · · · , xn) = (x 1 , x 2 , · · · , xn). Por ejemplo, en B^3 se tiene que (0, 1 , 0) ∨ (1, 1 , 0) = (1, 1 , 0), (1, 1 , 0) ∧ (1, 0 , 1) = (1, 0 , 0), (0, 1 , 1) = (1, 0 , 0).
∨ 0 a b c 1 0 0 a b c 1 a a a 1 1 1 b b 1 b 1 1 c c 1 1 c 1 1 1 1 1 1 1
∧ 0 a b c 1 0 0 0 0 0 0 a 0 a 0 0 a b 0 0 b 0 b c 0 0 0 c c 1 0 a b c 1
El conjunto D, con estas operaciones, no es un álgebra de Boole. Podemos verlo, por ejemplo, comprobando que:
a ∨ (b ∧ c) = a ∨ 0 = a; (a ∨ b) ∧ (a ∨ c) = 1 ∧ 1 = 1
El resto de axiomas que definen un álgebra de Boole si se satisfacen en este conjunto D.
Observaciones:
Los símbolos que hemos utilizado para las operaciones de un álgebra de Boole, aunque están bastante extendidos no son los únicos que se emplean. Veamos algunas notaciones diferentes.
Departamento de Álgebra
Si nos fijamos en los axiomas que definen a un álgebra de Boole, así como en estas propiedades que hemos deducido de los axiomas, podemos apreciar que normalmente van por parejas. Esto se conoce como principio de dualidad.
Principio de dualidad. Dado un enunciado en un álgebra de Boole, el enunciado que resulta de intercambiar los símbolos ∨ y ∧, así como 0 y 1 se conoce como enunciado dual. Si un teorema es cierto para álgebras de Boole, entonces su teorema dual también lo es. Por ejemplo, el enunciado dual de x ∨ 1 = 1 es x ∧ 0 = 0. Puesto que x ∨ 1 = 1 es cierto en cualquier álgebra de Boole, su dual también lo es. El enunciado dual de la ley x ∨ y = x ∧ y es x ∧ y = x ∨ y. Al ser cierto uno de ellos, lo es automáticamente el otro.
A partir de dos (o más) álgebras de Boole, podemos obtener una nueva álgebra de Boole sin más que realizar el producto cartesiano.
Proposición 1.1.1. Sean (B 1 , ∨ 1 , ∧ 1 ) y (B 2 , ∨ 2 , ∧ 2 ) dos álgebras de Boole. Entonces el conjunto B 1 ×B 2 con las operaciones
(x, y) ∨ (x′, y′) = (x ∨ 1 x′, y ∨ 2 y′); (x, y) ∧ (x′, y′) = (x ∧ 1 x′, y ∧ 2 y′)
tiene estructura de álgebra de Boole.
Este álgebra de Boole se conoce como álgebra de Boole producto de las álgebras B 1 y B 2. Fácilmente puedes ser generalizado a un producto de tres o más álgebras de Boole. La demostración de esta proposición es totalmente rutinaria.
Ejemplo 1.1.2. En el ejemplo 1.1.1 vimos que B = { 0 , 1 } es un álgebra de Boole. Si hacemos el álgebra producto de el álgebra B consigo misma, obtenemos el álgebra de Boole B^2 , que también estudiamos en el mismo ejemplo. De hecho, vimos que el conjunto Bn^ tiene estructura de álgebra de Boole.
Una estructura de álgebra de Boole en un conjunto B determina un orden en este conjunto.
Teorema 1.1.1. Sea (B, ∨, ∧) un álgebra de Boole. Definimos en B la siguiente relación:
x ≤ y si, y sólo si, x ∨ y = y
Esta relación es una relación de orden en B. Además, dados dos elementos x, y ∈ B se tiene que sup{x, y} = x ∨ y e inf{x, y} = x ∧ y. Y este conjunto ordenado tiene máximo y mínimo, que son 1 y 0 respectivamente.
Nota: La propiedad número 8 que hemos visto nos dice que cualquiera de las siguientes tres defini- ciones habrían valido para definir el orden en B. x ≤ y si, y sólo si, x ∧ y = x. x ≤ y si, y sólo si, x ∨ y = 1. x ≤ y si, y sólo si, x ∧ y = 0. Y en cualquiera de los casos habríamos definido la misma relación que hemos dado en el teorema.
Ejemplo 1.1.3. Vamos a ver cuál es el orden que se induce en las álgebras de Boole estudiadas en el ejemplo 1.1.1.
Departamento de Álgebra
1.1. Álgebras de Boole 5
A ≤ B si, y sólo si, A ∪ B = B
y esto significa que A ⊆ B. Es decir, el orden inducido por la estructura de álgebra de Boole es el orden dado por la inclusión.
(x 1 , x 2 , · · · , xn) ≤ (y 1 , y 2 , · · · , yn) si, y sólo si, x 1 ≤ y 1 , x 2 ≤ y 2 , · · · , xn ≤ yn es decir, el orden producto.
Demostración: Vamos a dar una demostración del teorema 1.1.1. Para esto, hemos de demostrar varias cosas: La relación definida es una relación de orden. Esto a su vez requiere demostrar tres pequeños apartados:
Observaciones:
Este último teorema nos dice que todo álgebra de Boole es un conjunto ordenado. Por tanto, todo lo que tenemos para conjuntos ordenados lo podemos trasladar ahora a este contexto de álgebras de Boole. Es más, el orden determina completamente la estructura del álgebra de Boole, pues a partir de la relación de orden podemos obtener las operaciones ∨ y ∧ (tenemos que x ∨ y = sup{x, y} y x ∧ y = inf{x, y}, como hemos visto). Esto no significa que todo conjunto ordenado (X, ≤) sea un álgebra de Boole. Por ejemplo, hemos visto que el conjunto de los divisores de 20, con el orden dado por la divisibilidad no es un álgebra de Boole. Para que un conjunto ordenado sea álgebra de Boole, deben satisfacerse algunas condiciones adicionales. Estas condiciones serían las siguientes:
Jesús García Miranda
1.1. Álgebras de Boole 7
ƒ^ ƒ ƒƒ ƒƒ ƒƒ
ƒƒƒ?
ƒƒ ƒƒ ƒ
ƒ^ ƒ ƒƒ ƒƒ ƒ 10
ƒƒ
ƒƒ
ƒƒ
ƒ
ƒƒ ƒƒ ƒƒ ƒƒ
ƒƒ
ƒƒ
ƒƒ
ƒ
a
ƒƒ
ƒƒ ƒƒ ƒƒ
b c
Este conjunto ordenado se conoce como el diamante. Es otro ejemplo de un conjunto ordenado que no determina un álgebra de Boole.
ƒ^ ƒ ƒƒ ƒƒ ƒ A+
ƒƒ ƒƒ ƒƒ ƒ
ƒƒ ƒƒ ƒƒ
ƒ
ƒƒ ƒƒ ƒƒ ƒ
Lo que nos resulta son los 8 grupos sanguíneos que tenemos las personas. El orden, en este caso, significa “poder donar” Así, por ejemplo, el grupo 0 − es el donante universal, pues puede dar a cualquier persona, mientras que el grupo AB+ es el receptor universal, pues puede recibir sangre de cualquier donante sano.
Proponemos aquí un sencillo ejercicio.
Ejercicio 1.1.1. Sea B un álgebra de Boole, y sean x, y, z ∈ B tales que x ≤ y. Demuestra que x∨z ≤ y∨z y que x ∧ z ≤ y ∧ z.
Jesús García Miranda
En los ejemplos que acabamos de ver, podemos apreciar el “parecido” entre las álgebras de Boole B, P({ 1 }) y D(2), así como entre B^2 , P({ 1 , 2 }) y D(6) o entre B^3 , P({ 1 , 2 , 3 }) y D(30). De hecho, podemos ver que son iguales excepto en el nombre de los elementos. Todo lo que digamos para el álgebra B^3 vale tanto para P({ 1 , 2 , 3 } como para D(30). Estas álgebras de Boole se dice que son isomorfas
Si B y B′^ son dos álgebras de Boole, un isomorfismo entre ambas es una aplicación biyectiva f : B 1 → B 2 tal que f (x ∨ y) = f (x) ∨ f (y) y f (x ∧ y) = f (x) ∧ f (y). Dos álgebras de Boole se dicen isomorfas si hay un isomorfismo entre ellas. En el ejemplo anterior hemos visto que las álgebras de Boole B, P({ 1 }) y D(2) son isomorfas. También son isomorfas B^2 , P({ 1 , 2 }) y D(6), o las álgebras B^3 , P({ 1 , 2 , 3 }) y D(30). Por ejemplo, un isomorfismo entre las álgebras B^3 y D(30) podría ser la aplicación f : B^3 → D(30) dada por f (x, y, z) = 2x^ · 3 y^ · 5 z^.
Esto que ocurre en estos ejemplos, es general. Si B es un álgebra de Boole finita (con un número finito de elementos), entonces el número de elementos de B es una potencia de 2. Por tanto, |B| = 2n^ para algún n ∈ N. En tal caso, B es isomorfa al álgebra de Boole Bn, o al álgebra P({ 1 , 2 , · · · , n}) (o P(X) con X un conjunto cualquiera con n elementos), o D(m), donde m es un número que es producto de n primos distintos. Esto último vamos a darlo con más precisión. Para eso, vamos a introducir algunos conceptos elemen- tales. En lo que sigue, cuando hablemos de un álgebra de Boole, daremos por sobreentendida la relación de orden que definimos en el enunciado del teorema 1.1.1.
Definición 2. Sea B un álgebra de Boole y x ∈ B. Se dice que x es un átomo si x es un elemento minimal de B \ { 0 }.
Nota: Si (X, ≤) es un conjunto ordenado que tiene mínimo (que llamaremos 0), podemos también definir los átomos de X como los elementos minimales del conjunto X \ { 0 }.
Ejemplo 1.1.5. Si X es un conjunto, los átomos del álgebra de Boole P(X) son los subconjuntos unitarios. Los átomos del álgebra de Boole Bn^ son aquellos que tienen todas las coordenadas nulas salvo una. En el álgebra de Boole D(30) los átomos son los divisores primos de 30.
El concepto dual de átomo es el de coátomo. Define dicho concepto, y calcula los coátomos de las álgebras de Boole que hemos visto hasta el momento.
Teorema 1.1.2. Sea B un álgebra de Boole finita, y x ∈ B \ { 0 }. Entonces, x se expresa de forma única como supremo de átomos.
Antes de demostrar el teorema, veamos el siguiente lema:
Lema 1.1.1. Sea B un álgebra de Boole finita y x ∈ B \ { 0 }. Entonces existe a ∈ B, átomo, y tal que a ≤ x.
Demostración: Basta tomar el conjunto Ax = {y ∈ B : 0 < y ≤ x}, que es distinto del vacío (pues x es un elemento suyo). Se tiene que un elemento minimal de Ax (que existe por ser Ax finito) es un átomo de B. •
Dado cualquier elemento x ∈ B \ { 0 }, denotaremos por Ax al conjunto de todos los átomos de B que son menores o iguales que x.
Ejemplo 1.1.6.
Departamento de Álgebra
(1, 1 , 1)
ƒƒ
ƒƒ ƒƒ
ƒƒ ƒƒ
ƒƒ
ƒƒ
ƒƒ
ƒƒ
(0, 1 , 0)
ƒƒ
ƒƒ
ƒƒ
Vemos que los átomos son (1, 0 , 0), (0, 1 , 0) y (0, 0 , 1). Si tomamos cualquier elemento distinto de (0, 0 , 0), por ejemplo, (1, 0 , 1) podemos comprobar fácilmente que se puede expresar como supremo de átomos. En este caso, (1, 0 , 1) = (1, 0 , 0) ∨ (0, 0 , 1). Con cualquier otro elemento podríamos hacer lo mismo.
D(120) (^120)
oooooooooooo
ƒƒ
ƒƒ
ƒƒ
ƒ
jjj^60 jjjj jjjj jjjj jjjj j 20
ƒƒ ƒƒ
ƒƒ
ƒ
? (^) ƒ^15 ƒƒ ƒƒ ƒƒ
ggggggggggggggggggggggggggg
ooooooooooooo
jjjjjjjjjjjjjjjjjjjj
oooooooooooooo ggggggggggggggggggggggggggg
ƒƒ ƒƒ ƒƒ
ƒƒ
jjjjjjjjjjjjjjjjjjjj
oooooooooooooo
jjjjjjjjjjjjjjjjjjjj
jjjjjjjjjjjjjjjjjjj
6 oooooooooooooo
oooooooooooooo
jjjjjjjjjjjjjjjjjjjjj
ƒƒ ƒƒ
ƒƒ
ƒ
oooooooooooooo
10 ggggggggggggggggggggggggggg
ƒƒ
ƒƒ ƒƒ ƒƒ
oooooooooooo
oooooooooooooo
ggggggggggggggggggggggggggg
ggggggggggggggggggggggggggg
ooooooooooooo
ggggggggggggggggggggggggggg
Los átomos del primer conjunto ordenado serían los elementos 2 , 3 , 5. Si tomamos por ejemplo el elemento 30 vemos que podemos ponerlo como supremo de átomos, pues 30 = 2 ∨ 3 ∨ 5. Pero, por ejemplo, si tomamos x = 20 vemos que no podemos ponerlo como supremo de átomos. Los átomos que son menores que 20 son 2 y 5, y como podemos comprobar, 2 ∨ 5 = 10 6 = 20.
Departamento de Álgebra
1.1. Álgebras de Boole 11 Por tanto, aquí hay elementos que no se pueden poner como supremo de átomos. Esto nos dice que D(120) no es un álgebra de Boole. Los átomos del segundo conjunto son 2 , 3 , 5 , 7. Podemos tomar cualquier elemento distinto de 1, y comprobar que puede expresarse como supremo de átomos. Por ejemplo: 42 = 2 ∨ 3 ∨ 7 , 35 = 5 ∨ 7 , 105 = 3 ∨ 5 ∨ 7. El conjunto de los divisores de 210 es un álgebra de Boole.
El teorema 1.1.2 tiene su enunciado dual, que dice que si B es un álgebra de Boole finita, y x ∈ B es un elemento distinto de 1, entonces x se expresa de forma única como ínfimo de coátomos. Toma algunos ejemplos de álgebras de Boole (por ejemplo, B^4 , P({ 1 , 2 , 3 , 4 , 5 }) o D(2310). Calcula sus coátomos. Elige algunos elementos de estas álgebras de Boole y trata de expresarlos como ínfimo de coátomos.
En esta sección vamos a estudiar las funciones booleanas en n variables. Veremos que el conjunto de estas funciones tiene estructura de álgebra de Boole. Identificaremos los átomos de este álgebra de Boole, a los que llamaremos minterm (o minitérminos). El teorema 1.1.2, aplicado a este álgebra de Boole nos dará la denominada forma normal canónica disyun- tiva de una función booleana, y tendremos una expresión para cada función booleana. Posteriormente estudiaremos como simplificar esta expresión. Nota importante:
En lo que sigue, vamos a cambiar la notación que hemos empleado para álgebras de Boole. En lugar de denotar a las operaciones booleanas como ∨ y ∧, las denotaremos como + y · (mantenemos la misma notación para el complementario). Si escribimos las tablas de estas operaciones para el álgebra de Boole B, tenemos (ver ejemplo 1.1.1):
Y hemos de tener cuidado en no confundirlas con las operaciones suma y producto en Z 2. Para el producto no hay problema, pues el producto en el anillo Z 2 coincide con el producto booleano en B, pero para la suma ambas operaciones difieren. En Z 2 , el resultado de 1 + 1 es 0 , mientras que en el álgebra de Boole B, tenemos que 1 + 1 = 1. Por tanto, cuando estemos hablando de la operación +, debe quedar claro si nos referimos a la suma booleana o a la suma algebraica. Para referirnos al producto booleano también emplearemos la yuxtaposición.
Comenzamos definiendo las funciones booleanas.
Definición 3. Una función booleana con n variables es una aplicación f : Bn^ → B. Denotaremos por Fn al conjunto de las funciones booleanas con n variables. Es decir:
Fn = {f : Bn^ → B f es aplicación}.
Ejemplo 1.1.8.
Jesús García Miranda
1.1. Álgebras de Boole 13 Supongamos que tenemos un conjunto S con n elementos, es decir, S = {x 1 , x 2 ,... , xn}. A cada elemento de S le vamos a asignar un elemento de Fn. Concretamente, al elemento xi le asignamos la función xi : Bn^ → B dada por xi(a 1 ,... , ai,... , an) = ai. De esta forma, a cada expresión booleana sobre el conjunto S le podemos hacer corresponder una función Bn^ → B. Por ejemplo, si S = {x, y, z} y consideramos la expresión booleana x + (y · z), le corresponde la función booleana (0, 0 , 0) 7 → 0 + (1 · 0) = 0, (0, 0 , 1) 7 → 0 + (1 · 1) = 1, (0, 1 , 0) 7 → 0 + (0 · 0) = 0, (0, 1 , 1) 7 → 0 + (0 · 1) = 0, (1, 0 , 0) 7 → 1 + (1 · 0) = 1, (1, 0 , 1) 7 → 1 + (1 · 1) = 1, (1, 1 , 0) 7 → 1 + (0 · 0) = 1, (1, 1 , 1) 7 → 1 + (0 · 1) = 1.
Puesto que cada expresión booleana determina una función booleana, podremos referirnos a las fun- ciones mencionando las expresiones que las representan. Así, la función que acabamos de ver podría definirse como f (x, y, z) = x + (y · z). Ahora, para calcular la imagen de un elemento de B^3 basta sustituir en la expresión booleana x, y y z por los valores en los que queremos evaluar, y efectuar las operaciones en el álgebra de Boole B. Por ejemplo
f (0, 0 , 1) = 0 + (0 · 1) = 0 + (1 · 1) = 0 + 1 = 1.
Nótese que en el Ejemplo 1.1.8 ya se ha empleado esta forma de definir una función booleana.
Definición 6. Dos expresiones booleanas son equivalentes si las correspondientes funciones booleanas son iguales. Si e 1 e e 2 son expresiones booleanas equivalentes emplearemos el símbolo e 1 = e 2.
Ejemplo 1.1.11. Las expresiones booleanas x·y y x + y son equivalentes. También lo son las expresiones x + y + x y y 1.
A continuación vamos a dar una tabla de expresiones equivalentes.
Proposición 1.1.2. Sean e 1 , e 2 y e 3 tres expresiones booleanas en n variables. Entonces:
Definición 7. Un minterm en n variables es el producto de n literales, cada uno con una variable diferente.
Ejemplo 1.1.12. Si S = {x, y, z}, entonces son minterm x y z, x y z, x y z. No son minterm x y, x y y ni x z x.
Lema 1.1.2. Sea m un minterm en n variables. Entonces m determina una función booleana f : Bn^ → B que vale 1 en un elemento de Bn^ y 0 en el resto.
A esta función booleana la llamaremos también minterm.
Ejemplo 1.1.13. Sea f : B^2 → B la función booleana dada por f (x, y) = x y. Claramente x y es un minterm. Se tiene que f (1, 0) = 1, mientras que f (0, 0) = f (0, 1) = f (1, 1) = 0.
Corolario 1.1.1. Los minterm son los átomos del álgebra Fn.
Corolario 1.1.2. Toda función booleana se expresa de forma única (salvo el orden) como suma (supremo) de minterm.
Jesús García Miranda
La expresión de una función booleana como suma de minterm recibe el nombre de forma normal disyuntiva. Para hallar la forma normal disyuntiva de una función booleana podemos emplear dos méto- dos. El primero consiste en evaluar la función en todos los elementos de Bn, y observar en cuales de ellos toma el valor 1. Cada uno de esos elementos se corresponde con un minterm. El segundo consiste en, a partir de una expresión booleana que nos defina a f , utilizar las equivalencias dadas en la proposición 1.1.2 para transformar la expresión en una suma de minterm.
Ejemplo 1.1.14. Dada la función booleana f : B^2 → B dada por f (x, y) = x + y, vamos a expresarla como suma de minterm.
f (0, 0) = 0 + 0 = 0 f (0, 1) = 0 + 1 = 1 f (1, 0) = 1 + 0 = 1 f (1, 1) = 1 + 1 = 1
El elemento (0, 1) se corresponde con el minterm x y, el (1, 0) con x y mientras que (1, 1) se corre- sponde con x y. Por tanto tenemos que f (x, y) = x y + x y + x y.
Cada elemento de Bn^ es una secuencia de n dígitos ceros o unos. Es por tanto, la expresión en binario de un número entre 0 y 2 n^ − 1. Por otra parte, a cada elemento de Bn^ le corresponde un minterm (aquél para el que toma el valor 1 ). Vemos entonces que cada minterm está determinado por un número comprendido entre 0 y 2 n^ − 1. Denotaremos por el minterm a, donde 0 ≤ a ≤ 2 n−^1 , y lo representaremos como m(a) o ma, al minterm determinado por el número a siguiendo el criterio anterior. Por ejemplo, el minterm x y z t toma el valor 1 en (1, 1 , 0 , 0). Puesto que 12 = (1100) 2 tenemos que x y z t es el minterm 12 , o dicho de otra forma, x y z t = m 12 = m(12).
Ejemplo 1.1.15.
m(1, 2 , 3).
x y f 0 f 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 f 11 f 12 f 13 f 14 f 15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Y vemos como:
Departamento de Álgebra
x y z t z t z t x y x y(z t) z + t x + y (z + t)(x + y) (z + t)(x + y) f 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 1 1 1 0 0
Y a partir de la tabla, fijándonos en los unos de la última columna tenemos los minterm que aparecen en la expresión de f (y que coinciden con los obtenidos anteriormente), y fijándonos en los ceros de esa columna obtenemos los maxterm.
Las funciones booleanas nos proporcionan un modelo matemático para el diseño de circuitos de dispo- sitivos electrónicos. Fue Claude Shannon (el padre de la teoría de la información) quien en 1938, en su tesis doctoral, demostró como el álgebra de Boole podía ser empleada en el análisis de los circuitos digitales. Las entradas y/o salidas de estos circuitos podemos verlas como elementos del conjunto B = { 0 , 1 }. Los elementos básicos de estos circuitos se llaman puertas lógicas. Cada puerta implementa una ope- ración booleana. Aquí emplearemos tres tipos de puertas lógicas, cada una correspondiente a cada una de las siguientes operaciones booleanas: suma, producto y complementario. Estas puertas las combinaremos para diseñar circuitos que realicen una serie de tareas. La salida de los circuitos que estudiemos no dependerá del estado del circuito, sino únicamente de los datos de entrada. Dicho de otra forma, nuestros circuitos no tienen memoria. Los circuitos así construidos se denominan circuitos combinacionales. Como hemos dicho, vamos a emplear tres puertas lógicas. Éstas son: La puerta NOT (también llamada inversor) que tiene como entrada el valor de una variable booleana y produce como salida el complementario de dicho valor. Para una puerta NOT emplearemos el siguiente símbolo.
x x
La puerta AND que tiene como entrada el valor de dos o más variables booleanas, y como salida el producto de éstas. Las entradas se muestran a la izquierda y la salida a la derecha. Emplearemos el siguiente símbolo para esta puerta.
y
x x y
La puerta OR tiene como entrada el valor de dos o más variables booleanas, y como salida la suma de éstas. La representaremos mediante el siguiente símbolo.
... ...... ............ ............. ... ...... ............ ............. .............
...................... ............ y
x x^ +^ y
Vamos a ver cómo combinar estas puertas para desarrollar diferentes circuitos.
Ejemplo 1.1.17. Comenzamos diseñando un circuito con dos entradas y que produzca la salida x y +x y.
Departamento de Álgebra
1.1. Álgebras de Boole 17 .... .. ............... ............. .... .. ............... ............. ............. ......................
............
y
x x
x y
x y
x y + x y
Nótese que puesto que x y + x y = (x + x)y = 1 · y = y podría haberse diseñado un circuito mucho más simple que tuviera el mismo efecto.
A continuación vamos a diseñar un circuito que, introducidos dos números en binario nos devuelve su suma. Para esto, comenzamos en primer lugar diseñando un circuito que, dados dos dígitos binarios nos devuelva la suma. Puesto que los posibles resultados de la suma son 0 , 1 y 10 necesitamos un circuito que tenga dos salidas. Denotaremos el bit de la derecha como s (suma) y el de la izquierda como a (acarreo). Se tiene entonces que s = x y + x y = (x + y)x y mientras que a = x y. Un circuito podría ser entonces:
... ...... ............ ............. ... ...... ............ ............. .............
......................
............
y
x
x y
x + y
a
s x y
Denominaremos a este circuito como suma parcial. Construyamos ahora un circuito que nos sume dos dígitos binarios más el posible acarreo de una suma anterior. Podemos ver fácilmente que esto es equivalente a sumar tres dígitos binarios x, y y z. El resultado será, como antes una salida doble. A las dos salidas las denotaremos de la misma forma que en el caso anterior: s y a. Para obtener la salida s, obtenemos la suma de x e y, y al resultado le sumamos z. Puede verse entonces que un circuito que nos da la suma de tres dígitos sería:
.... ....... ........... (^). ........................... .................. .... ....... ...........^. ........................... .................. ................. ...............................
...............................
suma ................ suma parcial x parcial
y
z s 1 a 1
a 2
s 2
a
s
x y z s 1 a 1 s 2 a 2 s a a 1 + a 2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1
pues como podemos apreciar, s = s 2 y a = a 1 + a 2. Denotaremos a este circuito como suma total. Veamos ahora como calcular la suma de dos números entre 0 y 7. Supongamos que estos números se escriben en binario como x 2 x 1 x 0 e y 2 y 1 y 0. Su suma, escrita en binario es s 3 s 2 s 1 s 0.
suma parcial suma total suma total
x 0 y 0 x 1 y 1 x 2 y 2
s 0
s 1
s 2
s 3
Jesús García Miranda
1.1. Álgebras de Boole 19 Y ahora, dado que el primer y segundo sumando se diferencian únicamente en un literal podemos repetir el proceso: y z t + y z t = y · (z + z) · t = y t. De esta forma, la expresión de f nos queda:
f (x, y, z, t) = y t + y z t
Notemos que si en la expresión f (x, y, z, t) = y z t + y z t + y z t duplicamos el primer sumando, es decir, la escribimos como f (x, y, z, t) = y z t + y z t + y z t + y z t podemos agrupar el primer sumando con el tercero y el segundo con el cuarto, con lo que nos quedaría
f (x, y, z, t) = y t + z t
que es una expresión mucho más reducida que la que teníamos al principio. Sin embargo, dejarlo todo a nuestra habilidad para encontrar que términos agrupar, y que términos duplicar para simplificar la expresión no es práctico, y puede resultar engorroso. Vamos a buscar un método que nos resuelva este problema de forma más sencilla. Una primera forma es mediante los diagramas o mapas de Karnaugh. Si analizamos con más detalle el ejemplo que acabamos de resolver, vemos que lo que hay que hacer es encontrar minitérminos que se diferencien únicamente en un literal. En tal caso, los dos minterm quedan reducidos a un único término (que no es un minterm pues falta alguna variable). Para esto, vamos a dibujar los minterm de forma que dos minterm que se diferencien en un literal sean adyacentes. Un mapa de Karnaugh para una función booleana de dos, tres o cuatro variables es precisamente eso: una tabla con tantas celdas como posibles minterm ( 4 para dos variables, 8 para tres variables y 16 para cuatro variables) de forma que cada celda va asociada a un minterm, y dos celdas adyacentes se diferencian únicamente en un literal, así como dos celdas opuestas en una fila o una columna.
y
y
x x
z
z
x y x y x y x y
z t
z t
z t
z t
x y x y x y x y
Por ejemplo, en el mapa correspondiente a 4 variables, las cuatro celdas adyacentes a x y z t son: por la derecha, x y z t, por arriba, x y z t, por la izquierda, x y z t y por abajo, x y z t. Vemos como cada una de estas celdas se diferencia de x y z t en sólo un literal (x − x en la primera, t − t en la segunda, y − y en la tercera y z − z en la cuarta). Vemos también como las celdas opuestas de la misma fila se diferencian también en sólo un literal (en la segunda fila, estas celdas opuestas son x y z t y x y z t), así como las celdas opuestas de una columna. Si ahora tenemos una función booleana en dos, tres o cuatro variables, su mapa de Karnaugh consiste en la tabla antes descrita, en la que se han destacado aquellas celdas correspondientes a los minterm que aparecen en la forma normal disyuntiva de la función. Nosotros aquí las marcaremos con un 1.
Ejemplo 1.1.18.
Vamos a dibujar los mapas de Karnaugh de las funciones booleanas: f (x, y) = x y + x y; f (x, y, z) = (x + y)(y z) + y z; f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t.
y
y
x x
1 1 x y + x y
Jesús García Miranda
z
z
x y x y x y x y
(x + y)(y z) + y z
z t
z t
z t
z t
x y x y x y x y
x y z t + x y z t + x y z t + x y z t + x y z t + x y z t + x y z t
Ahora, vamos a dibujar el mapa de Karnaugh de la función que ha iniciado esta sección, es decir,
f (x, y, z, t) = x y z t + x y z t + x y z t + x y z t + x y z t + x y z t
y vamos a ver cómo podemos aprovechar el mapa para simplificar la función, basándonos en lo que hemos hecho previamente. El mapa de Karnaugh correspondiente a la función f es:
z t
z t
z t
z t
x y x y x y x y
Las casillas correspondientes a los minterm x y z t y x y z t son adyacentes. Las agrupamos, con lo que tendríamos
z t
z t
z t
z t
x y x y x y x y
Y esas dos casillas nos dan lugar al término y z t, que son los literales comunes a ambas.
Departamento de Álgebra