Computación Evolutiva

 

Introdución

Bajo el término de Computación Evolutiva se engloba a una amplio conjunto de técnicas de resolución de problemas complejos basadas en la emulación de los procesos naturales de evolución. No es la primera vez que se hace uso de la emulación de procesos naturales para resolver problemas científicos y técnicos: las Redes Neuronales para la resolución de problemas de aprendizaje artificial y el Recocido Simulado para resolver problemas de optimización que se plantean en las ciencias físicas son seguramente los ejemplos más conocidos.

La principal aportación de la Computación Evolutiva a la metodología de resolución de problemas consiste en el uso de mecanismos de selección de soluciones potenciales y de construcción de nuevos candidatos por recombinación de características de otros ya presentes, de modo parecido a como ocurre en la evolución de los organismos naturales. Debe quedar bien claro que la Computación Evolutiva no trata tanto de reproducir ciertos fenómenos que suceden en la naturaleza como de aprovechar las ideas genéricas que hay detrás de ellos. Efectivamente, en el momento en que se tienen varios candidatos a solución para un problema surge inmediatamente la necesidad de establecer criterios de calidad y de selección --en función de la calidad-- y también la idea de combinar características de buenas soluciones para obtener otras mejores. Dado que fue en el mundo natural donde primeramente se han planteado problemas de ese tipo, no tiene nada de extraño el que al aplicar tales ideas en la resolución de problemas científicos y técnicos se obtengan procedimientos bastante parecidos a los ya encontrados por la Naturaleza tras un largo periodo de adaptación.

Precisamente, la Computación Evolutiva surge a finales de los años 60 cuando John Holland se planteó la posibilidad de incorporar los mecanismos naturales de selección y supervivencia para resolver una gran cantidad de problemas de Inteligencia Artificial que ya habían sido "resueltos'' muy eficientemente por la Naturaleza pero que resultaban decepcionantemente inabordables mediante computadoras; el fruto de sus investigaciones se plasmó en el libro Adaptation in Natural and Artificial Systems, que con el paso del tiempo ha sido considerado como el punto de arranque de la Computación Evolutiva. Los intereses de Holland y sus colaboradores fueron en principio académicos: esencialmente tratabande introducir un marco más amplio en el que englobar la Inteligencia Artificial con la intención de resolver ciertos problemas genéricos que constantemente aparecían en dicha disciplina; a la hora de llevarlas a la práctica las ideas de Holland resultaban, cuando menos, poco eficientes.

Sin embargo, a mediados de los 80 la aparición de computadores de altas prestaciones y bajo costo cambia por completo el panorama: la Computación Evolutiva se puede utilizar para resolver con éxito ciertos tipos de problemas de la ingeniería y de las ciencias sociales que anteriormente eran difícilmente. De ésta época son el libro de Goldberg (Genetic Algorithms in Search, Optimization and Machine Larning) y el de Davis (Handbook of Genetic Algorithms); en ellos se plantean y resuelven problemas "de la vida real'' en los que hay de por medio apreciables cantidades de dinero.

Posiblemente como consecuencia del esfuerzo divulgador de éstos autores y debido también a las nuevas posibilidades que se vislumbraban, el desarrollo de la Computación Evolutiva a partir de entonces fue espectacular. En la actualidad funcionan con éxito aplicaciones industriales de los algoritmos evolutivos en campos tan dispares como el diseño de turbinas multietapa, el control de redes de distribución de gas, la planificación de tareas, el cálculo de estrategias de mercado o el cortado de piezas con mínimo desperdicio, por citar algunas.

Atrás