El Juego de la Vida de Conway y la compleja belleza de lo simple

Fran Ramírez    30 abril, 2020

En octubre de 1970, cuando los ordenadores eran todavía un bien accesible sólo a grandes corporaciones, universidades y científicos, un curioso artículo apareció en la maravillosa revista Scientific American o Investigación y Ciencia, como se llama en España. Un matemático llamado John Horton Conway, propuso un simple juego basado en autómatas celulares. Pero permitidme un pequeño inciso antes de continuar hablando de dicho artículo.

Los autómatas celulares

Los autómatas celulares darían para otro artículo, ya que estos fueron inventados por Konrad Zuse (para algunos, el verdadero creador del primer ordenador y pionero de la computación en general) y Stanislaw Ulam (matemático polaco que participó en el Proyecto Manhattan, entre otros) . Pero además, los autómatas celulares fueron puestos en práctica, nada más y nada menos que por John Von Neumann. Increíble ¿verdad? … sólo falta que también aparezca Alan Turing en esta historia. Pues sigue leyendo porque también existe una estrecha relación con él y con su trabajo.

Un artículo en la sección “Juegos Matemáticos”

Volviendo al artículo de Conway, llama la atención que ni siquiera fue un artículo como tal, sino que apareció en una sección periódica denominada “Juegos Matemáticos” (Mathematical Games), en la cual se publicaban desafíos al más puro estilo de pasatiempos de lógica. Debido a sus sencillas reglas (que ahora veremos a continuación), era fácil replicarlo en una simple hoja de papel cuadriculado, ya que no todo el mundo tenía un ordenador para ejecutar el algoritmo como he comentado al comienzo del artículo. Así que en principio, los resultados no eran especialmente llamativos, pero sí llamó la atención de muchos investigadores y lectores de la revista que vieron su potencial. Pero la verdadera revolución llegó cuando se popularizó el uso del ordenador personal (a partir de 1977 con la aparición del Apple II en concreto, por su fuerte impacto en los EEUU) y fue en este punto cuando realmente se mostró la verdadera magia de Conway y su Juego de la Vida.

Figura 2. Portada del número de Scientific American de octubre de 1970 donde se publicó por primera vez el Juego de la Vida de Conway. Fuente.
Figura 2. Portada del número de Scientific American de octubre de 1970 donde se publicó por primera vez el Juego de la Vida de Conway. Fuente.

El Juego de la Vida

Pero antes de continuar, vamos a ver en qué consiste este “pasatiempo”. El universo del juego es una matriz rectangular de dos dimensiones con diferentes celdas o células. Cada una de estas celdas, pueden estar vivas o muertas, es decir, activas o desactivadas a nivel de pixel. Por cada turno del juego (generación), estas celdas podrán estar vivas o muertas. Este estado de vivo o muerto de una celda dependerá de sus otras ocho celdas que la rodean por completo. Las celdas interactúan con las otras ocho adyacentes (llamadas vecinos) tanto de manera horizontal, vertical o diagonal. Vamos a enumerar los posibles estados de una celda en cada paso o generación:

  1. Una celda viva que tenga menos de dos vecinos vivos, muere (despoblación)
  2. Una celda viva con dos o tres celdas vivas como vecinos vivos, pasa a la siguiente generación.
  3. Cualquier celda muerta que tenga exactamente tres vecinos vivos, vuelve a la vida (reproducción)
  4. Cualquier celda viva con más de tres vecinos vivos, muere (sobrepoblación)

Nada más. Estas son las simples cuatro reglas del Juego de la Vida de Conway. Pero la mejor forma de comprobar su funcionamiento y ver los espectaculares resultados, es poniéndonos manos a la obra y ejecutarlo en algún emulador. Existen miles de simuladores del Juego de la Vida de Conway. En mi caso utilizaré uno Open Source llamado Golly y que podéis descargar desde aquí. En la imagen siguiente se puede apreciar el estado inicial de cuatro autómatas diferentes. Comienza por la generación 0 y a la derecha su evolución después de un salto generacional:

Figura 3. Salto generacional de cuatro autómatas sencillos dentro del Juego de la Vida de Conway.
Figura 3. Salto generacional de cuatro autómatas sencillos dentro del Juego de la Vida de Conway.

Aplicando las reglas anteriormente enumeradas, podemos comprobar fácilmente que el primer autómata (a), deriva a una sola celda (o célula). En concreto, podemos comprobar que la celda enumerada como “0” muere al tener sólo un vecino, “1” (primera regla), la celda “1” sobrevive ya que tiene dos vecinos, “0” y “2” (regla número dos) y finalmente la celda “2” también muere al tener sólo un vecino, en este caso la celda “1”:

