2008
08.11

Al igual que con otros temas, hace tiempo que quería tocar éste: La vida artificial, y el Juego de la Vida, de John Conway.

Si ya has oído hablar de él (o has buscado en internet), no creo que pueda aportarte nada nuevo, o quizá sí: John Horton Conway es un matemático nacido en Liverpool, Reino Unido en 1937. Uno de sus campos más conocidos (ya que ha trabajado en muchos) es el de los juegos matemáticos, como El Juego del Drago, o el juego de la vida al que va dedicada esta entrada.

El juego de la vida se desarrolla sobre un tablero cuadriculado o rejilla que en principio se presupone que es infinito. Evidentemente, en la práctica eso no puede ser, pero basta con hacerlo suficientemente grande. Cada casilla de ese tablero puede estar libre u ocupada. Estos dos estados se suelen distinguir con distintos colores (en nuestro caso, negro para las casillas libres y blanco para las ocupadas). Cada casilla de este tablero está pues rodeada a su vez por otras 8 casillas o celdas. Yo las llamaré células de ahora en adelante.

Este “juego” es un juego de cero jugadores, lo que significa que no es necesaria la interacción de ninguna persona, ya que su desarrollo está determinado por la configuración inicial.

El juego se desarrolla por turnos: en cada turno se examinan todas las casillas del tablero y se calcula cual será su estado en el siguiente turno (también denominado generación). Finalmente, cuando ya se han calculado todos los estados, se actualiza el tablero.

El estado que tendrá una casilla en el siguiente turno se calcula siguiendo 3 reglas muy simples (como casi todos los juegos de Conway) pero que, sorprendentemente, pueden dar lugar a situaciones de enorme complejidad:

  1. Si una casilla está ocupada y el número de casillas adyacentes también ocupadas es menor que 2, la célula muere por aislamiento y se retira del tablero en la siguiente generación.
  2. Si una casilla está ocupada y el número de células que la rodean es mayor que 3, la célula muere por superpoblación (se quita del tablero en el siguiente turno).
  3. Una casilla libre que tenga 3 (y sólo 3) células adyacentes da lugar a una célula viva en el siguiente turno.

Estas tres simples reglas conforman un sistema caótico: cambiar una simple célula de estado puede hacer que la configuración desaparezca (tablero vacío), a que viva indefinidamente como una configuración oscilante o incluso cosas más interesantes.

He desarrollado un simulador para el juego de la vida. Utiliza el lienzo (canvas) de Firefox del que ya he hablado antes. Debería funcionar en todos los navegadores (Safari, Opera, Firefox) excepto en Internet Explorer (donde va lento y tiene fallos). Si usas Internet Explorer, por favor, instala Google Chrome Frame para ver los ejemplos o cámbiate a otro navegador. En cualquier caso, aquí está:



A continuación te muestro algunas de las configuraciones más conocidas. Pulsa sobre cualquiera de ellas para llevarla al simulador:

  • Naturaleza muerta: Es una configuración estable que no cambia de forma. Puedes hacer click en ellas, pero al ser estables no notarás cambio alguno en el tablero.
    El bloque El bote La hogaza
    bloque boat Hogaza de Pan
  • Osciladores, son formas que al cabo de una o varias generaciones recuperan su forma original.
    Intermitente Sapo Pentadecatlón El Ocho
    Intermitente Sapo Pentadecatlón (periodo 15) El Ocho
  • Naves Espaciales, que son todas aquellas formas que se desplazan (se repiten a sí mismas en una posición diferente). El hecho de que existan indica que este juego se puede comportar como un sistema Turing-Completo (otro día comentaré sobre eso).
    Deslizador Nave Ligera Nave Pesada
    Deslizador Nave ligera Nave pesada
  • Formas de vida inmortales (aunque tienen otros muchos nombres), son aquellas que pueden crecer indefinidamente (las anteriores, o bien mueren o son osciladores).
    Forma Creciente
    Forma creciente Nota: Debido a que el tablero no es infinito esta forma de vida lo satura y llega a morir porque colisiona por el otro lado. Pero si utilizas un tablero más grande (hay muchos simuladores en internet), verás que crece constantemente
    Cañón de Deslizadores
    Cañón lanzadeslizadores Nota: Este es un cañón de desizadores que crea naves constantemente. Es, por tanto, una forma de vida que crece interminablemente. Para evitar que los deslizadores aparezcan por el lado opuesto (por la pequeñez del tablero), se ha colocado un devorador de deslizadores que elimina a éstos.

Se ha demostrado que debe existir alguna configuración de células que, al igual que un ser vivo, es capaz de autorreplicarse, sin embargo hasta la fecha dicha configuración sigue sin conocerse.

Conway conjeturó que su juego es Turing Completo, es decir, que podía emular a una computadora universal, a cualquier ordenador, y realizar los mismos cálculos. La máquina de Turing implementada con células del juego de la vida se descubrió finalmente en el año 2000 (3 décadas después de la invención del juego).

Este tema es muy extenso, y no quiero crear un post muy largo. Otro día publicaré más cosas que, si has llegado hasta aquí, seguro que te interesan.

Share
  1. Anita, hasta donde yo sé, no se ha encontrado ningún esquema autorreplicante en este juego (si lo hay, seguramente sea enooorme). Sólo se sabe (por matemáticas) que existe alguna configuración.

    Like or Dislike: Thumb up 0 Thumb down 0

  2. Pero las células autorreplicantes no aparecen por ningún lado, no?

    Like or Dislike: Thumb up 0 Thumb down 0

  3. Pues sí, ahora se ve con otra perspectiva (y con algo más de conocimientos xD), pero recuerdo que esta fue una de las primeras prácticas de la carrera.

    Una pena que no nos contasen entonces el sentido que tenía todo aquello…

    Gran post, por cierto 😛 Con decirte que en su día me estuve planteando el doctorado en Computación (por la rama de Sistemas Inteligentes, obviamente…) creo que ya digo lo que me parece este tema.. jeje

    Like or Dislike: Thumb up 0 Thumb down 0

  4. Очень прикольная игра, продолжайте в том же духе

    Like or Dislike: Thumb up 0 Thumb down 0

  5. como la¡¡ .. esto estudiando el grado superior de desarrollo, y ayer tuve que hacer un examen de programacion que er hacer este juego.. programarlo, y la verdad que no es tan dificil como parece 😀

    Like or Dislike: Thumb up 0 Thumb down 0

  6. Ta’guapo 😀

    Like or Dislike: Thumb up 0 Thumb down 0