Teoría: Método Aplicado

El autómata celular es un método que trabaja sobre una matriz, recorriendo cada uno de sus elementos y modificando sus valores dependiendo del valor de los elementos aledaños.

En la simulación de galaxia, cada “casillero” de la matriz representaría a un espacio de la galaxia, cuyo valor sería cero si se encuentra vacío (es decir, no hay estrella) o mayor a cero si hay estrella; en cuyo caso el valor representaría a la “vida” de la estrella.

Al usar este método, se presentó un problema: los elementos de la matriz tienen una posición entera, es decir, nos referimos al elemento uno, dos, etc.; pero nunca al elemento 1, 5. Entonces, al rotar una estrella sobre el eje de la galaxia, nos vemos obligados a redondear el valor de su ángulo. Este pequeño error de redondeo es acarreado a través de las generaciones, llegando a ser tan significante que modifica completamente el resultado de la simulación.

La solución encontrada para este problema fue usar un vector en lugar de una matriz. El vector almacena a la totalidad de las estrellas, guardando no solo su “vida” sino también sus posiciones en coordenadas cartesianas como números de precisión doble. De esta forma, ya no se pierden datos, ya que nunca se redondea, y las estrellas pueden rotar sin acumular error de redondeo.

Pero esta solución trajo consigo otro problema: Si el autómata celular trabaja sobre una matriz, ¿cómo podemos aplicarlo, ahora que tenemos un vector en lugar de una matriz? Para solucionar este nuevo problema, una nueva versión del autómata celular fue creada. En lugar de recorrer todas los elementos de la matriz y modificar sus valores dependiendo de los valores de los elementos aledaños; recorremos todo el vector, y para cada estrella, buscamos en el vector todas las estrellas cuyas posiciones (x, y), sean menores o iguales a la posición – 1, o mayores o iguales a la posición + 1 (Posición – 1 <= PosiciónPosible <= Posición + 1).

Esto implica que ahora puede haber más de una estrella en cada casillero. Pero si tenemos a un solo pixel para representar a un casillero, ¿Cómo sabemos, al ver el gráfico, si hay una o más estrellas en esa posición? En este caso, representamos a dicho pixel con un tono de color más claro, como si hubiera más luz por haber más estrellas juntas. Esto, a su vez, permite ver la formación de estructuras espirales con mucha mayor facilidad y definición.