Autómatas celulares

En 1985 hice mi primer programa capaz de emular autómatas celulares unidimensionales (o autómatas lineales, para simplificar). Lo hice en Basic, en una TI 99/4a, mi primera computadora personal, y lo publiqué en Computaxión, el suplemento de Juegos para Gente de Mente del que vengo hablando hace unas semanas. Ahora hice otro programa, esta vez para la web, con muchas más opciones que aquel intento primitivo en una máquina con poca memoria. Pero la épica pionera de 1985 ya no se repite. La épica de ahora es muy otra: poder hacer esto con la ayuda extraordinaria de una IA (en este caso, Claude.ai). Cómo cambia el mundo en cuarenta años.

La imagen de arriba corresponde a un autómata generado con mi programa nuevo. La de acá abajo es la tapa de Computaxión, con un autómata generado con mi programa de 1985.

¿De qué se trata?

Un autómata celular unidimensional consiste en una línea de células, cada una con un estado determinado (en nuestro caso, 0, 1, o 2). Esa línea evoluciona en generaciones: nuevas líneas que se van sumando debajo de la primera, donde nuestras células iniciales van cambiando de estado según una serie de reglas.

El proceso es así para cada generación:

1. Se examina cada célula junto a su vecindario.
2. Se suman los valores de esas células (incluyendo o no la célula central, según el tipo de autómata).
3. Se aplica la regla correspondiente a esa suma.
4. Se crea una nueva generación con los resultados de todas las células.

Tipos de vecindarios

Modelo de 5 células: toma en cuenta la célula actual más dos células a cada lado.
Modelo de 4 células: solo considera las cuatro células vecinas, excluyendo la célula central.

Las reglas

Cada autómata se define por su conjunto de reglas. Para el modelo de 5 células, tenemos 11 reglas (correspondientes a las sumas de 0 a 10). Para el modelo de 4 células, tenemos 9 reglas (correspondientes a las sumas de 0 a 8).

Cada regla determina qué estado (0, 1, o 2) debe tomar una célula cuando la suma de su vecindario alcanza un valor determinado.

Con solo cambiar estas reglas, podemos crear universos completamente diferentes.

Complejidad emergente

Aunque las reglas son simples, los patrones resultantes pueden ser extraordinariamente complejos. Los autómatas celulares pueden exhibir:

Periodicidad: patrones que se repiten cada cierto número de generaciones.
Estructuras viajeras: patrones que se mueven a través del espacio
Caos determinista: comportamiento aparentemente aleatorio generado por reglas deterministas
Auto-organización: emergencia de estructuras ordenadas a partir de condiciones iniciales aleatorias

Experimentación y descubrimiento

La belleza de los autómatas celulares está en su capacidad de sorprender. Reglas muy parecidas pueden llevar a comportamientos radicalmente diferentes. La experimentación sistemática con diferentes reglas (cambiar cómo responde cada suma), estados iniciales (diferentes configuraciones de partida) y colores (distintas paletas para los estados 0, 1 y 2) son capaces de revelar fenómenos inesperados y hermosos patrones emergentes.

La cuestión es ensayo y error, ensayo y error, ensayo y error, hasta dar con algo que nos guste.

El nuevo programa permite guardar reglas, inicios y paletas para seguir experimentando con los más prometedores. Y también exportar e importar esos mismos datos para compartirlos con otros expedicionarios.

Para más información sobre autómatas celulares en general, incluyendo datos históricos, ver este artículo en Wikipedia: Autómata celular

Link a mi programa: Autómatas celulares

Author: Eduardo Abel Gimenez

Dejá una respuesta