Figura 4. Detalle del primer autómata y su evolución en un salto generacional.
Figura 4. Detalle del primer autómata y su evolución en un salto generacional.

En el caso del autómata (b) aplicamos las mismas reglas, la primera se aplica a las celdas “0” y “2” (es decir, mueren), la celda “1” sobrevive gracias a la regla número dos y vemos que aparece una nueva celda, la número “3”. Esto es debido a la tercera regla, una celda muerta que tenga tres (y sólo tres) vecinos vivos (la celda marcada con una X) vuelve a la vida (la celda número “3”):

Figura 5. Detalle del segundo autómata y su evolución, donde se genera una nueva celda.
Figura 5. Detalle del segundo autómata y su evolución, donde se genera una nueva celda.

El caso del autómata (c) nos va a permitir introducir la cuarta regla, donde vemos que las celdas “1”,”3″,”4″ y “6” desaparecen por superpoblación. Destacar que, por ejemplo, la celda “1” tiene como vecinos la “0”,”2″,”3″ y “4” (en diagonal también cuenta). Pero además comprobamos que se cumple también la regla número tres, dando lugar a tres nuevas celdas, marcadas con un X en la primera generación y luego numeradas como “8”,”9″, “10” y “11”. Las celdas “0”, “2”, “5” y “7” sobreviven a esta generación gracias a la regla número dos:

Figura 6. Evolución del autómata donde aparece la cuarta regla, superpoblación.
Figura 6. Evolución del autómata donde aparece la cuarta regla, superpoblación.

Finalmente, el autómata (d) podemos comprobar es parecido al (b) donde se aplican las reglas primera, segunda y tercera. He incluido este autómata (d) ya que forma parte de estructuras mucho más complejas que ahora veremos a continuación. Hasta aquí vemos que la base es muy sencilla. La magia aparece cuando dejamos que pasen varias generaciones y los autómatas empiezan a evolucionar, interactuando entre ellos y conectándose dando lugar a otras estructuras más complejas. De hecho, el ejemplo inicial que he puesto arriba, con los cuatro simples autómatas, tendrá la siguiente evolución después de 8 generaciones, finalizando en un bucle infinito entre la generación 7 y 8 continuo:

Figura 7. Estado final después de ejecutar 8 generaciones, donde se crea un bucle entre el autómata de la generación 7 y 8.
Figura 7. Estado final después de ejecutar 8 generaciones, donde se crea un bucle entre el autómata de la generación 7 y 8.

Una animación completa del proceso

En el siguiente vídeo se muestra la animación completa de todo el proceso:

Aparecen nuevos patrones

Después de que miles de usuarios por todo el mundo comenzaran a experimentar, aparecieron diferentes patrones de autómatas los cuales sirven para realizar una función o tarea específica. De hecho, los primeros de estos patrones para autómatas se identificaron sin el uso de ordenadores, es decir, dibujando o utilizando un tablero del tipo del juego “Go” para ir desplegando las diferentes generaciones hasta que dicho patrón se estabilizara. Pero claro, como ahora veremos, hay patrones que requieren varios cientos o miles de generaciones para llegar a esa estabilización y por eso, no aparecieron hasta que aparecieron los ordenadores personales los cuales facilitaron enormemente el trabajo.

Glider o planeador

El primer patrón descubierto por el mismo Conway fue el llamado “glider” o “planeador”. Este tipo de autómata tiene la característica de poder moverse o desplazarse por toda la rejilla en una dirección concreta. De hecho, el “glider” inagura una clase propia del Juego de la Vida que se les llamó “naves espaciales” o “spaceships”, los cuales tienen dicha característica del desplazamiento. En este vídeo podéis ver las primeras “spaceships” descubiertas en los 70, incluido el “glider” realizadas con Golly:

Pero claro, esto no acaba aquí, de hecho, sólo acabamos de empezar ;). Existen otras entidades de autómatas como por ejemplo los objetos estáticos, osciladores, etc. Los cuales a su vez tienen también sub-categorías. También encontramos otro tipo de patrón llamados “armas” o “guns”, los cuales son estacionarios, pero pueden fabricar “gliders” o “spacechips”, es decir, auténticas fábricas de estos autómatas. Los “gliders” son especialmente interesantes cuando interactúan con otros objetos en la rejilla. De hecho, estos de utilizan para generar puertas lógicas (AND, OR, etc), contadores, flip-flops, registros, etc. Es decir, y aquí viene la conexión con Alan Turing que nos faltaba, tienen el mismo poder computacional que la Máquina Universal de Turing.

