stringtranslate.com

El juego de la vida de Conway

Una sola pistola planeadora de Gosper creando planeadores
Una captura de pantalla de un criador tipo globo (rojo) que deja cañones planeadores (verde) a su paso, que a su vez crean planeadores (azul) ( animación )

El Juego de la Vida , también conocido simplemente como Vida , es un autómata celular ideado por el matemático británico John Horton Conway en 1970. [1] Es un juego sin jugador , [2] [3] lo que significa que su evolución está determinada por su estado inicial, sin requerir más información. Se 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 vecinos vivos muere, como por subpoblación.
  2. Cualquier célula viva con dos o tres vecinos vivos pasa a la siguiente generación.
  3. Cualquier célula viva con más de tres vecinos vivos muere, como por sobrepoblación.
  4. Cualquier célula muerta con exactamente tres vecinos vivos se convierte en una célula viva, como por 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 pura función de la anterior. Las reglas continúan aplicándose repetidamente para crear generaciones futuras.

Orígenes

Stanislaw Ulam , mientras trabajaba en el Laboratorio Nacional de Los Álamos en la década de 1940, estudió el crecimiento de cristales, utilizando una red reticular simple como modelo. [7] Al mismo tiempo, John von Neumann , colega de Ulam en Los Alamos, 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 que un robot construyera otro robot. Este diseño se conoce como modelo cinemático. [9] [10] Mientras desarrollaba este diseño, von Neumann se dio cuenta de la gran dificultad de construir un robot autorreplicante y del gran costo que implicaba proporcionar al robot un "mar de piezas" 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. [8] : 1  Ulam fue quien sugirió utilizar un sistema discreto para crear un modelo reduccionista de autorreplicación. [8] : 3  [11] : xxix  Ulam y von Neumann crearon un método para calcular el movimiento de líquidos a finales de la década de 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 en función del comportamiento de sus vecinos. [12] : 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 y su autorreplicador está implementado algorítmicamente. El resultado fue una copiadora y constructora universal que trabajaba dentro de un autómata celular con una vecindad pequeña (sólo las células que se tocan son vecinas; para los autómatas celulares de von Neumann, sólo 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 . [13]

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 realizar 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, buscando reglas que permitieran que los patrones crecieran "aparentemente" sin límite, manteniendo al mismo tiempo difícil demostrar que un patrón determinado lo haría. Además, algunos "patrones iniciales simples" deberían "crecer y cambiar durante un período de tiempo considerable" antes de establecerse 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". [14] [ se necesita una mejor fuente ]

El juego hizo su primera aparición pública en la edición de octubre de 1970 de Scientific American , en la columna " Juegos matemáticos " de Martin Gardner , que se basó en conversaciones personales con Conway. Teóricamente, el Juego de la Vida tiene el poder de una máquina de Turing universal : cualquier cosa que pueda calcularse algorítmicamente puede calcularse dentro del Juego de la Vida. [15] [2] Gardner escribió: "Debido a las analogías de la vida con el ascenso, caída y alteraciones de una sociedad de organismos vivos, pertenece a una clase creciente de lo que se llama 'juegos de simulación' (juegos que se parecen a los de la vida real). procesos)". [1]

Desde su publicación, El Juego de la Vida ha despertado mucho interés por las formas sorprendentes en que pueden evolucionar los patrones. Proporciona un ejemplo de emergencia y autoorganización . [3] En física se ha utilizado una versión de Life que incorpora fluctuaciones aleatorias para estudiar las transiciones de fase y la dinámica de desequilibrio . [16] El juego también puede servir como una analogía didáctica , utilizada para transmitir la noción un tanto 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 ampliamente la analogía del "universo" del Juego de la Vida 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. . [17] [18] [19]

La popularidad del Juego de la Vida se vio favorecida por su aparición al mismo tiempo que el acceso a una computadora cada vez más económico. El juego podía ejecutarse durante horas en estas máquinas, que de otro modo habrían permanecido sin uso durante la noche. En este sentido, presagió la posterior popularidad de los fractales generados por computadora . Para muchos, Game of Life fue simplemente un desafío de programación: una forma divertida de utilizar ciclos de CPU que de otro modo se desperdiciarían . Para algunos, sin embargo, el Juego de la Vida tenía connotaciones más filosóficas. Desarrolló un culto de seguidores durante la década de 1970 y más allá; Los desarrollos actuales han llegado incluso a crear emulaciones teóricas de sistemas informáticos dentro de los límites de un tablero de Game of Life. [20] [21]

Ejemplos de patrones

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

Los primeros patrones interesantes del Juego de la Vida se descubrieron sin el uso de computadoras. Las naturalezas muertas y los osciladores más simples se descubrieron mientras se seguía el destino de varias configuraciones iniciales pequeñas utilizando papel cuadriculado , pizarras y tableros de juegos físicos, como los utilizados en Go . Durante estas primeras investigaciones, Conway descubrió que el R- pentominó no logró estabilizarse en un pequeño número de generaciones. De hecho, se necesitan 1103 generaciones para estabilizarse, momento en el cual tiene una población de 116 y ha generado seis planeadores que se escaparon ; [22] estas fueron las primeras naves espaciales jamás descubiertas. [23]

A continuación se muestran ejemplos [24] [25] frecuentes (en el sentido de que surgen con frecuencia de una configuración inicial aleatoria de células) de los tres tipos de patrones antes mencionados, con las células vivas en negro y las células muertas en blanco. El período se refiere a la cantidad de ticks que un patrón debe recorrer antes de regresar a su configuración inicial.

El púlsar [26] es el oscilador de período 3 más común. La gran mayoría de los osciladores naturales tienen un período de 2, como la luz intermitente y el sapo, pero se sabe que existen osciladores de todos los períodos [27] [28] [29] y osciladores de períodos 4, 8, 14, 15. , 30 y algunos más surgen de condiciones iniciales aleatorias. [30] Los patrones que evolucionan durante largos períodos antes de estabilizarse se llaman Matusalén , el primero de los cuales fue el R-pentomino. Diehard es un patrón que finalmente desaparece, en lugar de estabilizarse, después de 130 generaciones, lo que se conjetura que es máximo para patrones iniciales con siete células o menos. [31] Acorn necesita 5.206 generaciones para generar 633 células, incluidos 13 planeadores que se escaparon. [32]

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 380 dólares en 2022) a la primera persona que pudiera probar o refutar la conjetura antes de finales de 1970. El premio lo ganó en noviembre un equipo del Instituto Tecnológico de Massachusetts , dirigido por Bill Gosper ; El "Gosper glider gun" produce su primer planeador en la 15.ª generación y, a partir de entonces, otro planeador cada 30.ª generación. Durante muchos años, este cañón planeador fue el más pequeño conocido. [33] En 2015, se descubrió una pistola llamada "pistola planeadora Simkin", que lanza un planeador cada 120.a 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. [34]

