Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Álgebra de Boole, Apuntes de Ingeniería Infórmatica

Asignatura: LOGICA Y METODOS DISCREETOS, Profesor: Jesus Miranda, Carrera: Ingeniería Informática, Universidad: UGR

Tipo: Apuntes

2013/2014

Subido el 26/06/2014

ignacorrea
ignacorrea 🇪🇸

4.5

(4)

1 documento

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Capítulo 1
Álgebras de Boole.
1.1. Álgebras de Boole
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.
1.1.1. Generalidades sobre álgebras de Boole
Definición 1. Sea Bun conjunto. Decimos que Btiene estructura de álgebra de Boole si en Btenemos
definidas dos operaciones, ytales que:
Para cualesquiera x,y , z B,x(yz) = (xy)z;x(yz) = (xy)z(Asociatividad).
Para cualesquiera x,y B,xy=yx;xy=yx(Conmutatividad).
Para cualesquiera x, y, z B,x(yz) = (xy)(xz);x(yz) = (xy)(xz)
(Distributividad).
Existen 0,1Btales que para cualquier xB,x0 = xyx1 = x(Elementos neutros).
Para cada xBexiste xBtal que xx= 1 yxx= 0 (Complementario).
Veamos algunos ejemplos de álgebras de Boole.
Ejemplo 1.1.1.
1. Sea Xun conjunto. Entonces el conjunto P(X)tiene estructura de álgebra de Boole. Las operaciones
yson en este caso la unión y la intersección respectivamente. Los elementos 0y1son yX.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga Álgebra de Boole y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Capítulo 1

Álgebras de Boole.

1.1. Álgebras de Boole

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.

1.1.1. Generalidades sobre álgebras de Boole

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.

  1. Sea X un conjunto. Entonces el conjunto P(X) tiene estructura de álgebra de Boole. Las operaciones ∨ y ∧ son en este caso la unión y la intersección respectivamente. Los elementos 0 y 1 son ∅ y X.

2 ÁLGEBRAS DE BOOLE

  1. Sea B = { 0 , 1 }. Este conjunto tiene estructura de álgebra de Boole. Las operaciones ∨ y ∧ vienen descritas en las siguientes tablas:

∨ 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.

  1. Consideramos ahora el conjunto Bn^ = {(x 1 , x 2 , · · · , xn) : xi ∈ B}. Este conjunto tiene también estructura de álgebra de Boole. Las operaciones ∨ y ∧ vienen dadas por:

(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).

  1. El conjunto de los divisores de 30, es decir, { 1 , 2 , 3 , 5 , 6 , 10 , 15 , 30 } con las operaciones x ∨ y = mcm(x, y) y x ∧ y = mcd(x, y) es un álgebra de Boole. Los elementos cero y uno son, en este caso, 1 y 30 , y el complementario de un elemento x, el número (^30) x. El conjunto D(20) = { 1 , 2 , 4 , 5 , 10 , 20 }, con las operaciones anteriores, no es un álgebra de Boole. Un motivo podría ser que no existe x ∈ D(20) tal que mcd(2,x) = 1 y mcm(2, 20) = 20.
  2. Consideramos en el conjunto D = { 0 , a, b, c, 1 } las siguientes operaciones:

∨ 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.

  1. Para los símbolos ∨ y ∧, es bastante usual emplear los símbolos + y ·. En tal caso, las dos propiedades distributivas quedarían x·(y+z) = (x·y)+(x·z) y x+(y·z) = (x+y)·(x+z).
  2. Para representar el complementario de un elemento x, en lugar de x también es frecuente utilizar la notación x′^ o ¬x.
  3. Otra notación para las operaciones x∨y, x∧y, x bastante extendida es x OR y, x AND y y NOT x. En tal caso, los elementos distinguidos 0 y 1 pueden ser denotados como F y V (o F y T , si se trata de un texto inglés).

Departamento de Álgebra

4 ÁLGEBRAS DE BOOLE

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

  1. El primer ejemplo que tenemos es el álgebra de Boole P(X), donde X es un conjunto cualquiera. El orden viene dado por:

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.

  1. El segundo ejemplo es el álgebra de Boole B. Puesto que 0 ∨ 1 = 1, el orden es 0 ≤ 1.
  2. El tercer ejemplo es Bn. Aquí podemos ver que el orden viene dado por:

