stringtranslate.com

El juego de la vida de Conway

Un solo cañón planeador de Gosper que crea planeadores
Una captura de pantalla de un criador tipo globo (rojo) que deja cañones planeadores (verdes) a su paso, que a su vez crean planeadores (azules) ( animación )

El Juego de la Vida , también conocido como Juego de la Vida de Conway o simplemente Vida , es un autómata celular ideado por el matemático británico John Horton Conway en 1970. [1] Es un juego de cero jugadores , [2] [3] lo que significa que su evolución está determinada por su estado inicial, sin requerir ninguna entrada adicional. Uno interactúa con el Juego de la Vida creando una configuración inicial y observando cómo evoluciona. Es Turing completo y puede simular un constructor universal o cualquier otra máquina de Turing .

Normas

El universo del Juego de la Vida es una cuadrícula ortogonal bidimensional infinita de celdas cuadradas , cada una de las cuales se encuentra en uno de dos estados posibles, viva o muerta (o poblada y despoblada , respectivamente). Cada celda interactúa con sus ocho vecinas , que son las celdas adyacentes horizontal, vertical o diagonalmente. En cada paso del tiempo, ocurren las siguientes transiciones:

  1. Cualquier célula viva con menos de dos vecinas vivas muere, como si fuera por subpoblación.
  2. Cualquier célula viva con dos o tres vecinas vivas vive hasta la siguiente generación.
  3. Cualquier célula viva con más de tres vecinas vivas muere, como por superpoblación.
  4. Cualquier célula muerta con exactamente tres vecinas vivas se convierte en una célula viva, como si se tratara de una reproducción.

El patrón inicial constituye la semilla del sistema. La primera generación se crea aplicando las reglas anteriores simultáneamente a cada célula de la semilla, viva o muerta; los nacimientos y las muertes ocurren simultáneamente, y el momento discreto en el que esto sucede a veces se denomina tic . [nb 1] Cada generación es una función pura de la anterior. Las reglas continúan aplicándose repetidamente para crear generaciones posteriores.

Orígenes

Stanislaw Ulam , mientras trabajaba en el Laboratorio Nacional de Los Álamos en la década de 1940, estudió el crecimiento de los cristales, utilizando una red reticular simple como modelo. [7] Al mismo tiempo, John von Neumann , colega de Ulam en Los Álamos, estaba trabajando en el problema de los sistemas autorreplicantes . [8] : 1  El diseño inicial de von Neumann se basó en la noción de un robot que construye otro robot. Este diseño se conoce como el modelo cinemático. [9] [10] A medida que desarrollaba este diseño, von Neumann se dio cuenta de la gran dificultad de construir un robot autorreplicante y del gran costo de proporcionar al robot un "mar de partes" a partir del cual construir su replicante. Neumann escribió un artículo titulado "La teoría general y lógica de los autómatas" para el Simposio Hixon en 1948. [11] Ulam fue quien sugirió usar un sistema discreto para crear un modelo reduccionista de autorreplicación. [8] : 3  [12] : xxix  Ulam y von Neumann crearon un método para calcular el movimiento de líquidos a finales de los años 1950. El concepto impulsor del método era considerar un líquido como un grupo de unidades discretas y calcular el movimiento de cada una basándose en los comportamientos de sus vecinos. [13] : 8  Así nació el primer sistema de autómatas celulares. Al igual que la red reticular de Ulam, los autómatas celulares de von Neumann son bidimensionales, con su autorreplicador implementado algorítmicamente. El resultado fue un copiador y constructor universal que funcionaba dentro de un autómata celular con un vecindario pequeño (solo las células que se tocan son vecinas; para los autómatas celulares de von Neumann, solo células ortogonales ), y con 29 estados por célula. Von Neumann dio una prueba de existencia de que un patrón particular haría infinitas copias de sí mismo dentro del universo celular dado al diseñar una configuración de 200.000 células que pudiera hacerlo. Este diseño se conoce como modelo de teselación y se denomina constructor universal de von Neumann . [14]

Motivado por cuestiones de lógica matemática y en parte por el trabajo en juegos de simulación de Ulam, entre otros, John Conway comenzó a hacer experimentos en 1968 con una variedad de diferentes reglas de autómatas celulares bidimensionales. El objetivo inicial de Conway era definir un autómata celular interesante e impredecible. [3] Según Martin Gardner , Conway experimentó con diferentes reglas, apuntando a reglas que permitieran que los patrones crecieran "aparentemente" sin límite, al tiempo que dificultaban la prueba de que cualquier patrón dado lo haría. Además, algunos "patrones iniciales simples" deberían "crecer y cambiar durante un período considerable de tiempo" antes de asentarse en una configuración estática o un bucle repetitivo. [1] Conway escribió más tarde que la motivación básica de Life era crear un autómata celular "universal". [15] [ se necesita una mejor fuente ]

El juego apareció por primera vez en público en la edición de octubre de 1970 de Scientific American , en la columna " Juegos matemáticos " de Martin Gardner , que se basaba en conversaciones personales con Conway. En teoría, el Juego de la vida tiene el poder de una máquina de Turing universal : todo lo que se puede calcular algorítmicamente se puede calcular dentro del Juego de la vida. [16] [2] Gardner escribió: "Debido a las analogías de la vida con el ascenso, la caída y las alteraciones de una sociedad de organismos vivos, pertenece a una clase creciente de lo que se denomina 'juegos de simulación' (juegos que se asemejan a procesos de la vida real)". [1]

