¿Qué lib de GA/GP usas y por qué?¿Qué biblioteca de Programación/Algoritmo Genético usas?
Respuesta
Mi propia, porque es el más fácil de personalizar :)
EDIT: Ha habido algunos recientes up-votos, así que pensé que vale la pena la actualización de esta respuesta. Han pasado 8 años desde que respondí esto originalmente y hay muchas más bibliotecas disponibles desde entonces. Ya no recomendaría extender tu propio código. En su lugar, encontraría una biblioteca de código abierto en el idioma de su elección y contribuiría con ella.
p. Ej. Jenetics si usa Java, DEAP para python, y GeneticSharp para C#.
Salida ECJ
He completado dos proyectos de investigación de posgrado utilizando algoritmos genéticos para diseñar de forma automática motores eléctricos.
Para el primer proyecto, utilicé el EO Evolutionary Computation Framework que se basa casi por completo en la programación de plantillas de C++. Es muy potente pero requiere mucha concentración (IMO) para ampliarlo debido a la naturaleza meta de las plantillas y los mensajes de error sin sentido correspondientes del compilador.
Para el segundo proyecto, porté todo al Open BEAGLE EC Framework que se basa en herencia de C++ en lugar de plantillas. También tiene un sistema muy completo basado en XML para controlar parámetros y almacenar hitos y resultados. Me resultó mucho más fácil extenderme y adaptarme a mis necesidades específicas (principalmente los parámetros de diseño de entero y flotante mixto con tolerancias de fabricación).
También utilicé brevemente Open BEAGLE en un simple experimento de programación genética y resultó fácil de usar allí también.
Si está utilizando Python, pyevolve es fácil de usar. Lo usé con éxito. http://pyevolve.sourceforge.net/
0.6rc1 es mejor opción que oficialmente lanzado 0.5 http://pyevolve.sourceforge.net/0_6rc1/ –
He jugado con TinyGP para tener una idea de cómo implementar mi propio sistema GP. Solía escribirse en C pero se reescribió en Java. Como es muy pequeño, fue fácil adaptarlo para mis usos en C++/D.
He desarrollado mi propia biblioteca openGA.
Esta biblioteca es para la resolución:
- problemas solo objetivo.
- Problemas multiobjetivos (y muchos objetivos) (método NSGA-III).
- Problemas de GA interactivos.
Esta biblioteca nos permite usar plantillas de C++ para definir su propio diseño de cromosoma.
Los códigos están disponibles en Github. La publicación está en smc2017 y su manual de usuario está disponible en mi researchgate.
- 1. ¿Qué usas si deseas instalar una biblioteca de Erlang?
- 2. ¿Qué biblioteca usas para los cálculos matriciales en CUDA?
- 3. Plugins JIRA: ¿Qué usas?
- 4. PHP: ¿Qué usas para escribirlo?
- 5. ¿Qué usas para escribir Go
- 6. ¿Qué técnica de protección de copia usas?
- 7. ¿Qué conjunto de sonidos de construcción usas?
- 8. ¿Qué red de seguridad usas en Perl?
- 9. ¿Qué herramientas de refactorización usas para .NET?
- 10. ¿Qué tipo de diagramas UML usas?
- 11. ¿Qué convenciones de nomenclatura usas en C#?
- 12. ¿Qué usas para crear diagramas de flujo?
- 13. ¿Qué herramientas usas para soportar XCode?
- 14. ¿Qué complementos usas junto con Eclipse CDT?
- 15. ¿Qué estilo usas para crear una "clase"?
- 16. ¿Cómo (y por qué) usas contrastes?
- 17. ¿Qué editor usas para la codificación OpenLaszlo?
- 18. ¿Qué haces cuando una biblioteca que usas ya no se mantiene?
- 19. Algoritmo genético: ¿qué es la selección de estado estable?
- 20. ¿Tiene algoritmo genético en producción?
- 21. Haskell: Resumiendo un algoritmo genético
- 22. ¿Qué RDBMS usas con Django y por qué?
- 23. ¿Qué técnicas usas para maximizar la reutilización del código?
- 24. ¿Qué nombre de variable usas para los descriptores de archivos?
- 25. ¿Usas un PHP IDE?
- 26. ¿Qué técnicas usas para depurar enlaces complejos de guice?
- 27. ¿Qué clases usas para hacer plantillas de cadenas?
- 28. ¿Qué estilo de escritura usas para comentar el código?
- 29. Control de fuente más simple alguna vez, ¿qué usas?
- 30. ¿Qué usas para un proceso de compilación complejo?
Mis sentimientos: he cambiado tanto de GAlib que voy a usar el mío por ahora. ¡La personalización es imprescindible! – bias
Sí, una GA no es demasiado difícil de codificar. Escribir uno propio compensa en gran medida los dolores de cabeza de la falta de funcionalidad en las herramientas descargadas. –
¿Qué pasa con el mejor lenguaje de todos, C++? :) Esto puede causar un poco de discusión aquí;) – Ralf