(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.

  1. En el ejemplo de los divisores de 30 el orden sería x ≤ y si, y sólo si, mcm(x, y) = y, lo cual ocurre cuando y es múltiplo de x. Es decir, el orden es el dado por la divisibilidad.

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:

  • La relación es reflexiva (para todo x ∈ B se tiene que x ≤ x). Dado x ∈ B se tiene que x ∨ x = x, luego x ≤ x.
  • La relación es antisimétrica (si x ≤ y e y ≤ x entonces x = y). Si x ≤ y e y ≤ x se tiene que x ∨ y = y y que y ∨ x = x. Por tanto, x = y.
  • La relación es transitiva (si x ≤ y e y ≤ z entonces x ≤ z). Si x ≤ y entonces x∨y = y, y si y ≤ z entonces y ∨z = z. En tal caso, x∨z = x∨(y ∨z) = (x∨y)∨z = y ∨z = z, luego x ≤ z. El supremo del conjunto {x, y} es x ∨ y. Esto, a su vez, lo dividimos en varias etapas.
  • x ∨ y es cota superior de x e y. Dicho de otra forma, x ≤ x ∨ y e y ≤ x ∨ y.
  • x ∨ (x ∨ y) = (x ∨ x) ∨ y = x ∨ y, es decir, x ≤ x ∨ y.
  • y ∨ (x ∨ y) = (y ∨ y) ∨ x = y ∨ x = x ∨ y, es decir, y ≤ x ∨ y.
  • x ∨ y es la menor de las cotas superiores. Es decir, si z fuera una cota superior de x e y entonces x ∨ y ≤ z. Dicho de otra forma, hemos de ver que si x ≤ z e y ≤ z, entonces (x ∨ y) ∨ z = z. Pero si x ∨ z = z e y ∨ z = z se tiene que (x ∨ y) ∨ z = x ∨ (y ∨ z) = x ∨ z = z. El ínfimo del conjunto {x, y} es x ∧ y. Esto se demuestra de forma análoga al apartado precedente, pero usando una definición equivalente de orden (x ≤ y si, y sólo si, x ∧ y = x). El máximo del conjunto B es 1 , y el mínimo del conjunto B es 0. Esto es lo mismo que demostrar que para cualquier x ∈ B se tiene que x ≤ 1 y que 0 ≤ x, es decir, x ∨ 1 = 1 y 0 ∨ x = x, lo cual sabemos que es cierto.

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

ƒƒ

ƒƒ

ƒƒ

ƒ

ƒƒ ƒƒ ƒƒ ƒƒ

ƒƒ

ƒƒ

ƒƒ

ƒ

D(2) D(6) D(30)

  1. Las operaciones ∨ y ∧ definidas en el conjunto D = { 0 , a, b, c, 1 }, aunque no dan estructura de álgebra de Boole al conjunto D sí dan un orden en este conjunto. El diagrama de Hasse de este conjunto ordenado sería:

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.

  1. Vamos a tomar dos álgebras de Boole, con 2 y 4 elementos. Estas son B 1 = {−, +} y B 2 = { 0 , A, B, AB}. Los diagramas de Hasse de estas dos álgebras de Boole son semejantes a los de B y B^2. Hacemos el producto cartesiano de ambas álgebras de Boole, y dibujamos su diagrama de Hasse.

A−

AB−

AB+

ƒ^ ƒ ƒƒ ƒƒ ƒ A+

ƒƒ ƒƒ ƒƒ ƒ

B+

ƒƒ ƒƒ ƒƒ

ƒ

B−

ƒƒ ƒƒ ƒƒ ƒ

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

8 ÁLGEBRAS DE BOOLE

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.

  1. Dada el álgebra de Boole B^5 , y el elemento x = (0, 1 , 1 , 0 , 1) ∈ B^5 , el conjunto Ax es igual a {(0, 1 , 0 , 0 , 0); (0, 0 , 1 , 0 , 0); (0, 0 , 0 , 0 , 1)}. Es decir, todos los átomos que son menores o iguales que x.

Departamento de Álgebra

10 ÁLGEBRAS DE BOOLE

  1. Consideramos el álgebra de Boole B^3.

(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.

  1. Sean ahora los conjuntos ordenados D(120) y D(210), cuyos diagramas de Hasse son:

D(120) (^120)

oooooooooooo

ƒƒ

ƒƒ

ƒƒ

ƒ

OO O

OOO

OOO

OOO

OO 3

jjj^60 jjjj jjjj jjjj jjjj j 20

ƒƒ ƒƒ

ƒƒ

ƒ

? (^) ƒ^15 ƒƒ ƒƒ ƒƒ

ggggggggggggggggggggggggggg

OOO

OOO

OOO

OOO

ooooooooooooo

jjjjjjjjjjjjjjjjjjjj

oooooooooooooo ggggggggggggggggggggggggggg

ƒƒ ƒƒ ƒƒ

ƒƒ

jjjjjjjjjjjjjjjjjjjj

oooooooooooooo

jjjjjjjjjjjjjjjjjjjj

D(210) 210

jjjjjjjjjjjjjjjjjjj

6 oooooooooooooo

OO O

OOO

OOO

OOO

OO

TTT T

TTTT

TTTT

TTTT

TTTT

T

TTT T

TTTT

TTTT

TTTT

TTT

OO O

OOO

OOO

OOO

oooooooooooooo

jjjjjjjjjjjjjjjjjjjjj

ƒƒ ƒƒ

ƒƒ

ƒ

oooooooooooooo

10 ggggggggggggggggggggggggggg

W 5

WWWWW

WWWWW

WWWWW

WWWWW

WWWWW

W

ƒƒ

ƒƒ ƒƒ ƒƒ

oooooooooooo

oooooooooooooo

ggggggggggggggggggggggggggg

WWWWW

WWWWW

WWWWW

WWWWW

WWWWWW

W

ggggggggggggggggggggggggggg

WWWWW

WWWWW

WWWWW

WWWWW

WWWWW

WW W

WWWWW

WWWWW

WWWWW

WWWWW

WWWWWW

W

ooooooooooooo

WWWWW

WWWWW

WWWWW

WWWWW

WWWWW

WW

WWWWW

WWWWW

WWWWW

WWWWW

WWWWWW

W

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.

  1. En el conjunto D = { 0 , a, b, c, 1 } los átomos son a, b y c. Aquí todo elemento salvo el cero se puede escribir como supremo de átomos. Sin embargo, la forma de escribirlo no es única. Por ejemplo, se tiene que 1 = a ∨ b = a ∨ c = b ∨ c = a ∨ b ∨ c. Es decir, hemos encontrado cuatro formas distintas de escribir 1 como supremo de átomos.

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.

1.1.2. Funciones y expresiones booleanas

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.

  1. La aplicación f : B → B dada por f (0) = 1; f (1) = 0 es una función booleana en 1 variable (es decir, un elemento de F 1. Esta aplicación responde a la expresión f (x) = x.

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:

  1. e 1 + (e 2 + e 3 ) = (e 1 + e 2 ) + e 3 e 1 · (e 2 · e 3 ) = (e 1 · e 2 ) · e 3
  2. e 1 + e 2 = e 2 + e 1 e 1 · e 2 = e 2 · e 1
  3. e 1 + e 1 = e 1 e 1 · e 1 = e 1
  4. e 1 · (e 2 + e 3 ) = e 1 · e 2 + e 1 · e 3 e 1 + (e 2 · e 3 ) = (e 1 + e 2 ) · (e 1 + e 3 )
  5. e 1 + e 2 = e 1 · e 2 e 1 · e 2 = e 1 + e 2
  6. e 1 + e 1 = 1 e 1 · e 1 = 0
  7. e 1 + 1 = 1 e 1 · 0 = 0
  8. e 1 + 0 = e 1 e 1 · 1 = e 1
  9. 1 = 0 0 = 1

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

14 ÁLGEBRAS DE BOOLE

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.

  1. Si queremos emplear el primer método, evaluamos la función en los cuatro elementos de B^2. Nos queda:

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.

  1. Empleamos ahora el segundo método. En este caso f (x, y) = x + y = x · 1 + 1 · y (equivalencias 8 y 2) = x(y + y) + (x + x)y (equivalencia 6) = x y + x y + x y + x y (equivalencias 4 y 2) = x y + x y + x y + x y (equivalencia 2) = x y + x y + x y (equivalencia 3).

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.

  1. En un ejemplo anterior hemos expresado la función booleana f : B^2 → B dada por f (x, y) = x + y como suma de minterms, obteniéndose que f (x, y) = x y + x y + x y. Empleando la notación recién introducida nos quedaría f (x, y) = m 3 + m 2 + m 1 , o si preferimos f (x, y) = m 1 + m 2 + m 3. También se suele emplear la notación f (x, y) =

m(1, 2 , 3).

  1. Vamos a escribir los 16 elementos del álgebra de Boole F 2 :

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:

  • f 0 = 0.
  • f 1 = m 3 , es decir, f 1 (x, y) = x y.
  • f 2 = m 2 , es decir, f 2 (x, y) = x y.

Departamento de Álgebra

16 ÁLGEBRAS DE BOOLE

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.

1.1.4. Puertas lógicas

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

20 ÁLGEBRAS DE BOOLE

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