Desde su publicación, el Juego de la Vida ha atraído mucho interés debido a las sorprendentes formas en que pueden evolucionar los patrones. Proporciona un ejemplo de emergencia y autoorganización . [3] Una versión de la Vida que incorpora fluctuaciones aleatorias se ha utilizado en física para estudiar las transiciones de fase y la dinámica del no equilibrio . [17] El juego también puede servir como una analogía didáctica , utilizada para transmitir la noción algo contraintuitiva de que el diseño y la organización pueden surgir espontáneamente en ausencia de un diseñador. Por ejemplo, el filósofo Daniel Dennett ha utilizado la analogía del "universo" del Juego de la Vida ampliamente para ilustrar la posible evolución de construcciones filosóficas complejas, como la conciencia y el libre albedrío , a partir del conjunto relativamente simple de leyes físicas deterministas que podrían gobernar nuestro universo. [18] [19] [20]

La popularidad del Juego de la Vida se vio favorecida por el hecho de que surgió al mismo tiempo que el acceso a los ordenadores era cada vez más barato. El juego podía funcionar durante horas en estas máquinas, que de otro modo habrían permanecido sin uso durante la noche. En este sentido, prefiguró la posterior popularidad de los fractales generados por ordenador . Para muchos, el Juego de la Vida era simplemente un desafío de programación: una forma divertida de utilizar ciclos de CPU que de otro modo se desperdiciarían . Sin embargo, para algunos, el Juego de la Vida tenía connotaciones más filosóficas. Desarrolló un culto a lo largo de la década de 1970 y más allá; los desarrollos actuales han llegado tan lejos como para crear emulaciones teóricas de sistemas informáticos dentro de los confines de un tablero de Juego de la Vida. [21] [22]

Ejemplos de patrones

En el Juego de la Vida se dan muchos tipos diferentes de patrones, que se clasifican según su comportamiento. Los tipos de patrones más comunes incluyen: naturalezas muertas , que no cambian de una generación a la siguiente; osciladores , que vuelven a su estado inicial después de un número finito de generaciones; y naves espaciales , que se trasladan a través de la cuadrícula.

Los primeros patrones interesantes en el Juego de la Vida se descubrieron sin el uso de computadoras. Las naturalezas muertas y osciladores más simples se descubrieron al rastrear los destinos de varias configuraciones iniciales pequeñas utilizando papel cuadriculado , pizarrones y tableros de juego físicos, como los utilizados en Go . Durante esta investigación temprana, Conway descubrió que el R- pentominó no se estabilizaba en un pequeño número de generaciones. De hecho, se necesitan 1103 generaciones para estabilizarse, momento en el que tiene una población de 116 y ha generado seis planeadores que escapan ; [23] estas fueron las primeras naves espaciales jamás descubiertas. [24]

A continuación se muestran ejemplos [25] [26] que aparecen con frecuencia (ya que surgen con frecuencia de una configuración inicial aleatoria de celdas) de los tres tipos de patrones antes mencionados, con las celdas vivas en negro y las celdas muertas en blanco. El período se refiere al número de tics que debe recorrer un patrón antes de volver a su configuración inicial.

El púlsar [27] es el oscilador de periodo 3 más común. La gran mayoría de osciladores naturales tienen un periodo de 2, como el intermitente y el sapo, pero se sabe que existen osciladores de todos los periodos, [28] [29] [30] y se ha visto que los osciladores de periodos 4, 8, 14, 15, 30 y algunos otros surgen de condiciones iniciales aleatorias. [31] Los patrones que evolucionan durante largos periodos antes de estabilizarse se denominan Matusalenes , el primero de los cuales fue el R-pentomino. Diehard es un patrón que desaparece después de mucho tiempo. Los patrones iniciales de ocho o más células pueden morir después de un tiempo arbitrariamente largo. [32] Acorn tarda 5.206 generaciones en generar 633 células, incluidas 13 planeadores escapados. [33]

Conway originalmente conjeturó que ningún patrón puede crecer indefinidamente, es decir, que para cualquier configuración inicial con un número finito de células vivas, la población no puede crecer más allá de un límite superior finito. En la aparición original del juego en "Mathematical Games", Conway ofreció un premio de cincuenta dólares (equivalente a $390 en 2023) a la primera persona que pudiera probar o refutar la conjetura antes de fines de 1970. El premio fue ganado en noviembre por un equipo del Instituto Tecnológico de Massachusetts , liderado por Bill Gosper ; el "cañón planeador Gosper" produce su primer planeador en la 15.ª generación, y otro planeador cada 30.ª generación a partir de entonces. Durante muchos años, este cañón planeador fue el más pequeño conocido. [34] En 2015, se descubrió un arma llamada "cañón planeador Simkin", que libera un planeador cada 120.ª generación, que tiene menos células vivas pero que se extiende a lo largo de un cuadro delimitador más grande en sus extremos. [35]

Más tarde se encontraron patrones más pequeños que también exhiben un crecimiento infinito. Los tres patrones que se muestran a continuación crecen indefinidamente. Los dos primeros crean un motor de conmutación de colocación de bloques único : una configuración que deja atrás bloques de naturaleza muerta de dos por dos a medida que se traslada a través del universo del juego. [36] La tercera configuración crea dos de esos patrones. El primero tiene solo diez celdas vivas, lo que se ha demostrado que es mínimo. [37] El segundo cabe en un cuadrado de cinco por cinco, y el tercero tiene solo una celda de alto.

