Depende de cuán difícil sea el problema. Cuando el problema es demasiado difícil para el diseño inteligente humano, los ingenieros recurren a la evolución. Antes de entrar en ejemplos, necesito señalar que la evolución no es solo un “cambio aleatorio”. La selección natural es un proceso de 2 pasos:
1. Variación
2. Selección
La variación en el desarrollo de software generalmente es un “cambio aleatorio”. PERO, siempre se combina con la selección. La selección NO es al azar. Es puro determinismo. En el caso del desarrollo de software, el programador pone los parámetros para la selección.
Evolution se utilizó para diseñar un programa para jugar a las damas: 3. AI Samuel, algunos estudios sobre aprendizaje automático utilizando el juego de damas. IBM Journal of Research Development, 3: 211-219, 1964. Reimpreso en EA Feigenbaum y J Feldman, Computers and Thought, McGraw-Hill, Nueva York, 1964 pp 71-105.
En este caso, el parámetro de selección fue “ganar el juego”. El código que resultó en un juego ganado se mantuvo, el código que resultó en un juego perdido se descartó. El programa se volvió lo suficientemente bueno como para vencer al campeón de las damas humanas. (Me gustaría señalar que Big Blue, un producto de “diseño inteligente”, no lo ha hecho tan bien en el ámbito del ajedrez).
- ¿Por qué mi solicitud de diseño gráfico de Upwork fue rechazada y cómo puedo hacer que me acepten?
- ¿Qué hago con mi amor y pasión por codificar y diseñar ambos?
- A medida que crece un equipo de diseño, ¿cómo mantiene la calidad y la consistencia de su trabajo?
- Cuando eres el único diseñador en un equipo, ¿cómo obtienes valiosos comentarios críticos sobre tu trabajo?
- ¿Cuáles son los consejos para diseñar logotipos con mensajes ocultos en ellos?
El “algoritmo genético” es evolución. Por lo tanto, puede buscar en Google ejemplos en los que la evolución haya tenido éxito en el desarrollo de software.
Básicamente, si el problema es demasiado difícil para los humanos, entonces llama a la evolución.