Capítulo 7: Revisión completa de las simulaciones
En el capítulo 1 se generaban ecuaciones al azar y se buscaba la mas apta.
En el capítulo 2 se generaban algoritmos al azar y se buscaba el mas apto.
En el capítulo 3 se empezó la interacción entre ser vivo y ambiente a través de sensores y se empezó a trabajar con el concepto de MacroOrganismo.
En el capítulo 4 se trabajó con el ser vivo y los materiales (capítulo que se abandonó por la extrema dependencia entre el algoritmo evolutivo y el ambiente... la vida usa o se adapta al ambiente, no se fusiona).
En el capítulo 5 se trabajó en la independencia perdida del capítulo anterior, se trabaja en una nueva forma de hacer algoritmos al azar (instrucciones mas rápidas) y empieza a gestarse el concepto de competencia directa entre organismos.
En el capítulo 6 ya no hay solo una selección artificial exógena invariable que elimina organismos no aptos, ahora hay una segunda selección artificial generada por los mismos organismos, es el concepto de competencia directa.
El capítulo 7 es el resultado de una larga meditación sobre las simulaciones anteriores y los nuevos temas que he leído. En primer lugar se busca como mejorar drásticamente la velocidad de las simulaciones (sin perder el concepto de total aleatoriedad) y el concepto de población para evitar que las simulaciones queden atrapadas en máximos locales y se logre máximos generales.
Población y desempeño (diseño) | Mas sencillo y mucho mas rápida la evaluación de algoritmos genéticos. Se introduce el concepto de población. |
Primera Implementación | Primera simulación donde se implementa los conceptos de población, manejo de bytes directamente. |
Segunda implementación mejorada | Segunda simulación donde se filtra mas fuerte los organismos y lee un archivo de inicialización. La mejora es que hay un manejo dinámico de memoria (ya no hay límites) y genera los algoritmos genéticos listos para ser compilados en C++ (y validar que los resultados son ciertos). |
Tercera implementación (Fuertes Mejoras) | Esta versión del algoritmo genético en C++ trae importantes funcionalidades que supera ampliamente la segunda implementación. |
Pruebas (ascendente, descendente, alterno) | Se repiten las pruebas usando como datos las usadas previamente. |
Cuarta implementación (mejoras) | El nuevo algoritmo presenta notables mejoras en las pruebas con un sencillo cambio. |
Pruebas (ascendente, descendente, alterno) | Se repiten las pruebas usando como datos las usadas previamente. |
Programación Genética + Población + Aislamiento | La generación de ecuaciones en forma aleatoria (conocido como Programación Genética) la abordé en el Capítulo 1 pero faltaban ciertas pruebas que se desarrollan ahora. |