Lenia

De testwiki
Ir a la navegación Ir a la búsqueda
Un ejemplo de patrón autónomo de Lenia.
Una animación que muestra el movimiento de un planeador en Lenia.

Lenia es una familia de autómatas celulares creada por Bert Wang-Chak Chan.[1][2][3] Lenia pretende ser una generalización continua del Juego de la vida de Conway, con estados, y espacio continuos. Como consecuencia de su dominio continuo de alta resolución, los patrones autónomos complejos ("formas de vida" o "naves espaciales") generados en Lenia son diferentes de los que aparecen en otros autómatas celulares, siendo "geométricos, metaméricos, difusos, resistentes, adaptativos y de reglas genéricas".[1]

Lenia ganó el Concurso de Criaturas Virtuales de 2018 en la Conferencia de Computación Genética y Evolutiva en Kioto,[4] una mención de honor para el Premio de Arte ALIFE en ALIFE 2018 en Tokio,[5] y la Publicación Destacada de 2019 de la International Society for Artificial Life (ISAL).[6]

Reglas

Actualizaciones iterativas

Sea la red o cuadrícula conteniendo un conjunto de estados S . Como muchos autómatas celulares, Lenia es actualizado de forma iterativa; cada estado de salida es una función pura del estado anterior, de modo queΦ(A0)=AΔt,Φ(AΔt)=A2Δt,,Φ(At)=At+Δt,dónde A0 es el estado inicial y Φ:SS es la regla global, que representa la aplicación de la regla local sobre cada sitio 𝐱 . De este modo ΦN(At)=At+NΔt .

Si la simulación es avanzada por Δt en cada paso de tiempo, entonces la resolución de tiempo T=1Δt .

Conjuntos de estados

Sea S={0,1,,P1,P} con un máximo P . Este es el conjunto de estados del autómata y caracteriza los posibles estados que se pueden encontrar en cada sitio. P más grandes corresponden a resoluciones de estado más altas en la simulación. Muchos autómatas celulares utilizan la resolución de estado más baja posible, es decir P=1 . Lenia permite resoluciones mucho más altas. Tenga en cuenta que el valor real en cada sitio no está en [0,P] sino más bien un múltiplo entero de Δp=1P ; por lo tanto tenemos At(𝐱)[0,1] para todo 𝐱 . Por ejemplo, dado P=4, 𝐀t(𝐱){0,0.25,0.5,0.75,1} .

Vecindarios

Una vecindad de Moore de 9 cuadrados como los que se utilizan en el Juego de la vida.
Los vecinos de "bola" utilizados por Lenia.

Matemáticamente, los vecinos como los del Juego de la vida pueden ser representados utilizando un conjunto de vectores de posición en 2 . Para el clásico vecindario de Moore utilizado por el Juego de la vida, por ejemplo, 𝒩={1,0,1}2 ; es decir, un cuadrado de tamaño 3 centrado en cada sitio.

En el caso de Lenia, el vecindario es en cambio una bola de radio R centrada en un sitio, 𝒩={𝐱:𝐱2R}, que puede incluir el propio sitio original.

Tenga en cuenta que los vectores de vecindad no son la posición absoluta de los elementos, sino más bien un conjunto de posiciones relativas (deltas) con respecto a cualquier sitio determinado.

Regla local

Existen variantes discretas y continuas de Lenia. Sea 𝐱 un vector en 2 dentro representando la posición de un sitio dado, y 𝒩 el conjunto de sitios vecinos de 𝐱 . Ambas variaciones comprenden dos etapas:

  1. Usando un kernel (núcleo) de convolución 𝐊:𝒩S para calcular la distribución potencial 𝐔t(𝐱)=𝐊*𝐀t(𝐱) .
  2. Usando una mapeo (función) de crecimiento G:[0,1][1,1] para calcular la distribución de crecimiento final 𝐆t(𝐱)=G(𝐔t(𝐱)) .

Una vez 𝐆t es calculado, se escala según la resolución de tiempo elegida Δt y es agregado al valor del estado original:𝐀t+Δt(𝐱)=clip(𝐀t+Δt𝐆t(𝐱),0,1)Aquí, la función de corte (clip) está definida por clip(u,a,b):=min(max(u,a),b) .

