Diseño automatizado de modelos de simulación basados en autómatas celulares

Diseño automatizado de modelos de simulación basados en autómatas celulares

En la actualidad, el modelado basado en autómatas celulares se constituye en una de las técnicas de simulación más populares, debido a que permiten representar modelos de sistemas dinámicos, tanto deterministas como estocásticos, mediante un lenguaje simple basado en elementos discretos y con una arquitectura relativamente simple. Este libro describe el proceso de diseño automatizado de modelos de simulación basados en autómatas celulares, para lo cual se implementa un marco de trabajo (framework) que proporciona una arquitectura genérica que facilita la construcción de aplicaciones para el diseño de dichos modelos de simulación. Adicionalmente, en el texto se describen las principales técnicas usadas en el diseño automatizado de modelos discretos, especialmente la técnica de diseño inverso.El uso del marco de trabajo se ilustra a través de un tutorial que sigue el paradigma orientado a objetos, y su correspondiente implementación se presenta en lenguaje Python. Como casos de estudio, se ejemplifican la identificación del juego de la vida a partir de algunos de sus elementos y la identificación del modelo de autómata celular que implementa una trayectoria de patrones gráficos.

Contenido

Introducción    11

Modelado basado en agentes    12

Tipos de agentes     14

Diseño y construcción de autómatas celulares     15

Fundamentos de autómatas celulares    19

Autómata celular    19

Aplicaciones    24

AC en bioinformática     24

Frameworks de modelado y simulación de AC    25

Diseño directo de modelos de AC    26

Diseño inverso de modelos de AC    27

Antecedentes diseño inverso de modelos de AC    28

Técnicas basadas en redes neuronales    28

Técnicas basadas en computación evolutiva    28

Técnicas basadas en identificación de polinomios    31

Framework computacional    33

Metodología para el diseño del framework computacional     34

UML–F    34

Etiquetas UML–F     34

Abstracciones para las áreas claves del dominio     36

Puntos de variación     36

Arquitectura del framework     36

Metodología para la adaptación de aplicaciones     37

Descripción del framework    37

Identificación de abstracciones para las áreas claves del dominio    40

Definición de puntos de variación    40

Libro de recetas    42

Tutorial    63

Introducción    63

Análisis de la situación    64

Diseño de la solución    65

Fase I: entendimiento del negocio    65

Fase II: entendimiento de los datos    66

Fase III: preparación de los datos    68

Fase IV: modelado    72

Fase V: evaluación    102

Fase VI: despliegue    103

Ejemplo    107

Ejemplo 1: patrones gráficos    107

Análisis de la situación    108

Diseño de la solución    108

Fase I: entendimiento del negocio    108

Fase II: entendimiento de los datos    109

Fase III: preparación de los datos    109

Fase IV: modelado    110

Fase V: despliegue    113

Referencias citadas    115

Índice analítico    121

Sobre los autores     125

Lista de figuras

Figura 1. Mallas de AC en una dimensión (1.a), en dos dimensiones (1.b)
y en tres dimensiones (1.c)   20

Figura 2. Ejemplo de topología de vecindad de un modelo de AC   21

Figura 3. Malla de modelo de AC en dos dimensiones, la numeración de celdas se realiza de izquierda a derecha y de arriba abajo   22

Figura 4. Representación funcional de las reglas del AC “regla 110”   23

Figura 5. Clases y relaciones definidas a nivel de diseño del framework   39

Figura 6. Tarjetas aCiRC para el framework   41

Figura 7. Estructura del framework documentada con anotaciones UML–F   42

Figura 8. Estructura del punto de variación Evidences   43

Figura 9. Estructura del punto de variación Parser   46

Figura 10. Estructura del punto de variación Strategy   47

Figura 11. Estructura del punto de variación Solution   53

Figura 12. Estructura del punto de variación Evaluator   54

Figura 13. Estructura del punto de variación Tweaks   56

Figura 14. Estructura del punto de variación Report   58

Figura 15. Estructura punto de variación Simulator   62

Figura 16. Ejemplos de reglas del juego de la vida   64

Figura 17. Conformaciones de un deslizador   66

Figura 18. Formato de un frame de simulación   67

Figura 19. Configuración inicial de la simulación   68

Figura 20. Atractores en la trayectoria de simulación   68

Figura 21. Diagrama de clases para el punto de variación Parser   70

Figura 22. Esquema conceptual para el AG   73

Figura 23. Casos de uso para la aplicación   74

Figura 24. Adaptación punto de variación Strategy   78

Figura 25. Adaptación punto de variación Evaluator   79

Figura 26. Estructura punto de variación Tweaks para el AG   91

Figura 27. Implementación punto de variación Solution   98

Figura 28. Vecindad máxima considerada por el AG   98

Figura 29. Ejecución del AG con parámetros ajustados   101

Figura 30. Vecindades de los mejores individuos en la ejecución del AC   102

Figura 31. Trayectoria de patrones gráficos con 3 colores   107

Figura 32. Adaptación del punto de variación Parser para el problema
de patrones gráficos   109

Figura 33. Adaptación del punto de variación Solution para el problema
de los patrones gráficos   110

Figura 34. Diagrama de clases de alto nivel para el AG del problema
de generación de patrones gráficos   112

Figura 35. Ejecución del AG para el problema de la identificación
de patrones gráficos   112


Lista de tablas

Tabla 1. Tabla de reglas para el AC conocido como regla 110    23

Tabla 2. Caso de uso n° 1    69

Tabla 3. Caso de uso n° 2    75

Tabla 4. Caso de uso n° 3    75

Tabla 5. Caso de adaptación 1    76

Tabla 6. Caso de adaptación 2     96


Lista de algoritmos

Algoritmo 1. Implementación método parseTrajectory    71

Algoritmo 2. Instanciación del parser en StrategyRun    71

Algoritmo 3. Implementación método preprocess, clase StrategyRun    71

Algoritmo 4. Implementación del evaluador de modelos de AC    80

Algoritmo 5. Implementación de iteración de estrategia del algoritmo    80

Algoritmo 7. Implementación de la estrategia del algoritmo    86

Algoritmo 8. Implementación de ajustes para la nueva población de modelos    91

Algoritmo 9. Implementación del constructor de soluciones del AG    99

Algoritmo 10. Implementación punto de variación solución
para el problema de patrones gráficos    111