Algebra de Boole

Ya lo sé... sí, la palabra álgebra asusta, muchos lectores ni siquiera pincharán en un enlace donde aparezca ese término, por miedo a encontrar un motón de conceptos incomprensibles como teorema, axioma, postulado, y otras lindezas.

He de decir que, no se trata de un tema trivial, pero dentro de lo que se refiere a la matemática, tal vez sea uno de los más simples y curiosos. Y sobre todo, para los programadores, uno de los más interesantes y útiles.

¿Qué es la lógica?

Según el diccionario:

Ciencia que expone las leyes, modos y formas del conocimiento científico.

Esto está bien, al menos para los que queremos resolver problemas mediante ordenadores, ya que nos ofrece una forma científica de afrontar los problemas que impliquen alguna forma de "pensamiento artificial".

Es decir, si existe una forma racional de afrontar problemas racionales, una forma de meta-raciocinio, (y conseguimos comprenderla y usarla), nos será posible crear programas que resuelvan problemas complejos (y por supuesto, simples).

Tal cosa existe, y las leyes son simples y fáciles de comprender y aplicar. En este artículo intentaremos aproximarnos a las bases para construir, si es posible, programas pensantes.

Pero no estamos hablando de creatividad ni de inventiva, esa parte del pensamiento humano no está sistematizada, y se escapa, (al menos por ahora) de nuestras perspectivas. Hablamos de pensamiento lógico, aquel que nos permite llegar a conclusiones verdaderos a partir de datos verdaderos, y no sólo de una forma experimental, sino para cualquier estado inicial posible.

Pero, recapitulemos.

Historia

La lógica, como todas las disciplinas matemáticas, es un invento humano.

Aristóteles

Para encontrar a los pioneros de la lógica debemos remontarnos a Aristóteles, que fue el primero en formular las reglas que definen el pensamiento. De hecho, a partir de él deberemos avanzar hasta el siglo XIX para encontrar alguna aportación nueva.

A Aristóteles de debemos términos como "silogismo", y las bases del razonamiento lógico.

George Boole

En el siglo XIX, George Boole desarrolló una teoría que se basa en representar las proposiciones lógicas mediante símbolos y asignar valores a las variables de entrada y salida, y que permite crear un álgebra tal que es posible operar usando tales símbolos y valores para obtener resultados correctos.

Este álgebra es una herramienta matemática que, aplicada al pensamiento lógico, permite obtener conclusiones verdaderas a partir de datos verdaderos, del mismo modo que otras disciplinas matemáticas, aplicadas a la física, permiten hacer predicciones sobre el mundo real.

En el álgebra de Boole, tanto los datos como las conclusiones sólo pueden tomar dos valores: verdadero y falso, y, como veremos, el conjunto de proposiciones es muy reducido. Sin embargo, las posibilidades de este modelo de álgebra son sorprendentes.

Valores

En el álgebra de Boole, cualquier dato sólo puede tomar dos valores: verdadero, o '1' y falso o '0'.

Proposiciones

Sólo existen tres operaciones o proposiciones:

  • O, más usado como OR, usa los símbolos '+' y '^', y en conjuntos corresponde con la operación de Union.
  • Y, más usado como AND, usa los símbolos '·' y 'v', y en conjuntos corresponde con la operación de Interseccion.
  • No, más usado como NOT, usa el símbolo '~' y una comilla (') o un superrayado. Corresponde con la negación.

En este artículo usaremos los símbolos '+', '·' y la comilla.

Postulados

Los postulados son proposiciones que se toman como punto de partida para la demostración de teoremas, sin necesidad de que tengan que ser deducidos a partir de otros enunciados, y a menudo, indemostrables.

Por ejemplo, en la geometría de Euclides se parte de cinco postulados desde los que se desarrollan todos los teoremas. El primero de estos postulados dice: "Por dos puntos diferentes sólo se puede trazar una línea recta".

No es necesario demostrar los postulados, puesto que se dan como verdaderos y se usan como cimientos para levantar todo el resto de la matemática.

Los postulados del álgebra de Boole son:

  1. Ley conmutativa. Que se cumple tanto para la operación OR como para la AND:
    a+b=b+a
    a·b=b·a
  2. Ley de identidad o de elementos neutros. El 0 es neutro para la operación OR y el 1 para la AND:
    0+a=a
    1·a=a
  3. Ley distributiva. Cada operación es distributiva con respecto a la otra:
    a·(b+c)=a·b+a·c
    a+b·c=(a+b)·(a+c)
  4. Ley del complementario. Para cada valor existe un complementario, de modo que se cumple:
    a+a'=1
    a·a'=0

Dualidad

Todos los postulados tienen dos formas, y si los analizamos, veremos que cada una de ellas se puede obtener a partir de la otra, intercambiando los '1' por '0' y las operaciones '+' por '·'. Creo que está claro que, en el caso de variables, intercambiar '1' por '0' equivale a aplicar el operador de negación.

Por ejemplo:

a+b=b+a -> a'·b'=b'·a'
0+a=a -> 1·a'=a'
a·(b+c)=a·b+a·c -> a'+(b'·c')=(a'+b')·(a'+c')
a+a'=1 -> a'·a=0


suministrado por FreeFind
Valid HTML 4.0! Valid CSS!