Está en la página 1de 4

La Computacin Evolutiva en el Contexto de la Inteligencia Artificial

http://www.lania.mx/spanish/actividades/newsletters/1997-otono-invierno/evolutiv.html

Carlos A. Coello Coello * Indudablemente, la Inteligencia Artificial (IA) es una de las reas que ms expectacin han causado no slo dentro de las Ciencias de la Computacin, sino para la sociedad en general. La bsqueda para comprender los mecanismos de la inteligencia ha resultado ser la piedra filosofal de muchos cientficos a lo largo de los aos. De entre las reas principales de la Inteligencia Artificial, una de las que ha atrado ms investigadores ha sido el aprendizaje de mquina. Michalski defini aprendizaje como: la construccin o modificacin de representaciones de lo que se experimenta. Esta definicin se concentra en una representacin interna que el sistema de aprendizaje construye (ya sea una persona o un programa de computadora) y modifica en base a su entorno (tpicamente, lo que el sistema de aprendizaje experimenta es su entorno, o al menos cierta parte de l). Indudablemente, resulta vital en el proceso de emular comportamientos inteligentes, que un sistema pueda mejorar su comportamiento sobre la base de la experiencia que colecte al efectuar la misma tarea en repetidas ocasiones, y que adems desarrolle algn tipo de nocin de lo que es un error, y cmo evitarlo. La escuela clsica dentro de la IA, utiliza representaciones simblicas basadas en un nmero finito de primitivas y de reglas para la manipulacin de smbolos. El perodo simblico de la IA se considera aproximadamente comprendido entre 1962 y 1975, seguido por un perodo dominado por los sistemas basados en el conocimiento de 1976 a 1988. Sin embargo, en este segundo perodo las representaciones simblicas (por ejemplo, redes semnticas, lgica de predicados, etc.) siguieron siendo parte central de dichos sistemas. En la actualidad, la IA empieza a extender sus reas de investigacin en diversas direcciones y trata de integrar diferentes mtodos en sistemas a gran escala, en su afn por explotar al mximo las ventajas de cada esquema. Curiosamente, el primer perodo de la Inteligencia Artificial, llamado sub-simblico, data de aproximadamente 1950 a 1965. Este perodo utiliz representaciones numricas (o sub-simblicas) del conocimiento. Aunque la mayor parte de los libros de IA slo enfatizan el trabajo realizado por Rosenblatt y Widrow con redes neuronales durante este perodo, la realidad es que otra importante escuela sub-simblica se fragu tambin en la misma poca: los algoritmos evolutivos.

En 1932, Cannon visualiz la evolucin natural como un proceso de aprendizaje. Alan Turing reconoci, en 1950, que debe haber una conexin obvia entre el aprendizaje de mquina y la evolucin, y seal que se podran desarrollar programas para jugar ajedrez usando esta tcnica. Campbell conjetur en 1960 que en todos los procesos que llevan a la expansin del conocimiento, se involucra un proceso ciego de variacin y supervivencia selectiva. Los primeros intentos de aplicar de manera formal la teora de la evolucin, a problemas prcticos de ingeniera, apareci en las reas de control de procesos estadsticos, aprendizaje de mquina y optimizacin de funciones. Tal vez el primer intento serio de este tipo se dio en el trabajo que realizaron Box y sus colegas en 1957, en el desarrollo de una tcnica que denominaron operacin evolutiva, la cual se aplic a una planta de manufactura para manejarla, y que se implanto sobre la base de los votos de un comit de jefes tcnicos. Bajo este esquema, la planta se vea como a una especie en evolucin. La calidad del producto avanzaba a travs de mutaciones aleatorias y la seleccin era determinada por el comit. Por su parte, Friedberg intent, en 1958, hacer que un programa en lenguaje mquina se mejorara a s mismo, seleccionando instrucciones que se asociaran ms frecuentemente con un resultado exitoso. Aunque Friedberg nunca mencion explcitamente estar simulando la evolucin natural, esa es la interpretacin ms comnmente aceptada de su trabajo, y a pesar de que tuvo cierto xito evolucionando manipuladores de bits y determinando las interconexiones de una caja negra de 1400 terminales, la comunidad de IA de la poca prest poca atencin a su trabajo, y en algunas ocasiones lo atac despiadadamente. Por ejemplo, Minsky lo critic duramente, argumentando que una bsqueda puramente aleatoria era mucho mejor que el algoritmo de Friedberg (este argumento an es es-grimido infundadamente por algunos miembros de la comunidad cientfica en contra de los algoritmos genticos). El trabajo de Bremermann, en 1958, se enfoc ms a la optimizacin, introduciendo el importante manejo de un valor de aptitud, y definiendo a un individuo como una cadena de smbolos binarios (unos y ceros). Bremermann advirti, acertadamente, que la mutacin jugaba un papel importante en la evolucin, pues impeda el estancamiento en mnimos locales. Aunque muchas de sus ideas se usan hoy en da, Bremermann cometi el error de tratar de optimizar funciones lineales y convexas, obteniendo resultados decepcionantes, pues sus algoritmos evolutivos tenan que ser complementados con otras heursticas para converger en una solucin. Hoy sabemos que los algoritmos evolutivos difcilmente pueden competir con las tcnicas tradicionales de optimizacin en esos dominios. Barricelli ofreci, en 1954, una de las primeras simulaciones que usaba principios evolutivos, utilizando los mismos procedimientos generales que se usan hoy en da en la disciplina conocida como vida artificial. Sin embargo, en este trabajo, as como el que Reed realiz posteriormente en 1967, se concluy que la cruza no pareca mejorar la velocidad de la adaptacin selectiva, y el operador primordial era la mutacin. Fue Fogel el que introdujo la primera tcnica evolutiva que realmente funcion ms o menos dentro de los lineamientos actuales de la computacin evolutiva. Su programacin evolutiva consista en hacer evolucionar autmatas de estados finitos por medio de mutaciones. Fogel introdujo los importantes conceptos de poblacin y seleccin, y aunque las revisiones iniciales de su trabajo fueron favorables, algunos investigadores, como Solomonoff, enfatizaron que el mtodo de Fogel no deba verse en su estado actual (en 1966) como algo particularmente til para resolver problemas, a excepcin de

