Vida Artificial

Investigación

Artículos

Autor

Otros

Capítulo 8: Autómatas Celulares y método Monte Carlo

Mi Proyecto de Grado de Maestría en Ingeniería se basó en la línea de investigación de Vida Artificial, en el tema de autómatas celulares. Me llamó la atención este tema porque los modelos se acercan a lo que sucede en la vida real y este acercamiento me permite poner a prueba diversas hipótesis como la del MacroOrganismo.

La investigación ha tenido un giro positivo, ya no será algo netamente personal como ha ocurrido desde que la empecé (haciendo uso de mi tiempo libre), sino que ya ha empezado a ser un esfuerzo mas formal y por lo tanto, mas acelerado y por supuesto, con el mismo entusiasmo. El primer paso fue que se trabajó en un concepto haciendo uso de autómatas celulares en el proyecto de Maestría (el cual ya fue entregado y aprobado por los jurados). Por reglamento de la Universidad, no puedo publicar este material.

 

Introducción a los autómatas celulares Una sencilla simulación en Java da inicio al tema.
Proyecto de Grado

En Enero de 2009 sustenté mi proyecto de grado sobre Vida Artificial de la Maestría en Ingeniería, mas precisamente el uso de autómatas celulares bidimensionales en el que individuos evolucionan. Resultado: Aprobado. Fue un gran trabajo que me abrió los ojos a nuevos campos de investigación de la Vida Artificial. Fue más de un(1) año de arduo trabajo.

Generando grafos planos en C++ Para el trabajo con autómatas celulares se necesita generar grafos. Este programa escrito en C++ genera grafos en 2D de cualquier tamaño con los nodos interconectados (arriba, abajo, izquierda, derecha).
Autómata Celular. Parte 01. Planeación de simulación con autómata celular:

Hay fuentes de energía positivas dispersas por el grafo bidimensional.

Hay sitios que roban energía dispersos por el grafo bidimensional.

Las fuentes de energía positiva tienen energía limitada y desaparecen.

Organismos viven en el grafo bidimensional.

Estos organismos pierden energía a una tasa constante, si llega a cero mueren.

Los organismos tienen un sensor que detecta las fuentes de energía y los sitios que roban energía. El alcance del sensor es limitado, entre mayor sea el alcance mas energía pierde el organismo.

El organismo almacena en su memoria lo detectado por el sensor y consultando su memoria va a las fuentes positivas.

Se optimiza al uso de números enteros todo el desarrollo. Se evitan los números reales.

Se evalúa finalmente cuantos organismos discriminados por sensor sobrevivieron a la simulación. Muestra como fue el progreso durante la simulación.

Autómata Celular. Parte 02.

Al reproducirse, el hijo hereda el 50% de la energía del padre (ambos quedan con la mitad).

Otras fuentes aparecen al azar (se usa Mersenne Twister como generador de números pseudo-aleatorios) en algún otro lado del tablero.

 

El comportamiento del organismo es emergente, es decir, el algoritmo que controla a cada organismo no es preprogramado. El algoritmo nace del azar y se refine con selección natural que ya es un comportamiento emergente propio del modelo.

El algoritmo de cada organismo define que hacer con la información dada por el sensor, configura el sensor, decide como caminar, a donde, e inclusive cuando reproducirse.

 

El método Monte Carlo es una técnica vista en simulación en el cual se usa azar para encontrar la mejor solución a un problema. La programación genética vista en los capítulos 1 y 2 son ejemplos de Métodos Monte Carlo. ¿Entonces por que llamar a un capítulo así si es algo tan genérico? La respuesta vino de mis clases que dicto en simulación y observar las diferentes facetas que tiene este método.  Me llamó la atención el método de búsqueda del camino de menor costo porque es una nueva forma de probar la regresión simbólica.

La búsqueda del mejor camino Simulación en C++ para la búsqueda del mejor camino (menor costo o el más rápido) usando combinaciones y selección.
Matrices para simular comportamientos evolutivos Uno de los temas en Simulación es el método Monte Carlo y uno de los ejemplos clásicos es el problema del viajero: un problema de enunciado simple pero de solución difícil porque requiere hacer muchas pruebas.... como es la vida y la evolución. Movido del capítulo 7 a este capítulo para coincidir el tema.
La búsqueda del mejor conjunto de ecuaciones y su orden Usando la simulación anterior, se plantea esta simulación en la cual hay varias ecuaciones que se combinan en diversos ordenes para buscar aquel orden que se acerque mas a la serie de salida esperada.
Programación Genética simplificado Se simplifica un poco la programación genética, se quita el concepto de islas y se parte de una gran población inicial.
Programación Genética, doble entrada, una salida Tradicionalmente en los capítulos 1 y 2, se trabajó con una sola entrada y una sola salida para detectar la mejor ecuación de una sola variable independiente. En este caso, se toman dos entradas y una salida. La ecuación resultante es de dos variables independientes y una dependiente F(x,y).