Descubrimientos posteriores incluyeron otras armas , que son estacionarias y que producen planeadores u otras naves espaciales; trenes de sopladores , que se mueven dejando atrás un rastro de escombros; y rastrillos , que se mueven y emiten naves espaciales. [38] Gosper también construyó el primer patrón con una tasa de crecimiento cuadrático asintóticamente óptima , llamado criador o langosta , que funcionaba dejando atrás un rastro de armas.

Los planeadores pueden interactuar con otros objetos de formas interesantes. Por ejemplo, si se disparan dos planeadores a un bloque en una posición específica, el bloque se acercará a la fuente de los planeadores. Si se disparan tres planeadores en la dirección correcta, el bloque se alejará. Esta memoria de bloque deslizante se puede utilizar para simular un contador . Es posible construir puertas lógicas como AND , OR y NOT utilizando planeadores. Es posible construir un patrón que actúe como una máquina de estados finitos conectada a dos contadores. Esto tiene el mismo poder computacional que una máquina de Turing universal , por lo que el Juego de la Vida es teóricamente tan poderoso como cualquier computadora con memoria ilimitada y sin restricciones de tiempo; es Turing completo . [16] [2] De hecho, se han implementado varias arquitecturas de computadora programables diferentes [39] [40] en el Juego de la Vida, incluido un patrón que simula Tetris . [41]

Además, un patrón puede contener una colección de armas que disparan planeadores de tal manera que se construyan nuevos objetos, incluidas copias del patrón original. Se puede construir un constructor universal que contenga una computadora completa de Turing y que pueda construir muchos tipos de objetos complejos, incluidas más copias de sí mismo. [2]

En 2018, Adam P. Goucher descubrió el primer caballería verdaderamente elemental, Sir Robin. [42] Una caballería es una nave espacial que se mueve dos casillas hacia la izquierda por cada casilla que se mueve hacia abajo (como un caballo en ajedrez ), en lugar de moverse ortogonalmente o a lo largo de una diagonal de 45°. Este es el primer patrón de movimiento de nave espacial nuevo para una nave espacial elemental encontrado en cuarenta y ocho años. "Elemental" significa que no se puede descomponer en patrones interactivos más pequeños, como planeadores y naturalezas muertas. [43]

Indecidibilidad

Muchos patrones del Juego de la Vida acaban convirtiéndose en una combinación de naturalezas muertas, osciladores y naves espaciales; otros patrones pueden denominarse caóticos. Un patrón puede permanecer caótico durante mucho tiempo hasta que finalmente se asienta en esa combinación.

El Juego de la Vida es indecidible , lo que significa que dado un patrón inicial y un patrón posterior, no existe ningún algoritmo que pueda decir si el patrón posterior aparecerá alguna vez. Dado que el Juego de la Vida es Turing-completo, este es un corolario del problema de la detención : el problema de determinar si un programa dado terminará de ejecutarse o continuará ejecutándose para siempre a partir de una entrada inicial. [2]

Naves espaciales oblicuas

Hasta la década de 2010, todas las naves espaciales conocidas solo podían moverse ortogonalmente o en diagonal, mientras que la existencia de patrones móviles que se mueven como caballeros había sido predicha por Elwyn Berlekamp desde 1982. Las naves espaciales que no se mueven ni ortogonalmente ni en diagonal se denominan comúnmente naves espaciales oblicuas [44] [45] . El 18 de mayo de 2010, Andrew J. Wade anunció la primera nave espacial oblicua, bautizada como "Gemini", que crea una copia de sí misma en (5,1) más allá mientras destruye a su padre. [46] [45] Este patrón se replica en 34 millones de generaciones y utiliza una cinta de instrucciones hecha de planeadores que oscilan entre dos configuraciones estables hechas de brazos de construcción Chapman-Greene. Estos, a su vez, crean nuevas copias del patrón y destruyen la copia anterior. En diciembre de 2015, se construyeron versiones diagonales de Gemini. [47]

Autorreplicación

El 23 de noviembre de 2013, Dave Greene construyó el primer replicador en el Juego de la Vida que crea una copia completa de sí mismo, incluida la cinta de instrucciones. [48] En octubre de 2018, Adam P. Goucher terminó su construcción de la metacelda 0E0P, una metacelda capaz de autorreplicarse. Esto difería de las metaceldas anteriores, como el metapíxel OTCA de Brice Due, que solo funcionaba con copias ya construidas cerca de ellas. La metacelda 0E0P funciona mediante el uso de brazos de construcción para crear copias que simulan la regla programada. [49] La simulación real del Juego de la Vida u otras reglas de vecindad de Moore se realiza simulando una regla equivalente utilizando la vecindad de von Neumann con más estados. [50] El nombre 0E0P es la abreviatura de "Zero Encoded by Zero Population", que indica que en lugar de que una metacelda esté en un estado "apagado" simulando un espacio vacío, la metacelda 0E0P se elimina a sí misma cuando la celda ingresa a ese estado, dejando un espacio en blanco. [51]

Iteración

