Esta carpeta contiene Jupyter notebooks de diferentes pruebas.
A continuación algunas soluciones:
- Algoritmo Genetico - OneMax: Este algoritmo se utiliza para abordar el problema OneMax sin utilizar ningun framework.
- Algoritmo Genetico - OneMax con Deap: Este algoritmo se utiliza para abordar el problema OneMax utilizando el framework Deap.
A continuación algunas soluciones:
- Nsga2 - Problema de la mochila: Este algoritmo se utiliza para abordar el problema de la mochila sin utilizar ningun framework.
- Nsga2 - Problema de la mochila con Deap: Este algoritmo se utiliza para abordar el problema de la mochila utilizando el framework Deap.
- Nsga2 - Problema de la mochila con Platypus: Este algoritmo se utiliza para abordar el problema de la mochila utilizando el framework Platypus.
- Nsga2 - Problema de la mochila con Inspyred: Este Este algoritmo se utiliza para abordar el problema de la mochila utilizando el Inspyred.
- Nsga2 - Problema de la mochila con Evotorch: Este Este algoritmo se utiliza para abordar el problema de la mochila utilizando el Evotorch.
- [Pytorch]
- [Tensorflow]
Comparación entre trabajar sin Framework y con Framework
| Programación sin Framework | Programación con Framework |
|---|---|
| No se requiere dependencias de terceros y posee mayor flexibilidad al escribir código y nos obliga a tener una mejor compresión de los algoritmos genéticos para poder implementarlo, en contrapartida se requiere mayor cantidad de tiempo. | Facilita el desarrollo ofreciendo funciones predefinidas para implementar los algoritmos geneticos y de esa manera ahorrar tiempo en la implementación y enfocar asi el esfuerzo en el problema específico a resolver. También ayuda utilizar las funciones aplicando las mejores prácticas y así evitar errores comunes, además la mayoría poseen documentación para facilitar la compresión del framework. |
Comparación entre los distintos framework
| Framework | Versión | Tipo de licencia | Procesamiento Paralelo | Facilidad de uso | Parametrizaciones nativas | Documentación | Algorithms |
|---|---|---|---|---|---|---|---|
| Deap | 1.4.2 | LGPL-3.0 license | Nativo Paralelización en CPU | Uso sencillo con muchas opciones | SI | Muy completa | - Genetic programming using prefix trees Loosely typed, Strongly typed Automatically defined functions Evolution strategies (including CMA-ES) / Multi-objective optimisation (NSGA-II, NSGA-III, SPEA2, MO-CMA-ES) |
| Platypus | 1.1.0 | GPL-3.0 license | Desde Python | Uso simplificado | SI | Basica | CMA-ES, NSGA-II, NSGA-III, GDE3, IBEA, MOEA/D, OMOPSO, EpsMOEA, SPEA2 |
| Inspyred | 1.0.1 | MIT license | Uso complejo | Si pero complicada de utilizar | Amplia | GA, ES, PSO, ACO, SA, PAES, NSGA-II | |
| Evotorch | 0.4.1 | Apache-2.0 license | Paralelización en GPU | Media |