El juego de la vida de Conway

El Juego de la Vida es un autómata celular. Se trata de un modelo matemático que evoluciona paso a paso en una rejilla o tablero de tamaño infinito en dos dimensiones. Se compone de celdillas, llamadas células, que pueden cambiar, o no, según unas sencillas normas de comportamiento.


El Juego de la Vida fue inventado por John Conway.

John Horton Conway (1937-2020). Matemático que trabajó en teoría de conjuntos (teoría de conjuntos finitos), teoría de nudos, teoría de números, teoría de juegos y teoría de códigos. 

Muy conocido por su teoría de juegos combinatorios, en particular por ser el creador en 1970 del juego de la vida. También es uno de los inventores del juego del drago, así como del Phutball y realizó análisis detallados de muchos otros juegos y problemas, como el cubo de SomaInventó un nuevo sistema numérico, los números surreales, los cuales se encuentran estrechamente relacionados con ciertos juegos y han sido objeto de una novela matemática por Donald Knuth. También ideó una nomenclatura para números excesivamente largos, la nowiki o flechas encadenadas de Conway.

Entre las curiosidades de este juego está el hecho de que solo puedes plantear la configuración de partida. Una vez iniciado el juego, sólo puedes actuar como espectador. Por esto se dice que se trata de un juego de cero jugadores. ¡No se puede ganar, ni perder!

Ha sido implementado en varios lenguajes de programación. Aquí está la versión en python.

Definiciones

Autómata Celular (AC): 

Los Autómatas Celulares (AC) fueron descubiertos por John Von Neuman en los años 40. Estaba tratando de crear un modelo de máquina que se autoreplicase. Llegó a un modelo matemático que con reglas complicadas en el que las "ceĺulas" componentes se reproducían, crecían y morían con el trascurso del tiempo.

Un autómata celular es un modelo matemático dinámico, compuesto por un conjunto de celdas o células que adquieren distintos estados o valores. Estos estados son alterados en función del tiempo, de modo que las células van evolucionando, según una determinada función matemática cuyos valores  dependen de los estados de las células vecinas.

Elementos de un Autómata Celular:

  • Arreglo Regular (rejilla): 

Plano de dos dimensiones o un espacio n-dimensional, este es el espacio de evoluciones, y cada división homogénea, cuadrícula, es llamada célula. 

  • Conjunto de Estados:

Cada célula toma un valor, o un color, de este conjunto de estados. el arreglo toma un valor de este conjunto de estados. 

  • Configuración Inicial:

Se asigna un estado a cada una de las células del espacio de evolución inicial del sistema. 

  • Vecindades:

Define el conjunto contiguo de células y posición relativa respecto a cada una de ellas. A cada vecindad diferente corresponde un elemento del conjunto de estados. 

  • Función Local:

Es la regla de evolución que determina el comportamiento del AC. Se conforma de una célula central y sus vecindades. Define como debe cambiar de estado cada célula dependiendo de los estados anteriores de sus vecindades. Puede ser una expresión algebraica o una simple regla de evolución.

Juego de la Vida

El Juego de la vida denota un ejemplo de auto-replicación y auto-organización similar a los sistemas biológicos. Por esta razón los científicos estudiaron la implementación del juego, observando la forma en la que complejos patrones pueden surgir de la definición de una serie de reglas muy sencillas.

Reglas del juego de la Vida:

  • Nacimiento: se reemplaza una célula muerta por una viva si dicha célula tiene exactamente 3 vecinos vivos.
  • Muerte: se reemplaza una célula viva por una muerta si dicha célula no tiene más de 1 vecino vivo (muerte por aislamiento) o si tiene más de 3 vecinos vivos (muerte por sobrepoblación).
  • Supervivencia: una célula viva permanecerá en ese estado si tiene 2 ó 3 vecinas vivas.


Evolución de grupo de células en el juego de la Vida
 Supervivientes. Cada ficha con dos o tres vecinos vivos sobrevive al siguiente turno.

Es decir: 

· Muertes: Cada célula rodeada por cuatro o más vecinas muere por superpoblación. Pero también las células que tengan solo uno o ningún vecino vivo mueren por aislamiento.

· Nacimientos: Cada celda vacía que tenga exactamente tres vecinos –ni más ni menos- se convierte en una celda de nacimiento. En la siguiente generación, en esa celda vacía aparece una nueva célula.