A partir de la mayoría de los patrones iniciales aleatorios de células vivas en la red, los observadores encontrarán que la población cambia constantemente a medida que pasan las generaciones. Los patrones que surgen de las reglas simples pueden considerarse una forma de belleza matemática . Los subpatrones pequeños y aislados sin simetría inicial tienden a volverse simétricos. Una vez que esto sucede, la simetría puede aumentar en riqueza, pero no puede perderse a menos que un subpatrón cercano se acerque lo suficiente como para perturbarla. En muy pocos casos, la sociedad finalmente se extingue, y todas las células vivas desaparecen, aunque esto puede no suceder durante muchas generaciones. La mayoría de los patrones iniciales finalmente se queman, produciendo figuras estables o patrones que oscilan para siempre entre dos o más estados; [52] [53] muchos también producen uno o más planeadores o naves espaciales que viajan indefinidamente lejos de la ubicación inicial. Debido a las reglas basadas en el vecino más cercano, ninguna información puede viajar a través de la red a una velocidad mayor que una célula por unidad de tiempo, por lo que se dice que esta velocidad es la velocidad de la luz del autómata celular y se denota c .

Algoritmos

Los primeros patrones con futuros desconocidos, como el R-pentomino, llevaron a los programadores informáticos a escribir programas para rastrear la evolución de los patrones en el Juego de la Vida. La mayoría de los primeros algoritmos eran similares: representaban los patrones como matrices bidimensionales en la memoria de la computadora. Normalmente, se utilizan dos matrices: una para almacenar la generación actual y otra para calcular su sucesora. A menudo, 0 y 1 representan células muertas y vivas, respectivamente. Un bucle for anidado considera cada elemento de la matriz actual por turno, contando los vecinos vivos de cada celda para decidir si el elemento correspondiente de la matriz sucesora debe ser 0 o 1. Se muestra la matriz sucesora. Para la siguiente iteración, las matrices pueden intercambiar roles de modo que la matriz sucesora en la última iteración se convierta en la matriz actual en la siguiente iteración, o se pueden copiar los valores de la segunda matriz en la primera matriz y luego actualizar la segunda matriz desde la primera matriz nuevamente.

Es posible realizar una variedad de mejoras menores a este esquema básico y existen muchas maneras de ahorrar cálculos innecesarios. Se garantiza que una celda que no cambió en el último paso de tiempo y que ninguna de sus vecinas cambió tampoco cambiará en el paso de tiempo actual, por lo que un programa que lleve un registro de las áreas que están activas puede ahorrar tiempo al no actualizar las zonas inactivas. [54]

Juego de la vida en la superficie de un nudo de trébol
El juego de la vida en la superficie de un nudo de trébol toroidal

Para evitar decisiones y ramificaciones en el bucle de conteo, las reglas pueden reorganizarse desde un enfoque egocéntrico del campo interno con respecto a sus vecinos hasta el punto de vista de un observador científico: si la suma de los nueve campos en un vecindario dado es tres, el estado del campo interno para la próxima generación será vida; si la suma de todos los campos es cuatro, el campo interno conserva su estado actual; y cualquier otra suma lleva el campo interno a la muerte.

Para ahorrar memoria, el almacenamiento se puede reducir a una matriz más dos buffers de línea. Un buffer de línea se utiliza para calcular el estado sucesor de una línea, luego el segundo buffer de línea se utiliza para calcular el estado sucesor de la siguiente línea. Luego, el primer buffer se escribe en su línea y se libera para almacenar el estado sucesor de la tercera línea. Si se utiliza una matriz toroidal , se necesita un tercer buffer para que se pueda guardar el estado original de la primera línea de la matriz hasta que se calcule la última línea.

Cañón planeador dentro de una formación toroidal. La corriente de planeadores finalmente envuelve el cañón y lo destruye.
Planeador rojo sobre la red cuadrada con condiciones de contorno periódicas

En principio, el campo del Juego de la Vida es infinito, pero las computadoras tienen memoria finita. Esto genera problemas cuando el área activa invade el borde de la matriz. Los programadores han utilizado varias estrategias para abordar estos problemas. La estrategia más simple es suponer que todas las celdas fuera de la matriz están muertas. Esto es fácil de programar, pero genera resultados inexactos cuando el área activa cruza el límite. Un truco más sofisticado es considerar que los bordes izquierdo y derecho del campo se cosen juntos, y también los bordes superior e inferior, lo que produce una matriz toroidal . El resultado es que las áreas activas que se mueven a través de un borde del campo reaparecen en el borde opuesto. Todavía puede haber inexactitud si el patrón crece demasiado, pero no hay efectos de borde patológicos. También se pueden utilizar técnicas de asignación de almacenamiento dinámico, creando matrices cada vez más grandes para contener patrones crecientes. El Juego de la Vida en un campo finito a veces se estudia explícitamente; Algunas implementaciones, como Golly , admiten la elección de un campo infinito estándar, un campo infinito solo en una dimensión o un campo finito, con una elección de topologías como un cilindro, un toro o una banda de Möbius .

Como alternativa, los programadores pueden abandonar la idea de representar el campo Juego de la vida con una matriz bidimensional y utilizar una estructura de datos diferente, como un vector de pares de coordenadas que representen células vivas. Esto permite que el patrón se mueva por el campo sin impedimentos, siempre que la población no exceda el tamaño de la matriz de coordenadas vivas. El inconveniente es que contar los vecinos vivos se convierte en una operación de búsqueda o consulta en una tabla hash, lo que ralentiza la velocidad de la simulación. Con estructuras de datos más sofisticadas, este problema también se puede resolver en gran medida. [ cita requerida ]

Para explorar patrones grandes en grandes profundidades temporales, pueden resultar útiles algoritmos sofisticados como Hashlife . También existe un método para implementar el Juego de la Vida y otros autómatas celulares que utiliza actualizaciones asincrónicas arbitrarias mientras se sigue emulando exactamente el comportamiento del juego sincrónico. [55] Se pueden encontrar ejemplos de código fuente que implementan el escenario básico del Juego de la Vida en varios lenguajes de programación, incluidos C , C++ , Java y Python en Rosetta Code . [56]

