¿Cómo funcionan los algoritmos genéticos en la programación?

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.