los ms simples posibles. Solomonoff vio a la programacin evolutiva como una especie de bsqueda escalando la colina modelada mediante autmatas, y otros investigadores como Holland, Kieras, Rada y Lenat compartieron esa opinin. Algunos investigadores fueron ms duros en sus crticas. Lindsay, por ejemplo, lleg a decir que la tcnica de Fogel no era mejor que una bsqueda completamente aleatoria, y que tema que los siclogos lo usaran para alienarse del importante trabajo que se estaba haciendo en Inteligencia Artificial Otra tcnica evolutiva dirigida particularmente a la optimizacin de funciones continuas de alta complejidad se desarroll en Alemania, en 1965, por Rechenberg y Schwefel. Esta tcnica, llamada estrategia evolutiva, se utiliz inicialmente para resolver problemas ingenieriles que desafiaban a los mtodos de optimizacin tradicionales, como el gradiente conjugado, y se basa en la modificacin sistemtica de un vector de nmeros reales (representando las variables de decisin del problema) mediante operadores probabilsticos, usando ciertos criterios para decidir en qu direccin dirigir la bsqueda. La estrategia evolutiva utiliza como operador principal a la mutacin, y en su versin ms reciente usa la cruza como operador secundario. Aunque el australiano Fraser propuso, desde fines de los 50, un procedimiento muy similar al que John Holland llam planes evolutivos a fines de los 60, es al segundo al que se le suele atribuir la creacin de la tcnica que se conoce como algoritmo gentico, a raz de que Holland publicara el libro Adaptation in Natural and Artificial Systems en 1975. La principal diferencia del algoritmo gentico con las tcnicas antes mencionadas, es que utiliza la cruza como operador principal y a la mutacin como operador secundario (e incluso opcional). El algoritmo gentico, al igual que las redes neuronales, funciona como una caja negra que recibe ciertas entradas y produce (tras una cantidad de tiempo indeterminada) las salidas deseadas. Sin embargo, a diferencia de stas, los algoritmos genticos no necesitan entrenarse con ejemplos de ningn tipo, sino que son capaces de generar sus propios ejemplos y contra-ejemplos que guen la evolucin a partir de poblaciones iniciales totalmente aleatorias. Los mecanismos de seleccin del ms apto y de reproduccin sexual del algoritmo gentico, son los encargados de preservar las caractersticas ms adecuadas de cada individuo a fin de hacer converger a la poblacin en soluciones ptimas. Los algoritmos genticos se distinguen tambin por no quedar atrapados fcilmente en mnimos locales, como la mayor parte de las tcnicas de bsqueda clsicas, adems de usar operadores probabilsticos ms robustos que los operadores determinsticos, que las otras tcnicas suelen usar. No obstante, siendo una heurstica, tampoco pueden garantizar encontrar siempre la solucin ptima, si bien la experiencia acumulada hasta la fecha parece demostrar que, cuando se utilizan apropiadamente, pueden proporcionar soluciones muy aceptables y, en la mayora de los casos, superiores a las encontradas con otras tcnicas de bsqueda y optimizacin. Aunque an atacados por algunos sectores de la comunidad de IA, los algoritmos genticos, al igual que las redes neuronales, se han ido ganando poco a poco, y sobre la base de la efectividad de sus resultados en aplicaciones prcticas, el reconocimiento de los investigadores como una tcnica efectiva en problemas de gran complejidad, como lo demuestra un nmero creciente de conferencias y publicaciones especializadas alrededor del mundo, en los ltimos aos. Probablemente, y de manera anloga a como lo hace la Naturaleza, slo el tiempo podr determinar el verdadero lugar que le corresponde a los algoritmos evolutivos dentro de las Ciencias de la Computacin. * Investigador Titular del LANIA.

Copyright 1997 LANIA, A.C. Cualquier duda o comentario reportarlo a webmaster@xalapa.lania.mx