Variaciones

Desde el inicio del Juego de la Vida, se han desarrollado nuevos autómatas celulares similares. El Juego de la Vida estándar se simboliza en notación de cadena de reglas como B3/S23. Una célula nace si tiene exactamente tres vecinos, sobrevive si tiene dos o tres vecinos vivos y muere en caso contrario. El primer número, o lista de números, es lo que se requiere para que nazca una célula muerta. El segundo conjunto es el requisito para que una célula viva sobreviva hasta la siguiente generación. Por lo tanto, B6/S16 significa "una célula nace si hay seis vecinos y sigue viva si hay uno o seis vecinos". Los autómatas celulares en una cuadrícula bidimensional que se pueden describir de esta manera se conocen como autómatas celulares similares a Life . Otro autómata similar a Life común, Highlife , se describe con la regla B36/S23, porque tener seis vecinos, además de la regla B3/S23 del juego original, provoca un nacimiento. HighLife es más conocido por sus replicadores que aparecen con frecuencia. [57] [58]

Existen otros autómatas celulares similares a la vida. La gran mayoría de estas 2 18 reglas diferentes [59] producen universos que son demasiado caóticos o demasiado desolados para ser de interés, pero un gran subconjunto muestra un comportamiento interesante. Una generalización adicional produce el espacio de reglas isotrópico , con 2 102 posibles reglas de autómatas celulares [60] (el Juego de la Vida es una de ellas). Se trata de reglas que utilizan la misma cuadrícula que las reglas similares a la vida y el mismo vecindario de ocho celdas, y son igualmente invariantes bajo rotación y reflexión. Sin embargo, en las reglas isotrópicas, las posiciones de las celdas vecinas entre sí pueden tenerse en cuenta para determinar el estado futuro de una celda, no solo el número total de esas vecinas.

Una muestra de un oscilador de 48 pasos junto con un oscilador de 2 pasos y un oscilador de 4 pasos de un Juego de la Vida hexagonal bidimensional (regla H:B2/S34)

Algunas variantes del Juego de la Vida modifican la geometría del universo, así como las reglas. Las variantes anteriores pueden considerarse como un cuadrado bidimensional, porque el mundo es bidimensional y está dispuesto en una cuadrícula. Se han desarrollado variantes cuadradas unidimensionales, conocidas como autómatas celulares elementales [61] , y variantes cuadradas tridimensionales, así como variantes hexagonales y triangulares bidimensionales . También se ha creado una variante que utiliza cuadrículas de mosaicos aperiódicas [62] .

Las reglas de Conway también pueden generalizarse de modo que en lugar de dos estados, vivo y muerto , haya tres o más. Las transiciones de estado se determinan entonces mediante un sistema de ponderación o mediante una tabla que especifica reglas de transición separadas para cada estado; por ejemplo, las familias de reglas multicolores Rules Table y Weighted Life de Mirek's Cellebration incluyen reglas de muestra equivalentes al Juego de la vida.

Los patrones relacionados con los fractales y los sistemas fractales también pueden observarse en ciertas variaciones similares a la vida. Por ejemplo, el autómata B1/S12 genera cuatro aproximaciones muy cercanas al triángulo de Sierpinski cuando se aplica a una sola célula viva. El triángulo de Sierpinski también puede observarse en el Juego de la Vida al examinar el crecimiento a largo plazo de una línea infinitamente larga de células vivas con un grosor de una sola célula [63] , así como en Highlife, Seeds (B2/S) y Wolfram's Rule 90 [64] .

La inmigración es una variación muy similar al Juego de la vida, excepto que hay dos estados de activación, que a menudo se expresan como dos colores diferentes. Siempre que nace una nueva célula, adopta el estado de activación que es mayoritario en las tres células que la dieron origen. Esta característica se puede utilizar para examinar las interacciones entre naves espaciales y otros objetos dentro del juego. [65] Otra variación similar, llamada QuadLife, implica cuatro estados de activación diferentes. Cuando una nueva célula nace de tres vecinas de activación diferentes, toma el cuarto valor y, en caso contrario, como en el caso de la inmigración, toma el valor mayoritario. [66] A excepción de la variación entre las células de activación, ambas variaciones actúan de forma idéntica al Juego de la vida.

Música

Varias técnicas de composición musical utilizan el Juego de la Vida, especialmente en secuenciación MIDI . [67] Existe una variedad de programas para crear sonido a partir de patrones generados en el Juego de la Vida. [68] [69] [70]

Programas destacados

El6 366 548 773 467 669 985 195 496 000 mil (6 × 10 27 ) generación de una máquina de Turing , realizada en el juego Life, calculada en menos de 30 segundos en una CPU Intel Core Duo de 2 GHz usando Golly en modo Hashlife

Desde que se hizo público por primera vez, se han utilizado ordenadores para seguir y simular el Juego de la Vida. Cuando John Conway estaba investigando por primera vez cómo se desarrollaban las distintas configuraciones iniciales, las siguió a mano utilizando un tablero de go con sus piedras blancas y negras. Esto era tedioso y propenso a errores. El primer programa interactivo del Juego de la Vida fue escrito en una versión temprana de ALGOL 68C para el PDP-7 por MJT Guy y SR Bourne . Los resultados se publicaron en la edición de octubre de 1970 de Scientific American , junto con la declaración: "Sin su ayuda, algunos descubrimientos sobre el juego habrían sido difíciles de hacer". [1]

