No muy bien. Recuerdo que la primera vez que me encontré con la idea parecía realmente genial, pero en realidad los algoritmos genéticos tienen una aplicabilidad muy limitada y son extremadamente ineficientes. Básicamente es uno de varios tipos de optimización estocástica, que se distingue por mantener una gran cantidad de soluciones en la memoria al mismo tiempo. Si tiene que recurrir a la optimización estocástica, el recocido simulado es mejor porque evita de manera más confiable los mínimos locales y no requiere que la función de costo se ejecute con tanta frecuencia. Pero realmente, si su función de costo tiene propiedades matemáticas que permiten utilizar otro enfoque, no utilice algoritmos estocásticos en absoluto.
Cuando funcionan, los algoritmos genéticos y todos los algoritmos de búsqueda estocásticos son básicamente escalada: si su espacio de búsqueda es suave, las mejores soluciones estarán cerca de las buenas. La aleatorización ayuda porque solo aplica estas técnicas cuando el espacio de búsqueda es solo un poco uniforme: las buenas soluciones están cerca de otras buenas, pero no de manera predecible. Entonces haces movimientos aleatorios para superar esto. Pero no es muy eficiente.
- ¿Cuál es el algoritmo de Apache Hadoop?
- ¿Por qué no necesito conocer algoritmos para lenguajes de programación modernos como Java o Python?
- Quiero aprender la estructura de datos y Java, ¿cuál debería aprender primero?
- ¿Por qué el algoritmo de búsqueda binaria no es adecuado para usar en una tabla con punteros?
- ¿Por qué muchos elementos utilizados en la función objetivo de un algoritmo de aprendizaje asumen todas las características centradas en cero y tienen una varianza en el mismo orden?