Estoy de acuerdo con el resumen de Ted Dunning:
La respuesta resumida es que los métodos que funcionan bien * realmente * dependen mucho de lo que pueda saber sobre la función que se está optimizando.
Sin embargo, hay más en la historia.
- ¿Por qué debería usar anaconda en lugar de las distribuciones tradicionales de Python para la ciencia de datos?
- ¿Cuáles son algunos de los principios de ingeniería de software que todo científico de datos debe conocer? ¿Cómo los aprendes?
- ¿Cómo es una entrevista de científico de datos en Yelp?
- ¿Cuál es la diferencia entre un científico de datos y un analista de tecnología empresarial?
- ¿Por qué hay tanta locura por la ciencia de datos en estos días?
En primer lugar, cuando hablamos de GA, generalmente hablamos de un algoritmo lamentablemente desactualizado. Desafortunadamente para el campo de la computación evolutiva, la publicación innovadora que hizo que el público en general conociera las AG también es la única que parece haber causado una impresión. El libro de Goldberg de 1989, Algoritmos genéticos en búsqueda, optimización y aprendizaje automático, contiene un código Pascal de ejemplo para una AG simple. Esto tiene la ventaja de que cualquiera puede recogerlo y probarlo, y durante más de 25 años, lo han hecho. La gran mayoría de los tutoriales de GA en Internet implementan el GA simple, al igual que muchas personas que trabajan con la optimización convexa y desean comparar sus métodos con una búsqueda heurística de referencia. Lamentablemente, la AG del libro de Goldberg es obsoleta en casi todos los sentidos e inútil para la mayoría de los problemas del mundo real. Su representación binaria no es adecuada para decisiones de valor real, y para decisiones enteras, su enfoque de recombinación es superado por cualquier número de modelos probabilísticos que construyen GA que hacen un mejor trabajo al manejar las interacciones.
El otro problema al comparar las AG con otros enfoques para la optimización global es que la herramienta adecuada también depende del contexto de toma de decisiones. Las técnicas de optimización convexa asumen una relación funcional entre decisiones y objetivos, mientras que los GA son fáciles de conectar a un modelo de simulación de caja negra. Expresar un problema en una forma que pueda optimizarse con la optimización convexa puede resultar en una convergencia más rápida, pero puede requerir mucho trabajo formular el problema de optimización convexa en primer lugar. Si este es un problema que va a resolver una y otra vez, especialmente si es parte de un sistema más grande y desea que se ejecute sin supervisión, puede valer la pena hacerlo. Pero si está optimizando un problema por primera vez, uno que no está bien formado, y solo desea tener una idea de qué tipo de soluciones son posibles, un GA le brindará un gran servicio.