Posteriormente 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 bloques de naturaleza muerta de dos en dos a medida que se traslada a través del universo del juego. [35] La tercera configuración crea dos de esos patrones. El primero tiene sólo diez células vivas, lo que se ha demostrado que es mínimo. [36] El segundo cabe en un cuadrado de cinco por cinco, y el tercero tiene solo una celda de alto.

Los descubrimientos posteriores incluyeron otras armas , que son estacionarias y que producen planeadores u otras naves espaciales; trenes globo , que avanzan dejando un rastro de escombros; y rastrillos , que mueven y emiten naves espaciales. [37] Gosper también construyó el primer patrón con una tasa de crecimiento cuadrática asintóticamente óptima , llamada reproductora o langosta , que funcionó dejando un rastro de armas de fuego.

Es posible que los planeadores interactúen 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 disparas a tres planeadores en la dirección correcta, el bloque se alejará más. 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. Esta 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 limitaciones de tiempo; es Turing completo . [15] [2] De hecho, se han implementado varias arquitecturas informáticas programables diferentes [38] [39] en Game of Life, incluido un patrón que simula el Tetris . [40]

Además, un patrón puede contener una colección de armas que disparan planeadores de tal manera que construyan nuevos objetos, incluidas copias del patrón original. Se puede construir un constructor universal que contenga una computadora Turing completa 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 título de caballero verdaderamente elemental, Sir Robin. [41] Un barco de caballero es una nave espacial que se mueve dos casillas hacia la izquierda por cada casilla que baja (como un caballo en el ajedrez ), en lugar de moverse ortogonalmente o a lo largo de una diagonal de 45°. Este es el primer nuevo patrón de movimiento de 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. [42]

