Autómata celular

Autómata celular
Información sobre la plantilla
Automata.jpg

Autómata Celular (AC). Es adecuado para modelar sistemas naturales que puedan ser descritos como una colección masiva de objetos simples que interactúen localmente unos con otros. Son sistemas descubiertos dentro del campo de la física computacional por John von Neumann en la década del 1950. Es un modelo matemático para un sistema dinámico que evoluciona en pasos discretos. Es adecuado para modelar sistemas naturales que puedan ser descritos como una colección masiva de objetos simples que interactúen localmente unos con otros.

Historia

La teoría de los autómatas celulares inicia con su precursor John von Neumann a finales de los años 40 con su libro "Theory of Self-reproducing Automata" (editado y completado por A. W. Burks). Aunque John von Neumann puso en práctica los AC estos fueron concebidos en los años 40's por Konrad Zuse y Stanislaw Ulam. Zuse pensó en los “espacios de computo” (“computing spaces”), como modelos discretos de sistemas físicos. Los aportes de Ulam vinieron al final de los 40 poco después de haber inventado con Nicholas Metropolis el Método de Monte Carlo.

Descripción

No existe una definición formal y matemática aceptada de Autómata Celular, sin embargo, se puede describir a un AC como tuplas cuyos elementos se describen a continuación.

Un AC consiste de:

  • Una rejilla o cuadriculado (lattice) de enteros (conjunto <math>\mathbb{Z}</math>) infinitamente extendida, y con dimensión <math>d \in \mathbb{Z}^+</math>. Cada celda de la cuadrícula se conoce como célula.
  • Cada célula puede tomar un valor en <math>\mathbb{Z}</math> a partir de un conjunto finito de estados <math>k</math>.
  • Cada célula además se caracteriza por su vecindad, un conjunto finito de células en las cercanías de la misma.
  • De acuerdo con esto, se aplica a todas las células de la cuadrícula, una función de transición ( <math>f</math> ) que toma como argumentos los valores de la célula en cuestión y los valores de sus vecinos, y regresa el nuevo valor que la célula tendrá en la siguiente etapa de tiempo. Esta función <math>f</math> se aplica, como ya se dijo, de forma homogénea a todas las células, por cada paso discreto de tiempo.

Condiciones de frontera

Por definición, un AC consta de una lattice infinita de enteros. Sin embargo, para cuestiones prácticas (modelos de sistemas físicos, llevados a cabo en ordenadores de memoria finita), se requiere tomar ciertas consideraciones a la hora de implementar un AC en un sistema de cómputo. Es por ello que la definición original se modifica para dar cabida a lattices finitas en las que las células del AC interactúen. Esto conlleva a la consideración extra de lo que debe de suceder con aquellas células que se encuentren en los bordes de la lattice. A la implementación de una o varias consideraciones específicas se le conoce como condición de frontera.

Dentro del ámbito de los AC, se pueden implementar numerosas condiciones de frontera, de acuerdo a lo que el problema real requiera para su modelado. Por ejemplo:

Frontera abierta. Se considera que fuera de la lattice residen células, todas con un valor fijo. En el caso particular del juego de la vida y de otros AC con dos estados en su conjunto <math>k</math>, una frontera se dice fría si las células fuera de la frontera se consideran muertas y caliente si se consideran vivas.

Frontera periódica. Se considera a la lattice como si sus extremos se tocaran. En una lattice de dimensión 1, esto puede visualizarse en dos dimensiones como una circunferencia. En dimensión 2, la lattice podría visualizarse en tres dimensiones como un toroide.

Frontera reflectora. Se considera que las células fuera de la lattice reflejan los valores de aquellas dentro de la lattice. Así, una célula que estuviera junto al borde de la lattice (fuera de ella) tomaría como valor el de la célula que esté junto al borde de la lattice, dentro de ella.

Sin frontera. Haciendo uso de implementaciones que hagan crecer dinámicamente el uso de memoria de la lattice implementada, se puede asumir que cada vez que las células deben interactuar con células fuera de la lattice, esta se hace más grande para dar cabida a estas interacciones. Obviamente, existe un límite (impuesto por la memoria disponible) para esta condición. Es muy importante no confundir esta condición de frontera con la definición original de AC cuya lattice es inicialmente infinita. En el caso de un AC sin frontera, la lattice comienza con un tamaño definido y finito, y conforme se requiera va creciendo en el tiempo, lo cual no lo hace necesariamente un modelo más cercano a la realidad, pues si se inicializara la lattice aleatoriamente, con esta condición sólo se pueden inicializar las células dentro de la lattice inicial finita, mientras que en el caso de la definición original, en teoría todas las células de la lattice infinita deberían ser inicializadas.

Variaciones

Los AC pueden variar en alguna de las características antes mencionadas, derivando en autómatas celulares no estándar. Por ejemplo, un AC estándar tiene una cuadrícula donde se asume que las células son cuadros, es decir, que la lattice tiene una geometría cuadrada. Esto no es necesariamente un requisito, y se puede variar el AC para presentar una geometría triangular o hexagonal (en AC de 2 dimensiones, el cuadrado, el triángulo y el hexágono son las únicas figuras geométricas que llenan el plano). También puede variarse el conjunto de estados <math>k</math> que cada célula puede tomar, la función de transición <math>f</math> de forma que ya no sea homogénea, utilizar elementos estocásticos (aleatoriedad) en <math>f</math> (lo que se conoce como AC probabilístico), variar las vecindades de cada célula, etc.

Nombre

El nombre autómata celular (plural autómatas celulares) es la designación común en castellano de estos sistemas. Sin embargo, esta designación surge de los términos que se aplican en la ciencia estadounidense. En Europa en cambio, se utiliza otra designación, más latinizada, que derivaría en el nombre automatón celular (plural autómata celular). En ambos casos, se suele abreviar el nombre como AC.

Aplicaciones

Los autómatas celulares pueden ser usados para modelar numerosos sistemas físicos que se caractericen por un gran número de componentes homogéneos y que interactúen localmente entre sí. De hecho, cualquier sistema real al que se le puedan analogar los conceptos de "vecindad", "estados de los componentes" y "función de transición" es candidato para ser modelado por un AC.

Las características de los autómatas celulares harán que dichos modelos sean discretos en tiempo y/o espacio (dependiendo de la variante de la definición de AC que se use). Algunos ejemplos de áreas en donde se utilizan los autómatas celulares son:

  • Modelación de flujo de tráfico vehicular y de peatones.
  • Modelación de fluidos (gases o líquidos).
  • Modelación de la evolución de células o virus como el VIH.
  • Modelación de procesos de precolación.

Fuentes