Para Lenia discreta y continua, las reglas locales se definen de la siguiente manera:𝐔t(𝐱)={𝐧𝒩𝐊(𝐧)𝐀t(𝐱+𝐧)Δx2,Lenia discreto𝐧𝒩𝐊(𝐧)𝐀t(𝐱+𝐧)dx2,Lenia continuo 𝐆t(𝐱)=G(𝐔t(𝐱))𝐀t+Δt(𝐱)=clip(𝐀t(𝐱)+Δt𝐆t(𝐱),0,1)

Generación del kernel (núcleo)

El shell del kernel, el esqueleto del kernel y las funciones de crecimiento de Lenia.

Hay muchas formas de generar el kernel de convolución. 𝐊 . El kernel final es la composición de un shell (caparazón) del kernel. KC y un esqueleto de kernelKS .

Para el shell del kernel KC, Chan da varias funciones que se definen radialmente . Las funciones del shell del kernel son unimodales y están sujetas a la restricción KC(0)=KC(1)=0 (y típicamente, también KC(12)=1). Las funciones del kernel de ejemplo incluyen:KC(r)={exp(αα4r(1r)),exponencial,α=4(4r(1r))α,polinómica,α=4𝟏[14,34](r),rectangular,etc.Aquí, 𝟏A(r) es la función indicadora . Una vez que se ha definido el shell del kernel, el esqueleto del kernel KS se utiliza para expandirlo y calcular los valores reales del kernel transformando el shell en una serie de anillos concéntricos . La altura de cada anillo está controlada por un vector de pico del kernel. β=(β1,β2,,βB)[0,1]B, dónde B es el rango del vector de parámetros. Entonces el esqueleto del kernel KS Se define comoKS(r;β)=βBrKC(Br mod 1)El kernel final 𝐊(𝐧) es, por lo tanto𝐊(𝐧)=KS(𝐧2)|KS|tal que 𝐊 está normalizado para tener una suma de elementos de 1 y 𝐊*𝐀[0,1] (para la conservación de masa ), con |KS|=𝒩KSΔx2 para el caso discreto, y NKSdx2 en el caso continuo.

Mapeos de crecimiento

El mapeo del crecimiento G:[0,1][1,1], que es análogo a una función de activación, puede ser cualquier función unimodal, no monótona y que acepte parámetros μ,σ . Algunos ejemplos incluyenG(u;μ,σ)={2exp((uμ)22σ2)1,exponencial 2𝟏[μ±3σ](u)(1(uμ)29σ2)α1,polinómico,α=42𝟏[μ±σ](u)1,rectangular,etc.dónde u es un valor potencial extraído de 𝐔t .

El juego de la vida

El Juego de la vida puede considerarse como un caso especial de Lenia discreta con R=T=P=1 . En este caso, el kernel sería rectangular, con la funciónKC(r)=𝟏[14,34](r)+12𝟏[0,14)(r)y la regla de crecimiento también rectangular, con μ=0.35,σ=0.07 .

Patrones

Algunos ejemplos de la gran variedad de "especies" de Lenia.

Al variar el kernel convolucional, el mapeo de crecimiento y la condición inicial, se han descubierto en Lenia más de 400 "especies" de "vida", que muestran "autoorganización, autorreparación, simetrías bilaterales y radiales, dinámica locomotora y, a veces, una naturaleza caótica".[7] Chan ha creado una taxonomía para estos patrones.[1]

Trabajo relacionado

Autómatas celulares como una red neuronal convolucional.[8]

Otros trabajos han notado la gran similitud entre las reglas de actualización de los autómatas celulares y las convoluciones. De hecho, estos trabajos se han centrado en la reproducción de autómatas celulares utilizando redes neuronales convolucionales simplificadas. Mordvintsev et al. investigó el surgimiento de la generación de patrones autorreparadores.[9] Gilpin descubrió que cualquier autómata celular podría representarse como una red neuronal convolucional y entrenó redes neuronales para reproducir autómatas celulares existentes [8]

Desde este punto de vista, los autómatas celulares pueden verse como un caso especial de redes neuronales convolucionales recurrentes . La regla de actualización de Lenia también puede verse como una convolución de una sola capa (el "campo potencial" 𝐊 ) con una función de activación (el "mapeo de crecimiento" G ). Sin embargo, Lenia utiliza kernels fijos mucho más grandes y no se entrenan mediante el descenso de gradiente.

Véase también

Enlaces externos

Referencias

Plantilla:Listaref Plantilla:Control de autoridades