Indecidibilidad

Muchos patrones del Juego de la Vida eventualmente se convierten 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 alguna vez aparecerá. Dado que el Juego de la Vida es Turing completo, esto es un corolario del problema de la detención : el problema de determinar si un programa determinado 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 sólo podían moverse ortogonal o diagonalmente, 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 ortogonal ni diagonalmente se denominan comúnmente naves espaciales oblicuas [43 ] [44] . El 18 de mayo de 2010, Andrew J. Wade anunció la primera nave espacial oblicua, denominada "Gemini", que crea una copia de sí misma en (5,1) mientras destruye a su progenitor. [45] [44] 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 del Gemini. [46]

Autorreplicación

El 23 de noviembre de 2013, Dave Greene construyó el primer replicador del Juego de la Vida que crea una copia completa de sí mismo, incluida la cinta de instrucciones. [47] En octubre de 2018, Adam P. Goucher terminó la construcción de la metacélula 0E0P, una metacélula capaz de autorreplicarse. Esto se diferenciaba de las metacélulas anteriores, como el metapixel OTCA de Brice Due, que solo funcionaba con copias ya construidas cerca de ellas. La metacélula 0E0P funciona mediante el uso de brazos de construcción para crear copias que simulan la regla programada. [48] ​​La simulación real del Juego de la Vida u otras reglas del vecindario de Moore se realiza simulando una regla equivalente utilizando el vecindario de von Neumann con más estados. [49] El nombre 0E0P es la abreviatura de "Cero codificado por población cero", lo que indica que en lugar de que una metacelda esté en un estado "apagado" que simula un espacio vacío, la metacelda 0E0P se elimina cuando la celda entra en ese estado, dejando un espacio en blanco. espacio. [50]

Iteración

A partir de la mayoría de los patrones iniciales aleatorios de células vivas en la cuadrícula, los observadores encontrarán que la población cambia constantemente a medida que pasan las generaciones. Los patrones que surgen de reglas simples pueden considerarse una forma de belleza matemática . Los pequeños subpatrones 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 perturbarlo. En muy pocos casos, la sociedad acaba extinguiéndose y todas las células vivas desaparecen, aunque esto puede no ocurrir hasta dentro de muchas generaciones. La mayoría de los patrones iniciales eventualmente se desvanecen, produciendo figuras estables o patrones que oscilan eternamente entre dos o más estados; [51] [52] 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 celda 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 futuro desconocido, 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 contener la generación actual y otra para calcular su sucesora. A menudo, 0 y 1 representan células vivas y muertas, respectivamente. Un bucle for anidado considera cada elemento de la matriz actual por turno, contando los vecinos activos 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 hay muchas maneras de ahorrar cálculos innecesarios. Se garantiza que una celda que no cambió en el último paso de tiempo, y ninguno de cuyos vecinos cambió, tampoco cambiará en el paso de tiempo actual, por lo que un programa que realiza un seguimiento de qué áreas están activas puede ahorrar tiempo al no actualizar las inactivas. zonas. [53]

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

Para evitar decisiones y bifurcaciones en el ciclo de conteo, las reglas se pueden reorganizar 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 determinado es tres, el estado del campo interno para la próxima generación será la vida; si la suma de todos los campos es cuatro, el campo interior conserva su estado actual; y cualquier otra suma mata el campo interior.

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

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

En principio, el campo del Juego de la Vida es infinito, pero las computadoras tienen una memoria finita. Esto conduce a 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 sencilla es suponer que todas las células fuera del conjunto 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 unirán, y también los bordes superior e inferior, produciendo una matriz toroidal . El resultado es que las áreas activas que se mueven a través del borde del campo reaparecen en el borde opuesto. Aún puede producirse 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 conjuntos cada vez más grandes para contener patrones en crecimiento. A veces se estudia explícitamente el Juego de la Vida en un campo finito; Algunas implementaciones, como Golly , admiten la elección del campo infinito estándar, un campo infinito solo en una dimensión o un campo finito, con una selección de topologías como un cilindro, un toro o una tira de Möbius .

