¿Mejor en qué sentido?
En mi experiencia, los GA son uno de los optimizadores más pragmáticos. Si bien muchos algoritmos más precisos requieren tiempo y esfuerzo para formalizar problemas reales en el mundo matemático, los GA pueden manejar cualquier función de costo con reglas y restricciones complejas (los GA están relacionados por un enfoque de ejecución después de todo y no por un cálculo específico). Este proceso es sencillo y puede probar muchos enfoques para el trabajo exploratorio.
También aprecio la posibilidad de reinyectar soluciones pasadas al algoritmo para futuras ejecuciones, lo cual es bueno para tareas repetidas.
Conceptualmente, un algoritmo genético se puede representar mediante un hashmap de funciones y se adapta a lenguajes funcionales como Clojure, que también es un lenguaje en el que puede lograr grandes resultados muy rápidamente.
Los algoritmos genéticos también se pueden anidar: ¡la función de costo de un GA puede ser un GA! Estos algoritmos aprovechan el hardware y la infraestructura modernos que les permiten calcular una población muy grande para que, incluso con simples operaciones de mutación / selección, aún puedan lograr buenos resultados.
Incluso para problemas simples como encontrar el mínimo de una función de onda, los GA no son tan malos y pueden lograr una precisión decente en un tiempo aceptable.
Entonces, sí, las soluciones analíticas pueden tener un tiempo de ejecución y precisión más rápidos, ¡pero el tiempo requerido para producir sobrepeso a menudo espera beneficios! Así que cuando ? Casi siempre para mí, al menos para la metaoptimización.