Articulo de referencia

Lenia

Un patrón autónomo de muestra 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 C...

Un patrón autónomo de muestra 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] Se pretende que sea una generalización continua del Juego de la Vida de Conway , con estados , espacio y tiempo continuos . Como consecuencia de su dominio continuo y de alta resolución, los patrones autónomos complejos ("formas de vida" o " naves espaciales ") generados en Lenia se describen como diferentes de los que aparecen en otros autómatas celulares, siendo "geométricos, metaméricos , difusos, resilientes, adaptativos y genéricos de reglas". [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 honorífica del Premio de Arte ALIFE en ALIFE 2018 en Tokio, [5] y la Publicación Destacada de 2019 de la Sociedad Internacional para la Vida Artificial (ISAL). [6]

Normas

Actualizaciones iterativas

Sea la red o cuadrícula que contiene un conjunto de estados . Como muchos autómatas celulares, Lenia se actualiza iterativamente; cada estado de salida es una función pura del estado anterior, de modo que yo {\displaystyle {\mathcal {L}}} S yo {\displaystyle S^{\mathcal {L}}}

Φ ( A 0 ) = A Δ a , Φ ( A Δ a ) = A 2 Δ a , , Φ ( A a ) = A a + Δ a , {\displaystyle \Phi(A^{0})=A^{\Delta t},\Phi(A^{\Delta t})=A^{2\Delta t},\ldots ,\Phi(A^{t})=A^{t+\Delta t},\ldots }

donde es el estado inicial y es la regla global , que representa la aplicación de la regla local sobre cada sitio . Por lo tanto , A 0 {\estilo de visualización A^{0}} Φ : S yo S yo {\displaystyle \Phi :S^{\mathcal {L}}\rightarrow S^{\mathcal {L}}} incógnita yo {\displaystyle \mathbf {x} \en {\cal {L}}} Φ norte ( A a ) = A a + norte Δ a {\displaystyle \Phi ^{N}(A^{t})=A^{t+N\Delta t}}

Si la simulación avanza en cada paso de tiempo, entonces la resolución temporal es . Δ a {\displaystyle \Delta t} yo = 1 Δ a {\displaystyle T={\frac {1}{\Delta t}}}

Conjuntos de estados

Sea con máximo . Este es el conjunto de estados del autómata y caracteriza los estados posibles que se pueden encontrar en cada sitio. Los valores mayores 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 . Lenia permite resoluciones mucho más altas. Tenga en cuenta que el valor real en cada sitio no está en , sino que es un múltiplo entero de ; por lo tanto, tenemos para todos los . Por ejemplo, dado , . S = { 0 , 1 , , PAG 1 , PAG } {\displaystyle S=\{0,1,\ldots ,P-1,P\}} PAG O {\displaystyle P\in \mathbb {Z}} PAG {\estilo de visualización P} PAG = 1 {\estilo de visualización P=1} [ 0 , PAG ] {\estilo de visualización [0,P]} Δ pag = 1 PAG {\displaystyle \Delta p={\frac {1}{P}}} A a ( incógnita ) [ 0 , 1 ] {\displaystyle A^{t}(\mathbf {x} )\en [0,1]} incógnita yo {\displaystyle \mathbf {x} \en {\mathcal {L}}} PAG = 4 {\estilo de visualización P=4} A a ( incógnita ) { 0 , 0,25 , 0,5 , 0,75 , 1 } {\displaystyle \mathbf {A} ^{t}(\mathbf {x} )\en \{0,0.25,0.5,0.75,1\}}

Barrios

Un barrio de Moore de 9 cuadrados como los utilizados en Game of Life.
Los barrios de “pelota” utilizados por Lenia.

Matemáticamente, los vecindarios como los de Game of Life se pueden representar utilizando un conjunto de vectores de posición en . Para el vecindario clásico de Moore utilizado por Game of Life, por ejemplo, ; es decir, un cuadrado de tamaño 3 centrado en cada sitio. R 2 {\displaystyle \mathbb {R} ^{2}} norte = { 1 , 0 , 1 } 2 {\displaystyle {\mathcal {N}}=\{-1,0,1\}^{2}}

En el caso de Lenia, el vecindario es en cambio una bola de radio centrada en un sitio, , que puede incluir el propio sitio original. R {\estilo de visualización R} norte = { incógnita yo : " incógnita " 2 R } {\displaystyle {\mathcal {N}}=\{\mathbf {x} \in {\mathcal {L}}:\lVert \mathbf {x} \rVert _{2}\leq R\}}

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 dado.

Regla local

Existen variantes discretas y continuas de Lenia. Sea un vector en dentro de la cual se representa la posición de un sitio dado, y sea el conjunto de sitios vecinos a . Ambas variantes comprenden dos etapas: incógnita {\displaystyle \mathbf {x}} R 2 {\displaystyle \mathbb {R} ^{2}} yo {\displaystyle {\mathcal {L}}} norte {\displaystyle {\mathcal {N}}} incógnita {\displaystyle \mathbf {x}}

  1. Utilizando un núcleo de convolución para calcular la distribución potencial . K : norte S {\displaystyle \mathbf {K} :{\mathcal {N}}\rightarrow S} a ( incógnita ) = K A a ( incógnita ) {\displaystyle \mathbf {U} ^{t}(\mathbf {x} )=\mathbf {K} *\mathbf {A} ^{t}(\mathbf {x} )}
  2. Utilizando un mapeo de crecimiento para calcular la distribución de crecimiento final . GRAMO : [ 0 , 1 ] [ 1 , 1 ] {\displaystyle G:[0,1]\rightarrow [-1,1]} GRAMO a ( incógnita ) = GRAMO ( a ( incógnita ) ) {\displaystyle \mathbf {G} ^{t}(\mathbf {x} )=G(\mathbf {U} ^{t}(\mathbf {x} ))}

Una vez calculado, se escala según la resolución de tiempo elegida y se agrega al valor del estado original: Aquí, la función de clip está definida por . GRAMO a {\displaystyle \mathbf {G} ^{t}} Δ a {\displaystyle \Delta t} A a + Δ a ( incógnita ) = acortar ( A a + Δ a GRAMO a ( incógnita ) , 0 , 1 ) {\displaystyle \mathbf {A} ^{t}+\Delta t}(\mathbf {x} )={\text{clip}}(\mathbf {A} ^{t}+\Delta t\;\mathbf {G} ^{t}(\mathbf {x} ),\;0,\;1)} acortar ( , a , b ) := mín. ( máximo ( , a ) , b ) {\displaystyle \operatorname {clip} (u,a,b):=\min(\max(u,a),b)}

