lunes, 14 de marzo de 2022

El Autómata Perfecto: El Juego de la Vida

    El matemático Conway diseño en 1970 el llamado "Juego de la Vida" como un sencillo juego sin jugadores, es decir, autómata, con unas sencillas reglas iniciales pero de una complejidad asombrosa para la época e, incluso, para los estándares de programación actuales. Es tan fascinante que fue usado en la presentación de los albores del gigante (actual) Apple en su terminal Apple II (sin carcasa y con cables a la vista) ante potenciales inversores. Pero aquella presentación fue un completo desastre... y no por el Juego de la Vida. Si Jobs y Wozniak eligieron este juego sería por algo.

   Las reglas son sencillas: el juego parte de uno o varios elementos celulares (población inicial) en un mundo bidimensional representado por celdas o casillas y la posición inicial y el número de células activas determinan su evolución, puesto que es un juego de cero jugadores. Se basa en la evolución de estados sucesivos en los que las condiciones del estado futuro dependen solamente del estado anterior. El mundo o tablero de juego no tiene límites, por tanto es infinito en todas direcciones. Se divide en filas y columnas de tal manera que cada celda está rodeada de 8 celdas, que son sus vecinas (8 celdas "tocan" a una única celda). Cada casilla tiene una célula que está activa (o viva) o inactiva (o muerta). Es importante señalar que este estado de las células en los futuros turnos, dependerá su estado actual y del estado actual de sus vecinas. Si una célula muere entonces la casilla que ocupaba se queda vacía.

La supervivencia consiste en que una célula ha de tener 2 ó 3 vecinas activas en el siguiente turno o generación para que sobreviva.

El nacimiento consiste en que si una celda vacía pasa a tener 3 células activas de las 8 que celdas que la rodean, entonces su estado en el siguiente turno o generación será activa.

El fallecimiento se refiere a una célula activa que tenga menos de 2 células vecinas activas, entonces en el siguiente turno se volverá inactiva (muere). En este caso se dice que "fallece por aislamiento o soledad" en el siguiente turno. En cambio, si una célula activa tiene 3 o más vecinas activas, entonces se desactiva y se dice que "fallece por superpoblación" en el siguiente turno.

Estas reglas básicas son las leyes iniciales que Conway dio a este juego y se simbolizan por la expresión 23/3.

   Según avanza el juego, se pueden dar distintas situaciones como la extinción total al cabo de un número finito de turnos, la estabilización (rígida e inamovible u oscilante entre dos o más formas) o el crecimiento constante.

   Por el procedimiento de construcción de las leyes básicas se pueden crear otras leyes interesantes como son 51/346 (denominada "Larga Vida"), 235678/3678 (mancha de tinta que se estabiliza), 1358/357 ("Amebas", crecimiento caótico), y muchas otras.

   Cabe destacar que sobre este fascinante juego existe poca información porque la idea de la que partió Conway es la de lanzar la situación inicial y observar la evolución de los patrones de las células según avance el juego, es decir, es un juego basado en la experimentación más que en su parte teórica. Su algoritmo de creación es sencillo y tan solo hay que fijar el tablero de juego, el que hemos denominado mundo, de forma finita, dos arrays bidimensionales, uno para la posición inicial y otro para la generación del turno siguiente, e introducir las leyes básicas iniciales. El algoritmo de Hashlife es el más usado para estudiar el juego de la vida.

   Existen multitud de patrones que crea este juego, los cuales solo nombraré, como son: el bloque, el doble bloque, la colmena, el depredador, las astronaves, el barco, el cañón, el deslizador (usado por los hackers como logotipo de su colectivo), los osciladores, el púlsar, o el patrón más famoso de todos, la "pistola de Gosper". Todos y cada uno con sus características y curiosidades.

   Suelo comentar que este blog no pretende profundizar en lo tratado ni en conocer conocimientos profundos sobre lo que escribo, sino más bien en proporcionar estímulos para despertar la curiosidad del lector ante lo que lee. Así pues, merece la pena buscar el Juego de la Vida y ponerse a jugar, observando sus cambios y su belleza intrínseca, es fascinante. Lo recomiendo.