Una versión en color del Juego de la Vida fue escrita por Ed Hall en 1976 para microcomputadoras Cromemco , y una presentación de ese programa llenó la portada de la edición de junio de 1976 de Byte . [71] Se le atribuye a la llegada de gráficos en color basados ​​en microcomputadoras de Cromemco un resurgimiento del interés en el juego. [72]

Dos de las primeras implementaciones del Juego de la Vida en ordenadores domésticos fueron escritas por Malcolm Banthorpe en BBC BASIC . La primera apareció en la edición de enero de 1984 de la revista Acorn User , y Banthorpe la siguió con una versión tridimensional en la edición de mayo de 1984. [73] Susan Stepney, profesora de Ciencias de la Computación en la Universidad de York , siguió con Life on the Line en 1988, un programa que generaba autómatas celulares unidimensionales. [74]

Actualmente existen miles de programas de Juego de la Vida en línea, por lo que no se proporcionará aquí una lista completa. La siguiente es una pequeña selección de programas con algún mérito especial, como popularidad o características inusuales. La mayoría de estos programas incorporan una interfaz gráfica de usuario para la edición y simulación de patrones, la capacidad de simular múltiples reglas, incluido el Juego de la Vida, y una gran biblioteca de patrones interesantes en el Juego de la Vida y otras reglas de autómatas celulares.

Google implementó un easter egg del Juego de la Vida en 2012. A los usuarios que buscan el término se les muestra una implementación del juego en la página de resultados de búsqueda. [77]

La novela visual Anonymous;Code incluye una implementación básica del Juego de la Vida, que está conectada con la trama de la novela. Cerca del final de Anonymous;Code , un patrón determinado que aparece a lo largo del juego como un tatuaje en la heroína Momo Aizaki debe introducirse en el Juego de la Vida para completar el juego (la galaxia de Kok, el mismo patrón utilizado como logotipo para el programa de código abierto Juego de la Vida Golly).

Véase también

Notas

  1. ^ La simultaneidad significa que cuando cada célula cuenta el número de vecinas vivas a su alrededor, utiliza los estados antiguos de sus vecinas antes de la actualización, no sus nuevos estados después de la actualización. Si, en cambio, las células se actualizan en orden de lectura, de modo que cada célula utiliza los estados antiguos de las células a su derecha y debajo de ella, pero los nuevos estados de las células a su izquierda y encima de ella, resulta un autómata celular diferente, que se conoce como NaiveLife [4] [5] porque es un error común de principiantes entre las personas que intentan programar el Juego de la Vida de Conway. [6]