Alternativamente, los programadores pueden abandonar la noción de representar el campo del 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 obstáculos, siempre que la población no exceda el tamaño de la matriz de coordenadas en vivo. El inconveniente es que contar vecinos vivos se convierte en una operación de búsqueda o consulta de tabla hash, lo que ralentiza la velocidad de simulación. Con estructuras de datos más sofisticadas, este problema también puede resolverse en gran medida. [ cita necesaria ]

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 utilizando actualizaciones asincrónicas arbitrarias y al mismo tiempo emular exactamente el comportamiento del juego sincrónico. [54] En Rosetta Code se pueden encontrar ejemplos de código fuente que implementan el escenario básico de Game of Life en varios lenguajes de programación, incluidos C , C++ , Java y Python . [55]

Variaciones

Desde el inicio del Juego de la Vida, se han desarrollado nuevos autómatas celulares similares. El Juego de la Vida estándar está simbolizado en notación de cadenas 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 pueden describirse de esta manera se conocen como autómatas celulares realistas . Otro autómata realista común, Highlife , se describe mediante la regla B36/S23, porque tener seis vecinos, además de la regla B3/S23 del juego original, provoca un nacimiento. HighLife es mejor conocido por sus replicadores que aparecen con frecuencia. [56] [57]

Existen autómatas celulares adicionales realistas. La gran mayoría de estas 218 reglas diferentes [58] 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ómata celular [59] (el Juego de la Vida vuelve a ser una de ellas). Estas son reglas que usan la misma cuadrícula que las reglas realistas y la misma vecindad de ocho celdas, y también son invariantes bajo rotación y reflexión. Sin embargo, en las reglas isotrópicas, las posiciones de las celdas vecinas entre sí se pueden tener 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 variaciones del Juego de la Vida modifican la geometría del universo así como las reglas. Las variaciones anteriores pueden considerarse como un cuadrado bidimensional, porque el mundo es bidimensional y está dispuesto en una cuadrícula cuadrada. Se han desarrollado variaciones cuadradas unidimensionales, conocidas como autómatas celulares elementales , [60] y variaciones cuadradas tridimensionales, al igual que variaciones bidimensionales hexagonales y triangulares . También se ha realizado una variante que utiliza rejillas de mosaico aperiódico . [61]

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

También se pueden observar patrones relacionados con fractales y sistemas fractales en ciertas variaciones realistas. 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 se puede observar en El juego de la vida examinando el crecimiento a largo plazo de una línea infinitamente larga de células vivas de un solo espesor, [62] así como en Highlife, Seeds (B2/S) , y Regla de Wolfram 90 . [63]

La inmigración es una variación muy similar al Juego de la Vida, excepto que hay dos estados , a menudo expresados ​​como dos colores diferentes. Cada vez que nace una nueva célula, adquiere el estado activado que es mayoritario en las tres células que la dieron a luz. Esta función se puede utilizar para examinar las interacciones entre naves espaciales y otros objetos dentro del juego. [64] Otra variación similar, llamada QuadLife, implica cuatro estados diferentes. Cuando una nueva célula nace de tres vecinos diferentes, toma el valor cuarto, y en caso contrario, como Inmigración, toma el valor mayoritario. [65] Excepto por la variación entre celdas, ambas variaciones actúan de manera idéntica al Juego de la Vida.

Música

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

Programas notables

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

Se han utilizado computadoras para seguir y simular el Juego de la Vida desde que se publicó por primera vez. Cuando John Conway investigó por primera vez cómo se desarrollaron varias configuraciones iniciales, las siguió a mano usando un tablero de go con sus piedras blancas y negras. Esto era tedioso y propenso a errores. El primer programa interactivo Game of Life fue escrito en una versión anterior 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]

Ed Hall escribió una versión en color del Juego de la Vida en 1976 para microcomputadoras Cromemco , y una muestra de ese programa llenó la portada de la edición de junio de 1976 de Byte . [70] A la llegada de los gráficos en color basados ​​​​en microcomputadoras de Cromemco se le atribuye un resurgimiento del interés en el juego. [71]

Malcolm Banthorpe escribió dos de las primeras implementaciones del Juego de la vida en computadoras domésticas en BBC BASIC . El primero apareció en la edición de enero de 1984 de la revista Acorn User , y Banthorpe siguió con una versión tridimensional en la edición de mayo de 1984. [72] Susan Stepney, profesora de Ciencias de la Computación en la Universidad de York , siguió esto en 1988 con Life on the Line, un programa que generaba autómatas celulares unidimensionales. [73]

