Mi primera gran experiencia de investigación fue una pasantía de investigación de tres meses en el departamento de matemáticas y ciencias de la computación de la Universidad de San Diego. Como estudiante de biología, tenía curiosidad sobre mi papel. Resultó que la investigación que íbamos a realizar giraba en torno a la escritura y prueba de algoritmos evolutivos, centrándose principalmente en la evolución diferencial, para diversas aplicaciones de ciencias ambientales, como predecir la capacidad de un bosque para secuestrar carbono. Nuestro objetivo era mostrar que estos algoritmos podrían realizar muchas de estas tareas mejor que los métodos disponibles actualmente, haciendo menos suposiciones y con menos dirección humana. Tuvieron bastante éxito en el cumplimiento de todos estos requisitos.
¿Eran exactamente lo mismo que la evolución real? No en realidad no. Tuve varias conversaciones largas con mi supervisor de investigación sobre esto. Definitivamente utilizaron principios evolutivos, pero se desviaron de ellos de varias maneras clave para lograr el objetivo para el cual fueron diseñados los algoritmos. Una desviación sich es que muchos algoritmos evolutivos, especialmente cuando se usan para aplicaciones en heurística, están “evolucionando” su solución hacia un objetivo final establecido por el programador. En la evolución diferencial, este objetivo se establece mediante una función de prueba para la que el programa está tratando de encontrar un mínimo absoluto o un máximo absoluto, muchas veces para ambos. Si, por ejemplo, está utilizando DE para diseñar un ala de avión, desea que el programa minimice el arrastre mientras maximiza la elevación, e ingresará funciones de prueba basadas en estos principios para permitir que el programa pruebe sus soluciones. Estas soluciones se ejecutarán a través de un proceso de mutación, cruce, reproducción y selección, para reducir lo que inicialmente es un conjunto aleatorio de valores en una solución final que, en general, refleja la solución “más adecuada” para las funciones de prueba que usted seleccionado. Todo esto es un buen modelo de cómo funciona la evolución en la naturaleza, excepto por el hecho de que la única “función de prueba” de la naturaleza es “mantenerse vivo y reproducirse”.
Tal algoritmo general probablemente no sería adecuado para la mayoría de las aplicaciones científicas y de ingeniería. Se han escrito programas que reflejan mucho más de cerca cómo funciona la evolución en el mundo real, pero generalmente solo se usan para demostrar y estudiar la evolución misma. Para la mayoría de las aplicaciones de ingeniería, los algoritmos evolutivos se parecen más a una especie de diseño inteligente impulsado evolutivamente, que, si lo piensa, tiene sentido. Después de todo, todos estos algoritmos tienen un diseñador inteligente, el programador. Dado que no hay un corolario real para un programador en la evolución natural, no debe esperarse que sea similar a los EA en todos los aspectos. La evolución es algo miope, favoreciendo solo a los organismos que están bien adaptados a sus entornos en este momento. Los EA, por el contrario, evolucionan sus soluciones hacia un objetivo final final. Debido a esto, la evolución real ha producido una serie de malas elecciones de diseño y callejones sin salida que la mayoría de los EA bien diseñados no tendrían.
- ¿Cómo se opone el temperamento científico a los valores humanos?
- Filosofía de la ciencia: ¿Cuáles son algunos de los problemas del método científico?
- ¿Puede la ciencia realmente terminar?
- Según la teoría general de la relatividad, ¿será nuestra masa en la luna mayor que nuestra masa en la tierra?
- ¿Cómo sabemos que las personas con esquizofrenia realmente tienen alucinaciones?
Entonces, en general, estoy de acuerdo en gran medida con otras respuestas a esta pregunta. Los EA no están y no están diseñados para “probar” la teoría de la evolución. Están diseñados para utilizar los principios de evolución ya bien respaldados que tenemos para crear programas informáticos que puedan aplicar esos principios a aplicaciones científicas y de ingeniería útiles. No prueban los principios de la evolución más o menos que los transistores en su computadora “prueban” los principios de la mecánica cuántica. La “prueba” (evidencia realmente. Odio la palabra prueba) para la evolución necesariamente llegó mucho antes de que alguien pudiera usarla para diseñar programas de computadora. Están diseñados sobre principios ya “probados”, por lo que funcionan.