Referencias

  1. ^ abcd Gardner, Martin (octubre de 1970). «Las fantásticas combinaciones del nuevo juego de solitario de John Conway, 'vida'» (PDF) . Juegos matemáticos. Scientific American . Vol. 223, núm. 4. págs. 120–123. doi :10.1038/scientificamerican1070-120. JSTOR  24927642. Archivado (PDF) desde el original el 9 de octubre de 2022.
  2. ^ abcde Berlekamp, ​​ER ; Conway, John Horton ; Guy, RK (2001–2004). Maneras ganadoras para sus jugadas matemáticas (2.ª ed.). AK Peters Ltd.
  3. ^ abc Izhikevich, Eugene M.; Conway, John H. ; Seth, Anil (21 de junio de 2015). "El juego de la vida". Scholarpedia . 10 (6): 1816. Bibcode :2015SchpJ..10.1816I. doi : 10.4249/scholarpedia.1816 . ISSN  1941-6016.
  4. ^ "NaiveLife Emulated: una simulación del orden de lectura de la vida". ConwayLife.com . 24 de mayo de 2020 . Consultado el 29 de noviembre de 2021 .
  5. ^ Goucher, Adam. "Re: Hilo para tus descubrimientos accidentales". ConwayLife.com . Consultado el 29 de noviembre de 2021 .
  6. ^ Ian07. "Re: Extraña nave espacial que se supone que es imposible y tiene una propagación celular infinita". ConwayLife.com . Consultado el 29 de noviembre de 2021. Estoy bastante seguro de que esto se debe a que accidentalmente creaste una implementación de lo que a veces se conoce como NaiveLife (ya que es un error común que cometen muchas personas que codifican CGoL por primera vez):{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  7. ^ Pickover, Clifford A. (2009). El libro de las matemáticas: desde Pitágoras hasta la 57.ª dimensión, 250 hitos en la historia de las matemáticas . Sterling Publishing Company, Inc., pág. 406. ISBN 978-1402757969.
  8. ^ ab Schiff, Joel L. (2011). Autómatas celulares: una visión discreta del mundo. Wiley & Sons, Inc. ISBN 9781118030639.
  9. ^ John von Neumann, "La teoría general y lógica de los autómatas", en LA Jeffress , ed., Mecanismos cerebrales en el comportamiento: el simposio Hixon, John Wiley & Sons, Nueva York, 1951, págs. 1-31.
  10. ^ Kemeny, John G. (1955). "El hombre visto como una máquina". Sci. Am . 192 (4): 58–67. Bibcode :1955SciAm.192d..58K. doi :10.1038/scientificamerican0455-58.; Ciencia. Soy. 1955; 192:6 (erratas).
  11. ^ Von Neumann, John (1976). Obras completas. 4: Geometría continua y otros temas (edición revisada). Oxford [ua] Frankfurt: Pergamon Press. ISBN 978-0-08-009566-0.
  12. ^ Ilachinski, Andrew (2001). Autómatas celulares: un universo discreto. World Scientific. ISBN 978-981-238-183-5.
  13. ^ Bialynicki-Birula, Iwo; Bialynicka-Birula, Iwona (2004). Modelando la realidad: cómo las computadoras reflejan la vida . Oxford University Press . ISBN 978-0198531005.
  14. ^ von Neumann, John; Burks, Arthur W. (1966). Teoría de los autómatas autorreproductores. University of Illinois Press .
  15. ^ Conway, comunicación privada a la 'lista Life', 14 de abril de 1999.
  16. ^ ab Es un modelo y una simulación que resulta interesante de observar y que puede demostrar que las cosas simples pueden convertirse en problemas complicados. Paul Chapman (11 de noviembre de 2002). «Life Universal Computer». Archivado desde el original el 6 de septiembre de 2009. Consultado el 12 de julio de 2009 .
  17. ^ Alstrøm, Preben; Leão, João (1994-04-01). "Criticidad autoorganizada en el juego de la vida". Physical Review E . 49 (4): R2507–R2508. Bibcode :1994PhRvE..49.2507A. doi :10.1103/PhysRevE.49.R2507. PMID  9961636.
  18. ^ Dennett, DC (1991). La conciencia explicada . Boston: Back Bay Books. ISBN 978-0-316-18066-5.
  19. ^ Dennett, DC (1995). La peligrosa idea de Darwin: evolución y los significados de la vida . Nueva York: Simon & Schuster. ISBN 978-0-684-82471-0.
  20. ^ Dennett, DC (2003). La libertad evoluciona . Nueva York: Penguin Books. ISBN 978-0-14-200384-8.
  21. ^ Paul Rendell (12 de enero de 2005). "Una máquina de Turing en el juego de la vida de Conway" . Consultado el 12 de julio de 2009 .
  22. ^ Adam P. Goucher. «Constructor de computadoras universal espartano». LifeWiki . Consultado el 5 de diciembre de 2021 .
  23. ^ "R-pentominó". VidaWiki. 1983. págs. 219, 223 . Consultado el 5 de diciembre de 2021 .
  24. ^ Stephen A. Silver. "Planeador". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  25. ^ "Resultados del censo en el juego de la vida de Conway". La búsqueda en línea de CA Soup, similar a la vida real. Archivado desde el original el 10 de septiembre de 2009. Consultado el 12 de julio de 2009 .
  26. ^ "Naves espaciales que aparecieron espontáneamente a partir de polvo aleatorio". Achim Flammenkamp (9 de diciembre de 1995) . Consultado el 10 de julio de 2012 .
  27. ^ Stephen A. Silver. "Pulsar". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  28. ^ Brown, Nico; Cheng, Carson; Jacobi, Tanner; Karpovich, Maia; Merzenich, Matthias; Raucci, David; Riley, Mitchell (5 de diciembre de 2023). "El juego de la vida de Conway es omniperiódico". arXiv : 2312.02799 [math.CO].
  29. ^ "LifeWiki:Página de estado de Juego de la vida - LifeWiki". conwaylife.com . Consultado el 16 de diciembre de 2023 .
  30. ^ Stone, Alex (18 de enero de 2024). "El 'juego de la vida' de las matemáticas revela patrones repetitivos largamente buscados". Quanta Magazine . Consultado el 18 de enero de 2024 .
  31. ^ Achim Flammenkamp (7 de septiembre de 2004). «Los objetos de ceniza naturales más vistos en Game of Life» . Consultado el 16 de septiembre de 2008 .
  32. ^ Stephen A. Silver. "Diehard". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  33. ^ Koenig, H. (21 de febrero de 2005). «New Methuselah Records». Archivado desde el original el 10 de septiembre de 2019. Consultado el 24 de enero de 2009 .
  34. ^ Stephen A. Silver. "Gosper glider gun". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  35. ^ La caza de los nuevos conductos Herschel, foros de ConwayLife, 28 de abril de 2015, publicaciones de Michael Simkin ("simsim314") y Dongook Lee ("Scorbie").
  36. ^ "Motor de maniobras de colocación de bloques". LifeWiki . Consultado el 5 de diciembre de 2021 .
  37. ^ Stephen A. Silver. «Infinite Growth». The Life Lexicon . Consultado el 4 de marzo de 2019 .
  38. ^ Stephen A. Silver. "Rake". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  39. ^ "Ordenador programable". Foros de conwaylife.com . Consultado el 23 de agosto de 2018 .
  40. ^ "Una máquina de Turing en el Juego de la vida de Conway, extensible a una máquina de Turing universal". Paul Rendell . Consultado el 23 de agosto de 2018 .
  41. ^ "Construye un juego de Tetris funcional en El juego de la vida de Conway". StackExchange . Consultado el 23 de agosto de 2018 .
  42. ^ "Caballería elemental" . Consultado el 9 de marzo de 2018 .
  43. ^ "Elementary", LifeWiki. Consultado el 21 de noviembre de 2018.
  44. ^ Aron, Jacob (16 de junio de 2010). «First replicating beast spawned in life simulator» (La primera criatura replicante engendrada en un simulador de vida). New Scientist . Consultado el 12 de octubre de 2013 .
  45. ^ ab "Gemini – LifeWiki". Conwaylife.com . Consultado el 16 de octubre de 2013 .
  46. ^ "Nave espacial basada en el constructor universal". Conwaylife.com . Consultado el 24 de junio de 2012 .
  47. ^ "Demonoid". LifeWiki . Consultado el 18 de junio de 2016 .
  48. ^ "Desafío Geminoid". Conwaylife.com . Consultado el 25 de junio de 2015 .
  49. ^ Passe-Science (29 de mayo de 2019). «Automate Cellulaire - Passe-science #27». Archivado desde el original el 11 de diciembre de 2021. Consultado el 25 de junio de 2019 en YouTube .
  50. ^ apgoucher (12 de noviembre de 2018). "Replicación totalmente autodirigida". Espacio proyectivo complejo de 4 espacios . Consultado el 25 de junio de 2019 .
  51. ^ "0E0P metacell - LifeWiki". conwaylife.com . Consultado el 24 de junio de 2019 .
  52. ^ Andrzej Okrasinski. «Estadísticas de objetos de Game of Life». Archivado desde el original el 27 de julio de 2009. Consultado el 12 de julio de 2009 .
  53. ^ Nathaniel Johnston. "La búsqueda en línea de CA Soup, similar a la vida real". Archivado desde el original el 10 de septiembre de 2009. Consultado el 12 de julio de 2009 .
  54. ^ Alan Hensel. "Acerca de mi subprograma El juego de la vida de Conway" . Consultado el 12 de julio de 2009 .
  55. ^ Nehaniv, Chrystopher L. (15-18 de julio de 2002). Autorreproducción en autómatas celulares asincrónicos . Conferencia NASA/DoD de 2002 sobre hardware evolutivo. Alexandria, Virginia, EE. UU.: IEEE Computer Society Press. pp. 201-209. doi :10.1109/EH.2002.1029886. hdl : 2299/6834 . ISBN . 0-7695-1718-8.
  56. ^ "El juego de la vida de Conway". Código Rosetta . 7 de junio de 2024.
  57. ^ HighLife – Una variante interesante de la vida, de David Bell (archivo .zip)
  58. ^ Stephen A. Silver. "Replicator". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  59. ^ "Autómatas celulares que parecen reales - LifeWiki". Conwaylife.com . Consultado el 4 de marzo de 2019 .
  60. ^ "Isotrópico - LifeWiki". Conwaylife.com . Consultado el 4 de marzo de 2019 .
  61. ^ "Elementary Cellular Autómaton" (Autómata celular elemental). Wolfram Mathworld . Consultado el 12 de julio de 2009 .
  62. ^ "Los primeros planeadores navegan por el universo de Penrose, en constante cambio". New Scientist .
  63. ^ Stephen Wolfram , A New Kind of Science online, Nota (f) para estructuras en sistemas de clase 4: Estructuras en el juego de la vida: "Un tipo más simple de crecimiento ilimitado ocurre si uno comienza a partir de una línea infinita de celdas negras. En ese caso, la evolución es efectivamente unidimensional y resulta seguir la regla elemental 22".
  64. ^ "La vida imita a Sierpinski". Foros de ConwayLife.com . Consultado el 12 de julio de 2009 .
  65. ^ Stephen A. Silver. "Inmigración". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  66. ^ Stephen A. Silver. "QuadLife". The Life Lexicon . Consultado el 4 de marzo de 2019 .
  67. ^ Burraston, Dave; Edmonds, Ernest; Livingstone, Dan; Miranda, Eduardo Reck (2004). "Autómatas celulares en música por ordenador basada en MIDI". Actas de la Conferencia Internacional de Música por Ordenador de 2004. CiteSeerX 10.1.1.6.3882 . hdl :10453/1425. ISBN  9780971319226.
  68. ^ "glitchDS – Secuenciador de autómatas celulares para Nintendo DS". Synthtopia.com. 2008-05-29 . Consultado el 2012-06-24 .
  69. ^ "Secuenciador musical de Game Of Life". Synthtopia.com. 29 de abril de 2009. Consultado el 24 de junio de 2012 .
  70. ^ "Secuenciador musical de Game Of Life para iOS, Runxt Life". Synthtopia.com. 12 de enero de 2011. Consultado el 24 de junio de 2012 .
  71. ^ Helmers, Carl (junio de 1976). «About the Cover» (Acerca de la portada). Byte . N.º 10. págs. 6–7 . Consultado el 18 de febrero de 2013 .
  72. ^ McIntosh, Harold (2008). "Introducción" (PDF) . Journal of Cellular Automata . 13 : 181–186. Archivado (PDF) del original el 9 de octubre de 2022. Consultado el 3 de noviembre de 2021. Con la llegada de las microcomputadoras y la placa gráfica de Cromemco, Life se convirtió en un programa de visualización favorito para los monitores de video y provocó un resurgimiento del interés por el juego.
  73. ^ "Escaneos de la revista Acorn User". Biblioteca de dominio público de la BBC y Master Computer . Consultado el 29 de diciembre de 2018 .
  74. ^ Stepney, Susan. "Artículos de AcornUser". www-users.cs.york.ac.uk . AcornUser . Consultado el 29 de diciembre de 2018 .
  75. ^ "Xlife-LifeWiki". conwaylife.com .
  76. ^ "El organismo del Dr. Blob: ¡es gratis!". digital-eel.com .
  77. ^ Wasserman, Todd (12 de julio de 2012). "Escribe 'Conway's Game of Life' en Google y mira qué sucede". Mashable . Consultado el 1 de mayo de 2020 .

Enlaces externos