Las reglas locales se definen de la siguiente manera para Lenia discreta y continua:

a ( incógnita ) = { norte norte K ( norte ) A a ( incógnita + norte ) Δ incógnita 2 , Lenia discreta norte norte K ( norte ) A a ( incógnita + norte ) d incógnita 2 , Lenia continua GRAMO a ( incógnita ) = GRAMO ( a ( incógnita ) ) A a + Δ a ( incógnita ) = acortar ( A a ( incógnita ) + Δ a GRAMO a ( incógnita ) , 0 , 1 ) {\displaystyle {\begin{aligned}\mathbf {U} ^{t}(\mathbf {x} )&={\begin{casos}\sum _{\mathbf {n} \in {\mathcal {N} }}\mathbf {K(n)} \mathbf {A} ^{t}(\mathbf {x} +\mathbf {n} )\Delta x^{2},&{\text{Lenia discreta}}\ \\int _{\mathbf {n} \in {\mathcal {N}}}\mathbf {K(n)} \mathbf {A} ^{t}(\mathbf {x} +\mathbf {n} ) dx^{2},&{\text{continua Lenia}}\end{cases}}\\\mathbf {G} ^{t}(\mathbf {x} )&=G(\mathbf {U} ^{t}(\mathbf {x} ))\\\mathbf {A} ^{t+\Delta t}(\mathbf {x} )&={\text{clip }}(\mathbf {A} ^{t}(\mathbf {x} )+\Delta t\;\mathbf {G} ^{t}(\mathbf {x} ),\;0,\;1) \end{alineado}}}

Generación de kernel

La carcasa del núcleo, el esqueleto del núcleo y los mapeos de crecimiento para Lenia.

Existen muchas formas de generar el núcleo de convolución . El núcleo final es la composición de una estructura de núcleo y un esqueleto de núcleo . K {\displaystyle \mathbf {K}} K do Estilo de visualización K_{C}} K S Estilo de visualización K_{S}