La conexión con Turing

Es decir, es Turing completo (“Turing complete”) lo que implica que el Juego de la Vida de Conway es capaz de implementar cualquier programa o algoritmo que nos podamos imaginar. 

Y claro, con el poder computacional al alcance de todos hoy día, la comunidad geek mundial se ha lanzado a crear patrones espectaculares utilizando los autómatas de Conway. De hecho, existe incluso la implementación de una Máquina de Turing totalmente operativa, la cual podéis ver en el siguiente vídeo:

Y para comprobar que se puede implementar cualquier cosa, aquí tenéis otro vídeo donde se crea un reloj digital totalmente funcional:

Pero ¿para qué quedarnos en un simple reloj digital? ¿no es Turing Complete?, pues ¡vamos a crear un ordenador completo!. En concreto, en el siguiente vídeo se puede ver la implementación de este ordenador programable ejecutando la secuencia de Fibonacci:

Entornos más complejos, nuevas reglas

Es increíble que, partiendo de tres reglas simples, podamos llegar este tipo de estructuras extremadamente complejas. El Juego de la Vida de Conway nos demuestra el hecho de que dicha complejidad puede evolucionar partiendo de una simplicidad máxima. Y por supuesto, como era de esperar, el Juego de la Vida ha evolucionado a otros entornos más complejos con nuevas reglas. Por ejemplo, podemos encontrar:

  • HighLife: mismas reglas que el original pero añade una adicional, una celda muerta vuelve a la vida si se rodea de otras 6 vivas.
  • Wireword: para simulaciones eléctricas y electrónicas
  • The Immigration Game: muy similar al original pero añade que las nuevas celdas generadas tendrán un color que dependerá del número de dichas celdas que la rodean con ese mismo color.
  • The Rainbow Game Of Life. Es parecido al de Immigration Game pero esta vez las celdas están coloreadas en función de la media de los valores de colores de sus celdas parientes. Por ejemplo, si una celda que acaba de nacer tiene dos celdas negras y una blanca como vecinas, su color será gris. Esto que parece tan simple, añade un componente similar al genético a la hora de herencia de los colores, lo que abre otro camino de investigación.
  • Rule 30. En este caso, en vez de ser de dos dimensiones, son de una. Este en concreto fue desarrollado por el prestigioso matemático Stephen Wolfram, y genera complejos patrones del tipo fractal y caótico.
  • 3D Life. Una variante del juego original de 2D esta vez en 3D, solo que ajustados a esta nueva dimensión. Además de la espectacularidad de las imágenes generadas, también abre un nuevo campo de investigación matemática.

Una forma de aprender a programar

El Juego de la Vida de Conway siempre ha sido, además de un apasionante campo de investigación, una forma sencilla, pero a la vez muy instructiva a la hora de aprender a programar. Existen cientos de implementaciones de los algoritmos y su mecánica está prácticamente todos los lenguajes de programación conocidos. Por cierto, no sé si os habéis dado cuenta, pero el emblema de la cultura hacker, creado por Eric Raymond en 2003 es exactamente el símbolo del glider” en homenaje al Juego de la Vida de Conway. Personalmente, me parece la mejor elección posible.

Figura 8. Símbolo que representa la cultura hacker basado en el "glider" de Conway.
Figura 8. Símbolo que representa la cultura hacker basado en el “glider” de Conway.

Homenaje a John Horton Conway

Lamentablemente, Jonh Horton Conway falleció el 11 de abril del 2020, pero nunca olvidaremos su legado, no sólo del Juego de la Vida, también otros grandes avances en grupos finitos, teoría de los números, teoría de juegos, etc. Sirva este artículo como homenaje a un genio que cambió la vida a tantas personas orientándolas tanto a la programación como a las matemáticas. De hecho, aún recuerdo cuando iba con mi amigo Alberto mientras estábamos en la Universidad, a las bibliotecas de otras carreras (sobre todo Medicina) para buscar números de la revista Investigación de Ciencia y fotocopiar los artículos de Conway así como otros muy interesantes. De hecho, había otro juego similar llamado Core Wars, donde diferentes programas se batían en duelo dentro de otra matriz, al más puro estilo Tron y que posiblemente fue la base de los actuales virus informáticos, pero esto mejor lo contamos en otro artículo 😉

Para mantenerte al día con LUCA visita nuestra página web suscríbete a LUCA Data Speaks o síguenos en TwitterLinkedIn YouTube.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *