La computadora de papel y lápiz

Tomas de Camino Beck
6 min readSep 11, 2016

La palabra computar, viene del latín computus y computare, lo que significa determinar por medios matemáticos. Más aún computare, está compuesta de “com” que lo que hace es enfatizar sin cambiar significado, y significa junto o calcular, y “putare” que significa suponer. Entonces computar, significa, suponer, calcular o determinar por medios matemáticos. Esta palabra se ha usado por siglos, y es hasta la aparición de la computadora digital que usamos ese nombre para lo que hoy conocemos como computadoras.

Con hacer cómputos nos referimos a tomar una entrada cualquiera, aplicar un procedimiento matemático o lógico, y generar un resultado.

Para poder hacerlo, necesitamos tener un programa, que describe de alguna manera reglas de operación, por lo general le llamamos el “código” porque de alguna manera codifica lo que queremos hacer, para que sea un procedimiento repetitivo. También ocupamos memoria para almacenar la entrada y los resultados de las operaciones y una unidad de procesamiento que lo junta todo. Esa unidad tiene un reloj, que segundo a segundo, toma una porción de memoria, y le aplica la regla o procedimiento, y lo hace hasta que exista una regla que determine que no lo haga más.

Bueno, todo esto suena algo abstracto, y lo es. Para entenderlo mejor, hagamos cómputos con lápiz y una hoja de papel, nosotros mismos seremos la unidad de procesamiento, que lee el programa la memoria y hace los cálculos. Primero supongamos que la memoria es una lista de espacios vacíos como en la siguiente figura.

En este caso, tenemos 17 celdas, que pueden estar rellenas (negras) o vacías (blancas). Cada vez que hagamos un cálculo, vamos a leer celda por celda, y vamos a escribir nuestros cómputos en una línea nueva, para recordar lo que teníamos antes. Nuestro programa o código, se escribe como un conjunto de reglas de cambio, dado el color de la celda, y sus dos celdas vecinas. Entonces, una regla se ve algo como esto,

Así podemos construir varias reglas. Por ejemplo construyamos un conjunto de 8 reglas, que serán nuestro programa,

Por ejemplo la regla 1 dice que si la celda es negra y la de la izquierda y derecha son negras, entonces el cómputo consiste en cambiarla a blanca. De manera similar la 2 dice que si la celda es negra pero a la izquierda la celda es negra y la de la derecha es blanca, entonces la celda se debe mantener negra, y así sucesivamente con las otras reglas. Este procedimiento se aplica a todas las celdas de la memoria, y una vez terminada, se vuelve a aplicar al resultado y así, de forma recursiva.

Apliquemos ahora este procedimiento a mano, comenzando con una entrada en memoria, que es una celda negra en el centro de la lista de celdas de la memoria. Tenemos que calcular una nueva fila, la fila 2, utilizando el conjunto de 8 reglas, que les propuse anteriormente. Empezamos por la derecha, y tenemos que calcular la fila 2, mirando grupos de tres celdas,

Revisamos las reglas, y según la regla 8, la celda se queda blanca, ahora nos movemos una celda a la derecha y revisamos,

Otra vez se plaica la regla 8. Así nos seguimos moviendo celda a celda. Al llegar cerca de la celda del centro,

Ahora aplica la regla 7, entonces pintamos la celda color negro. La siguiente,

La regla que aplica es la 6, por tanto no cambiamos la celda de color, un paso más,

Ahora aplica la regla 4, así que cambiamos la celda a negra. y así continuamos hasta el final de la fila, para obtener,

Así seguimos calculando más filas, agregando una fila por cada vez que aplicamos las reglas, como se ve en el siguiente video,

Cada vez que calculamos una fila, en el mundo de computación se le conce como una iteración. Al final con más celdas, y más iteraciones, veremos algo como esto

y si seguimos,

No se a ustedes, pero desde que vi esto por primera vez, me pareció simplemente hermoso. De hecho forma un fractal, una imagen auto-similar, por tanto si seguimos calculando filas, seguirá revelándose el mismo patrón a diferentes escalas. Lo que siempre me ha parecido impresionante es que, en esto tan sencillo, se esconde la esencia de las matemáticas, la física y las computadoras. También demuestra cómo patrones complejos, o casi que diseñados, emergen de reglas simples.

¿Que pasa si cambiamos la regla? mucho, por ejemplo veamos los patrones que se generan con diferentes reglas, siempre iniciando con una celda negra al centro en la primera fila,

Tomado del Libro de Stephen Wolfram, A New Kind of Science.

Allí vemos el que acabamos de hacer con el nombre “rule 90”.

Esta es la forma en que trabaja una computadora, ni más ni menos. Tanto así, que hay una regla en particular que puede hacer todos los mismos cómputos que cualquier computadora que conocemos hoy. La regla es esta,

Se le conoce como la regla 110. Es decir se puede construir lo que se llama una computadora universal, una computadora capaz de computar todas las cosas que sean computables.

Les recomiendo leer el material de Stephen Wolfram que ha sido pionero en este tipo de modelos matemáticos y computacionales, y que ha publicado un libro interesante que se llama “A New Kind of Science”, y está disponible totalmente en línea. También les dejo este link a mi tesis de maestría en computación, pues es de las pocas cosas que hay escritas en español sobre este tipo de modelos matemáticos que se llaman autómatas celulares.

¿Se animan a hacer el cálculo de la regla 110? Les dejo con una hoja cuadriculada y una para que escriban reglas, para que lo hagan…

--

--

Tomas de Camino Beck

Professor Math, Computer, Science, Music & Creative Thinking. Fundación Costa Rica para la Innovación