Con unas reglas tan sencillas, podemos crear un mundo aparentemente "lleno de vida" en el que podemos encontrar grupo de varias o muchas células que se mueven todas a la vez como si se tratara de un animal pluricelular. Otros grupos de células son capaces de reproducirse tras una serie de estadios intermedios que puede durar muchas transformaciones diferentes. Incluso hay estructuras capaces de crear copias de otras estructuras. Estamos frente a un mundo que ha fascinado durante años tanto a científicos como a aficionados. Tenemos el ejemplo perfecto de lo impredecibles y complejos que pueden llegar a ser los resultados de unas reglas en apariencia sencillas.  El resultado final es impredecible si lo dejamos tiempo suficiente, pudiendo llegara una situación estacionaria de no-cambio.

Veamos un ejemplo: 

Partimos de una configuración inicial, semilla, poco simétrica, formada por las iniciales de mi nombre.


Las reglas, aplicadas a este ejemplo, generan  el comportamiento que vemos en la imagen:


Posibles configuraciones intermedias que podemos encontrar:



Dejamos evolucionar el sistema, de acuerdo con las tres reglas del juego y las transformaciones anteriores y obtenemos lo siguiente:


Dejamos que evolucione el autómata durante unos 250 ciclos. Observamos varias cosas:
  • A pesar de tratarse de una configuración inicial poco simétrica, se generan patrones bastante simétricos, aparentemente, respecto a un eje vertical.
  • Pronto se observan alguna estructuras de tres y cuatro células que se estabilizan. Permanecerían así aunque el tiempo tendiera a infinito. 
Aquí puedes realizar tus simulaciones con tu configuración inicial y número de iteraciones que desees.

¿Para qué sirven los autómatas celulares?

Los autómatas celulares (AC) han sido utilizados en diferentes campos de la Ciencia:

En Fisica se emplean AC para la simulación de fenómenos de la Dinámica de Fluidos.

En Biología se han empleado para observar la evolución de cepas bacterianas/víricas, reproducción, auto-organización, evolución...

En el estudio de la Vida Artificial, se emplean como técnicas de modelado de sistemas relacionados con la Lógica Difusa (la lógica difusa (fuzzy logic, en inglés)) permite tomar decisiones más o menos intensas en función de grados intermedios de cumplimiento de una premisa; se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo «hace mucho calor», «no es muy alto», «el ritmo del corazón está un poco acelerado»... que son bastante usados, pero que por esencia no son precisos. 

En la simulación de los modelos de vida artificial: virus informáticos, sistemas de Lindenmayer, la robótica, los autómatas celulares,

En Química se utiliza para el estudio de las cinéticas de reacción y, en Cristalografía, en la simulación del crecimiento de los cristales. 

En informática los AC han permitido a los investigadores construir modelos con los que estudiar fácilmente el procesamiento de información en paralelo así como el diseño de computadoras cuya arquitectura sea basada en principios y materiales biológicos. Hay evidencia de su uso en: simulación de evacuación de barcos y salas de cines, estudio de mercados y efectos de la publicidad, diversión y arte...

Obituario

Por desgracia la pandemia de COVID no respetó la vida de John Conway: El juego macabro del coronavirus se llevó por delante la vida de nuestro protagonita en abril de 2020.

Fue definido por sus colegas como  “el matemático más mágico del mundo”. Muchas de sus grandes contribuciones científicas nacieron de su gran afición a los juegos.

PD: Te aconsejo que juegues un rato en los siguientes simuladores:


Ismael Camarero Sanz.

Dedicado a Sonia Sanz, quien trabajando en las bases de la vida, me inspiró este pequeño artículo de investigación.

__________

Para saber más:

  • Vida artificial:

http://www.scielo.org.mx/scielo.php?script=sci_arttext&pid=S1607-050X2000000300008


  • Mi proyecto de Simulación de Vida Artificial:

https://sites.google.com/view/simulacion-de-vida-artificial


  • Video sobre Simulación del juego de la Vida: 
https://m.youtube.com/watch?v=C2vgICfQawE&feature=endscreen&NR=1


  • Simulador empleado en los vídeos del post:

https://playgameoflife.com/


  • Simulador para dispositivos móviles (Android):
https://play.google.com/store/apps/details?id=com.baiels.gameoflife


  • Otros simuladores:
https://www.dcode.fr/game-of-life

https://academo.org/demos/conways-game-of-life/


Simuladores complejos:

https://www.samcodes.co.uk/project/game-of-life/

https://copy.sh/life/

http://species-simulator.com/en/cellular-automata/game-of-life.php


  • Autómatas Celulares Difusos:

https://www.researchgate.net/publication/338493414_Automatas_Celulares_Difusos


  • Sistemas Complejos:

https://www.comprendamos.org/alephzero/57/sistemas.html


  • Conway hablando del Juego de la Vida:

https://www.microsiervos.com/archivo/juegos-y-diversion/conway-juego-de-la-vida.html

Comentarios

Entradas populares de este blog

La garra de Arquímedes

Difusión: Ley de Fick

¿Cómo se forma una cascada?