Actualmente hay miles de programas de Game of Life 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 reclamo especial de notoriedad, como popularidad o características inusuales. La mayoría de estos programas incorporan una interfaz gráfica de usuario para 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 huevo de pascua 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. [76]

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

Ver también

Notas

  1. ^ La simultaneidad significa que cuando cada celda cuenta el número de vecinos vivos a su alrededor, utiliza los estados antiguos de sus vecinos antes de la actualización, no sus nuevos estados después de la actualización. Si, en cambio, las celdas se actualizan en orden de lectura, de modo que cada celda use los estados antiguos de las celdas a su derecha y debajo de ella, pero los nuevos estados de las celdas a su izquierda y encima de ella, se produce un autómata celular diferente, lo cual se conoce. como NaiveLife [4] [5] porque es un error común de los 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 de la 'vida' del nuevo juego de solitario de John Conway" (PDF) . Juegos matemáticos. Científico americano . 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 ; Chico, RK (2001-2004). Formas de ganar en tus juegos matemáticos (2ª ed.). AK Peters Ltd.
  3. ^ abc Izhikevich, Eugene M.; Conway, John H .; Seth, Anil (21 de junio de 2015). "Juego de vida". Scholarpedia . 10 (6): 1816. Bibcode : 2015SchpJ..10.1816I. doi : 10.4249/scholarpedia.1816 . ISSN  1941-6016.
  4. ^ "NaiveLife Emulated: una simulación de orden de lectura de Life". ConwayLife.com . 24 de mayo de 2020 . Consultado el 29 de noviembre de 2021 .
  5. ^ Goucher, Adán. "Re: Hilo para sus 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 con una extensió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 cometido por muchas personas que codifican CGoL por primera vez):{{cite web}}: CS1 maint: numeric names: authors list (link)
  7. ^ Recogida, Clifford A. (2009). El libro de matemáticas: de Pitágoras a la dimensión 57, 250 hitos en la historia de las matemáticas . Sterling Publishing Company, Inc. pág. 406.ISBN 978-1402757969.
  8. ^ abc 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., Cerebral Mechanisms in Behavior – The Hixon Symposium, John Wiley & Sons, Nueva York, 1951, págs.
  10. ^ Kemeny, John G. (1955). "El hombre visto como una máquina". Ciencia. Soy . 192 (4): 58–67. Código bibliográfico : 1955SciAm.192d..58K. doi : 10.1038/scientificamerican0455-58.; Ciencia. Soy. 1955; 192:6 (erratas).
  11. ^ Ilachinski, Andrés (2001). Autómatas celulares: un universo discreto. Científico mundial. ISBN 978-981-238-183-5.
  12. ^ Bialynicki-Birula, Iwo; Bialynicka-Birula, Iwona (2004). Modelado de la realidad: cómo las computadoras reflejan la vida . Prensa de la Universidad de Oxford . ISBN 978-0198531005.
  13. ^ von Neumann, Juan; Burks, Arthur W. (1966). Teoría de los autómatas autorreproductores. Prensa de la Universidad de Illinois .
  14. ^ Conway, comunicación privada a la 'Lista de vida', 14 de abril de 1999.
  15. ^ ab Es un modelo y una simulación que es interesante de observar y que puede mostrar que las cosas simples pueden convertirse en problemas complicados. Paul Chapman (11 de noviembre de 2002). "Computadora universal de vida". Archivado desde el original el 6 de septiembre de 2009 . Consultado el 12 de julio de 2009 .
  16. ^ Alstrøm, Preben; León, João (1 de abril de 1994). "Criticidad autoorganizada en el juego de la Vida". Revisión física E. 49 (4): R2507–R2508. Código bibliográfico : 1994PhRvE..49.2507A. doi :10.1103/PhysRevE.49.R2507. PMID  9961636.
  17. ^ Dennett, CC (1991). Conciencia explicada . Boston: Libros de Back Bay. ISBN 978-0-316-18066-5.
  18. ^ Dennett, CC (1995). La peligrosa idea de Darwin: la evolución y el significado de la vida . Nueva York: Simon & Schuster. ISBN 978-0-684-82471-0.
  19. ^ Dennett, CC (2003). La libertad evoluciona . Nueva York: Penguin Books. ISBN 978-0-14-200384-8.
  20. ^ 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 .
  21. ^ Adam P. Goucher. "Constructor de computadoras universal espartano". VidaWiki . Consultado el 5 de diciembre de 2021 .
  22. ^ "R-pentominó". VidaWiki. 1983. págs. 219, 223 . Consultado el 5 de diciembre de 2021 .
  23. ^ Stephen A. Plata. "Planeador". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  24. ^ "Resultados del censo en el juego de la vida de Conway". La búsqueda de sopa de CA realista en línea. Archivado desde el original el 10 de septiembre de 2009 . Consultado el 12 de julio de 2009 .
  25. ^ "Aparecieron naves espaciales espontáneas a partir de polvo aleatorio". Achim Flammenkamp (9 de diciembre de 1995) . Consultado el 10 de julio de 2012 .
  26. ^ Stephen A. Plata. "Púlsar". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  27. ^ Marrón, Nico; Cheng, Carson; Jacobi, curtidor; Karpovich, Maia; Merzenich, Matías; Raucci, David; Riley, Mitchell (5 de diciembre de 2023). "El juego de la vida de Conway es omniperiódico". arXiv : 2312.02799 [math.CO].
  28. ^ "LifeWiki: página de estado de Game of Life - LifeWiki". conwaylife.com . Consultado el 16 de diciembre de 2023 .
  29. ^ Piedra, Alex (18 de enero de 2024). "El 'juego de la vida' de las matemáticas revela patrones repetitivos buscados desde hace mucho tiempo". Revista Quanta . Consultado el 18 de enero de 2024 .
  30. ^ Achim Flammenkamp (7 de septiembre de 2004). "Objetos de ceniza naturales más vistos en Game of Life" . Consultado el 16 de septiembre de 2008 .
  31. ^ Stephen A. Plata. "Intransigente". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  32. ^ Koenig, H. (21 de febrero de 2005). "Nuevos registros de Matusalén". Archivado desde el original el 10 de septiembre de 2019 . Consultado el 24 de enero de 2009 .
  33. ^ Stephen A. Plata. "Pistola planeadora Gosper". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  34. ^ The Hunting of the New Herschel Conduits, foros de ConwayLife, 28 de abril de 2015, publicaciones de Michael Simkin ("simsim314") y Dongook Lee ("Scorbie").
  35. ^ "Motor de interruptor de colocación de bloques". VidaWiki . Consultado el 5 de diciembre de 2021 .
  36. ^ Stephen A. Plata. "Crecimiento infinito". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  37. ^ Stephen A. Plata. "Rastrillo". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  38. ^ "Computadora programable". Foros de conwaylife.com . Consultado el 23 de agosto de 2018 .
  39. ^ "Una máquina de Turing en el juego de la vida de Conway, extensible a una máquina de Turing universal". Pablo Rendel . Consultado el 23 de agosto de 2018 .
  40. ^ "Construye un juego funcional de Tetris en Conway's Game of Life". Intercambio de pila . Consultado el 23 de agosto de 2018 .
  41. ^ "Caballería elemental" . Consultado el 9 de marzo de 2018 .
  42. ^ "Elemental", LifeWiki, consultado el 21 de noviembre de 2018
  43. ^ Aron, Jacob (16 de junio de 2010). "Primera criatura replicante generada en un simulador de vida". Científico nuevo . Consultado el 12 de octubre de 2013 .
  44. ^ ab "Géminis - LifeWiki". Conwaylife.com . Consultado el 16 de octubre de 2013 .
  45. ^ "Nave espacial basada en constructor universal". Conwaylife.com . Consultado el 24 de junio de 2012 .
  46. ^ "Demonoide". VidaWiki . Consultado el 18 de junio de 2016 .
  47. ^ "Desafío geminoide". Conwaylife.com . Consultado el 25 de junio de 2015 .
  48. ^ Passe-Ciencia (29 de mayo de 2019). "Automatizar Cellulaire - Passe-science n.º 27". YouTube . Archivado desde el original el 11 de diciembre de 2021 . Consultado el 25 de junio de 2019 .
  49. ^ apgoucher (12 de noviembre de 2018). "Replicación totalmente autodirigida". Complejo Proyectivo 4-Espacio . Consultado el 25 de junio de 2019 .
  50. ^ "Metacélula 0E0P - LifeWiki". www.conwaylife.com . Consultado el 24 de junio de 2019 .
  51. ^ Andrzej Okrasinski. "Estadísticas de objetos del juego de la vida". Archivado desde el original el 27 de julio de 2009 . Consultado el 12 de julio de 2009 .
  52. ^ Nathaniel Johnston. "La búsqueda de sopa de CA realista en línea". Archivado desde el original el 10 de septiembre de 2009 . Consultado el 12 de julio de 2009 .
  53. ^ Alan Hensel. "Acerca del subprograma Game of Life de mi Conway" . Consultado el 12 de julio de 2009 .
  54. ^ Nehaniv, Chrystopher L. (15 a 18 de julio de 2002). Autorreproducción en autómatas celulares asíncronos . 2002 Conferencia NASA/DoD sobre hardware evolutivo. Alexandria, Virginia, EE.UU.: IEEE Computer Society Press. págs. 201–209. doi :10.1109/EH.2002.1029886. hdl : 2299/6834 . ISBN 0-7695-1718-8.
  55. ^ "El juego de la vida de Conway".
  56. ^ HighLife: una variante interesante de la vida por David Bell (archivo .zip)
  57. ^ Stephen A. Plata. "Replicante". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  58. ^ "Autómatas celulares realistas - LifeWiki". Conwaylife.com . Consultado el 4 de marzo de 2019 .
  59. ^ "Isotrópico - LifeWiki". Conwaylife.com . Consultado el 4 de marzo de 2019 .
  60. ^ "Autómata celular elemental". Wolfram MathWorld . Consultado el 12 de julio de 2009 .
  61. ^ "Los primeros planeadores navegan por el universo Penrose en constante cambio". Científico nuevo .
  62. ^ Stephen Wolfram , Un nuevo tipo de ciencia en línea, Nota (f) para estructuras en sistemas de clase 4: Estructuras en el juego de la vida: "Se produce un tipo más simple de crecimiento ilimitado si uno comienza desde una línea infinita de celdas negras. En eso En este caso, la evolución es efectivamente 1D y resulta que sigue la regla elemental 22".
  63. ^ "La vida imita a Sierpinski". Foros de ConwayLife.com . Consultado el 12 de julio de 2009 .
  64. ^ Stephen A. Plata. "Inmigración". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  65. ^ Stephen A. Plata. "Cuatrivida". El léxico de la vida . Consultado el 4 de marzo de 2019 .
  66. ^ Burraston, Dave; Edmonds, Ernesto; Livingstone, Dan; Miranda, Eduardo Reck (2004). "Autómatas celulares en música por computadora basada en MIDI". Actas de la Conferencia Internacional de Música por Computadora de 2004 . CiteSeerX 10.1.1.6.3882 . hdl :10453/1425. ISBN  9780971319226.
  67. ^ "glitchDS - Secuenciador de autómatas celulares para Nintendo DS". Synthtopia.com. 29 de mayo de 2008 . Consultado el 24 de junio de 2012 .
  68. ^ "Secuenciador de música de Game Of Life". Synthtopia.com. 2009-04-29 . Consultado el 24 de junio de 2012 .
  69. ^ "Secuenciador de música de Game Of Life para iOS, Runxt Life". Synthtopia.com. 2011-01-12 . Consultado el 24 de junio de 2012 .
  70. ^ Helmers, Carl (junio de 1976). "Acerca de la portada". Byte . Núm. 10, págs. 6–7 . Consultado el 18 de febrero de 2013 .
  71. ^ McIntosh, Harold (2008). "Introducción" (PDF) . Revista de autómatas celulares . 13 : 181–186. Archivado (PDF) desde el 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 el programa de visualización favorito para monitores de vídeo y provocó un resurgimiento del interés por el juego.
  72. ^ "Escaneos de revistas de usuarios de Acorn". La BBC y la biblioteca de dominio público de Master Computer . Consultado el 29 de diciembre de 2018 .
  73. ^ Stepney, Susan. "Artículos de AcornUser". www-users.cs.york.ac.uk . Usuario de bellota . Consultado el 29 de diciembre de 2018 .
  74. ^ "Xvida".
  75. ^ "Programa gratuito Dr. Blob's Organism".
  76. ^ Wasserman, Todd (12 de julio de 2012). "Escriba 'El juego de la vida de Conway' en Google y vea qué sucede". Machacable . Consultado el 1 de mayo de 2020 .

enlaces externos