Hace un tiempo estuvimos recordando las hazañas de Leibnitz en el siglo XVII, uno de los primeros hombres que imaginaron algo parecido a un ordenador. Pero en el camino hasta la creación de un ordenador como el que estás usando ha intervenido mucha gente. Una de las aportaciones más importantes fue la de George Boole que sentó las bases de la lógica matemática que utilizan los ordenadores y sistemas digitales de hoy en día.
George Boole nació en el seno de una familia modesta en el Siglo XIX, sus padres enseguida notaron su talento y le ayudaron a desarrollar sus capacidades de forma autodidacta. Según cuenta la leyenda fue mientras caminaba por un prado cuando tuvo la idea de que se podrían expresar las relaciones lógicas que postuló Aristóteles dos milenios antes de forma algebraica.
Pero cuando realmente le vino la inspiración a Boole fue cuando a partir de unas discusiones entre sus amigos De Morgan y Hamilton comenzó a desarrollar una nueva lógica a partir de la lógica de Aristóteles. Comenzó usando letras para representar a las clases de la lógica clásica de Aristóteles. Consiste básicamente en utilizar símbolos para representar realidades, esto puede parecer muy simple pero tiene muchas consecuencias. Por ejemplo, si x representa a humanos e y representa a las cosas altas, se define xy como la clase de las cosas que pertenecen a la vez a x y también a y. Por lo tanto xy representaría a los humanos altos. La conclusión inmediata de esto es que si este operador se aplica a una clase sobre si misma obtenemos la misma clase, yy=y o xx=x . Actualmente este operador es conocido como la intersección.
El siguiente paso es sustituir estas clases por números y ver cuando se siguen cumpliendo las propiedades. ¿Cuando es verdadero xx=x ? Resulta que solo se cumple para dos números, el 0 y el 1 (Probadlo si no os lo creéis). Esto nos lleva a que el álgebra de la lógica se convierte en álgebra ordinaria si trabajamos con los valores 0 o 1. Que justamente son los valores con los que trabaja cualquier sistema digital. Boole también definió los operadores + y -. La suma de x + y representa todas las cosas que contienen a x e y (Conocido actualmente como Unión) y la resta x -y los elementos que pertenecen a x y no están en y.
Este párrafo es un poco durrillo, los no aficionados a las matemáticas pueden saltarselo ;). A partir de éstas reglas Boole llegó a conclusiones que muchos siglos antes había llegado Aristóteles, pero en esta ocasión utilizando su propia lógica basada en el 0 y el 1. Por ejemplo, si x-x = 0 y sacamos factor común tenemos que x(1-x)=0. Que en notación de conjuntos sería x INTERSECCION !x = conjunto vacío, es decir que nada puede pertenecer y no pertenecer al mismo tiempo a una clase determinada. Por ejemplo, una cosa no puede ser grande y al a vez ser pequeña. Esto lo denominó Aristóteles como principio de no contradicción. Este tipo de coincidencias animaron a Boole a seguir trabajando en su nueva lógica.
Se podría decir que el sistema lógico de Boole englobaba toda la lógica de Aristóteles pero iba también mucho más allá. Aunque aún quedaba mucho para construir para conseguir el sueño de Leibnitz. Hasta Boole la lógica no había avanzado prácticamente nada desde hacía dos milenios. Pero a partir de los trabajos de éste, la lógica no ha parado de evolucionar a pasos agigantados. Las reglas lógicas de Boole resultan adaptarse perfectamente a un comportamiento digital ya que trabajan con ceros y unos. Por lo que hoy en día la Lógica de Boole esta presente en nuestras vidas cotidianas ya que es la base del funcionamiento de cualquier aparato electrónico digital.
Estas notas sobre la historia de la informática están inspiradas en el libro La computadora Universal de Martin Davis que leí en la asignatura História de la informática impartida por nuestro colega blogero Jose Luis.
Para los interesados en la Lógica de Boole en la wikipedia, tenéis una pequeña introducción.
Gracias por recordarme los «buenos ratos» que pasé estudiando sistemas digitales. 🙂
Jaja. El problema es que si nos hicieran una pequeña introducción histórica a cada cosa que estudiamos quizás lo cogeríamos con un poquito más de interés. No es lo mismo estudiar la lógica de boole sin conocer a George Boole que conociendolo 🙂
Muy buen artículo. El año que viene, en «Organización del Computador» de la Licenciatura en Ciencias de la Computación, me toca ver todo eso. Si bien, gracias a unos amigos, lo he estado ojeando; ahora parece muchísimo más interesante.
Gracias.
P.D.: tendrías que aclarar que x-x no se puede factorizar como x(1-x); pero que como x^2=xx=x entonces sí vale la igualdad
Un gran genio de la historia. Hacen falta muchos como estos 😉
Así es … hace falta gente que coja cosas y se las replanteen … x ejemplo una lógica que en vez de ser 0 o 1 sea 0 1 o indeterminado … o rayadas asín a ver qué sale …
Lo que comenta albin ya está muy estudiado también. Para aplicarlo cuando lleguen los ordenadores cuánticos jeje
No, hablaba de un paso intermedio, no infinitos estados rollo cuantico, ni rollo lógica difusa, sino 3 valores, ¿pq 2 y no 3?
Sipes, también está hecho. Se denominan lógicas trivalentes. Existen principalmente dos lógicas de este tipo: la de Luckasiewick y las de Kleen y BoochVar. La diferencia entre las dos lógicas trivalentes es como consideran los operadores, por ejemplo, algo que es Indeterminado Implica algo Indeterminado es una proposición ¿Verdadera? ¿Medio Falsa?.
En notación matemática sería:
A->B
I->I = V (Segun Luckasiewick)
I->I = I (según Kleene y Boochvar)
Luckasievick dice que es verdadero y los otros dicen que es indeterminado.
Bufff, que denso y no creo que te haya quedado claro. «Prometo» 😉 un post sobre el tema para aclarar las cositas.
Pos … waiting post … pq me has dejao pilladismo.
gracias por la introducccion y por ser tan clara , precisa y sensilla ala vez……