¿Te acuerdas de... el juego de la vida?

¿Te acuerdas de... el juego de la vida?
Facebook Twitter Flipboard E-mail


El Juego de la Vida es un autómata celular ideado por el matemático inglés John Horton Conway. No es fácil definirlo en una sola frase, ya que para unos es un juego, para otros no pasa de una curiosidad, hay quien lo describirá como una máquina universal de Turing y para otros no pasará de un mero protector de pantalla muy friki.

Su funcionamiento es muy simple y da lugar a una combinatoria bellamente compleja: un tablero bidimensional poblado por “células” y regido por turnos. En cada paso, nacerá una nueva célula en cada casilla vacía que sea adyacente a tres células, como si fuera fruto de un ménage à trois intraorgánico, mientras que aquellas células que sean adyacentes a cuatro o más de sus congéneres morirán por superpoblación de su hábitat, y si lo son a menos de dos morirán de soledad.

Más que juego es un entretenimiento, ya que siendo estrictos se trata de un juego de 0 jugadores, donde una vez establecidas las condiciones de población celular iniciales, todo el desarrollo tiene lugar de forma autónoma y no se puede intervenir para cambiar su estado, del mismo modo que tampoco se puede definir una victoria o derrota, ya que la actividad puede terminar con la muerte de todas las células, puede repetirse en bucle o puede vagar por estados aleatorios de forma indefinida sin llegar a estabilizarse. Así, podríamos definirnos retos como la mayor cantidad de células que acaben llegando a la muerte, o la menor cantidad que nos produzca un patrón inestable.


Figuras conocidas

Como es de esperar para un sistema que existe desde 1970, entre tanto caos de células naciendo y muriendo a lo largo del tablero, existe una gran cantidad de patrones que ya son más que conocidos entre los fanáticos de Life (como se le suele conocer en inglés), por tener propiedades singulares.

Formas fijas

Formas estáticas que ni mueren ni crecen, porque cada una de sus células está en contacto con otras dos o tres, con lo cual se asegura su existencia eterna. Las más básicas, como el bloque y el barco, surgieron de las configuraciones iniciales de los diseñadores de tableros, mientras que otras fueron apareciendo como consecuencia de la desintegración de patrones dinámicos.

Patrones fijos del juego de la vida

Formas oscilantes

Similares a las fijas ya que no se desplazan por el tablero, pero sí que varían su forma. Las más habituales recuperan su forma original en tan sólo dos pasos. Se trata del parpadeador, una línea de tres células de largo que oscila entre la posición vertical y la horizontal; el sapo, formado por dos líneas de tres células que se abre y cierran; y algunos osciladores más complejos como la estrella, la cruz, etc.

Formas deslizantes

Si todos los patrones se mantuviesen en su sitio, el juego sería bastante aburrido. Por suerte existen otros conjuntos de células que en sus distintas generaciones evolucionan trasladándose a lo largo del tablero, por lo que han acabado recibiendo nombres como planeador o nave espacial ligera.

Animación de los patrones básicos del Juego de la Vida

Más allá de Conway

Desde el punto de vista de la programación, el Juego de la Vida nos presenta muchos puntos de interés. El más simple, obviamente, es el saber generar el algoritmo de transacción de estados dada una configuración inicial, pero una vez conseguido éste, se pueden plantear nuevos retos, algunos de los cuales de hecho son bastante comunes en las prácticas de diversas asignaturas de las carreras de Ingeniería Informática y similares.

Por ejemplo, podemos plantear la búsqueda de un oscilador de un periodo determinado, y encontrar sus soluciones mediante técnicas de backtracking o de branch and bound. O podemos añadir características a las células para que no sean un mero bit donde cero o uno representen viva o muerta, sino por ejemplo dotarlas de sexo y variar las reglas iniciales de reproducción celular propuestas por Conway en su particular visión de los autómatas celulares descubiertos por John von Neumann.

Es más, al ser el Juego de la Vida un ejemplo de máquina universal de Turing, podemos utilizarlo para ejecutar sobre él algoritmos simples. Ésto es posible gracias a que algunos de los patrones fijos, como el bloque, pueden desplazarse al interaccionar con otros patrones, lo que nos permitiría utilizarlos como contador, usando como valor la cantidad de espacios recorridos.

Aleatoriedad para romper el determinismo

El concepto clásico del Juego de la Vida lo convierte en un autómata determinista, ya que ante una misma entrada (una disposición inicial de las células vivas), obtenemos siempre la misma salida. Pero, ¿y si queremos introducir aleatoriedad? Al fin y al cabo, el sistema real al que imita el autómata celular es indeterminista, y hacer que nuestro modelo también lo sea nos puede ayudar a comprender mejor la realidad a la que representa.

Una forma de lograrlo sería dotando a las células de un cromosoma, y mediante los principios básicos de los algoritmos genéticos: selección, mutación y recombinación de genes, formar un universo donde cada célula tenga distintas características que la muevan a comportarse de una forma u otra.

Por ejemplo, podemos dotar a las células de sexo, capacidad reproductiva, fuerza y predisposición a la lucha; y basándonos en esto cambiar el comportamiento de modo que si dos células adyacentes de distinto sexo tienen capacidad reproductiva, en el siguiente turno aparezca junto a ellas una tercera célula cuyas características sean una mezcla de la de sus padres aplicándole una pequeña mutación. Del mismo modo, se puede hacer que dos células adyacentes del mismo sexo se peleen si al menos una de ellas está predispuesta a la lucha, y que sólo la más fuerte sobreviva.

Con estas pequeñas modificaciones, el Juego de la Vida deja de ser una máquina en la que siempre sabremos cómo va a acabar evolucionando, y ahora podrá servirnos para estudiar modelos naturales o simplemente para comprobar qué razón tenía Darwin al enunciar la teoría de la evolución y la supervivencia del más fuerte o del mejor adaptado, ya que si dejamos que nuestro sistema avance un número lo suficientemente grande de generaciones, veremos cómo las células con los genes más proclives a luchar, a ganar y a procrear acaban por convertirse en las dominantes en el tablero.

En cualquier caso, queda claro que llamar Vida a este juego no fue una idea nada descabellada, y que para la mente inquieta de un informático puede suponer una gran cantidad de retos a los que enfrentarse por mera diversión.

Más información | Wikipedia – Juego de la vida
Página interactiva | Juego de la vida en HTML5
En Applesfera | Simulador del juego Vida de Conway para Mac

Comentarios cerrados
Inicio