Para el núcleo , Chan ofrece varias funciones que se definen radialmente . Las funciones del núcleo son unimodales y están sujetas a la restricción (y normalmente también lo están). Algunos ejemplos de funciones del núcleo son: K do Estilo de visualización K_{C}} K do ( 0 ) = K do ( 1 ) = 0 {\displaystyle K_{C}(0)=K_{C}(1)=0} K do ( 1 2 ) = 1 {\displaystyle K_{C}\left({\frac {1}{2}}\right)=1}

K do ( a ) = { exp ( alfa alfa 4 a ( 1 a ) ) , exponencial , alfa = 4 ( 4 a ( 1 a ) ) alfa , polynomial , α = 4 1 [ 1 4 , 3 4 ] ( r ) , rectangular , etc. {\displaystyle K_{C}(r)={\begin{cases}\exp \left(\alpha -{\frac {\alpha }{4r(1-r)}}\right),&{\text{exponential}},\alpha =4\\(4r(1-r))^{\alpha },&{\text{polynomial}},\alpha =4\\\mathbf {1} _{\left[{\frac {1}{4}},{\frac {3}{4}}\right]}(r),&{\text{rectangular}}\\\ldots ,&{\text{etc.}}\end{cases}}}

Aquí está la función del indicador . 1 A ( r ) {\displaystyle \mathbf {1} _{A}(r)}

Una vez definida la capa del núcleo, se utiliza el esqueleto del núcleo para expandirla y calcular los valores reales del núcleo transformando la capa en una serie de anillos concéntricos . La altura de cada anillo está controlada por un vector de pico del núcleo , donde es el rango del vector de parámetros. Luego, el esqueleto del núcleo se define como K S {\displaystyle K_{S}} β = ( β 1 , β 2 , , β B ) [ 0 , 1 ] B {\displaystyle \beta =(\beta _{1},\beta _{2},\ldots ,\beta _{B})\in [0,1]^{B}} B {\displaystyle B} K S {\displaystyle K_{S}}

K S ( r ; β ) = β B r K C ( B r  mod  1 ) {\displaystyle K_{S}(r;\beta )=\beta _{\lfloor Br\rfloor }K_{C}(Br{\text{ mod }}1)}

El núcleo final es por tanto K ( n ) {\displaystyle \mathbf {K} (\mathbf {n} )}

K ( n ) = K S ( n 2 ) | K S | {\displaystyle \mathbf {K} (\mathbf {n} )={\frac {K_{S}(\lVert \mathbf {n} \rVert _{2})}{|K_{S}|}}}

tal que se normaliza para tener una suma de elementos de y (para conservación de masa ). en el caso discreto y en el caso continuo. K {\displaystyle \mathbf {K} } 1 {\displaystyle 1} K A [ 0 , 1 ] {\displaystyle \mathbf {K} *\mathbf {A} \in [0,1]} | K S | = N K S Δ x 2 {\displaystyle |K_{S}|=\textstyle \sum _{\mathcal {N}}\displaystyle K_{S}\,\Delta x^{2}} N K S d x 2 {\displaystyle \int _{N}K_{S}\,dx^{2}}

Mapeos de crecimiento

La función de crecimiento , que es análoga a una función de activación , puede ser cualquier función que sea unimodal, no monótona y acepte parámetros . Algunos ejemplos incluyen G : [ 0 , 1 ] [ 1 , 1 ] {\displaystyle G:[0,1]\rightarrow [-1,1]} μ , σ R {\displaystyle \mu ,\sigma \in \mathbb {R} }

G ( u ; μ , σ ) = { 2 exp ( ( u μ ) 2 2 σ 2 ) 1 , exponential 2 1 [ μ ± 3 σ ] ( u ) ( 1 ( u μ ) 2 9 σ 2 ) α 1 , polynomial , α = 4 2 1 [ μ ± σ ] ( u ) 1 , rectangular , etc. {\displaystyle G(u;\mu ,\sigma )={\begin{cases}2\exp \left(-{\frac {(u-\mu )^{2}}{2\sigma ^{2}}}\right)-1,&{\text{exponential}}\\2\cdot \mathbf {1} _{[\mu \pm 3\sigma ]}(u)\left(1-{\frac {(u-\mu )^{2}}{9\sigma ^{2}}}\right)^{\alpha }-1,&{\text{polynomial}},\alpha =4\\2\cdot \mathbf {1} _{[\mu \pm \sigma ]}(u)-1,&{\text{rectangular}}\\\ldots ,&{\text{etc.}}\end{cases}}}

¿De dónde se extrae un valor potencial ? u {\displaystyle u} U t {\displaystyle \mathbf {U} ^{t}}

Juego de la vida

El Juego de la Vida puede considerarse un caso especial de Lenia discreta con . En este caso, el núcleo sería rectangular, con la función y la regla de crecimiento también rectangulares, con . R = T = P = 1 {\displaystyle R=T=P=1} K C ( r ) = 1 [ 1 4 , 3 4 ] ( r ) + 1 2 1 [ 0 , 1 4 ) ( r ) {\displaystyle K_{C}(r)=\mathbf {1} _{\left[{\frac {1}{4}},{\frac {3}{4}}\right]}(r)+{\frac {1}{2}}\mathbf {1} _{\left[0,{\frac {1}{4}}\right)}(r)} μ = 0.35 , σ = 0.07 {\displaystyle \mu =0.35,\sigma =0.07}

Patrones

Algunas de la gran variedad de "especies" de Lenia.

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

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

Otros trabajos han señalado la fuerte similitud entre las reglas de actualización de los autómatas celulares y las convoluciones. De hecho, estos trabajos se han centrado en reproducir autómatas celulares utilizando redes neuronales convolucionales simplificadas . Mordvintsev et al. investigaron la aparición de la generación de patrones de autorreparación. [9] Gilpin descubrió que cualquier autómata celular podía representarse como una red neuronal convolucional y entrenó redes neuronales para reproducir autómatas celulares existentes [8].

Desde esta perspectiva, los autómatas celulares pueden considerarse un caso especial de redes neuronales convolucionales recurrentes . La regla de actualización de Lenia también puede considerarse como una convolución de una sola capa (el "campo potencial" ) con una función de activación (el "mapeo de crecimiento" ). Sin embargo, Lenia utiliza núcleos fijos mucho más grandes y no se entrena mediante descenso de gradiente. K {\displaystyle \mathbf {K} } G {\displaystyle G}

Véase también

  • El repositorio de Github para Lenia
  • El sitio web de Chan para Lenia
  • Un seminario invitado en Stanford impartido por Chan

Referencias

  1. ^ abc Chan, Bert Wang-Chak (15 de octubre de 2019). "Lenia: Biología de la vida artificial". Sistemas complejos . 28 (3): 251–286. arXiv : 1812.05433 . doi :10.25088/ComplexSystems.28.3.251.
  2. ^ "Lenia". chakazul.github.io . Consultado el 12 de octubre de 2021 .
  3. ^ Roberts, Siobhan (28 de diciembre de 2020). "Las lecciones duraderas de El juego de la vida de John Conway". The New York Times . ISSN  0362-4331 . Consultado el 13 de octubre de 2021 .
  4. ^ "La competencia de criaturas virtuales". virtualcreatures.github.io . Consultado el 12 de octubre de 2021 .
  5. ^ "Premio de Arte ALife 2018". Premio de Arte ALIFE 2018. Consultado el 12 de octubre de 2021 .
  6. ^ "Premios ISAL 2020: Ganadores".
  7. ^ "Lenia". chakazul.github.io . Consultado el 13 de octubre de 2021 .
  8. ^ ab Gilpin, William (4 de septiembre de 2019). "Autómatas celulares como redes neuronales convolucionales". Physical Review E . 100 (3): 032402. arXiv : 1809.02942 . doi : 10.1103/PhysRevE.100.032402 . ISSN  2470-0045.
  9. ^ Mordvintsev, Alejandro; Randazzo, Ettore; Niklasson, Eyvind; Levin, Michael (11 de febrero de 2020). "Crecimiento de autómatas celulares neuronales". Destilar . 5 (2): e23. doi : 10.23915/distill.00023 . ISSN  2476-0757.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Lenia&oldid=1235052604"