DE SISTEMAS E INFORMATICA ALGORITMOS GENETICOS INTELIGENCIA ARTIFICIAL INTREGRANTES: MILLA FLORES, Jos PEREZ AGUSTIN Jemima Ruth RAMOS ACAS, Os!a" SOSA SAN MARTIN DOCENTES: #ILCES CUMACERO, Ri!a"$o% LIMA &PERU '(() FACULTAD DE INGENIERIA ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA ALGORITMOS GENETICOS INTELIGENCIA ARTIFICIAL nteligencia Artificial *+$i!e INTRODUCCI,N%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - .U/ ES UN ALGORITMO%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ) .U/ ES GENETICA%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ) 0.U/ ES UN ALGORITMO GEN/TICO1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ) LA EVOLUCN........................................................................................................ 7 UNA 2RE#E ISTORIA DE LOS ALGORITMOS GENETICOS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3 MECANISMOS DE CAM2IO EN LA E#OLUCI,N%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%4( Seleccin Natural.................................................................................................... 10 Deriva gnica: ........................................................................................................ 10 Mutacin:................................................................................................................. 10 Poliploida: .............................................................................................................. 10 Recombinacin:....................................................................................................... 10 Flujo gentico: ........................................................................................................ 11 0CU5LES SON LAS #ENTAJAS DE LOS AGS1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%44 0CU5LES SON LAS LIMITACIONES DE LOS AGS1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46 ALGORTMO GENTCO SMPLE.........................................................................17 ANATOMA DE UN ALGORTMO GENTCO SMPLE..........................18 Codificacin de las variables....................................................................19 EJEMPLO 1:........................................................................................... 19 EJEMPLO 2: ........................................................................................... 19 Algoritmo gentico propiamente dicho.....................................................20 Algoritmo gentico.............................................................20 Tamao de la poblacin: ......................................................................... 20 Condicin de terminacin:........................................................................20 EVALUACN Y SELECCN................................................................................20 Basado en el Rango:................................................................................ 21 Rueda de Ruleta:..................................................................................... 21 Seleccin de Torneo:............................................................................... 22 CROSSOVER.......................................................................................... 22 Crossover n-puntos: ................................................................................23 Crossover uniforme:.................................................................................23 Crossover especializados:.......................................................................23 MUTACN.............................................................................................. 23 OTROS OPERADORES..........................................................................24 Cromosomas de longitud variable............................................................24 Operadores de nicho (ecolgico).............................................................25 Operadores especializados......................................................................25 APLCANDO OPERADORES GENTCOS............................................26 EJEMPLO SMPLE DE ALGORTMOS GENTCO:..............................................26 Ejemplo completo de un algoritmo gentico............................................................28 1.- NCALZACN:................................................................................ 29 2.- EVALUACN:.................................................................................... 30 3.- SELECCN:...................................................................................... 30 4.- REPRODUCCN:............................................................................. 31 5.- ENTRENAMENTO:............................................................................31 ALGUNOS EJEMPLOS ESPEC*FICOS DE AG%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%7' ACSTCA ............................................................................................................. 32 NGENERA AEROESPACAL ..............................................................................33 ASTRONOMA Y ASTROFSCA ...........................................................................33 QUMCA ................................................................................................................ 33 Algoritmos Genticos Pg. 3 nteligencia Artificial NGENERA ELCTRCA ..................................................................................... 34 MERCADOS FNANCEROS .................................................................................34 JUEGOS ................................................................................................................ 35 GEOFSCA ............................................................................................................ 36 NGENERA DE MATERALES .............................................................................36 MATEMTCAS Y ALGORTMA ...........................................................................36 BOLOGA MOLECULAR ....................................................................................... 36 RECONOCMENTO DE PATRONES Y EXPLOTACN DE DATOS ..................37 ROBTCA ............................................................................................................. 37 NGENERA DE SSTEMAS ..................................................................................38 ARGUMENTOS CREACIONISTAS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 73 CONCLUSI,N%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 73 2I2LIOGRAF*A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 64 Algoritmos Genticos Pg. 4 nteligencia Artificial INTRODUCCI,N De vez en cuando, los creacionistas acusan a la evolucin de que carece de utilidad como teora cientfica porque no produce beneficios prcticos y no tiene relevancia en la vida diaria. Sin embargo, tan slo la evidencia de la biologa demuestra que esta afirmacin es falsa. Hay numerosos fenmenos naturales para los que la evolucin nos ofrece un slido fundamento terico. Por nombrar uno, el desarrollo observado de la resistencia a los insecticidas en las plagas de cultivos, a los antibiticos en las bacterias, a la quimioterapia en las clulas cancerosas, y a los frmacos antiretrovirales en virus como el VH, es una consecuencia abierta de las leyes de la mutacin y la seleccin, y comprender estos principios nos ha ayudado a desarrollar estrategias para enfrentarnos a estos nocivos organismos. El postulado evolutivo de la descendencia comn ha ayudado al desarrollo de nuevos medicamentos y tcnicas, al proporcionar a los investigadores una buena idea de con qu organismos deben experimentar para obtener resultados que probablemente sern relevantes para los seres humanos. Finalmente, el hombre ha utilizado con grandes resultados el principio de cra selectiva para crear organismos personalizados, distintos a cualquiera que se pueda encontrar en la naturaleza, para beneficio propio. El ejemplo cannico, por supuesto, es la diversidad de variedades de perros domsticos (razas tan diversas como los bulldogs, chihuahuas y dachshunds han sido producidas a partir de lobos en slo unos pocos miles de aos), pero ejemplos menos conocidos incluyen al maz cultivado (muy diferente de sus parientes salvajes, que carecen de las familiares ``orejas'' del maz cultivado), a los peces de colores (como los perros, hemos criado variedades cuyo aspecto es drsticamente distinto al del tipo salvaje), y a las vacas lecheras (con ubres inmensas, mucho mayores que las necesarias para alimentar a una cra). Pero en las ltimas dcadas, el continuo avance de la tecnologa moderna ha producido algo nuevo. Ahora la evolucin est produciendo beneficios prcticos en un campo muy distinto y, esta vez, los creacionistas no pueden afirmar que su explicacin se adapte a los hechos igual de bien. Este campo es la informtica, y los beneficios provienen de una estrategia de programacin llamada algoritmos genticos. Algoritmos Genticos Pg. 5 nteligencia Artificial .U/ ES UN ALGORITMO Un a89o"itmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea y/o resolver un problema. De un modo ms formal, un algoritmo es una secuencia finita de operaciones realizables, no ambiguas, cuya ejecucin da una solucin de un problema en un tiempo finito. El trmino algoritmo no est exclusivamente relacionado con la matemtica, ciencias de la computacin o informtica. En realidad, en la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos son el uso de una lavadora (se siguen las instrucciones), pero no la preparacin de una comida (porque no estn perfectamente definidos los pasos). Tambin existen ejemplos de ndole matemtica, como el algoritmo de la divisin para calcular el cociente de dos nmeros, el algoritmo de Euclides para calcular el mximo comn divisor de dos enteros positivos, o incluso el mtodo de Gauss para resolver Sistema lineal de ecuaciones .U/ ES GENETICA Del griego ysvvo, genno, dar a luz, es la ciencia que estudia los genes, la herencia y la variacin de los organismos. El trmino "Gentica" fue propuesto para describir el estudio de la herencia y la ciencia de la variacin por el prominente cientfico britnico William Bateson en una carta personal a Adam Sedgwick fechada el 18 de abril de 1905. Bateson emple pblicamente el trmino "Gentica" por primera vez en la Tercera Conferencia nternacional de Gentica (Londres, nglaterra) en 1906. Los genes contienen la informacin necesaria para determinar la secuencia de aminocidos de las protenas. stas, a su vez, desempean una funcin importante en la determinacin del fenotipo final, o apariencia fsica, del organismo. En los organismos diploides, un alelo dominante en uno de los cromosomas homlogos enmascara la expresin de expression de un alelo recesivo en el otro. 0.U/ ES UN ALGORITMO GEN/TICO1 Un algoritmo gentico (AG) es una tcnica de programacin que imita a la evolucin biolgica como estrategia para resolver problemas. Dado un problema especfico a resolver, la entrada del AG es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una mtrica llamada funcin de aptitud que permite evaluar cuantitativamente a cada candidata. Estas candidatas pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG las mejore, pero se suelen generar aleatoriamente. Luego el AG evala cada candidata de acuerdo con la funcin de aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayora no funcionarn en absoluto, y sern eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras -pueden mostrar actividad, aunque slo sea actividad dbil e imperfecta, hacia la solucin del problema. Algoritmos Genticos Pg. 6 nteligencia Artificial Estas candidatas prometedoras se conservan y se les permite reproducirse. Se realizan mltiples copias de ellas, pero las copias no son perfectas; se introducen cambios aleatorios durante el proceso de copia. Luego, esta descendencia digital prosigue con la siguiente generacin, formando un nuevo acervo de soluciones candidatas, y son sometidas a una ronda de evaluacin de aptitud. Las candidatas que han empeorado o no han mejorado con los cambios en su cdigo son eliminadas de nuevo; pero, de nuevo, por puro azar, las variaciones aleatorias introducidas en la poblacin pueden haber mejorado a algunos individuos, convirtindolos en mejores soluciones del problema, ms completas o ms eficientes. De nuevo, se seleccionan y copian estos individuos vencedores hacia la siguiente generacin con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la poblacin se incrementar en cada ronda y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden descubrirse soluciones muy buenas del problema. Aunque a algunos les puede parecer asombroso y antiintuitivo, los algoritmos genticos han demostrado ser una estrategia enormemente poderosa y exitosa para resolver problemas, demostrando de manera espectacular el poder de los principios evolutivos. Se han utilizado algoritmos genticos en una amplia variedad de campos para desarrollar soluciones a problemas tan difciles o ms difciles que los abordados por los diseadores humanos. Adems, las soluciones que consiguen son a menudo ms eficientes, ms elegantes o ms complejas que nada que un ingeniero humano producira. En algunos casos, los algoritmos genticos han producido soluciones que dejan perplejos a los programadores que escribieron los algoritmos en primera instancia! LA E#OLUCI,N Despus de ver el tipo de problemas a los que se pueden aplicar los algoritmos evolutivos, se va a estudiar qu es lo que inspira dichos algoritmos, la Naturaleza, ese fenmeno natural denominado evolucin, y si optimiza o no. La teora de la evolucin (que no es tal teora, sino una serie de hechos probados), fue descrita por Charles Darwin. La hiptesis de Darwin, presentada junto con Wallace, que lleg a las mismas conclusiones independientemente, es que pequeos cambios heredables en los seres vivos y la seleccin son los dos hechos que provocan el cambio en la Naturaleza y la generacin de nuevas especies. Pero Darwin desconoca cual es la base de la herencia, pensaba que los rasgos de un ser vivo eran como un fluido, y que los "fluidos" de los dos padres se mezclaban en la descendencia; esta hiptesis tena el problema de que al cabo de cierto tiempo, una poblacin tendra los mismos rasgos intermedios. Fue Me+$e8 quien descubri que los caracteres se heredaban de forma discreta, y que se tomaban del padre o de la madre, dependiendo de su carcter dominante o recesivo. A estos caracteres que podan tomar diferentes valores se les llamaron genes, y a los valores que podan tomar, alelos. Algoritmos Genticos Pg. 7 nteligencia Artificial En realidad, las teoras de Mendel, que trabaj en total aislamiento, se olvidaron y no se volvieron a redescubrir hasta principios del siglo XX. Adems, hasta 1930 el geneticista ingls Ro:e"t A;8me" no relacion ambas teoras, demostrando que los genes mendelianos eran los que proporcionaban el mecanismo necesario para la evolucin. Ms o menos por la misma poca, el bilogo alemn <a8the" F8emmi+9 describi los cromosomas, como ciertos filamentos en los que se agregaba la cromatina del ncleo celular durante la divisin; poco ms adelante se descubri que las clulas de cada especie viviente tenan un nmero fijo y caracterstico de cromosomas. Y no fue hasta los aos 50, cuando <atso+ y C"i!= descubrieron que la base molecular de los genes est en el ADN, cido desoxirribonucleico. Los cromosomas estn compuestos de ADN, y por tanto los genes estn en los cromosomas. La macromolcula de ADN est compuesta por bases pricas y pirimidnicas, la adenina, citosina, guanina y timina. La combinacin y la secuencia de estas bases forma el !>$i9o 9e+ti!o, nico para cada ser vivo. Grupos de 3 bases forman un codon, y cada codon codifica un aminocido (el que exprese ese aminocido o no depende de otros factores); el cdigo gentico codifica todas las protenas que forman parte de un ser vivo. Mientras que al cdigo gentico se le llama genotipo, al cuerpo que construyen esas protenas, modificado por la presin ambiental, la historia vital, y otros mecanismos dentro del cromosoma, se llama fenotipo. Proyectos como el del Genoma Humano tratan de identificar cules son estos genes, sus posiciones, y sus posibles alteraciones, que habitualmente conducen a enfermedades. Todos estos hechos forman hoy en da la teora del neo-darwinismo, que afirma que la historia de la mayora de la vida est causada por una serie de procesos que actan en y dentro de las poblaciones: "e?"o$u!!i>+, muta!i>+, !om?eti!i>+ ; se8e!!i>+. La evolucin se puede definir entonces como cambios en el pool o conjunto gentico de una poblacin. Un tema polmico, con opiniones variadas dependiendo de si se trata de informticos evolutivos o de bilogos o geneticistas, es si la evolucin optimiza o no. Segn los i+@o"mAti!os eBo8utiBos, la evolucin optimiza, puesto que va creando seres cada vez ms perfectos, cuya cumbre es el hombre; adems, indicios de esta optimizacin se encuentran en el organismo de los animales, desde el tamao y tasa de ramificacin de las arterias, diseada para maximizar flujo, hasta el metabolismo, que optimiza la cantidad de energa extrada de los alimentos. Algoritmos Genticos Pg. 8 nteligencia Artificial Sin embargo, 8os 9e+eti!istas ; :i>8o9os eBo8utiBos afirman que la evolucin no optimiza, sino que adapta y optimiza localmente en el espacio y el tiempo; evolucin no significa progreso. Un organismo ms evolucionado puede estar en desventaja competitiva con uno de sus antepasados, si se colocan en el ambiente del ltimo. UNA 2RE#E ISTORIA DE LOS ALGORITMOS GENETICOS Los primeros ejemplos de lo que hoy podramos llamar algoritmos genticos aparecieron a finales de los 50 y principios de los 60, programados en computadoras por bilogos evolutivos que buscaban explcitamente realizar modelos de aspectos de la evolucin natural. A ninguno de ellos se le ocurri que esta estrategia podra aplicarse de manera ms general a los problemas artificiales, pero ese reconocimiento no tardara en llegar: ``La computacin evolutiva estaba definitivamente en el aire en los das formativos de la computadora electrnica'' En 1962, investigadores como G.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann haban desarrollado independientemente algoritmos inspirados en la evolucin para optimizacin de funciones y aprendizaje automtico, pero sus trabajos generaron poca reaccin. En 1965 surgi un desarrollo ms exitoso, cuando ngo Rechenberg, entonces de la Universidad Tcnica de Berln, introdujo una tcnica que llam estrategia evolutiva, aunque se pareca ms a los trepacolinas que a los algoritmos genticos. En esta tcnica no haba poblacin ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtindose en el padre de la siguiente ronda de mutacin. Versiones posteriores introdujeron la idea de poblacin. Las estrategias evolutivas todava se emplean hoy en da por ingenieros y cientficos, sobre todo en Alemania. En una fecha tan temprana como 1962, el trabajo de John Holland sobre sistemas adaptativos estableci las bases para desarrollos posteriores; y lo que es ms importante, Holland fue tambin el primero en proponer explcitamente el cruzamiento y otros operadores de recombinacin. Sin embargo, el trabajo fundamental en el campo de los algoritmos genticos apareci en 1975, con la publicacin del libro ``Adaptacin en Sistemas Naturales y Artificiales''. Basado en investigaciones y papers anteriores del propio Holland y de colegas de la Universidad de Michigan, este libro fue el primero en presentar sistemtica y rigurosamente el concepto de sistemas digitales adaptativos utilizando la mutacin, la seleccin y el cruzamiento, simulando el proceso de la evolucin biolgica como estrategia para resolver problemas. El libro tambin intent colocar los algoritmos genticos sobre una base terica firme introduciendo el concepto de esquema. Ese mismo ao, la importante tesis de Kenneth De Jong estableci el potencial de los AGs demostrando que podan desenvolverse bien en una gran variedad de funciones de prueba, incluyendo paisajes de bsqueda ruidosos, discontinuos y multimodales. Al principio, estas aplicaciones eran principalmente tericas. Sin embargo, al seguir proliferando la investigacin, los algoritmos genticos migraron hacia el sector comercial, al cobrar importancia con el crecimiento exponencial de la potencia de computacin y el desarrollo de nternet. Hoy en da, la computacin evolutiva es un campo floreciente, y los algoritmos genticos estn ``resolviendo problemas de inters cotidiano'' en reas de estudio tan diversas como la prediccin en la bolsa y la planificacin de la cartera de valores, ingeniera aeroespacial, diseo de microchips, bioqumica y biologa molecular, y diseo de horarios en aeropuertos y lneas de montaje. La potencia de la evolucin ha tocado virtualmente cualquier campo que uno pueda nombrar, modelando invisiblemente el mundo que nos rodea de incontables maneras, y siguen descubrindose nuevos usos mientras la investigacin sigue su curso. Y en el corazn de todo esto se halla nada ms que la simple y poderosa idea de Charles Darwin: que el azar en la variacin, junto con la ley de la seleccin, es una tcnica de resolucin de problemas de inmenso poder y de aplicacin casi ilimitada. Algoritmos Genticos Pg. 9 nteligencia Artificial MECANISMOS DE CAM2IO EN LA E#OLUCI,N Estos mecanismos de cambio sern necesarios para entender los algoritmos evolutivos, pues se trata de imitarlos para resolver problemas de ingeniera; por eso merece la pena conocerlos en ms profundidad. Los mecanismos de cambio alteran la proporcin de alelos de un tipo determinado en una poblacin, y se dividen en dos tipos: los que disminuyen la variabilidad, y los que la aumentan. Los principales mecanismos que disminuyen la variabilidad son los siguientes: Se8e!!i>+ Natu"a8 Los individuos que tengan algn rasgo que los haga menos vlidos para realizar su tarea de seres vivos, no llegarn a reproducirse, y, por tanto, su patrimonio gentico desaparecer del pool; algunos no llegarn ni siquiera a nacer. Esta seleccin sucede a muchos niveles: competicin entre miembros de la especie (intraespecfica), competicin entre diferentes especies, y competicin predador-presa, por ejemplo. Tambin es importante la seleccin sexual, en la cual las hembras eligen el mejor individuo de su especie disponible para reproducirse. De"iBa 9+i!a: El simple hecho de que un alelo sea ms comn en la poblacin que otro, causar que la proporcin de alelos de esa poblacin vaya aumentando en una poblacin aislada, lo cual a veces da lugar a fenmenos de especiacin, por ejemplo, por el denominado efecto fundador. Otros mecanismos aumentan la diversidad, y suceden generalmente en el mbito molecular. Los ms importantes son: Muta!i>+: La mutacin es una alteracin del cdigo gentico, que puede suceder por mltiples razones. En muchos casos, las mutaciones las elimina la ADN-polimerasa, la navaja del ejrcito suizo del ADN, que igual duplica, que corrige, que desinvierte un cacho gentico mal colocado. En muchos otros casos, las mutaciones, que cambian un nucletido por otro, son letales, y los individuos ni siquiera llegan a desarrollarse, pero a veces se da lugar a la produccin de una protena que aumenta la supervivencia del individuo, y que, por tanto, es pasada a la descendencia. Las mutaciones son totalmente aleatorias, y son el mecanismo bsico de generacin de variedad gentica. A pesar de lo que se piensa habitualmente, la mayora de las mutaciones ocurren de forma natural, aunque existen sustancias mutagnicas que aumentan su frecuencia. Po8i?8oi$Ca: Mientras que las clulas normales poseen dos copias de cada cromosoma, y las clulas reproductivas una (haploides), puede suceder por accidente que alguna clula reproductiva tenga dos copias; si se logra combinar con otra clula diploide o haploide dar lugar a un ser vivo con varias copias de cada cromosoma. La mayora de las veces, la poliploida da lugar a individuos con algn defecto (por ejemplo, el tener 3 copias del cromosoma 21 da lugar al mongolismo), pero en algunos casos se crean individuos viables. Un caso de mutacin fue el que sufri (o disfrut) el mosquito Culex pipiens, en el cual se duplic un gen que generaba una enzima que rompa los organofosfatos, componentes habituales de los insecticidas. Re!om:i+a!i>+: Cuando las dos clulas sexuales, o gametos, una masculina y otra femenina se combinan, los cromosomas de cada una tambin lo hacen, intercambindose genes, que a partir de ese momento pertenecern a un cromosoma diferente. A veces tambin se produce traslocacin dentro de un cromosoma; una secuencia de cdigo se elimina de un sitio y aparece en otro sitio del cromosoma, o en otro cromosoma. Algoritmos Genticos Pg. 10 nteligencia Artificial F8uDo 9e+ti!o: O intercambio de material gentico entre seres vivos de diferentes especies. Normalmente se produce a travs de un vector, que suelen ser virus o bacterias; estas incorporan a su material gentico genes procedentes de una especie a la que han infectado, y cuando infectan a un individuo de otra especie pueden transmitirle esos genes a los tejidos generativos de gametos. En resumen, la seleccin natural acta sobre el fenotipo y suele disminuir la diversidad, haciendo que sobrevivan solo los individuos ms aptos (aunque esta frase, bien mirada, es una redundancia: Sobreviven los mejores o son los mejores porque sobreviven?); los mecanismos que generan diversidad y que combinan caractersticas actan habitualmente sobre el genotipo. 0CU5LES SON LAS #ENTAJAS DE LOS AGs1 El primer y ms importante punto es que los algoritmos genticos son i+t"C+se!ame+te ?a"a8e8os. La mayora de los otros algoritmos son en serie y slo pueden explorar el espacio de soluciones hacia una solucin en una direccin al mismo tiempo, y si la solucin que descubren resulta subptima, no se puede hacer otra cosa que abandonar todo el trabajo hecho y empezar de nuevo. Sin embargo, ya que los AGs tienen descendencia mltiple, pueden explorar el espacio de soluciones en mltiples direcciones a la vez. Si un camino resulta ser un callejn sin salida, pueden eliminarlo fcilmente y continuar el trabajo en avenidas ms prometedoras, dndoles una mayor probabilidad en cada ejecucin de encontrar la solucin. Sin embargo, la ventaja del paralelismo va ms all de esto. Considere lo siguiente: todas las cadenas binarias (cadenas de ceros y unos) de 8 dgitos forman un espacio de bsqueda, que puede representarse como ******** (donde * significa ``o 0 o 1''). La cadena 01101010 es un miembro de este espacio. Sin embargo, tambin es un miembro del espacio 0*******, del espacio 01******, del espacio 0******0, del espacio 0*1*1*1*, del espacio 10*01**0, etctera. Evaluando la aptitud de esta cadena particular, un algoritmo gentico estara sondeando cada uno de los espacios a los que pertenece. Tras muchas evaluaciones, ira obteniendo un valor cada vez ms preciso de la aptitud media de cada uno de estos espacios, cada uno de los cuales contiene muchos miembros. Por tanto, un AG que evale explcitamente un nmero pequeo de individuos est evaluando implcitamente un grupo de individuos mucho ms grande de la misma manera que un encuestador que le hace preguntas a un cierto miembro de un grupo tnico, religioso o social espera aprender algo acerca de las opiniones de todos los miembros de ese grupo, y por tanto puede predecir con fiabilidad la opinin nacional sondeando slo un pequeo porcentaje de la poblacin. De la misma manera, el AG puede dirigirse hacia el espacio con los individuos ms aptos y encontrar el mejor de ese grupo. En el contexto de los algoritmos evolutivos, esto se conoce como teorema del esquema, y es la ventaja principal de los AGs sobre otros mtodos de resolucin de problemas. Debido al paralelismo que les permite evaluar implcitamente muchos esquemas a la vez, los algoritmos genticos funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande -demasiado vasto para hacer una bsqueda exhaustiva en un tiempo razonable. La mayora de los problemas que caen en esta categora se conocen como ``no lineales''. En un problema lineal, la aptitud de cada componente es independiente, por lo que cualquier mejora en alguna parte dar como resultado una mejora en el sistema Algoritmos Genticos Pg. 11 nteligencia Artificial completo. No es necesario decir que hay pocos problemas como ste en la vida real. La no linealidad es la norma, donde cambiar un componente puede tener efectos en cadena en todo el sistema, y donde cambios mltiples que, individualmente, son perjudiciales, en combinacin pueden conducir hacia mejoras en la aptitud muchos mayores. La no linealidad produce una explosin combinatoria: el espacio de cadenas binarias de 1.000 dgitos puede examinarse exhaustivamente evaluando slo 2.000 posibilidades si el problema es lineal, mientras que si no es lineal, una bsqueda exhaustiva requiere evaluar 21.000 posibilidades -un nmero que, escrito, ocupara ms de 300 dgitos. Afortunadamente, el paralelismo implcito de los AGs les permite superar incluso este enorme nmero de posibilidades, y encontrar con xito resultados ptimos o muy buenos en un corto periodo de tiempo, tras muestrear directamente slo regiones pequeas del vasto paisaje adaptativo. Por ejemplo, un algoritmo gentico desarrollado en comn por ingenieros de General Electric y el Rensselaer Polytechnic nstitute produjo el diseo de la turbina de un motor a reaccin de altas prestaciones que era tres veces mejor que la configuracin diseada por humanos, y un 50% mejor que una configuracin diseada por un sistema experto que recorri con xito un espacio de soluciones que contena ms de 10.387 posibilidades. Los mtodos convencionales para disear estas turbinas son una parte fundamental de proyectos de ingeniera que pueden durar hasta cinco aos y costar ms de 2.000 millones de dlares; el algoritmo gentico descubri esta solucin en dos das, en una estacin de trabajo de escritorio tpica en ingeniera. Otra ventaja notable de los algoritmos genticos es que se desenvuelven bien en problemas con un paisaje adaptativo complejo -aqullos en los que la funcin de aptitud es discontinua, ruidosa, cambia con el tiempo, o tiene muchos ptimos locales. La mayora de los problemas prcticos tienen un espacio de soluciones enorme, imposible de explorar exhaustivamente; el reto se convierte entonces en cmo evitar los ptimos locales -soluciones que son mejores que todas las que son similares a ella, pero que no son mejores que otras soluciones distintas situadas en algn otro lugar del espacio de soluciones. Muchos algoritmos de bsqueda pueden quedar atrapados en los ptimos locales: si llegan a lo alto de una colina del paisaje adaptativo, descubrirn que no existen soluciones mejores en las cercanas y concluirn que han alcanzado la mejor de todas, aunque existan picos ms altos en algn otro lugar del mapa. Los algoritmos evolutivos, por otro lado, han demostrado su efectividad al escapar de los ptimos locales y descubrir el ptimo global incluso en paisajes adaptativos muy escabrosos y complejos. (Debe decirse que, en la realidad, a menudo no hay manera de decir si una cierta solucin a un problema es el ptimo global o slo un ptimo local muy alto. Sin embargo, aunque un AG no devuelva siempre una solucin perfecta y demostrable a un problema, casi siempre puede devolver al menos una muy buena solucin). Todos los cuatro componentes principales de los AGs -paralelismo, seleccin, mutacin y cruzamiento- trabajan juntos para conseguir esto. Al principio, el AG genera una poblacin inicial diversa, lanzando una ``red'' sobre el paisaje adaptativo compara esto con un ejrcito de paracaidistas cayendo sobre el paisaje del espacio de bsqueda de un problema, cada uno de ellos con rdenes de buscar el pico ms alto). Pequeas mutaciones permiten a cada individuo explorar sus proximidades, mientras que la seleccin enfoca el progreso, guiando a la descendencia del algoritmo cuesta arriba hacia zonas ms prometedoras del espacio de soluciones. Algoritmos Genticos Pg. 12 nteligencia Artificial Sin embargo, el cruzamiento es el elemento clave que distingue a los algoritmos genticos de los otros mtodos como los trepacolinas y el recocido simulado. Sin el cruzamiento, cada solucin individual va por su cuenta, explorando el espacio de bsqueda en sus inmediaciones sin referencia de lo que el resto de individuos puedan haber descubierto. Sin embargo, con el cruzamiento en juego, hay una transferencia de informacin entre los candidatos prsperos -los individuos pueden beneficiarse de lo que otros han aprendido, y los esquemas pueden mezclarse y combinarse, con el potencial de producir una descendencia que tenga las virtudes de sus dos padres y ninguna de sus debilidades. En una generacin se seleccionaron dos circuitos progenitores para llevar a cabo el cruzamiento; un padre tena una buena topologa (componentes como inductores y condensadores colocados en el sitio correcto) pero malos tamaos (valores demasiado bajos de inductancia y capacidad para los componentes). El otro padre tena mala topologa pero buenos tamaos. El resultado de aparearlos mediante cruzamiento fue una descendencia con la buena topologa de un padre y los buenos tamaos del otro, dando como resultado una mejora sustancial de la aptitud sobre sus dos padres. El problema de encontrar el ptimo global en un espacio con muchos ptimos locales tambin se conoce como el dilema de la exploracin versus explotacin, ``un problema clsico de todos los sistemas que pueden adaptarse y aprender'' Una vez que un algoritmo (o un diseador humano) ha encontrado una estrategia para resolver problemas que parece funcionar satisfactoriamente, debera centrarse en hacer el mejor uso de esa estrategia, o buscar otras? Abandonar una estrategia de probada solvencia para buscar otras nuevas casi garantiza que supondr una prdida y degradacin del rendimiento, al menos a corto plazo. Pero si uno se queda con una estrategia particular excluyendo a todas las dems, corre el riesgo de no descubrir estrategias mejores que existen pero no se han encontrado. De nuevo, los algoritmos genticos han demostrado ser muy buenos en dar con este equilibrio y descubrir buenas soluciones en un tiempo y esfuerzo computacional razonables. Otra rea en el que destacan los algoritmos genticos es su habilidad para manipular muchos parmetros simultneamente. Muchos problemas de la vida real no pueden definirse en trminos de un nico valor que hay que minimizar o maximizar, sino que deben expresarse en trminos de mltiples objetivos, a menudo involucrando contrapartidas: uno slo puede mejorar a expensas de otro. Los AGs son muy buenos resolviendo estos problemas: en particular, su uso del paralelismo les permite producir mltiples soluciones, igualmente buenas, al mismo problema, donde posiblemente una solucin candidata optimiza un parmetro y otra candidata optimiza uno distinto y luego un supervisor humano puede seleccionar una de esas candidatas para su utilizacin. Si una solucin particular a un problema con mltiples objetivos optimiza un parmetro hasta el punto en el que ese parmetro no puede mejorarse ms sin causar una correspondiente prdida de calidad en algn otro parmetro, esa solucin se llama ptimo paretiano o no dominada. Finalmente, una de las cualidades de los algoritmos genticos que, a primera vista, puede parecer un desastre, resulta ser una de sus ventajas: a saber, los AGs no saben nada de los problemas que deben resolver. En lugar de utilizar informacin especfica conocida a priori para guiar cada paso y realizar cambios con un ojo puesto en el mejoramiento, como hacen los diseadores humanos, son ``relojeros ciegos''; realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la funcin de aptitud para determinar si esos cambios producen una mejora. La virtud de esta tcnica es que permite a los algoritmos genticos comenzar con una mente abierta, por as decirlo. Como sus decisiones estn basadas en la aleatoriedad, todos los caminos de bsqueda posibles estn abiertos tericamente a un AG; en contraste, cualquier estrategia de resolucin de problemas que dependa de un conocimiento previo, debe inevitablemente comenzar descartando muchos Algoritmos Genticos Pg. 13 nteligencia Artificial caminos a priori, perdiendo as cualquier solucin novedosa que pueda existir. Los AGs, al carecer de ideas preconcebidas basadas en creencias establecidas sobre ``cmo deben hacerse las cosas'' o sobre lo que ``de ninguna manera podra funcionar'', los AGs no tienen este problema. De manera similar, cualquier tcnica que dependa de conocimiento previo fracasar cuando no est disponible tal conocimiento, pero, de nuevo, los AGs no se ven afectados negativamente por la ignorancia. Mediante sus componentes de paralelismo, cruzamiento y mutacin, pueden viajar extensamente por el paisaje adaptativo, explorando regiones que algoritmos producidos con inteligencia podran no haber tenido en cuenta, y revelando potencialmente soluciones de asombrosa e inesperada creatividad que podran no habrseles ocurrido nunca a los diseadores humanos. Un ejemplo muy grfico de esto es el redescubrimiento, mediante la programacin gentica, del concepto de retroalimentacin negativa -un principio crucial para muchos componentes electrnicos importantes de hoy en da, pero un concepto que, cuando fue descubierto en primera instancia, se le deneg una patente de nueve aos porque el concepto era demasiado contrario a las creencias establecidas. Por supuesto, los algoritmos evolutivos no estn enterados ni preocupados de si una solucin va en contra de las creencias establecidas -slo de si funciona. 0CU5LES SON LAS LIMITACIONES DE LOS AGs1 Aunque los algoritmos genticos han demostrado su eficiencia y potencia como estrategia de resolucin de problemas, no son la panacea. Los AGs tienen ciertas limitaciones; sin embargo, se demostrar que todas ellas pueden superarse y que ninguna de ellas afecta a la validez de la evolucin biolgica. La primera y ms importante consideracin al crear un algoritmo gentico es definir una representacin del problema. El lenguaje utilizado para especificar soluciones candidatas debe ser robusto; es decir, debe ser capaz de tolerar cambios aleatorios que no produzcan constantemente errores fatales o resultados sin sentido. Hay dos maneras principales para conseguir esto. La primera, utilizada por la mayora de los algoritmos genticos, es definir a los individuos como listas de nmeros -binarios, enteros o reales- donde cada nmero representa algn aspecto de la solucin candidata. Si los individuos son cadenas binarias, un 0 o 1 podra significar la ausencia o presencia de una cierta caracterstica. Si son listas de nmeros, estos nmeros podran representar muchas cosas distintas: los pesos de las conexiones en una red neuronal, el orden de las ciudades visitadas en un recorrido dado, la situacin espacial de componentes electrnicos, los valores con los que se alimenta a un controlador, los ngulos de torsin de los enlaces pptidos de una protena, etctera. As, la mutacin implica cambiar estos nmeros, cambiar bits o sumar o restar valores aleatorios. En este caso, el propio cdigo del programa no cambia; el cdigo es lo que dirige la simulacin y hace un seguimiento de los individuos, evaluando sus aptitudes y quiz asegurando que slo se producen valores realistas y posibles para el problema dado. En otro mtodo, la programacin gentica, el propio cdigo del programa s cambia. Como ya se dijo en la seccin ``Mtodos de representacin'', la PG representa a los individuos como rboles de cdigo ejecutables que pueden mutar cambiando o intercambiando subrboles. Ambos mtodos producen representaciones robustas ante la Algoritmos Genticos Pg. 14 nteligencia Artificial mutacin, y pueden representar muchos tipos diferentes de problemas y, como se dice en la seccin ``Algunos ejemplos especficos'', ambas han tenido un xito considerable. El problema de representar a las soluciones candidatas de manera robusta no surge en la naturaleza, porque el mtodo de representacin utilizado por la evolucin, a saber, el cdigo gentico, es inherentemente robusto: con muy pocas excepciones, como una cadena de cordones de parada, no existe una secuencia de bases de ADN que no pueda traducirse en una protena. Por lo tanto, virtualmente, cualquier cambio en los genes de un individuo siempre producir un resultado inteligible, y por tanto las mutaciones en la evolucin tienen mayor probabilidad de producir una mejora. Esto entra en contraste con los lenguajes creados por el hombre como el ingls, donde el nmero de palabras con significado es pequeo comparado con el nmero total de formas en las que se pueden combinar las letras del alfabeto, y por tanto, es probable que un cambio aleatorio en una frase en ingls produzca un sinsentido. El problema de cmo escribir la funcin de aptitud debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente signifique una solucin mejor para el problema dado. Si se elige mal una funcin de aptitud o se define de manera inexacta, puede que el algoritmo gentico sea incapaz de encontrar una solucin al problema, o puede acabar resolviendo el problema equivocado. (Esta ltima situacin se describe a veces como la tendencia del AG a ``engaar'', aunque en realidad lo que est pasando es que el AG est haciendo lo que se le pidi hacer, no lo que sus creadores pretendan que hiciera). Se puede encontrar un ejemplo donde unos investigadores utilizaron un algoritmo evolutivo en conjuncin con una serie de chips reprogramables, haciendo que la funcin de aptitud recompensara al circuito en evolucin por dar como salida una seal oscilatoria. Al final del experimento, se produca efectivamente una seal oscilatoria -pero en lugar de actuar como un osculador, como pretendan los investigadores, descubrieron que el circuito se haba convertido en un receptor de radio que estaba recibiendo y retransmitiendo una seal oscilatoria de un componente electrnico cercano! Sin embargo, esto no es un problema en la naturaleza. En el laboratorio de la evolucin biolgica, slo hay una funcin de aptitud que es igual para todos los seres vivos -la carrera por sobrevivir y reproducirse, sin importar qu adaptaciones hagan esto posible. Los organismos que se reproducen con ms abundancia que sus competidores estn ms adaptados; los que fracasan en reproducirse no estn adaptados. Adems de elegir bien la funcin de aptitud, tambin deben elegirse cuidadosamente los otros parmetros de un AG -el tamao de la poblacin, el ritmo de mutacin y cruzamiento, el tipo y fuerza de la seleccin. Si el tamao de la poblacin es demasiado pequeo, puede que el algoritmo gentico no explore suficientemente el espacio de soluciones para encontrar buenas soluciones consistentemente. Si el ritmo de cambio gentico es demasiado alto o el sistema de seleccin se escoge inadecuadamente, puede alterarse el desarrollo de esquemas beneficiosos y la poblacin puede entrar en catstrofe de errores, al cambiar demasiado rpido para que la seleccin llegue a producir convergencia. Los seres vivos tambin se enfrentan a dificultades similares, y la evolucin se ha encargado de ellas. Es cierto que si el tamao de una poblacin cae hacia un valor muy bajo, los ritmos de mutacin son muy altos o la presin selectiva es demasiado fuerte (una situacin as podra ser resultado de un cambio ambiental drstico), entonces la especie puede extinguirse. La solucin ha sido ``la evolucin de la evolutividad'' -las adaptaciones que alteran la habilidad de una especie para adaptarse. Un ejemplo. La mayora de los seres vivos han evolucionado una Algoritmos Genticos Pg. 15 nteligencia Artificial elaborada maquinaria celular que comprueba y corrigue errores durante el proceso de replicacin del ADN, manteniendo su ritmo de mutacin a unos niveles aceptablemente bajos; a la inversa, en tiempos de fuerte presin ambiental, algunas especies de bacterias entran en un estado de hipermutacin en el que el ritmo de errores en la replicacin del ADN aumenta bruscamente, aumentando la probabilidad de que se descubrir una mutacin compensatoria. Por supuesto, no pueden eludirse todas las catstrofes, pero la enorme diversidad y las adaptaciones altamente complejas de los seres vivos actuales muestran que, en general, la evolucin es una estrategia exitosa. gualmente, las aplicaciones diversas y los impresionantes resultados de los algoritmos genticos demuestran que son un campo de estudio poderoso y que merece la pena. Un problema con el que los algoritmos genticos tienen dificultades son los problemas con las funciones de aptitud ``engaosas'', en las que la situacin de los puntos mejorados ofrecen informacin engaosa sobre dnde se encuentra probablemente el ptimo global. Por ejemplo: imagine un problema en el que el espacio de bsqueda est compuesto por todas las cadenas binarias de ocho caracteres, y en el que la aptitud de cada individuo sea directamente proporcional al nmero de unos en l -es decir, 00000001 sera menos apto que 00000011, que sera menos apto que 00000111, etctera -, con dos excepciones: la cadena 11111111 resulta tener una aptitud muy baja, y la cadena 00000000 resulta tener una aptitud muy alta. En este problema, un AG (al igual que la mayora de los algoritmos) no tendra ms probabilidad de encontrar un ptimo global que una bsqueda aleatoria. La solucin a este problema es la misma para los algoritmos genticos y la evolucin biolgica: la evolucin no es un proceso que deba encontrar siempre el ptimo global. Puede funcionar casi igual de bien alcanzando la cima de un ptimo local alto y, para la mayora de las situaciones, eso ser suficiente, incluso aunque el ptimo global no pueda alcanzarse fcilmente desde ese punto. La evolucin es como un ``satisfactor'' -un algoritmo que entrega una solucin ``suficientemente buena'', aunque no necesariamente la mejor solucin posible, dada una cantidad razonable de tiempo y esfuerzo invertidos en la bsqueda. La ``FAQ de la evidencia de diseo improvisado en la naturaleza'' proporciona ejemplos de la naturaleza con estos resultados. (Tambin hay que tener en cuenta que pocos o ningn problema real es tan engaoso como el ejemplo algo forzado dado arriba. Normalmente, la situacin de las mejoras locales proporciona alguna informacin sobre la situacin del ptimo global). Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura. Si un individuo que es ms apto que la mayora de sus competidores emerge muy pronto en el curso de la ejecucin, se puede reproducir tan abundantemente que merme la diversidad de la poblacin demasiado pronto, provocando que el algoritmo converja hacia el ptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el ptimo global. Esto es un problema especialmente comn en las poblaciones pequeas, donde incluso una variacin aleatoria en el ritmo de reproduccin puede provocar que un genotipo se haga dominante sobre los otros. Los mtodos ms comunes implementados por los investigadores en AGs para solucionar este problema implican controlar la fuerza selectiva, para no proporcionar tanta ventaja a los individuos excesivamente aptos. La seleccin escalada, por rango y por torneo, discutidas anteriormente, son tres de los mtodos principales para conseguir esto; algunos mtodos de seleccin escalada son el escalado sigma, en el que la reproduccin se basa en una comparacin estadstica de la aptitud media de la poblacin, y la seleccin de Boltzmann, en la que la fuerza selectiva aumenta durante la ejecucin de manera similar a la variable ``temperatura'' en el recocido simulado. La convergencia prematura ocurre en la naturaleza (los bilogos la llaman deriva Algoritmos Genticos Pg. 16 nteligencia Artificial gentica). Esto no debe sorprender; como ya se dijo arriba, la evolucin, como estrategia de resolucin de problemas, no est obligada a encontrar la mejor solucin, slo una que sea lo bastante buena. Sin embargo, en la naturaleza, la convergencia prematura es menos comn, ya que la mayora de las mutaciones beneficiosas en los seres vivos slo producen mejoras en la aptitud pequeas e incrementales; son raras las mutaciones que producen una ganancia de aptitud tan grande que otorgue a sus poseedores una drstica ventaja reproductiva. Finalmente, varios investigadores aconsejan no utilizar algoritmos genticos en problemas resolubles de manera analtica. No es que los algoritmos genticos no puedan encontrar soluciones buenas para estos problemas; simplemente es que los mtodos analticos tradicionales consumen mucho menos tiempo y potencia computacional que los AGs y, a diferencia de los AGs, a menudo est demostrado matemticamente que ofrecen la nica solucin exacta. Por supuesto, como no existe una solucin matemtica perfecta para ningn problema de adaptacin biolgica, este problema no aparece en la naturaleza ALGORITMO GEN/TICO SIMPLE John Holland desde pequeo, se preguntaba cmo logra la naturaleza, crear seres cada vez ms perfectos. No saba la respuesta, pero tena una cierta idea de como hallarla: tratando de hacer pequeos modelos de la naturaleza, que tuvieran alguna de sus caractersticas, y ver cmo funcionaban, para luego extrapolar sus conclusiones a la totalidad. Fue a principios de los 60, en la Universidad de Michigan en Ann Arbor, donde, dentro del grupo Logic of Computers, sus ideas comenzaron a desarrollarse y a dar frutos. Y fue, adems, leyendo un libro escrito por un bilogo evolucionista, R. A. Fisher, titulado La teora gentica de la seleccin natural, como comenz a descubrir los medios de llevar a cabo sus propsitos de comprensin de la naturaleza. De ese libro aprendi que la evolucin era una forma de adaptacin ms potente que el simple aprendizaje, y tom la decisin de aplicar estas ideas para desarrollar programas bien adaptados para un fin determinado. En esa universidad, Holland imparta un curso titulado Teora de sistemas adaptativos. Dentro de este curso, y con una participacin activa por parte de sus estudiantes, fue donde se crearon las ideas que ms tarde se convertiran en los algoritmos genticos. Por tanto, cuando Holland se enfrent a los algoritmos genticos, los objetivos de su investigacin fueron dos: mitar los procesos adaptativos de los sistemas naturales, y Disear sistemas artificiales (normalmente programas) que retengan los mecanismos importantes de los sistemas naturales. Unos 15 aos ms adelante, David Goldberg, actual delfn de los algoritmos genticos, conoci a Holland, y se convirti en su estudiante. Goldberg era un ingeniero industrial trabajando en diseo de pipelines, y fue uno de los primeros que trat de aplicar los algoritmos genticos a problemas industriales. Aunque Holland trat de disuadirle, porque pensaba que el problema era excesivamente complicado como para aplicarle algoritmos genticos, Goldberg consigui lo que quera, escribiendo un Algoritmos Genticos Pg. 17 nteligencia Artificial algoritmo gentico en un ordenador personal Apple . Estas y otras aplicaciones creadas por estudiantes de Holland convirtieron a los algoritmos genticos en un campo con base suficiente aceptado para celebrar la primera conferencia en 1985. ANATOM*A DE UN ALGORITMO GEN/TICO SIMPLE Los algoritmos genticos son mtodos sistemticos para la resolucin de problemas de bsqueda y optimizacin que aplican a estos los mismos mtodos de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y mutacin. Los algoritmos genticos son mtodos de optimizacin, que tratan de resolver el mismo conjunto de problemas que se ha contemplado anteriormente, es decir, el objetivo es hallar (xi,...,xn) tales que F(xi,...,xn) sea mximo. En un algoritmo gentico, tras parametrizar el problema en una serie de variables, (xi,...,xn) se codifican en un cromosoma. Todos los operadores utilizados por un algoritmo gentico se aplicarn sobre estos cromosomas, o sobre poblaciones de ellos. En el algoritmo gentico va implcito el mtodo para resolver el problema; son slo parmetros de tal mtodo los que estn codificados, a diferencia de otros algoritmos evolutivos como la programacin gentica. Hay que tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo hace un algoritmo robusto, por ser til para cualquier problema, pero a la vez dbil, pues no est especializado en ninguno. Las soluciones codificadas en un cromosoma compiten para ver cul constituye la mejor solucin (aunque no necesariamente la mejor de todas las soluciones posibles). El ambiente, constituido por las otras camaradas soluciones, ejercer una presin selectiva sobre la poblacin, de forma que slo los mejor adaptados (aquellos que resuelvan mejor el problema) sobrevivan o leguen su material gentico a las siguientes generaciones, igual que en la evolucin de las especies. La diversidad gentica se introduce mediante mutaciones y reproduccin sexual. En la Naturaleza lo nico que hay que optimizar es la supervivencia, y eso significa a su vez maximizar diversos factores y minimizar otros. Un algoritmo gentico, sin embargo, se usar habitualmente para optimizar slo una funcin, no diversas funciones relacionadas entre s simultneamente. Este tipo de optimizacin, denominada optimizacin multimodal, tambin se suele abordar con un algoritmo gentico especializado. Por lo tanto: Algoritmos Genticos Pg. 18 Un algoritmo gentico consiste en hallar de qu parmetros depende el problema, codificarlos en un cromosoma, y se aplican los mtodos de la evolucin: seleccin y reproduccin sexual con intercambio de informacin y alteraciones que generan diversidad. En las siguientes secciones se vern cada uno de los aspectos de un algoritmo gentico. nteligencia Artificial Co$i@i!a!i>+ $e 8as Ba"ia:8es Los algoritmos genticos requieren que el conjunto se codifique en un cromosoma. Cada cromosoma tiene varios genes, que corresponden a sendos parmetros del problema. Para poder trabajar con estos genes en el ordenador, es necesario codificarlos en una cadena, es decir, una ristra de smbolos (nmeros o letras) que generalmente va a estar compuesta de 0s y 1s. EJEMPLO 4: Si un atributo (tiempo) puede tomar tres valores posibles (despejado, nublado, lluvioso) una manera de representarlo es mediante tres bits de forma que: (Tiempo = Nublado Lluvioso) y (Viento = Fuerte) se representara con la siguiente cadena: 011 10. De esta forma podemos representar fcilmente conjunciones de varios atributos para expresar restricciones (precondiciones) mediante la concatenacin de dichas cadenas de bits. Adems si tenemos otro atributo "Viento que puede ser Fuerte o Moderado, se representara con la siguiente cadena: 011 10. Las postcondiciones de las reglas se pueden representar de la misma forma. Por ello una regla se puede describir como la concatenacin de la precondicin y la postcondicin. EJEMPLO ': "JugaralTenis puede ser Cierto o Falso. Si Viento = Fuerte entonces JugaralTenis = Cierto se representara mediante la cadena 111 10 10. Donde los tres primeros bits a uno indican que el atributo "Tiempo no afecta a nuestra regla. Cabe destacar que una regla del tipo 111 10 11 no tiene demasiado sentido, puesto que no impone restricciones en la postcondicin. Para solucionar esto, una alternativa es codificar la postcondicin con un nico bit (1 = Cierto y 0 = Falso). Otra opcin es condicionar los operadores genticos para que no produzcan este tipo de cadenas o conseguir que estas hiptesis tengan una adecuacin muy baja (segn la funcin de evaluacin) para que no logren pasar a la prxima generacin de hiptesis. A continuacin se comienza con una poblacin de soluciones posibles, que pueden ser generadas al azar o mediante algn mtodo que produzca soluciones relativamente satisfactorias. A partir de este punto inicial, el algoritmo procede por etapas que ejecutan los pasos elementales siguientes: Se evalan todas las soluciones de la poblacin, con el fin de otorgar ms probabilidades de emparejamiento a las ms satisfactorias. Mediante un mecanismo de azar, aunque dando ms oportunidades a las mejor evaluadas, se eligen las soluciones que han de cruzarse entre s para dar lugar a descendencia. El cruce opera sobre las cadenas de los genotipos de cada pareja de las soluciones elegidas como progenitores. El sistema mediante el cual se obtienen nuevas soluciones a partir las precedentes, es decir lo que se llama el Algoritmos Genticos Pg. 19 nteligencia Artificial operador de cruzamiento, puede ser distinto segn las tcnicas especficas empleadas. El que se describe en el punto siguiente es uno de los ms generalizados. A89o"itmo 9e+ti!o ?"o?iame+te $i!ho Para comenzar la competicin, se generan aleatoriamente una serie de cromosomas. El algoritmo gentico procede de la forma siguiente: A89o"itmo 9e+ti!o Evaluar la puntuacin (fitness) de cada uno de los genes. Permitir a cada uno de los individuos reproducirse, de acuerdo con su puntuacin. Emparejar los individuos de la nueva poblacin, haciendo que intercambien material gentico, y que alguno de los bits de un gen se vea alterado debido a una mutacin espontnea. Cada uno de los pasos consiste en una actuacin sobre las cadenas de bits, es decir, la aplicacin de un operador a una cadena binaria. Se les denominan, por razones obvias, operadores genticos, y hay tres principales: seleccin, crossover o recombinacin y mutacin; aparte de otros operadores genticos no tan comunes, todos ellos se vern a continuacin. Un algoritmo gentico tiene tambin una serie de parmetros que se tienen que fijar para cada ejecucin, como los siguientes: TamaEo $e 8a ?o:8a!i>+: Debe de ser suficiente para garantizar la diversidad de las soluciones, y, adems, tiene que crecer ms o menos con el nmero de bits del cromosoma, aunque nadie ha aclarado cmo tiene que hacerlo. Por supuesto, depende tambin del ordenador en el que se est ejecutando. Co+$i!i>+ $e te"mi+a!i>+: lo ms habitual es que la condicin de terminacin sea la convergencia del algoritmo gentico o un nmero prefijado de generaciones. E#ALUACI,N F SELECCI,N Durante la evaluacin, se decodifica el gen, convirtindose en una serie de parmetros de un problema, se halla la solucin del problema a partir de esos parmetros, y se le da una puntuacin a esa solucin en funcin de lo cerca que est de la mejor solucin. A esta puntuacin se le llama fitness. Por ejemplo, supongamos que queremos hallar el mximo de la funcin f(x), una parbola invertida con el mximo en x=1. En este caso, el nico parmetro del Algoritmos Genticos Pg. 20 nteligencia Artificial problema es la variable x. La optimizacin consiste en hallar un x tal que F(x) sea mximo. Crearemos, pues, una poblacin de cromosomas, cada uno de los cuales contiene una codificacin binaria del parmetro x. Lo haremos de la forma siguiente: cada byte, cuyo valor est comprendido entre 0 y 255, se transformar para ajustarse al intervalo [-1,1], donde queremos hallar el mximo de la funcin. #a8o" :i+a"io De!o$i@i!a!i>+ EBa8ua!i>+ @GHI 10010100 21 0,9559 10010001 19 0,9639 101001 -86 0,2604 1000101 -58 0,6636 El fitness determina siempre los cromosomas que se van a reproducir, y aquellos que se van a eliminar, pero hay varias formas de considerarlo para seleccionar la poblacin de la siguiente generacin: Usar el orden, o rango, y hacer depender la probabilidad de permanencia o evaluacin de la posicin en el orden. Aplicar una operacin al fitness para escalarlo; como por ejemplo el escalado sigma. En este esquema el fitness se escala En algunos casos, el fitness no es una sola cantidad, sino diversos nmeros, que tienen diferente consideracin. Basta con que tal fitness forme un orden parcial, es decir, que se puedan comparar dos individuos y decir cul de ellos es mejor. Esto suele suceder cuando se necesitan optimizar varios objetivos. Una vez evaluado el fitness, se tiene que crear la nueva poblacin teniendo en cuenta que los buenos rasgos de los mejores se transmitan a sta. Para ello, hay que seleccionar a una serie de individuos encargados de tan ardua tarea. Y esta seleccin, y la consiguiente reproduccin, se puede hacer de dos formas principales: 2asa$o e+ e8 Ra+9o: En este esquema se mantiene un porcentaje de la poblacin, generalmente la mayora, para la siguiente generacin. Se coloca toda la poblacin por orden de fitness, y los M menos dignos son eliminados y sustituidos por la descendencia de alguno de los M mejores con algn otro individuo de la poblacin. A este esquema se le pueden aplicar otros criterios; por ejemplo, se crea la descendencia de uno de los paladines/amazonas, y esta sustituye al ms parecido entre los perdedores. Esto se denomina crowding, y fue introducido por DeJong. Una variante de este es el muestreado estocstico universal, que trata de evitar que los individuos con ms fitness copen la poblacin dando ms posibilidades al resto de la poblacin; de esta forma, la distribucin estadstica de descendientes en la nueva poblacin es ms parecida a la real. Rue$a $e Ru8eta: Se crea un conjunto gentico formado por cromosomas de la generacin actual, en una cantidad proporcional a su fitness. Si la proporcin hace que un Algoritmos Genticos Pg. 21 nteligencia Artificial individuo domine la poblacin, se le aplica alguna operacin de escalado. Dentro de este conjunto, se cogen parejas aleatorias de cromosomas y se emparejan, sin importar incluso que sean del mismo progenitor (para eso estn otros operadores, como la mutacin). Hay otras variantes: por ejemplo, en la nueva generacin se puede incluir el mejor representante de la generacin actual. En este caso, se denomina mtodo elitista. Se8e!!i>+ $e To"+eo: S escogen aleatoriamente un nmero T de individuos de la poblacin, y el que tiene puntuacin mayor se reproduce, sustituyendo su descendencia al que tiene menor puntuacin. CROSSO#ER Consiste en el intercambio de material gentico entre dos cromosomas (a veces ms, como el operador orga propuesto por Eiben). El crossover es el principal operador gentico, hasta el punto que se puede decir que no es un algoritmo gentico si no tiene crossover, y, sin embargo, puede serlo perfectamente sin mutacin, segn descubri Holland. El teorema de los esquemas confa en l para hallar la mejor solucin a un problema, combinando soluciones parciales. Para aplicar el crossover, entrecruzamiento o recombinacin, se escogen aleatoriamente dos miembros de la poblacin. No pasa nada si se emparejan dos descendiente de los mismos padres; ello garantiza la perpetuacin de un individuo con buena puntuacin (y, adems, algo parecido ocurre en la realidad; es una prctica utilizada, por ejemplo, en la cra de ganado, llamada inbreeding, y destinada a potenciar ciertas caractersticas frente a otras). Sin embargo, si esto sucede demasiado a menudo, puede crear problemas: toda la poblacin puede aparecer dominada por los descendientes de algn gen, que, adems, puede tener caracteres no deseados. Esto se suele denominar en otros mtodos de optimizacin atranque en un mnimo local, y es uno de los principales problemas con los que se enfrentan los que aplican algoritmos genticos. En cuanto al teorema de los esquemas, se basa en la nocin de bloques de construccin. Una buena solucin a un problema est constituida por unos buenos bloques, igual que una buena mquina est hecha por buenas piezas. El crossover es el encargado de mezclar bloques buenos que se encuentren en los diversos progenitores, y que sern los que den a los mismos una buena puntuacin. La presin selectiva se encarga de que slo los buenos bloques se perpeten, y poco a poco vayan formando una buena solucin. El teorema de los esquemas viene a decir que la cantidad de buenos bloques se va incrementando con el tiempo de ejecucin de un algoritmo gentico, y es el resultado terico ms importante en algoritmos genticos. El intercambio gentico se puede llevar a cabo de muchas formas, pero hay dos grupos principales Algoritmos Genticos Pg. 22 nteligencia Artificial C"ossoBe" +J?u+tos: Los dos cromosomas se cortan por n puntos, y el material gentico situado entre ellos se intercambia. Lo ms habitual es un crossover de un punto o de dos puntos. Padre ( ( ( 4 ( 4 ( 4 ( 4 ( 4 ( 4 Madre 4 ( 4 4 4 ( ( 4 4 4 ( 4 4 4 Hijo ( ( ( 4 ( ( ( 4 4 4 ( 4 ( 4 C"ossoBe" u+i@o"me: Se genera un patrn aleatorio de 1s y 0s, y se intercambian los bits de los dos cromosomas que coincidan donde hay un 1 en el patrn. O bien se genera un nmero aleatorio para cada bit, y si supera una determinada probabilidad se intercambia ese bit entre los dos cromosomas. Padre ( ( ( 4 ( 4 ( 4 ( 4 ( 4 ( 4 Madre 4 ( 4 4 4 ( ( 4 4 4 ( 4 4 4 Hijo ( ( 4 4 ( ( ( 4 4 4 ( 4 4 4 C"ossoBe" es?e!ia8iKa$os: En algunos problemas, aplicar aleatoriamente el crossover da lugar a cromosomas que codifican soluciones invlidas; en este caso hay que aplicar el crossover de forma que genere siempre soluciones vlidas. Un ejemplo de estos son los operadores de crossover usados en el problema del viajante. MUTACI,N En la evolucin, una mutacin es un suceso bastante poco comn (sucede aproximadamente una de cada mil replicaciones), como ya se ha Algoritmos Genticos Pg. 23 nteligencia Artificial visto anteriormente. En la mayora de los casos las mutaciones son letales, pero en promedio, contribuyen a la diversidad gentica de la especie. En un algoritmo gentico tendrn el mismo papel, y la misma frecuencia (es decir, muy baja). Una vez establecida la frecuencia de mutacin, por ejemplo, uno por mil, se examina cada bit de cada cadena cuando se vaya a crear la nueva criatura a partir de sus padres (normalmente se hace de forma simultnea al crossover). Si un nmero generado aleatoriamente est por debajo de esa probabilidad, se cambiar el bit (es decir, de 0 a 1 o de 1 a 0). Si no, se dejar como est. Dependiendo del nmero de individuos que haya y del nmero de bits por individuo, puede resultar que las mutaciones sean extremadamente raras en una sola generacin. No hace falta decir que no conviene abusar de la mutacin. Es cierto que es un mecanismo generador de diversidad, y, por tanto, la solucin cuando un algoritmo gentico est estancado, pero tambin es cierto que reduce el algoritmo gentico a una bsqueda aleatoria. Siempre es ms conveniente usar otros mecanismos de generacin de diversidad, como aumentar el tamao de la poblacin, o garantizar la aleatoriedad de la poblacin inicial. Este operador, junto con la anterior y el mtodo de seleccin de ruleta, constituyen un algoritmo gentico simple, sga, introducido por Goldberg en su libro. OTROS OPERADORES No se usan en todos los problemas, sino slo en algunos, y en principio su variedad es infinita. Generalmente son operadores que exploran el espacio de soluciones de una forma ms ordenada, y que actan ms en las ltimas fases de la bsqueda, en la cul se pasa de soluciones "casi buenas" a "buenas" soluciones. C"omosomas $e 8o+9itu$ Ba"ia:8e Hasta ahora se han descrito cromosomas de longitud fija, donde se conoce de antemano el nmero de parmetros de un problema. Pero hay problemas en los que esto no sucede. Por ejemplo, en un problema de clasificacin, donde dado un vector de entrada, queremos agruparlo en una serie de clases, podemos no saber siquiera cuntas clases hay. O en diseo de redes neuronales, puede que no se sepa (de hecho, nunca se sabe) cuntas neuronas se van a necesitar. Por ejemplo, en un perceptrn hay reglas que dicen cuantas neuronas se deben de utilizar en la capa oculta; pero en un problema determinado puede que no haya ninguna regla heurstica aplicable; tendremos que utilizar los algoritmos genticos para hallar el nmero ptimo de neuronas. Algoritmos Genticos Pg. 24 nteligencia Artificial En estos casos, necesitamos dos operadores ms: aadir y eliminar. Estos operadores se utilizan para aadir un gen, o eliminar un gen del cromosoma. La forma ms habitual de aadir un locus es duplicar uno ya existente, el cul sufre mutacin y se aade al lado del anterior. En este caso, los operadores del algoritmo gentico simple (seleccin, mutacin, crossover) funcionarn de la forma habitual, salvo, claro est, que slo se har crossover en la zona del cromosoma de menor longitud. O?e"a$o"es $e +i!ho Ge!o8>9i!oI Otros operadores importantes son los operadores de nicho. Estos operadores estn encaminados a mantener la diversidad gentica de la poblacin, de forma que cromosomas similares sustituyan slo a cromosomas similares, y son especialmente tiles en problemas con muchas soluciones; un algoritmo gentico con estos operadores es capaz de hallar todos los mximos, dedicndose cada especie a un mximo. Ms que operadores genticos, son formas de enfocar la seleccin y la evaluacin de la poblacin. Uno de las formas de llevar esto a cabo ya ha sido nombrada, la introduccin del crowding (apiamiento). Otra forma es introducir una funcin de comparticin o sharing, que indica cun similar es un cromosoma al resto de la poblacin. La puntuacin de cada individuo se dividir por esta funcin de comparticin, de forma que se facilita la diversidad gentica y la aparicin de individuos diferentes. Tambin se pueden restringir los emparejamientos, por ejemplo, a aquellos cromosomas que sean similares. Para evitar las malas consecuencias del inbreeding (destinado a potenciar ciertas caractersticas frente a otras) que suele aparecer en poblaciones pequeas, estos periodos se intercalan con otros periodos en los cules el emparejamiento es libre. O?e"a$o"es es?e!ia8iKa$os En una serie de problemas hay que restringir las nuevas soluciones generadas por los operadores genticos, pues no todas las soluciones generadas van a ser vlidas, sobre todo en los problemas con restricciones. Por ello, se aplican operadores que mantengan la estructura del problema. Otros operadores son simplemente generadores de diversidad, pero la generan de una forma determinada: Zap: En vez de cambiar un solo bit de un cromosoma, cambia un gen completo de un cromosoma. Creep: Este operador aumenta o disminuye en 1 el valor de un gen; sirve para cambiar suavemente y de forma controlada los valores de los genes. Algoritmos Genticos Pg. 25 nteligencia Artificial Transposicin: Similar al crossover y a la recombinacin gentica, pero dentro de un solo cromosoma; dos genes intercambian sus valores, sin afectar al resto del cromosoma. Similar a este es el operador de eliminacin-reinsercin, en el que un gen cambia de posicin con respecto a los dems. APLICANDO OPERADORES GEN/TICOS En toda ejecucin de un algoritmo gentico hay que decidir con qu frecuencia se va a aplicar cada uno de los algoritmos genticos; en algunos casos, como en la mutacin o el crossover uniforme, se debe de aadir algn parmetro adicional, que indique con qu frecuencia se va a aplicar dentro de cada gen del cromosoma. La frecuencia de aplicacin de cada operador estar en funcin del problema; teniendo en cuenta los efectos de cada operador, tendr que aplicarse con cierta frecuencia o no. Generalmente, la mutacin y otros operadores que generen diversidad se suele aplicar con poca frecuencia; la recombinacin se suele aplicar con frecuencia alta. En general, la frecuencia de los operadores no vara durante la ejecucin del algoritmo, pero hay que tener en cuenta que cada operador es ms efectivo en un momento de la ejecucin. Por ejemplo, al principio, en la fase denominada de exploracin, los ms eficaces son la mutacin y la recombinacin; posteriormente, cuando la poblacin ha convergido en parte, la recombinacin no es til, pues se est trabajando con individuos bastante similares, y es poca la informacin que se intercambia. Sin embargo, si se produce un estancamiento, la mutacin tampoco es til, pues est reduciendo el algoritmo gentico a una bsqueda aleatoria; y hay que aplicar otros operadores. En todo caso, se pueden usar operadores especializados. Por ejemplo, en el algoritmo gentico para jugar al MasterMind, se usan varios operadores genticos: transposicin, mutacin y entrecruzamiento. Sin embargo, la mutacin y el crossover dejan de ser efectivos en el momento que la combinacin que se ha jugado tiene los colores correctos, y en cualquier caso la tasa de mutacin tendr que ser mayor cuantos menos colores haya averiguados; por eso las tasas varan durante la ejecucin, convirtindose eventualmente en 0. EJEMPLO SIMPLE DE ALGORITMOS GENTICO: Supongamos que hemos de calcular el mximo de una funcin f(x) en un intervalo [a,b]. Pues bien, sencillo, derivamos e igualamos a cero, no?. Pues no. Se me olvidaba decir que no conocemos f(x), aunque s podemos calcular o estimar su valor en cualquier punto. Algoritmos Genticos Pg. 26 nteligencia Artificial He aqu los pasos a seguir: Estimamos con qu resolucin queremos trabajar. Es decir, elegimos el nmero de puntos que vamos a examinar dentro de ese intervalo. Si, por ejemplo, el intervalo es el [0,100] y ponemos una resolucin de 0.5, pues tendremos 200 puntos en el intervalo. Generamos una poblacin inicial de n individuos; que sern -no poda ser menos- n nmeros (elegidos al azar). Es decir, ya tenemos x1, x2, ... ,x n . Todos ellos, entre a y b, los lmites de nuestro intervalo. Ahora hemos de dar mayor capacidad de reproduccin a los mejor dotados. Si estamos buscando el mximo, pues el mejor dotado ser aquel cuyo valor de f(x i ) sea mayor. Hasta aqu, todo de lo ms normal. Pues de los n individuos que tenemos, vamos a crear una poblacin intermedia, que ser los que se van a recombinar. Calculamos la frecuencia de cada uno de los n genotipos en la primera poblacin. Bueno, tenemos que calcular esas probabilidades: p(xi) = f(xi)/suma_total. Les he llamado probabilidades, aunque en realidad son frecuencias, por aquello de no confundir la notacin. Siguiendo con esta tnica, definimos P(xi) como la funcin de distribucin: P(xj) es la suma, desde cero hasta j, de los p(xi). Creo que es necesario un breve ejemplo para aclarar las cosas (aunque tambin est el mail). Supongamos que nuestra n sea igual a 4, y que, por ejemplo, tenemos: f(x0)=10 f(x1)=40 f(x2)=30 f(x3)=20 Por lo tanto, p(x0)=0.1 p(x1)=0.4 p(x2)=0.3 p(x3)=0.2 y tambin P(x0)=0.1 P(x1)=0.5 P(x2)=0.8 P(x3)=1.0 Esta claro que los p(xi) suman 1. A continuacin generamos n nmeros aleatorios entre 0 y 1. Cada uno de esos nmeros -por ejemplo, t- estar relacionado con un individuo de nuestra Algoritmos Genticos Pg. 27 nteligencia Artificial generacin intermedia; de la siguiente forma: si t est entre P(xi) y P(xi+1 ) escogemos xi+1 ) Seguimos con el ejemplo: Si nuestros cuatro nmeros aleatorios son 0.359, 0.188, 0.654 y 0.399, entonces nuestra generacin intermedia ser: NLme"o a8eato"io I+$iBi$uo se8e!!io+a$o NueBo Ba8o" 0.1<0.359<0.5 x1 x0 0.1<0.188<0.5 x1 x1 0.5<0.654<0.8 x2 x2 0.1<0.399<0.5 x1 x3 Como se ve, est claro que, pese al azar el individuo mejor dotado es el ms favorecido. El siguiente paso es la recombinacin. Se puede hacer de la forma que nos parezca ms adecuada. En primer lugar hay que buscar las parejas. Se trata de obtener una nueva generacin como mezcla de esta con la que estamos trabajando. Una vez que tenemos las parejas, hemos de hacer la recombinacin. Una alternativa: media aritmtica;(1) otra: media geomtrica (2). Otra, la ms usada: cortar los dos nmeros "paps" por un lugar al azar (3) y conseguir los "hijos" intercambiando partes. Por si este ltimo punto no ha quedado demasiado claro, digamos que, si los individuos son 456 y 123, elegimos al azar un nmero entre 1 y 2 (ya que hay tres cifras). Si, por ejemplo, nos sale el 1, pues un posible hijo podra ser el 4-23 y otro 1-56. Aunque hay que decir que lo ms habitual es trabajar en base 2 (al menos, los nmeros sern ms largos). En este momento ya tenemos una nueva generacin. Generalmente, mejor dotada que la inicial. Lo que se hace ahora es volver al tercer punto (clculo de una poblacin intermedia). Por supuesto, el algoritmo se para cuando queramos. Por ejemplo, cuando llevemos un nmero de iteraciones determinado, o cuando la poblacin no mejore demasiado. Una variante posible es permitir la existencia de mutaciones (por ejemplo, introducir cada cierto nmero de generaciones alguna variacin en una cifra en busca de mejores soluciones. Esto es interesante debido a que, por ejemplo, si estamos dando vueltas en torno a un mximo local, la variacin introducida podra llevarnos hacia un genotipo mejor dotado. Otra variante es la elitista, consistente en que los mejores genotipos no se recombinen, sino que pasen directamente -tal cual- a la siguiente generacin. Ejempo compe!o "e #n a$ori!mo $en%!ico La finalidad de este ejemplo es construir un planeador de rutas, capaz de encontrar la ruta ms corta a la salida ms cercana, para cada una de las "n personas que se encuentran en un cuarto. Algoritmos Genticos Pg. 28 nteligencia Artificial Este cuarto contiene obstculos estticos y varias salidas. La ruta encontrada para la persona "x no debe llevarla a chocar con algn obstculo ni con otra persona que a su vez se est moviendo en el cuarto.
La interfase del programa tiene la siguiente simbologa: Cubos de colores y mas pequeos: Personas Cubos azules: Obstculos Cuadros rojos: Salidas Los pasos de un algoritmo gentico son los siguientes: 4%J INICIALIZACI,N: En este primer paso se crea aleatoriamente un conjunto de individuos (que estn sobre el espacio S). nicialmente tenemos 20 individuos. Los individuos se representan como un vector, cuyos valores van del 0-7, y que significan lo siguiente: 0 -> Camina un paso a la izquierda 1 -> Camina un paso a la derecha 2 -> Camina un paso adelante 3 -> Camina un paso atrs 4 -> Camina en diagonal izquierda hacia arriba 5 -> Camina en diagonal izquierda hacia abajo 6 -> Camina en diagonal derecha hacia abajo 7 -> Camina en diagonal derecha hacia arriba 8 -> Qudate en tu lugar Algoritmos Genticos Pg. 29 nteligencia Artificial stos seran dos ejemplos de individuos: 4I 2 - 1 - 2 - 0 - 7 - 4 - 3 - 6 - 3 - 3 - 3 - 0 - 5 - 0 - 3 - 3 - 3 - 1 - 1 - 1 - 3 - 5 - 1 - 4 - 7 - 4 - 3 - 1 - 6 - 1 - 2 - 'I 0 - 4 - 1 - 7 - 5 - 3 - 1 - 1 - 3 - 3 - 3 - 7 - 5 - 1 - 2 - 5 - 6 - 4 - Despus el algoritmo itera en los siguientes pasos hasta que se cumpla alguna condicin. En este caso dicha condicin es que evolucionen 6 generaciones. '%J E#ALUACI,N: La Funcin F es computada para cada individuo, ordenando la poblacin del mejor individuo al peor. En el ejemplo, la funcin a optimizar es la longitud de los individuos. Es decir deseamos obtener un individuo con longitud mnima. Por ello, se ordenan en base a su longitud y en orden ascendente. 7%J SELECCI,N: Se selecciona con la regla de seleccin - explicada a continuacin - una pareja de individuos. La regla utilizada es roulette wheel selection, que elige en base a probabilidad proporcional a su calificacin: 1.- Se genera un nmero aleatorio r E [0,1]. 2.- Se multiplica r por la suma de las calificaciones de la poblacin (S), obtenindose c = rS. 3.- Se establece la calificacin acumulada (Ca) y el ndice en cero: Ca = 0, i=0 4.- A la calificacin acumulada se le suma la calificacin del i-simo individuo: Ca = Ca + calif(i) 5.- Si Ca > c entonces el i-esimo individuo es seleccionado. 6.- Si no, entonces se incrementa i y se regresa al paso 4. Esta seleccin es con reemplazo, es decir, un mismo individuo puede ser seleccionado varias veces. As que cada vez que se selecciona un individuo no se quita de la poblacin de la que se est seleccionando, permanece en ella para que pueda ser elegido nuevamente. Algoritmos Genticos Pg. 30 nteligencia Artificial 6%J REPRODUCCI,N: Se generan nuevos individuos a partir de la pareja seleccionada en el paso 3. El algoritmo de reproduccin que se ha utilizado es el siguiente: Una vez seleccionados 2 individuos p1 y p2 (llamados padres) se procede a cruzarlos. Generamos un nmero aleatorio entre 1 y (longitud de p1)/2, llamado n1. Generamos un nmero aleatorio entre (longitud de p2)/2 y longitud de p2, llamado n2. Calculamos la posicin en la que se encuentra p1 al dar n1 pasos, y la llamamos pasosp1. Calculamos la posicin en la que se encuentra p2 al dar (longitud de p2)/2 pasos, y la llamamos pasosp2. Generamos un camino aleatorio de pasosp1 a pasosp2, llamado camino_intermedio. Este camino aleatorio verifica que no choque con ningn obstculo predefinido (esttico). Copiamos los primeros n1 pasos de p1 en el nuevo individuo ni1. Copiamos camino_intermedio a ni1. Copiamos los pasos de p2 de n2 a longitud p2. Y de la misma manera generamos el segundo nuevo individuo, slo que ahora tomamos el inicio de p2 y el final de p1. Esta cruza nos garantiza que obtengamos individuos vlidos, es decir que nos van a dar un camino que inicie en la posicin original de la persona y finalice en alguna salida. Y que adems no choque con ningn obstculo. Despus de repetir 6 veces los pasos del 2 al 4, se obtiene una poblacin final. El algoritmo adems de estos pasos, incorpora un quinto paso al que llamamos entrenamiento. -%J ENTRENAMIENTO: Repite los pasos del 1 al 4 n veces. El primer algoritmo gentico coloca en la poblacin inicial del segundo algoritmo gentico, a su mejor individuo (lo coloca 2 veces, para asegurarse de que va a preservarse en las siguientes generaciones), el segundo hace lo mismo con el tercero, y as sucesivamente hasta n. Algoritmos Genticos Pg. 31 nteligencia Artificial Los algoritmos genticos tienen una caracterstica peculiar, que es que cada vez que se ejecuta nos da (muy probablemente) respuestas diferentes, y esto es porque la poblacin inicial se genera aleatoriamente. Estos entrenamientos nos permiten tomar el mejor individuo evolucionado del algoritmo gentico anterior, y a su vez generar nuevos individuos. Esto es conocido tambin como elitismo. Con esto generamos n veces poblaciones aleatorias y (n-1) veces la poblacin inicial al menos tiene un buen individuo. Este nuevo individuo al cruzarlo con algn otro buen individuo generado aleatoriamente puede ser que nos d uno an mejor. Parmetros que deben ser especificados en el programa: N de generaciones: cantidad de veces que se produce una nueva generacin de individuos, utilizando las reglas anteriormente explicadas. Por lgica, cuantas ms generaciones produzcamos, obtendremos mejores individuos. N de individuos por generacin: en este ejemplo, la cantidad de individuos de una generacin a otra es constante, no vara. N de entrenamientos: cantidad de veces que se lleva a cabo un entrenamiento entre diferentes generaciones de individuos. ALGUNOS EJEMPLOS ESPEC*FICOS DE AG Mientras el poder de la evolucin gana reconocimiento cada vez ms generalizado, los algoritmos genticos se utilizan para abordar una amplia variedad de problemas en un conjunto de campos sumamente diverso, demostrando claramente su capacidad y su potencial. Esta seccin analizar algunos de los usos ms notables en los que han tomado parte. AC&STICA Utilizaron algoritmos genticos para disear una sala de conciertos con propiedades acsticas ptimas, maximizando la calidad del sonido para la Algoritmos Genticos Pg. 32 nteligencia Artificial audiencia, para el director y para los msicos del escenario. Esta tarea implica la optimizacin simultnea de mltiples variables. Comenzando con una sala con forma de caja de zapatos, el AG de los autores produjo dos soluciones no dominadas, ambas descritas como ``con forma de hoja''. Los autores afirman que estas soluciones tienen proporciones similares al Grosser Musikvereinsaal de Viena, el cual est considerado generalmente como una de las mejores -si no la mejor- salas de conciertos del mundo, en trminos de propiedades acsticas. INGENIER'A AEROESPACIAL Utilizaron un algoritmo gentico de mltiples objetivos para disear la forma del ala de un avin supersnico. Hay tres consideraciones principales que determinan la configuracin del ala -minimizar la resistencia aerodinmica a velocidades de vuelo supersnicas, minimizar la resistencia a velocidades subsnicas y minimizar la carga aerodinmica (la fuerza que tiende a doblar el ala). Estos objetivos son mutuamente exclusivos, y optimizarlos todos simultneamente requiere realizar contrapartidas. ASTRONOM'A ( ASTRO)'SICA Charbonneau sugiere la utilidad de los AGs para problemas de astrofsica, aplicndolos a tres problemas de ejemplo: obtener la curva de rotacin de una galaxia basndose en las velocidades rotacionales observadas de sus componentes, determinar el periodo de pulsacin de una estrella variable basndose en series de datos temporales, y sacar los valores de los parmetros crticos de un modelo magnetohidrodinmico del viento solar. Son tres difciles problemas no lineales y multidimensionales. El algoritmo gentico de Charbonneau, PKAA, utiliza seleccin generacional y proporcional a la aptitud, junto con elitismo, para asegurar que el mejor individuo se copia una vez hacia la siguiente generacin sin ninguna modificacin. PKAA tiene un ritmo de cruzamiento de 0,65 y un ritmo de mutacin variable que se pone a 0,003 inicialmente y luego aumenta gradualmente, mientras la poblacin se aproxima a la convergencia, para mantener la variabilidad en el acervo gentico. Basndose en los resultados obtenidos hasta ahora, Charbonneau sugiere que los AGs pueden y deben encontrar uso en otros problemas difciles de astrofsica, en particular, problemas inversos como las imgenes por Doppler y las inversiones heliossmicas. Para terminar, Charbonneau sostiene que los AGs son un ``contendiente poderoso y prometedor'' (p. 324) en este campo, del que se puede esperar que complemente (no sustituya) a las tcnicas tradicionales de optimizacin, y concluye que ``el punto decisivo, si es que tiene que haber alguno, es que los algoritmos genticos funcionan, y a menudo colosalmente bien'' (p. 325). *+'MICA Un pulso lser ultracorto de alta energa puede romper molculas complejas en molculas ms sencillas, un proceso con aplicaciones importantes en la qumica orgnica y la microelectrnica. Los productos especficos de una reaccin as pueden controlarse modulando la fase del pulso lser. Sin embargo, para Algoritmos Genticos Pg. 33 nteligencia Artificial molculas grandes, obtener la forma del pulso deseado de manera analtica es demasiado difcil: los clculos son demasiado complejos y las caractersticas relevantes (las superficies de energa potencial de las molculas) no se conocen con suficiente precisin. INGENIER'A ELCTRICA Una matriz de puertas programable en campo (Field Programmable Gate Array, o FPGA), es un tipo especial de placa de circuito con una matriz de celdas lgicas, cada una de las cuales puede actuar como cualquier tipo de puerta lgica, interconectado con conexiones flexibles que pueden conectar celdas. Estas dos funciones se controlan por software, as que simplemente cargando un programa especial en la placa, puede alterarse al vuelo para realizar las funciones de cualquier dispositivo de hardware de la amplia variedad existente. Su objetivo se alcanz en 3.000 generaciones, pero el xito fue mayor de lo que haba anticipado. El sistema que evolucion utilizaba muchas menos celdas que cualquier cosa que pudiera haber diseado un ingeniero humano, y ni siquiera necesita del componente ms crtico de los sistemas diseados por humanos -un reloj. Cmo funcionaba? Thompson no tiene ni idea, aunque ha rastreado la seal de entrada a travs de un complejo sistema de bucles realimentados del circuito evolucionado. De hecho, de las 37 puertas lgicas que utiliza el producto final, cinco de ellas ni siquiera estn conectadas al resto del circuito de ninguna manera -pero si se les retira la alimentacin elctrica, el circuito deja de funcionar. Parece que la evolucin ha explotado algn sutil efecto electromagntico de estas celdas para alcanzar su solucin, pero el funcionamiento exacto de la compleja e intrincada estructura evolucionada sigue siendo un misterio. MERCADOS )INANCIEROS Mahfoud y Mani 1996 utilizaron un algoritmo gentico para predecir el rendimiento futuro de 1.600 acciones ofertadas pblicamente. Concretamente, al AG se le asign la tarea de predecir el beneficio relativo de cada accin, definido como el beneficio de esa accin menos el beneficio medio de las 1.600 acciones a lo largo del periodo de tiempo en cuestin, 12 semanas (un cuarto del calendario) en el futuro. Como entrada, al AG se le proporcionaron datos histricos de cada accin en forma de una lista de 15 atributos, como la relacin precio-beneficio y el ritmo de crecimiento, medidos en varios puntos del tiempo pasado; se le pidi al AG que evolucionara un conjunto de reglas si/entonces para clasificar cada accin y proporcionar, como salida, una recomendacin sobre qu hacer con respecto a la accin (comprar, vender o ninguna prediccin) y un pronstico numrico del beneficio relativo. Los resultados del AG fueron comparados con los de un sistema establecido, basado en una red neuronal, que los autores haban estado utilizando para pronosticar los precios de las acciones y administrar las carteras de valores durante tres aos. Por supuesto, el mercado de valores es un sistema extremadamente ruidoso y no lineal, y ningn mecanismo predictivo puede ser correcto el 100% del tiempo; el reto consiste en encontrar un predictor que sea preciso ms de la mitad de las veces. En el experimento, el AG y la red neuronal hicieron pronsticos al final de la semana para cada una de las 1.600 acciones, durante doce semanas consecutivas. Doce semanas despus de cada prediccin, se compar el Algoritmos Genticos Pg. 34 nteligencia Artificial rendimiento verdadero con el beneficio relativo predicho. Globalmente, el AG super significativamente a la red neuronal: en una ejecucin de prueba, el AG predijo correctamente la direccin de una accin el 47,6% de las veces, no hizo prediccin el 45,8% de las veces y realiz una prediccin incorrecta slo un 6.6% de las veces, una precisin predictiva total de un 87,8%. Aunque la red neuronal realiz predicciones precisas ms a menudo, tambin hizo predicciones errneas ms a menudo (de hecho, los autores especulan que la mayor capacidad del AG para no realizar predicciones cuando los datos eran dudosos fue un factor de su xito; la red neuronal siempre produce una prediccin a menos que sea restringida explcitamente por el programador). En el experimento de las 1.600 acciones, el AG produjo un beneficio relativo de un +5,47%, contra el +4,40% de la red neuronal -una diferencia estadsticamente significativa. De hecho, el AG tambin super significativamente a tres ndices burstiles importantes -el S&P 500, el S&P 400 y el Russell 2000- en este periodo; la casualidad fue excluda como causa de este resultado con un margen de confianza de un 95%. Los autores atribuyen este convincente xito a la capacidad del algoritmo gentico de percatarse de relaciones no lineales difcilmente evidentes para los observadores humanos, adems del hecho de que carece del ``prejuicio contra las reglas antiintuitivas y contradictorias'' (p. 562) de los expertos humanos. Andreou, Georgopoulos y Likothanassis 2002 lograron un xito similar utilizando algoritmos genticos hbridos para evolucionar redes neuronales que predijeran los tipos de cambio de monedas extranjeras hasta un mes en el futuro. Al contrario que en el ejemplo anterior, donde competan AGs y redes neuronales, aqu los dos trabajaron conjuntamente: el AG evolucion la arquitectura (nmero de unidades de entrada, nmero de unidades ocultas y la estructura de enlaces entre ellas) de la red, que luego era entrenada por un algoritmo de filtro. La utilizacin de los AGs en los mercados financieros ha empezado a extenderse en las empresas de corretaje burstil del mundo real. Naik 1996 informa de que LBS Capital Management, una empresa estadounidense con sede en Florida, utiliza algoritmos genticos para escoger las acciones de los fondos de pensiones que administra. Coale 1997 y Begley y Beals 1995 informan de que First Quadrant, una empresa de inversiones de Californa que mueve ms de 2.200 millones de dlares, utiliza AGs para tomar decisiones de inversin en todos sus servicios financieros. Su modelo evolucionado gana, de media, 225 dlares por cada 100 dlares invertidos durante seis aos, en contraste con los 205 dlares de otros tipos de sistemas de modelos. J+EGOS Una de las demostraciones ms novedosas y persuasivas de la potencia de los algoritmos genticos la presentaron Chellapilla y Fogel 2001, que utilizaron un AG para evolucionar redes neuronales que pudieran jugar a las damas. Los autores afirman que una de las mayores dificultades en este tipo de problemas relacionados con estrategias es el problema de la asignacin de crdito -en otras palabras, cmo escribir una funcin de aptitud? Se ha credo ampliamente que los criterios simples de ganar, perder o empatar no proporcionan la suficiente informacin para que un algoritmo gentico averige qu constituye el buen juego. Algoritmos Genticos Pg. 35 nteligencia Artificial GEO)'SICA Sambridge y Gallaguer 1993 utilizaron un algoritmo gentico para los hipocentros de los terremotos basndose en datos sismolgicos. (El hipocentro es el punto bajo la superficie terrestre en el que se origina un terremoto. El epicentro es el punto de la superficie directamente encima del hipocentro). Esto es una tarea sumamente compleja, ya que las propiedades de las ondas ssmicas dependen de las propiedades de las capas de roca a travs de las que viajan. El mtodo tradicional para localizar el hipocentro se basa en lo que se conoce como algoritmo de inversin ssmico, que empieza con la mejor estimacin de la ubicacin, calcula las derivadas del tiempo de viaje de la onda con respecto al punto de origen, y realiza una operacin de matriz para proporcionar una ubicacin actualizada. Sin embargo, este mtodo requiere informacin diferencial y es propenso a quedar atrapado en ptimos locales. INGENIER'A DE MATERIALES Giro, Cyrillo y Galvo 2002 utilizaron algoritmos genticos para disear polmeros conductores de electricidad basados en el carbono, conocidos como polianilinas. Estos polmeros, un tipo de material sinttico inventado recientemente, tienen ``grandes aplicaciones tecnolgicas potenciales'' y podran abrir la puerta a ``nuevos fenmenos fsicos fundamentales''. Sin embargo, debido a su alta reactividad, los tomos de carbono pueden formar un nmero virtualmente infinito de estructuras, haciendo que la bsqueda de nuevas molculas con propiedades interesantes sea del todo imposible. En este artculo, los autores aplican un enfoque basado en AGs a la tarea de disear molculas nuevas con propiedades especificadas a priori, comenzando con una poblacin de candidatos iniciales generada aleatoriamente. Concluyen que su metodologa puede ser una ``herramienta muy efectiva'' (p. 174) para guiar a los investigadores en la bsqueda de nuevos compuestos y es lo suficientemente general para que pueda extenderse al diseo de nuevos materiales que pertenezcan virtualmente a cualquier tipo de molcula. MATEM,TICAS ( ALGORITMIA Aunque algunas de las aplicaciones ms prometedoras y las demostraciones ms convincentes de la potencia de los AGs se encuentran en el campo de la ingeniera de diseo, tambin son relevantes en problemas ``puramente'' matemticos. Haupt y Haupt 1998, describen el uso de AGs para resolver ecuaciones de derivadas parciales no lineales de alto orden, normalmente encontrando los valores para los que las ecuaciones se hacen cero, y dan como ejemplo una solucin casi perfecta para los coeficientes de la ecuacin de quinto orden conocido como Super Korteweg-de Vries. -IOLOG'A MOLEC+LAR En los seres vivos, las protenas transmembrana son protenas que sobresalen de una membrana celular. Las protenas transmembrana realizan a menudo funciones importantes como detectar la presencia de ciertas sustancias en el exterior de la clula o transportarlas hacia el interior de la clula. Para comprender el comportamiento de una protena transmembrana es necesario identificar el segmento de la protena que realmente est insertado en la Algoritmos Genticos Pg. 36 nteligencia Artificial membrana, lo que se conoce como dominio transmembrana. Durante las dos ltimas dcadas, los bilogos moleculares han publicado una serie de algoritmos cada vez ms precisos para este propsito. RECONOCIMIENTO DE PATRONES ( E.PLOTACI/N DE DATOS La competicin en la industria actual de las telecomunicaciones es feroz, y se ha acuado un nuevo trmino -``fuga'' para describir la velocidad a la que los usuarios se cambian de un proveedor de servicios a otro. La fuga le cuesta a las compaas de telecomunicaciones una gran cantidad de dinero cada ao, y reducir las fugas es un factor importante para aumentar la rentabilidad. Si las compaas pueden contactar con los clientes que tienen probabilidad de cambiar y ofrecerles incentivos especiales para que se queden, puede reducirse la tasa de fugas; pero ninguna compaa tiene los recursos para contactar a ms de un pequeo porcentaje de sus clientes. El problema es, por tanto, cmo identificar a los clientes que ms piensen fugarse con mayor probabilidad. Todas las compaas tienen grandes bases de datos con informacin de los clientes que tericamente puede utilizarse para este propsito; pero qu mtodo funciona mejor para examinar esta enorme cantidad de datos e identificar los sutiles patrones y tendencias que indican la probabilidad de fuga de un cliente? Hughes y Leyland 2000, tambin aplicaron AGs multiobjetivo a la tarea de clasificar objetivos basndose en sus reflexiones radar. Los datos de una seccin transversal radar de alta resolucin necesitan enormes cantidades de espacio de almacenamiento en disco, y producir un modelo realista de la fuente a partir de los datos es muy costoso computacionalmente. En contraste, el mtodo basado en el AG de los autores demostr ser muy exitoso, produciendo un modelo tan bueno como el del mtodo iterativo tradicional, pero reduciendo el gasto computacional y las necesidades de almacenamiento hasta el punto de que era factible generar buenos modelos en un ordenador de escritorio. En contraste, el mtodo iterativo tradicional requiere diez veces ms resolucin y 560.000 veces ms accesos a los datos de imagen para producir modelos de calidad similar. Los autores concluyen que sus resultados ``demuestran claramente'', la capacidad del AG de procesar datos de radar bidimensionales y tridimensionales de cualquier nivel de resolucin con muchos menos clculos que los mtodos tradicionales, manteniendo una precisin aceptablemente alta. RO-/TICA El torneo internacional RoboCup es un proyecto para promocionar el avance de la robtica, la inteligencia artificial y los campos relacionados, proporcionando un problema estndar con el que probar las nuevas tecnologas -concretamente, es un campeonato anual de ftbol entre equipos de robots autnomos. (El objetivo fijado es desarrollar un equipo de robots humanoides que puedan vencer al equipo humano de ftbol que sea campen del mundo en 2050; actualmente, la mayora de los equipos de robots participantes funcionan con ruedas). Los programas que controlan a los miembros del equipo robtico deben exhibir un comportamiento complejo, decidiendo cundo bloquear, cundo tirar, cmo moverse, cundo pasar la pelota a un compaero, cmo coordinar la defensa y el ataque, etctera. En la liga simulada de 1997, David Andre y Astro Teller inscribieron a un equipo llamado Darwin United cuyos programas de control haban sido desarrollados automticamente desde cero mediante programacin Algoritmos Genticos Pg. 37 nteligencia Artificial gentica, un desafo a la creencia convencional de que ``este problema es simplemente demasiado difcil para una tcnica como sa'' (Andre y Teller 1999. Para resolver este difcil problema, Andre y Teller le proporcionaron al programa gentico un conjunto de funciones de control primitivas como girar, moverse, tirar, etctera. (Estas funciones estaban tambin sujetas al cambio y refinamiento durante el curso de la evolucin). Su funcin de aptitud, escrita para que recompensara el buen juego en general en lugar de marcar goles expresamente, proporcionaba una lista de objetivos cada vez ms importantes: acercarse a la pelota, golpear la pelota, conservar la pelota en el campo contrario, moverse en la direccin correcta, marcar goles y ganar el partido. Debe sealarse que no se suministr ningn cdigo para ensear especficamente al equipo cmo conseguir estos objetivos complejos. Luego los programas evolucionados se evaluaron utilizando un modelo de seleccin jerrquico: en primer lugar, los equipos candidatos se probaron en un campo vaco y, si no marcaban un gol en menos de 30 segundos, se rechazaban. Luego se evaluaron hacindoles jugar contra un equipo estacionario de ``postes pateadores'' que golpeaban la pelota hacia el campo contrario. En tercer lugar, el equipo jugaba un partido contra el equipo ganador de la competicin RoboCup de 1997. Finalmente, los equipos que marcaron al menos un gol contra este equipo jugaron unos contra otros para determinar cul era el mejor. INGENIER'A DE SISTEMAS Benini y Toffolo 2002, aplicaron un algoritmo gentico a la tarea multiobjetivo de disear molinos elicos para generar energa elctrica. Este diseo ``es un procedimiento complejo caracterizado por varias decisiones sobre contrapartidas... El proceso de toma de decisiones es muy difcil y no hay tendencias de diseo bien establecidas''; como resultado, hoy existen varios tipos de turbina distintos y no hay acuerdo sobre cul es la ptima, si alguna lo es. Deben tomarse en cuenta objetivos mutuamente exclusivos como la produccin mxima de energa anual y el coste mnimo de la energa. En este artculo se utiliz un algoritmo evolutivo multiobjetivo para encontrar el mejor conjunto de contrapartidas entre estos objetivos, construyendo palas de molino con una configuracin ptima de caractersticas como la velocidad de la punta de la pala, la razn buje/punta, y la distribucin de cuerda y giro. Al final, al AG consigui encontrar soluciones competitivas con los diseos comerciales, adems de dilucidar ms claramente los mrgenes entre los que se puede aumentar la produccin anual de energa sin producir diseos demasiado caros. Haas, Burnham y Mills 1997, utilizaron un algoritmo gentico multiobjetivo para optimizar la forma, orientacin e intensidad del haz de los emisores de rayos X utilizados en la radioterapia dirigida, para destruir los tumores cancerosos al tiempo que se evita el tejido sano. (Los fotones de rayos X dirigidos hacia un tumor tienden a dispersarse por las estructuras interiores del cuerpo, daando inintencionadamente los rganos internos. El reto consiste en minimizar este efecto mientras se maximiza la dosis de radiacin dirigida hacia el tumor). Utilizando un modelo de aptitud basada en rango, los investigadores comenzaron con la solucin producida por el mtodo convencional, un mtodo de mnimos cuadrados iterativo, y luego utilizaron el AG para modificarlo y mejorarlo. Construyendo un modelo del cuerpo humano y exponindolo al rayo evolucionado por el AG, encontraron un buen acuerdo entre Algoritmos Genticos Pg. 38 nteligencia Artificial las distribuciones de radiacin predichas y reales. Los autores concluyen que sus resultados ``muestran una proteccin [de los rganos sanos] que no poda lograrse utilizando las tcnicas convencionales''. ARGUMENTOS CREACIONISTAS Como era de esperar, la demostracin real del poder de la evolucin que representan los AGs ha resultado sorprendente y descorcentante para los creacionistas, que siempre han afirmado que slo un diseo inteligente, no la variacin aleatoria y la seleccin, puede haber producido la cantidad y complejidad de informacin que contienen los seres vivos. Por tanto, han argumentado que el xito de los algoritmos genticos no nos permite deducir nada sobre la evolucin biolgica. Abordar las crticas de dos antievolucionistas que representan dos puntos de vista distintos: un creacionista de tipo tierra-joven, el Dr. Don Batten, de ``Answers in Genesis'', que ha escrito un artculo titulado ``Algoritmos genticos - demuestran que la evolucin funciona?'', y un creacionista de tipo tierra-vieja y defensor del diseo inteligente, el Dr. William Dembski, cuyo reciente libro ``No Free Lunch'' (Dembski 2002) trata sobre este tema. CONCLUSI,N Hasta los creacionistas encuentran imposible negar que la combinacin de la mutacin y la seleccin natural puede producir adaptacin. No obstante, todava siguen intentando justificar su rechazo a la evolucin dividiendo el proceso evolutivo en dos categoras "microevolucin' y "macroevolucin' y afirmando que slo la segunda es controvertida, y que cualquier cambio evolutivo que podemos observar es slo un ejemplo de la primera. La microevolucin y la macroevolucin son trminos que tienen significado para los bilogos; se definen, respectivamente, como evolucin por debajo del nivel de especies y evolucin al nivel de especies o por encima. Pero la diferencia crucial entre el modo en el que los creacionistas utilizan estos trminos y el modo en el que lo hacen los cientficos es que los cientficos reconocen que los dos son fundamentalmente el mismo proceso con los mismos mecanismos, tan slo operando a diferentes escalas. Sin embargo, los creacionistas estn obligados a postular algn tipo de brecha infranqueable que los separa, para poder negar que los procesos de cambio y adaptacin que vemos en la actualidad puedan extrapolarse para producir toda la diversidad que vemos en el mundo de los seres vivos. No obstante, los algoritmos genticos hacen que esta idea sea insostenible, al demostrar la naturaleza sin junturas del proceso evolutivo. Consideremos, por ejemplo, un problema que consista en programar un circuito para que discrimine entre un tono de 1 kilohercio y un tono de 10 kilohercios, y responda respectivamente con salidas uniformes de 0 y 5 voltios. Digamos que tenemos una solucin candidata que puede discriminar con precisin entre los dos tonos, Algoritmos Genticos Pg. 39 nteligencia Artificial pero sus salidas no son lo bastante uniformes como se requiere; producen pequeas ondulaciones en lugar del voltaje constante requerido. Supuestamente, de acuerdo con las ideas creacionistas, cambiar este circuito de su estado presente a la solucin perfecta sera ``microevolucin'', un cambio pequeo dentro de las capacidades de la mutacin y la seleccin. Pero, sin duda -argumentara un creacionista-, llegar a este mismo estado final desde una ordenacin inicial completamente aleatoria de componentes sera ``macroevolucin'', y estara ms all del alcance de un proceso evolutivo. Sin embargo, los algoritmos genticos han sido capaces de conseguir ambas cosas: evolucionar el sistema a partir de una ordenacin aleatoria hasta la solucin casi perfecta y finalmente hasta la solucin perfecta y ptima. No surgi ninguna dificultad o brecha insalvable en ningn punto del camino. En ningn momento hizo falta intervencin humana para montar un conjunto de componentes irreduciblemente complejo (a pesar del hecho de que el producto final s contiene tal cosa) o para ``guiar'' al sistema evolutivo a travs de algn pico dificultoso. El circuito evolucion, sin la ayuda de ninguna orientacin inteligente, desde un estado completamente aleatorio y no funcional hasta un estado rigurosamente complejo, eficiente y ptimo. Cmo puede no ser esto una demostracin experimental convincente del poder de la evolucin? Se dice que la evolucin cultural humana ha reemplazado a la biolgica -que nosotros, como especie, hemos llegado a un punto en el que somos capaces de controlar conscientemente nuestra sociedad, nuestro entorno y hasta nuestros genes al nivel suficiente para hacer que el proceso evolutivo sea irrelevante. Se dice que los caprichos culturales de nuestra cambiante sociedad son los que determinan la aptitud hoy en da, en lugar de la marcha enormemente lenta, en comparacin, de la mutacin gentica y la seleccin natural. En cierto sentido, esto puede ser perfectamente cierto. Pero en otro sentido, nada podra estar ms lejos de la verdad. La evolucin es un proceso de resolucin de problemas cuyo poder slo comenzamos a comprender y explotar; a pesar de esto, ya est funcionando por todas partes, moldeando nuestra tecnologa y mejorando nuestras vidas, y, en el futuro, estos usos no harn sino multiplicarse. Sin un conocimiento detallado del proceso evolutivo no habran sido posibles ninguno de los incontables avances que le debemos a los algoritmos genticos. Algoritmos Genticos Pg. 40 nteligencia Artificial 2I2LIOGRAF*A http://www.sav.us.es/formaciononline/asignaturas/asigpid/apartados/textos/recurs os/curvas03 www.dec.fct.unl.pt/UNC/palestras/Ciclo_Palestras_2004/palestras_Rocha/palestr a_optim&fiabil.ppt www.lania.mx/~asanchez/A/GAapuntes/gen50.html www.inf.ufrgs.br/~alvares/NF01048A/AlgoritmosGeneticos2.pdf http://www.sav.us.es/formaciononline/asignaturas/asigpid.htm Algoritmos Genticos Pg. 41