Algoritmos geneticos y computacion evolutiva

28
Algoritmos genéticos y computación evolutiva ROSA ISELA ALEJANDRA JUAREZ MARTINEZ UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE MEDICINA LICENCIATURA MEDICO CIRUJANO BIOQUIMICA Y BIOLOGIA MOLECULAR TERCER SEMESTRE 312 INFLUENCIA DE OTRAS CIENCIAS EN LA MEDICINA MATEMATICAS EN LA MEDICINA

Transcript of Algoritmos geneticos y computacion evolutiva

Algoritmosgenéticos ycomputaciónevolutiva

ROSA ISELA ALEJANDRA JUAREZ MARTINEZ

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICOFACULTAD DE MEDICINA

LICENCIATURA MEDICO CIRUJANOBIOQUIMICA Y BIOLOGIA MOLECULAR

TERCER SEMESTRE312

INFLUENCIA DE OTRAS CIENCIAS EN LA MEDICINAMATEMATICAS EN LA MEDICINA

INVESTIGACION FINAL30 OCTUBRE 2014

Tercer semestre

TABLA DE EVALUACION

Presentación

Contenido

Portada (datos) Índice Resumen Introducción Delimitación Opinión Conclusión Bibliografía No huecos informativos No información innecesaria Referencias Material visual Cuestionario

Ortografía

Puntualidad

Examen oral

RESUMEN

Los creacionistas afirman a menudo que el proceso evolutivo nopuede crear información nueva, o que la evolución no poseebeneficios prácticos. Este artículo refuta esas afirmacionesdescribiendo el crecimiento explosivo y las extensas aplicacionesde los algoritmos genéticos, una técnica de computación basada enlos principios de la evolución biológica.

INTRODUCCIÓN

De vez en cuando, los creacionistas acusan a la evolución de quecarece de utilidad como teoría científica porque no producebeneficios prácticos y no tiene relevancia en la vida diaria. Sinembargo, tan sólo la evidencia de la biología demuestra que estaafirmación es falsa. Hay numerosos fenómenos naturales para losque la evolución nos ofrece un sólido fundamento teórico. Pornombrar uno, el desarrollo observado de la resistencia -a losinsecticidas en las plagas de cultivos, a los antibióticos en lasbacterias, a la quimioterapia en las células cancerosas, y a losfármacos antirretrovirales en virus como el VIH- es unaconsecuencia abierta de las leyes de la mutación y la selección, ycomprender estos principios nos ha ayudado a desarrollarestrategias para enfrentarnos a estos nocivos organismos. Elpostulado evolutivo de la descendencia común ha ayudado aldesarrollo de nuevos medicamentos y técnicas, al proporcionar alos investigadores una buena idea de con qué organismos debenexperimentar para obtener resultados que probablemente seránrelevantes para los seres humanos. Finalmente, el hombre hautilizado con grandes resultados el principio de cría selectivapara crear organismos personalizados, distintos a cualquiera quese pueda encontrar en la naturaleza, para beneficio propio. Elejemplo canónico, por supuesto, es la diversidad de variedades deperros domésticos (razas tan diversas como los bulldogs,chihuahuas y dachshunds han sido producidas a partir de lobos ensólo unos pocos miles de años), pero ejemplos menos conocidosincluyen al maíz cultivado (muy diferente de sus parientessalvajes, que carecen de las familiares ``orejas'' del maízcultivado), a los peces de colores (como los perros, hemos criadovariedades cuyo aspecto es drásticamente distinto al del tiposalvaje), y a las vacas lecheras (con ubres inmensas, muchomayores que las necesarias para alimentar a una cría).

Los críticos pueden argumentar que los creacionistas pueden explicarestas cosas sin recurrir a la evolución. Por ejemplo, a menudo loscreacionistas explican el desarrollo de la resistencia a los agentesantibióticos en las bacterias, o los cambios forjados en los animalesdomésticos por selección artificial, asumiendo que Dios decidió crear alos organismos en grupos fijos, llamados ``tipos'' o baramins. Aunque lamicroevolución natural o la selección artificial dirigida por humanospueden producir diferentes variedades dentro de los ``tipo-perro'',``tipo-vaca'' o ``tipo-bacteria'' (!) creados originalmente, ningunacantidad de tiempo o cambio genético puede transformar un ``tipo'' enotro. Sin embargo, nunca se explica cómo determinan los creacionistas loque es un ``tipo'', o qué mecanismo impide a los seres vivos evolucionarmás allá de sus límites.

Pero en las últimas décadas, el continuo avance de la tecnología modernaha producido algo nuevo. Ahora la evolución está produciendo beneficiosprácticos en un campo muy distinto y, esta vez, los creacionistas nopueden afirmar que su explicación se adapte a los hechos igual de bien.Este campo es la informática, y los beneficios provienen de unaestrategia de programación llamada algoritmos genéticos. Este ensayoexplicará qué son los algoritmos genéticos y mostrará de qué manera sonrelevantes en el debate evolución/creacionismo.

¿QUÉ ES UN ALGORITMO GENÉTICO?

Expuesto concisamente, un algoritmo genético (o AG para abreviar)es una técnica de programación que imita a la evolución biológicacomo estrategia para resolver problemas. Dado un problemaespecífico a resolver, la entrada del AG es un conjunto desoluciones potenciales a ese problema, codificadas de algunamanera, y una métrica llamada función de aptitud que permiteevaluar cuantitativamente a cada candidata. Estas candidataspueden ser soluciones que ya se sabe que funcionan, con elobjetivo de que el AG las mejore, pero se suelen generaraleatoriamente.

Luego el AG evalúa cada candidata de acuerdo con la función deaptitud. En un acervo de candidatas generadas aleatoriamente, porsupuesto, la mayoría no funcionarán en absoluto, y seráneliminadas. Sin embargo, por puro azar, unas pocas pueden serprometedoras -pueden mostrar actividad, aunque sólo sea actividaddébil e imperfecta, hacia la solución del problema.

Estas candidatas prometedoras se conservan y se les permitereproducirse. Se realizan múltiples copias de ellas, pero lascopias no son perfectas; se introducen cambios aleatorios duranteel proceso de copia. Luego, esta descendencia digital prosigue conla siguiente generación, formando un nuevo acervo de solucionescandidatas, y son sometidas a una ronda de evaluación de aptitud.Las candidatas que han empeorado o no han mejorado con los cambiosen su código son eliminadas de nuevo; pero, de nuevo, por puroazar, las variaciones aleatorias introducidas en la poblaciónpueden haber mejorado a algunos individuos, convirtiéndolos enmejores soluciones del problema, más completas o más eficientes.De nuevo, se selecionan y copian estos individuos vencedores haciala siguiente generación con cambios aleatorios, y el proceso serepite. Las expectativas son que la aptitud media de la poblaciónse incrementará en cada ronda y, por tanto, repitiendo esteproceso cientos o miles de rondas, pueden descubrirse solucionesmuy buenas del problema.

Aunque a algunos les puede parecer asombroso y antiintuitivo, losalgoritmos genéticos han demostrado ser una estrategia enormementepoderosa y exitosa para resolver problemas, demostrando de maneraespectacular el poder de los principios evolutivos. Se hanutilizado algoritmos genéticos en una amplia variedad de campospara desarrollar soluciones a problemas tan difíciles o másdifíciles que los abordados por los diseñadores humanos. Además,las soluciones que consiguen son a menudo más eficientes, máselegantes o más complejas que nada que un ingeniero humanoproduciría.

MÉTODOS DE REPRESENTACIÓN

Antes de que un algoritmo genético pueda ponerse a trabajar en unproblema, se necesita un método para codificar las soluciones potencialesdel problema de forma que una computadora pueda procesarlas. Un enfoquecomún es codificar las soluciones como cadenas binarias: secuencias de 1sy 0s, donde el dígito de cada posición representa el valor de algúnaspecto de la solución. Otro método similar consiste en codificar lassoluciones como cadenas de enteros o números decimales, donde cadaposición, de nuevo, representa algún aspecto particular de la solución.Este método permite una mayor precisión y complejidad que el métodocomparativamente restringido de utilizar sólo números binarios, y amenudo ``está intuitivamente más cerca del espacio de problemas''

El AG de Schulze-Kremer utilizaba números reales para representar losfamosos ``ángulos de torsión'' entre los enlaces peptídicos que conectana los aminoácidos. (Una proteína está formada por una secuencia debloques básicos llamados aminoácidos, que se conectan como los eslabonesde una cadena. Una vez que todos los aminoácidos están enlazados, laproteína se dobla formando una compleja estructura tridimensional, basadaen cuáles aminoácidos se atraen entre ellos y cuáles se repelen. La formade una proteína determina su función). Los algoritmos genéticos paraentrenar a las redes neuronales también utilizan a menudo este método decodificación.

Un tercer método consiste en representar a los individuos de un AG comocadenas de letras, donde cada letra, de nuevo, representa un aspectoespecífico de la solución. Un ejemplo de esta técnica es el método basadoen ``codificación gramática'' de Hiroaki Kitano, en el que a un AG se leencargó la tarea de evolucionar un sencillo conjunto de reglas llamadasgramática libre de contexto, que a su vez se utilizaban para generarredes neuronales para una variedad de problemas.

La virtud de estos tres métodos es que facilitan la definición deoperadores que causen los cambios aleatorios en las candidatasseleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valorde un número una cantidad elegida al azar, o cambiar una letra por otra..Otra estrategia, desarrollada principalmente por John Koza, de laUniversidad de Stanford, y denominada programación genética, representa alos programas como estructuras de datos ramificadas llamadas árboles. Eneste método, los cambios aleatorios pueden generarse cambiado el operadoro alterando el valor de un cierto nodo del árbol, o sustituyendo unsubárbol por otro.

Tres sencillos árboles de programa del tipo utilizado normalmente en laprogramación genética. Debajo se proporciona la expresión matemática querepresenta cada uno.

Es importante señalar que los algoritmos evolutivos no necesitanrepresentar las soluciones candidatas como cadenas de datos de unalongitud fija. Algunos las representan de esta manera, pero otros no; porejemplo, la ``codificación gramatical'' de Kitano, explicada arriba,puede escalarse eficientemente para crear redes neuronales grandes ycomplejas, y los árboles de programación genética de Koza pueden crecerarbitrariamente tanto como sea necesario para resolver cualquier problemaque se les pida.

MÉTODOS DE SELECCIÓN

Un algoritmo genético puede utilizar muchas técnicas diferentes paraseleccionar a los individuos que deben copiarse hacia la siguientegeneración, pero abajo se listan algunos de los más comunes. Algunos deestos métodos son mutuamente exclusivos, pero otros pueden utilizarse encombinación, algo que se hace a menudo.

Selección elitista: se garantiza la selección de los miembros másaptos de cada generación. (La mayoría de los AGs no utilizanelitismo puro, sino que usan una forma modificada por la que elindividuo mejor, o algunos de los mejores, son copiados hacia lasiguiente generación en caso de que no surja nada mejor).

Selección proporcional a la aptitud: los individuos más aptostienen más probabilidad de ser seleccionados, pero no la certeza.

Selección por rueda de ruleta: una forma de selección proporcionala la aptitud en la que la probabilidad de que un individuo seaseleccionado es proporcional a la diferencia entre su aptitud y lade sus competidores. (Conceptualmente, esto puede representarsecomo un juego de ruleta -cada individuo obtiene una sección de laruleta, pero los más aptos obtienen secciones mayores que las delos menos aptos. Luego la ruleta se hace girar, y en cada vez seelige al individuo que ``posea'' la sección en la que se pare laruleta).

Selección escalada: al incrementarse la aptitud media de lapoblación, la fuerza de la presión selectiva también aumenta y lafunción de aptitud se hace más discriminadora. Este método puedeser útil para seleccionar más tarde, cuando todos los individuostengan una aptitud relativamente alta y sólo les distingan pequeñasdiferencias en la aptitud.

Selección por torneo: se eligen subgrupos de individuos de lapoblación, y los miembros de cada subgrupo compiten entre ellos.Sólo se elige a un individuo de cada subgrupo para la reproducción.

Selección por rango: a cada individuo de la población se le asignaun rango numérico basado en su aptitud, y la selección se basa eneste ranking, en lugar de las diferencias absolutas en aptitud. Laventaja de este método es que puede evitar que individuos muy aptosganen dominancia al principio a expensas de los menos aptos, lo quereduciría la diversidad genética de la población y podríaobstaculizar la búsqueda de una solución aceptable.

Selección generacional: la descendencia de los individuosseleccionados en cada generación se convierte en toda la siguientegeneración. No se conservan individuos entre las generaciones.

Selección por estado estacionario: la descendencia de losindividuos seleccionados en cada generación vuelven al acervogenético preexistente, reemplazando a algunos de los miembros menosaptos de la siguiente generación. Se conservan algunos individuosentre generaciones.

Selección jerárquica: los individuos atraviesan múltiples rondas deselección en cada generación. Las evaluaciones de los primerosniveles son más rápidas y menos discriminatorias, mientras que losque sobreviven hasta niveles más altos son evaluados másrigurosamente. La ventaja de este método es que reduce el tiempototal de cálculo al utilizar una evaluación más rápida y menosselectiva para eliminar a la mayoría de los individuos que semuestran poco o nada prometedores.

MÉTODOS DE CAMBIO

Una vez que la selección ha elegido a los individuos aptos, éstos debenser alterados aleatoriamente con la esperanza de mejorar su aptitud para

la siguiente generación. Existen dos estrategias básicas para llevar estoa cabo. La primera y más sencilla se llama mutación. Al igual que unamutación en los seres vivos cambia un gen por otro, una mutación en unalgoritmo genético también causa pequeñas alteraciones en puntosconcretos del código de un individuo.

El segundo método se llama cruzamiento, e implica elegir a dos individuospara que intercambien segmentos de su código, produciendo una``descendencia'' artificial cuyos individuos son combinaciones de suspadres. Este proceso pretende simular el proceso análogo de larecombinación que se da en los cromosomas durante la reproducción sexual.Las formas comunes de cruzamiento incluyen al cruzamiento de un punto, enel que se establece un punto de intercambio en un lugar aleatorio delgenoma de los dos individuos, y uno de los individuos contribuye todo sucódigo anterior a ese punto y el otro individuo contribuye todo su códigoa partir de ese punto para producir una descendencia, y al cruzamientouniforme, en el que el valor de una posición dada en el genoma de ladescendencia corresponde al valor en esa posición del genoma de uno delos padres o al valor en esa posición del genoma del otro padre, elegidocon un 50% de probabilidad.

ruzamiento y mutación. El diagrama de arriba ilustra el efecto de estosdos operadores genéticos en los individuos de una población de cadenas de8 bits. El diagrama superior muestra a dos individuos llevando a cabo uncruzamiento de un punto; el punto de intercambio se establece entre lasposiciones quinta y sexta del genoma, produciendo un nuevo individuo quees híbrido de sus progenitores. El segundo diagrama muestra a un individuosufriendo una mutación en la posición 4, cambiando el 0 de esa posición desu genoma por un 1.

OTRAS TÉCNICAS DE RESOLUCIÓN DE PROBLEMAS

Con el auge de la informática de inteligencia artificial y el desarrollode los métodos heurísticos, han emergido otras técnicas de resolucióncomputarizada de problemas que en algunos aspectos son similares a losalgoritmos genéticos. Esta sección explica algunas de estas técnicas, enqué se parecen a los AGs y en qué se diferencian.

REDES NEURONALES

Una red neuronal es un método de resolución de problemas basado en unmodelo informático de la manera en que están conectadas las neuronas delcerebro. Una red neuronal consiste en capas de unidades procesadoras,llamadas nodos, unidas por conexiones direccionales: una capa de entrada,una capa de salida y cero o más capas ocultas enmedio. Se le presenta unpatrón inicial de entrada a la capa de entrada, y luego los nodos que seestimulan transmiten una señal a los nodos de la siguiente capa a la queestán conectados. Si la suma de todas las entradas que entran en una deestas neuronas virtuales es mayor que el famoso umbral de activación dela neurona, esa neurona se activa, y transmite su propia señal a lasneuronas de la siguiente capa. El patrón de activación, por tanto, sepropaga hacia delante hasta que alcanza a la capa de salida, donde esdevuelto como solución a la entrada presentada. Al igual que en elsistema nervioso de los organismos biológicos, las redes neuronalesaprenden y afinan su rendimiento a lo largo del tiempo, mediante larepetición de rondas en las que se ajustan sus umbrales, hasta que lasalida real coincide con la salida deseada para cualquier entrada dada.Este proceso puede ser supervisado por un experimentador humano, o puedecorrer automáticamente utilizando un algoritmo de aprendizaje .Se hanutilizado algoritmos genéticos para construir y entrenar a redesneuronales.

Una sencilla red neuronal anticipativa (feedforward), con una capa consistente encuatro neuronas, una capa oculta consistente en tres neuronas y una capa de salidaconsistente en cuatro neuronas. El número de cada neurona representa su umbral deactivación: sólo se excitará si recibe al menos esa cantidad de entradas. Eldiagrama muestra cómo la red neuronal recibe una cadena de entrada y cómo laactivación se extiende por la red hasta producir una salida.

ASCENSO A COLINA (HILL CLIMBING)

Similares a los algoritmos genéticos, aunque más sistemáticos y menosaleatorios. Un algoritmo de ascenso a colina comienza con una solución alproblema a mano, normalmente elegida al azar. Luego, la cadena se muta, ysi la mutación proporciona una solución con mayor aptitud que la soluciónanterior, se conserva la nueva solución; en caso contrario, se conservala solución actual. Luego el algoritmo se repite hasta que no se puedaencontrar una mutación que provoque un incremento en la aptitud de lasolución actual, y esta solución se devuelve como. (Para entender dedónde viene el nombre de esta técnica, imagine que el espacio de todaslas soluciones posibles de un cierto problema se representa como unpaisaje tridimensional. Un conjunto de coordenadas en ese paisajerepresenta una solución particular. Las soluciones mejores están a mayoraltitud, formando colinas y picos; las que son peores están a menoraltitud, formando valles. Un ``trepacolinas'' es, por tanto, un algoritmoque comienza en un punto dado del paisaje y se mueve inexorablementecolina arriba). El algoritmo de ascenso a colina es lo que se conoce comoalgoritmo voraz, lo que significa que siempre hace la mejor eleccióndisponible en cada paso, con la esperanza de que de esta manera se puedeobtener el mejor resultado global. En contraste, los métodos como los

algoritmos genéticos y el recocido simulado, discutido abajo, no sonvoraces; a veces, estos métodos hacen elecciones menos óptimas alprincipio con la esperanza de que conducirán hacia una solución mejor másadelante.

RECOCIDO SIMULADO (SIMULATED ANNEALING)

Otra técnica de optimización similar a los algoritmos evolutivos seconoce como recocido simulada. La idea toma prestado su nombre delproceso industrial en el que un material se calienta por encima de supunto de fusión y luego se enfría gradualmente para eliminar defectos ensu estructura cristalina, produciendo un entramado de átomos más estable.En el recocido simulado, como en los algoritmos genéticos, existe unafunción de aptitud que define un paisaje adaptativo; sin embargo, enlugar de una población de candidatas como en los AGs, sólo existe unasolución candidata. El recocido simulado también añade el concepto de``temperatura'', una cantidad numérica global que disminuye gradualmenteen el tiempo. En cada paso del algoritmo, la solución muta (lo que esequivalente a moverse hacia un punto adyacente en el paisaje adaptativo).Luego, la aptitud de la nueva solución se compara con la aptitud de lasolución anterior; si es mayor, se conserva la nueva solución. En casocontrario, el algoritmo toma la decisión de conservarla o descartarla enbase a la temperatura. Si la temperatura es alta, como lo es alprincipio, puede conservarse incluso cambios que causan decrementossignificativos en la aptitud, y utilizarse como base para la siguienteronda del algoritmo, pero al ir disminuyendo la temperatura, el algoritmose va haciendo más y más propenso a aceptar sólo los cambios que aumentanla aptitud. Finalmente, la temperatura azanca el cero y el sistema se``congela''; cualquiera que sea la configuración que exista en ese puntose convierte en la solución. El recocido simulado tiene a menudoaplicaciones en la ingeniería del diseño, como determinar la disposiciónfísica de los componentes en un chip informático.

UNA BREVE HISTORIA DE LOS AGS

Los primeros ejemplos de lo que hoy podríamos llamar algoritmos genéticosaparecieron a finales de los 50 y principios de los 60, programados en

computadoras por biólogos evolutivos que buscaban explícitamente realizarmodelos de aspectos de la evolución natural. A ninguno de ellos se leocurrió que esta estrategia podría aplicarse de manera más general a losproblemas artificiales, pero ese reconocimiento no tardaría en llegar:``La computación evolutiva estaba definitivamente en el aire en los díasformativos de la computadora electrónica''. En 1962, investigadores comoG.E.P. Box, G.J. Friedman, W.W. Bledsoe y H.J. Bremermann habíandesarrollado independientemente algoritmos inspirados en la evoluciónpara optimización de funciones y aprendizaje automático, pero sustrabajos generaron poca reacción. En 1965 surgió un desarrollo másexitoso, cuando Ingo Rechenberg, entonces de la Universidad Técnica deBerlín, introdujo una técnica que llamó estrategia evolutiva, aunque separecía más a los trepacolinas que a los algoritmos genéticos. En estatécnica no había población ni cruzamiento; un padre mutaba para producirun descendiente, y se conservaba el mejor de los dos, convirtiéndose enel padre de la siguiente ronda de mutación. Versiones posterioresintrodujeron la idea de población. Las estrategias evolutivas todavía seemplean hoy en día por ingenieros y científicos, sobre todo en Alemania.

El siguiente desarrollo importante en el campo vino en 1966, cuando L.J.Fogel, A.J. Owens y M.J. Walsh introdujeron en América una técnica quellamaron programación evolutiva. En este método, las solucionescandidatas para los problemas se representaban como máquinas de estadofinito sencillas; al igual que en la estrategia evolutiva de Rechenberg,su algoritmo funcionaba mutando aleatoriamente una de estas máquinassimuladas y conservando la mejor de las. También al igual que lasestrategias evolutivas, hoy en día existe una formulación más amplia dela técnica de programación evolutiva que todavía es un área deinvestigación en curso. Sin embargo, lo que todavía faltaba en estas dosmetodologías era el reconocimiento de la importancia del cruzamiento.

En una fecha tan temprana como 1962, el trabajo de John Holland sobresistemas adaptativos estableció las bases para desarrollos posteriores; ylo que es más importante, Holland fue también el primero en proponerexplícitamente el cruzamiento y otros operadores de recombinación. Sinembargo, el trabajo fundamental en el campo de los algoritmos genéticosapareció en 1975, con la publicación del libro ``Adaptación en SistemasNaturales y Artificiales''. Basado en investigaciones y papers anterioresdel propio Holland y de colegas de la Universidad de Michigan, este librofue el primero en presentar sistemática y rigurosamente el concepto desistemas digitales adaptativos utilizando la mutación, la selección y elcruzamiento, simulando el proceso de la evolución biológica comoestrategia para resolver problemas. El libro también intentó colocar losalgoritmos genéticos sobre una base teórica firme introduciendo elconcepto de esquema.Ese mismo año, la importante tesis de Kenneth De Jongestableció el potencial de los AGs demostrando que podían desenvolverse

bien en una gran variedad de funciones de prueba, incluyendo paisajes debúsqueda ruidosos, discontinuos y multimodales.

Estos trabajos fundacionales establecieron un interés más generalizado enla computación evolutiva. Entre principios y mediados de los 80, losalgoritmos genéticos se estaban aplicando en una amplia variedad deáreas, desde problemas matemáticos abstractos como el ``problema de lamochila'' (bin-packing) y la coloración de grafos hasta asuntos tangiblesde ingeniería como el control de flujo en una línea de ensamble,reconocimiento y clasificación de patrones y optimización estructural.

Al principio, estas aplicaciones eran principalmente teóricas. Sinembargo, al seguir proliferando la investigación, los algoritmosgenéticos migraron hacia el sector comercial, al cobrar importancia conel crecimiento exponencial de la potencia de computación y el desarrollode Internet. Hoy en día, la computación evolutiva es un campofloreciente, y los algoritmos genéticos están ``resolviendo problemas deinterés cotidiano'' en áreas de estudio tan diversas como la predicciónen la bolsa y la planificación de la cartera de valores, ingenieríaaeroespacial, diseño de microchips, bioquímica y biología molecular, ydiseño de horarios en aeropuertos y líneas de montaje. La potencia de laevolución ha tocado virtualmente cualquier campo que uno pueda nombrar,modelando invisiblemente el mundo que nos rodea de incontables maneras, ysiguen descubriéndose nuevos usos mientras la investigación sigue sucurso. Y en el corazón de todo esto se halla nada más que la simple ypoderosa idea de Charles Darwin: que el azar en la variación, junto conla ley de la selección, es una técnica de resolución de problemas deinmenso poder y de aplicación casi ilimitada.

¿CUÁLES SON LAS VENTAJAS DE LOS AGS?

1. El primer y más importante punto es que los algoritmos genéticosson intrínsecamente paralelos. La mayoría de los otros algoritmosson en serie y sólo pueden explorar el espacio de soluciones haciauna solución en una dirección al mismo tiempo, y si la solución quedescubren resulta subóptima, no se puede hacer otra cosa queabandonar todo el trabajo hecho y empezar de nuevo. Sin embargo, yaque los AGs tienen descendencia múltiple, pueden explorar elespacio de soluciones en múltiples direcciones a la vez. Si uncamino resulta ser un callejón sin salida, pueden eliminarlofácilmente y continuar el tabajo en avenidas más prometedoras,dándoles una mayor probabilidad en cada ejecución de encontrar lasolución. 

Sin embargo, la ventaja del paralelismo va más allá de esto.

Considere lo siguiente: todas las cadenas binarias (cadenas deceros y unos) de 8 dígitos forman un espacio de búsqueda, que puederepresentarse como ******** (donde * significa ``o 0 o 1''). Lacadena 01101010 es un miembro de este espacio. Sin embargo, tambiénes un miembro del espacio 0*******, del espacio 01******, delespacio 0******0, del espacio 0*1*1*1*, del espacio 10*01**0,etcétera. Evaluando la aptitud de esta cadena particular, unalgoritmo genético estaría sondeando cada uno de los espacios a losque pertenece. Tras muchas evaluaciones, iría obteniendo un valorcada vez más preciso de la aptitud media de cada uno de estosespacios, cada uno de los cuales contiene muchos miembros. Portanto, un AG que evalúe explícitamente un número pequeño deindividuos está evaluando implícitamente un grupo de individuosmucho más grande -de la misma manera que un encuestador que le hacepreguntas a un cierto miembro de un grupo étnico, religioso osocial espera aprender algo acerca de las opiniones de todos losmiembros de ese grupo, y por tanto puede predecir con fiabilidad laopinión nacional sondeando sólo un pequeño porcentaje de lapoblación. De la misma manera, el AG puede dirigirse hacia elespacio con los individuos más aptos y encontrar el mejor de esegrupo. En el contexto de los algoritmos evolutivos, esto se conocecomo teorema del esquema, y es la ventaja principal de los AGssobre otros métodos de resolución de problemas.

2. Debido al paralelismo que les permite evaluar implícitamente muchosesquemas a la vez, los algoritmos genéticos funcionanparticularmente bien resolviendo problemas cuyo espacio desoluciones potenciales es realmente grande -demasiado vasto parahacer una búsqueda exhaustiva en un tiempo razonable. La mayoría delos problemas que caen en esta categoría se conocen como ``nolineales''. En un problema lineal, la aptitud de cada componente esindependiente, por lo que cualquier mejora en alguna parte darácomo resultado una mejora en el sistema completo. No es necesariodecir que hay pocos problemas como éste en la vida real. La nolinealidad es la norma, donde cambiar un componente puede tener

efectos en cadena en todo el sistema, y donde cambios múltiplesque, individualmente, son perjudiciales, en combinación puedenconducir hacia mejoras en la aptitud mucho mayores. La nolinealidad produce una explosión combinatoria: el espacio decadenas binarias de 1.000 dígitos puede examinarse exhaustivamenteevaluando sólo 2.000 posibilidades si el problema es lineal,mientras que si no es lineal, una búsqueda exhaustiva requiereevaluar 21.000 posibilidades -un número que, escrito, ocuparía másde 300 dígitos. 

Afortunadamente, el paralelismo implícito de los AGs les permitesuperar incluso este enorme número de posibilidades, y encontrarcon éxito resultados óptimos o muy buenos en un corto periodo detiempo, tras muestrear directamente sólo regiones pequeñas delvasto paisaje adaptativo (Forrest 1993[24], p. 877). Por ejemplo,un algoritmo genético desarrollado en común por ingenieros deGeneral Electric y el Rensselaer Polytechnic Institute produjo eldiseño de la turbina de un motor a reacción de altas prestacionesque era tres veces mejor que la configuración diseñada por humanos,y un 50% mejor que una configuración diseñada por un sistemaexperto que recorrió con éxito un espacio de soluciones quecontenía más de 10.387 posibilidades. Los métodos convencionalespara diseñar estas turbinas son una parte fundamental de proyectosde ingeniería que pueden durar hasta cinco años y costar más de2.000 millones de dólares; el algoritmo genético descubrió estasolución en dos días, en una estación de trabajo de escritoriotípica en ingeniería.

3.- Otra ventaja notable de los algoritmos genéticos es que sedesenvuelven bien en problemas con un paisaje adaptativo complejo -aquéllos en los que la función de aptitud es discontinua, ruidosa,cambia con el tiempo, o tiene muchos óptimos locales. La mayoría delos problemas prácticos tienen un espacio de soluciones enorme,imposible de explorar exhaustivamente; el reto se convierte entoncesen cómo evitar los óptimos locales -soluciones que son mejores quetodas las que son similares a ella, pero que no son mejores que otrassoluciones distintas situadas en algún otro lugar del espacio desoluciones. Muchos algoritmos de búsqueda pueden quedar atrapados enlos óptimos locales: si llegan a lo alto de una colina del paisajeadaptativo, descubrirán que no existen soluciones mejores en lascercanías y concluirán que han alcanzado la mejor de todas, aunqueexistan picos más altos en algún otro lugar del mapa. 

Los algoritmos evolutivos, por otro lado, han demostrado su efectividadal escapar de los óptimos locales y descubrir el óptimo global incluso enpaisajes adaptativos muy escabrosos y complejos. (Debe decirse que, en larealidad, a menudo no hay manera de decir si una cierta solución a unproblema es el óptimo global o sólo un óptimo local muy alto. Sinembargo, aunque un AG no devuelva siempre una solución perfecta ydemostrable a un problema, casi siempre puede devolver al menos una muybuena solución). Todos los cuatro componentes principales de los AGs -paralelismo, selección, mutación y cruzamiento- trabajan juntos paraconseguir esto. Al principio, el AG genera una población inicial diversa,lanzando una ``red'' sobre el paisaje adaptativo. compara esto con unejército de paracaidistas cayendo sobre el paisaje del espacio debúsqueda de un problema, cada uno de ellos con órdenes de buscar el picomás alto). Pequeñas mutaciones permiten a cada individuo explorar susproximidades, mientras que la selección enfoca el progreso, guiando a ladescendencia del algoritmo cuesta arriba hacia zonas más prometedoras delespacio de soluciones.

Sin embargo, el cruzamiento es el elemento clave que distingue a losalgoritmos genéticos de los otros métodos como los trepacolinas y elrecocido simulado. Sin el cruzamiento, cada solución individual va por sucuenta, explorando el espacio de búsqueda en sus inmediaciones sinreferencia de lo que el resto de individuos puedan haber descubierto. Sinembargo, con el cruzamiento en juego, hay una transferencia deinformación entre los candidatos prósperos -los individuos puedenbeneficiarse de lo que otros han aprendido, y los esquemas puedenmezclarse y combinarse, con el potencial de producir una descendencia quetenga las virtudes de sus dos padres y ninguna de sus debilidades.. Enuna generación se seleccionaron dos circuitos progenitores para llevar acabo el cruzamiento; un padre tenía una buena topología (componentes comoinductores y condensadores colocados en el sitio correcto) pero malostamaños (valores demasiado bajos de inductancia y capacidad para loscomponentes). El otro padre tenía mala topología pero buenos tamaños. Elresultado de aparearlos mediante cruzamiento fue una descendencia con labuena topología de un padre y los buenos tamaños del otro, dando comoresultado una mejora sustancial de la aptitud sobre sus dos padres. 

El problema de encontrar el óptimo global en un espacio con muchosóptimos locales también se conoce como el dilema de la exploración versus

explotación, ``un problema clásico de todos los sistemas que puedenadaptarse y aprender''. Una vez que un algoritmo (o un diseñador humano)ha encontrado una estrategia para resolver problemas que parece funcionarsatisfactoriamente, ¿debería centrarse en hacer el mejor uso de esaestrategia, o buscar otras? Abandonar una estrategia de probada solvenciapara buscar otras nuevas casi garantiza que supondrá una pérdida ydegradación del rendimiento, al menos a corto plazo. Pero si uno se quedacon una estrategia particular excluyendo a todas las demás, corre elriesgo de no descubrir estrategias mejores que existen pero no se hanencontrado. De nuevo, los algoritmos genéticos han demostrado ser muybuenos en dar con este equilibrio y descubrir buenas soluciones en untiempo y esfuerzo computacional razonables.

Finalmente, una de las cualidades de los algoritmos genéticos que, aprimera vista, puede parecer un desastre, resulta ser una de susventajas: a saber, los AGs no saben nada de los problemas que debenresolver. En lugar de utilizar información específica conocida a prioripara guiar cada paso y realizar cambios con un ojo puesto en elmejoramiento, como hacen los diseñadores humanos, son ``relojerosciegos'' realizan cambios aleatorios en sus soluciones candidatas y luegoutilizan la función de aptitud para determinar si esos cambios producenuna mejora. 

La virtud de esta técnica es que permite a los algoritmos genéticoscomenzar con una mente abierta, por así decirlo. Como sus decisionesestán basadas en la aleatoriedad, todos los caminos de búsqueda posiblesestán abiertos teóricamente a un AG; en contraste, cualquier estrategiade resolución de problemas que dependa de un conocimiento previo, debeinevitablemente comenzar descartando muchos caminos a priori, perdiendoasí cualquier solución novedosa que pueda existir. Los AGs, al carecer deideas preconcebidas basadas en creencias establecidas sobre ``cómo debenhacerse las cosas'' o sobre lo que ``de ninguna manera podríafuncionar'', los AGs no tienen este problema. De manera similar,cualquier técnica que dependa de conocimiento previo fracasará cuando noesté disponible tal conocimiento, pero, de nuevo, los AGs no se venafectados negativamente por la ignorancia. Mediante sus componentes deparalelismo, cruzamiento y mutación, pueden viajar extensamente por elpaisaje adaptativo, explorando regiones que algoritmos producidos coninteligencia podrían no haber tenido en cuenta, y revelandopotencialmente soluciones de asombrosa e inesperada creatividad quepodrían no habérseles ocurrido nunca a los diseñadores humanos. Unejemplo muy gráfico de esto es el redescubrimiento, mediante laprogramación genética, del concepto de retroalimentación negativa -unprincipio crucial para muchos componentes electrónicos importantes de hoyen día, pero un concepto que, cuando fue descubierto en primerainstancia, se le denegó una patente de nueve años porque el concepto erademasiado contrario a las creencias establecidas. Por supuesto, los

algoritmos evolutivos no están enterados ni preocupados de si unasolución va en contra de las creencias establecidas -sólo de si funciona.

¿CUÁLES SON LAS LIMITACIONES DE LOS AGS?

Aunque los algoritmos genéticos han demostrado su eficiencia y potenciacomo estrategia de resolución de problemas, no son la panacea. Los AGstienen ciertas limitaciones; sin embargo, se demostrará que todas ellaspueden superarse y que ninguna de ellas afecta a la validez de laevolución biológica.

La primera y más importante consideración al crear un algoritmo genéticoes definir una representación del problema. El lenguaje utilizado paraespecificar soluciones candidatas debe ser robusto; es decir, debe sercapaz de tolerar cambios aleatorios que no produzcan constantementeerrores fatales o resultados sin sentido. 

Hay dos maneras principales para conseguir esto. La primera, utilizadapor la mayoría de los algoritmos genéticos, es definir a los individuoscomo listas de números -binarios, enteros o reales- donde cada númerorepresenta algún aspecto de la solución candidata. Si los individuos soncadenas binarias, un 0 o 1 podría significar la ausencia o presencia deuna cierta característica. Si son listas de números, estos númerospodrían representar muchas cosas distintas: los pesos de las conexionesen una red neuronal, el orden de las ciudades visitadas en un recorridodado, la situación espacial de componentes electrónicos, los valores conlos que se alimenta a un controlador, los ángulos de torsión de losenlaces péptidos de una proteína, etcétera. Así, la mutación implicacambiar estos números, cambiar bits o sumar o restar valores aleatorios.En este caso, el propio código del programa no cambia; el código es loque dirige la simulación y hace un seguimiento de los individuos,evaluando sus aptitudes y quizá asegurando que sólo se producen valoresrealistas y posibles para el problema dado. 

En otro método, la programación genética, el propio código delprograma sí cambia. Como ya se dijo en la sección ``Métodos derepresentación'', la PG representa a los individuos como árboles decódigo ejecutables que pueden mutar cambiando o intercambiandosubárboles. Ambos métodos producen representaciones robustas ante lamutación, y pueden representar muchos tipos diferentes de problemas y,como se dice en la sección ``Algunos ejemplos específicos'', ambas hantenido un éxito considerable. 

El problema de representar a las soluciones candidatas de manera robustano surge en la naturaleza, porque el método de representación utilizadopor la evolución, a saber, el código genético, es inherentemente robusto:con muy pocas excepciones, como una cadena de codones de parada, no

existe una secuencia de bases de ADN que no pueda traducirse en unaproteína. Por lo tanto, virtualmente, cualquier cambio en los genes de unindividuo siempre producirá un resultado inteligible, y por tanto lasmutaciones en la evolución tienen mayor probabilidad de producir unamejora. Esto entra en contraste con los lenguajes creados por el hombrecomo el inglés, donde el número de palabras con significado es pequeñocomparado con el número total de formas en las que se pueden combinar lasletras del alfabeto, y por tanto, es probable que un cambio aleatorio enuna frase en inglés produzca un sinsentido.

El problema de cómo escribir la función de aptitud debe considerarsecuidadosamente para que se pueda alcanzar una mayor aptitud yverdaderamente signifique una solución mejor para el problema dado. Si seelige mal una función de aptitud o se define de manera inexacta, puedeque el algoritmo genético sea incapaz de encontrar una solución alproblema, o puede acabar resolviendo el problema equivocado. (Esta últimasituación se describe a veces como la tendencia del AG a ``engañar'',aunque en realidad lo que está pasando es que el AG está haciendo lo quese le pidió hacer, no lo que sus creadores pretendían que hiciera).. Alfinal del experimento, se producía efectivamente una señal oscilatoria -pero en lugar de actuar como un osculador, como pretendían losinvestigadores, ¡descubrieron que el circuito se había convertido en unreceptor de radio que estaba recibiendo y retransmitiendo una señaloscilatoria de un componente electrónico cercano! 

Sin embargo, esto no es un problema en la naturaleza. En el laboratoriode la evolución biológica, sólo hay una función de aptitud que es igualpara todos los seres vivos -la carrera por sobrevivir y reproducirse, sinimportar qué adaptaciones hagan esto posible. Los organismos que sereproducen con más abundancia que sus competidores están más adaptados;los que fracasan en reproducirse no están adaptados.

Además de elegir bien la función de aptitud, también deben elegirsecuidadosamente los otros parámetros de un AG -el tamaño de la población,el ritmo de mutación y cruzamiento, el tipo y fuerza de la selección. Siel tamaño de la población es demasiado pequeño, puede que el algoritmogenético no explore suficientemente el espacio de soluciones paraencontrar buenas soluciones consistentemente. Si el ritmo de cambiogenético es demasiado alto o el sistema de selección se escogeinadecuadamente, puede alterarse el desarrollo de esquemas beneficiosos yla población puede entrar en catástrofe de errores, al cambiar demasiadorápido para que la selección llegue a producir convergencia. 

Los seres vivos también se enfrentan a dificultades similares, y laevolución se ha encargado de ellas. Es cierto que si el tamaño de unapoblación cae hacia un valor muy bajo, los ritmos de mutación son muyaltos o la presión selectiva es demasiado fuerte (una situación así

podría ser resultado de un cambio ambiental drástico), entonces laespecie puede extinguirse. La solución ha sido ``la evolución de laevolutividad'' -las adaptaciones que alteran la habilidad de una especiepara adaptarse. Un ejemplo. La mayoría de los seres vivos hanevolucionado una elaborada maquinaria celular que comprueba y corrigeerrores durante el proceso de replicación del ADN, manteniendo su ritmode mutación a unos niveles aceptablemente bajos; a la inversa, en tiemposde fuerte presión ambiental, algunas especies de bacterias entran en unestado de hipermutación en el que el ritmo de errores en la replicacióndel ADN aumenta bruscamente, aumentando la probabilidad de que sedescubrirá una mutación compensatoria. Por supuesto, no pueden eludirsetodas las catástrofes, pero la enorme diversidad y las adaptacionesaltamente complejas de los seres vivos actuales muestran que, en general,la evolución es una estrategia exitosa. Igualmente, las aplicacionesdiversas y los impresionantes resultados de los algoritmos genéticosdemuestran que son un campo de estudio poderoso y que merece la pena.

Un problema con el que los algoritmos genéticos tienen dificultades sonlos problemas con las funciones de aptitud ``engañosas'' , en las que lasituación de los puntos mejorados ofrecen información engañosa sobredónde se encuentra probablemente el óptimo global. Por ejemplo: imagineun problema en el que el espacio de búsqueda esté compuesto por todas lascadenas binarias de ocho caracteres, y en el que la aptitud de cadaindividuo sea directamente proporcional al número de unos en él -esdecir, 00000001 sería menos apto que 00000011, que sería menos apto que00000111, etcétera -, con dos excepciones: la cadena 11111111 resultatener una aptitud muy baja, y la cadena 00000000 resulta tener unaaptitud muy alta. En este problema, un AG (al igual que la mayoría de losalgoritmos) no tendría más probabilidad de encontrar un óptimo global queuna búsqueda aleatoria. 

La solución a este problema es la misma para los algoritmos genéticos yla evolución biológica: la evolución no es un proceso que deba encontrarsiempre el óptimo global. Puede funcionar casi igual de bien alcanzandola cima de un óptimo local alto y, para la mayoría de las situaciones,eso será suficiente, incluso aunque el óptimo global no pueda alcanzarsefácilmente desde ese punto. La evolución es como un ``satisfactor'' -unalgoritmo que entrega una solución ``suficientemente buena'', aunque nonecesariamente la mejor solución posible, dada una cantidad razonable detiempo y esfuerzo invertidos en la búsqueda. Hay que tener en cuenta quepocos o ningún problema real es tan engañoso como el ejemplo algo forzadodado arriba. Normalmente, la situación de las mejoras locales proporcionaalguna información sobre la situación del óptimo global.

Un problema muy conocido que puede surgir con un AG se conoce comoconvergencia prematura. Si un individuo que es más apto que la mayoría desus competidores emerge muy pronto en el curso de la ejecución, se puedereproducir tan abundantemente que merme la diversidad de la poblacióndemasiado pronto, provocando que el algoritmo converja hacia el óptimolocal que representa ese individuo, en lugar de rastrear el paisajeadaptativo lo bastante a fondo para encontrar el óptimo. Esto es unproblema especialmente común en las poblaciones pequeñas, donde inclusouna variación aleatoria en el ritmo de reproducción puede provocar que ungenotipo se haga dominante sobre los otros. 

Los métodos más comunes implementados por los investigadores en AGs parasolucionar este problema implican controlar la fuerza selectiva, para noproporcionar tanta ventaja a los individuos excesivamente aptos. Laselección escalada, por rango y por torneo, discutidas anteriormente, sontres de los métodos principales para conseguir esto; algunos métodos deselección escalada son el escalado sigma, en el que la reproducción sebasa en una comparación estadística de la aptitud media de la población,y la selección de Boltzmann, en la que la fuerza selectiva aumentadurante la ejecución de manera similar a la variable ``temperatura'' enel recocido simulado .

La convergencia prematura ocurre en la naturaleza (los biólogos la llamanderiva genética). Esto no debe sorprender; como ya se dijo arriba, laevolución, como estrategia de resolución de problemas, no está obligada aencontrar la mejor solución, sólo una que sea lo bastante buena. Sinembargo, en la naturaleza, la convergencia prematura es menos común, yaque la mayoría de las mutaciones beneficiosas en los seres vivos sóloproducen mejoras en la aptitud pequeñas e incrementales; son raras lasmutaciones que producen una ganancia de aptitud tan grande que otorgue asus poseedores una drástica ventaja reproductiva.

Finalmente, varios aconsejan no utilizar algoritmos genéticos enproblemas resolubles de manera analítica. No es que los algoritmosgenéticos no puedan encontrar soluciones buenas para estos problemas;simplemente es que los métodos analíticos tradicionales consumen muchomenos tiempo y potencia computacional que los AGs y, a diferencia de losAGs, a menudo está demostrado matemáticamente que ofrecen la únicasolución exacta. Por supuesto, como no existe una solución matemáticaperfecta para ningún problema de adaptación biológica, este problema noaparece en la naturaleza.

ALGUNOS EJEMPLOS ESPECÍFICOS DE AG

Mientras el poder de la evolución gana reconocimiento cada vez másgeneralizado, los algoritmos genéticos se utilizan para abordar unaamplia variedad de problemas en un conjunto de campos sumamente diverso,demostrando claramente su capacidad y su potencial.

Acústica

Utilizaron programación evolutiva para adiestrar a redes neuronales paradistinguir entre reflexiones sonoras desde distintos tipos de objetos:esferas metálicas hechas por el hombre, montañas submarinas, peces yplantas, y ruido aleatorio de fondo. Tras 500 generaciones, la mejor redneuronal que evolucionó tenía una probabilidad de clasificación correctaque iba desde el 94% al 98%, y una probabilidad de clasificación erróneaentre un 7,4% y un 1,5%, que son ``probabilidades razonables de deteccióny falsa alarma’’. Esta red evolucionada igualó las prestaciones de otrared desarrollada mediante recocido simulado, y superó consistentemente aredes entrenadas mediante propagación hacia atrás, las cuales ``seatascaban repetidamente en conjuntos de pesos subóptimos que no producíanresultados satisfactorios’’.

Analizan los usos de los algoritmos genéticos en el campo de la acústicay el procesamiento de señales. Un área de interés particular incluye eluso de AGs para diseñar sistemas de Control Activo de Ruido (CAR), queeliminan el sonido no deseado produciendo ondas sonoras que interfierendestructivamente con el ruido. Esto es un problema de múltiples objetivosque requiere el control y la colocación precisa de múltiples altavoces;los AGs se han utilizado en estos sistemas tanto para diseñar loscontroladores como para encontrar la colocación óptima de los altavoces,dando como resultado una ``atenuación efectiva del ruido'' en pruebasexperimentales.

Ingeniería aeroespacial

Utilizaron un algoritmo genético de múltiples objetivos para diseñar laforma del ala de un avión supersónico. Hay tres consideracionesprincipales que determinan la configuración del ala -minimizar laresistencia aerodinámica a velocidades de vuelo supersónicas, minimizarla resistencia a velocidades subsónicas y minimizar la carga aerodinámica(la fuerza que tiende a doblar el ala). Estos objetivos son mutuamente

exclusivos, y optimizarlos todos simultáneamente requiere realizarcontrapartidas.

El cromosoma de este problema es una cadena de 66 números reales, cadauno de los cuales corresponde a un aspecto específico del ala: su forma,su grosor, su torsión, etcétera. Se simuló una evolución con selecciónelitista durante 70 generaciones, con un tamaño de población de 64individuos. Al final de este proceso había varios individuos paretianos,cada uno representando una solución no dominada del problema. El artículocomenta que estos individuos ganadores tenían características``físicamente razonables'', señalando la validez de la técnica deoptimización . Para evaluar mejor la calidad de las soluciones, las seismejores fueron comparadas con un diseño de ala supersónica producido porel Equipo de Diseño SST del Laboratorio Aeroespacial Nacional de Japón.Las seis fueron competitivas, con valores de resistencia y cargaaproximadamente iguales o menores a los del ala diseñada por humanos; enparticular, una de las soluciones evolucionadas superó al diseño del LANen los tres objetivos. Los autores señalan que las soluciones del AG sonsimilares a un diseño llamado ``ala flecha'', sugerido por primera vez afinales de los años 50, pero que finalmente fue abandonado en favor deldiseño más convencional con forma de delta.

Aplicaron algoritmos genéticos a la tarea de situar órbitas de satélitespara minimizar los apagones de cobertura. Mientras la tecnología detelecomunicaciones sigue progresando, los humanos somos cada vez másdependientes de las funciones vitales que realizan los satélites enórbita alrededor de la Tierra, y uno de los problemas con los que seenfrentan los ingenieros es el diseño de las trayectorias orbitales. Lossatélites que se encuentran en una órbita terrestre alta, a unos 35.000kilómetros de altitud, pueden ver amplias secciones del planeta al mismotiempo y estar en contacto con las estaciones terrestres, pero son muchomás caros de lanzar y más vulnerables a las radiaciones cósmicas. Es máseconómico colocar satélites en órbitas bajas, en algunos casos a sólounos pocos cientos de kilómetros; pero, a causa de la curvatura de laTierra, es inevitable que estos satélites pierdan durante un tiempo lalínea de visión con los receptores terrestres, y por lo tanto se vuelveninútiles. Incluso las constelaciones de varios satélites tienen apagonesineludibles y pérdidas de cobertura por esta razón. El reto consiste encolocar las órbitas de los satélites para minimizar este tiempo muerto.Esto es un problema multi-objetivo que implica la minimización de eltiempo medio de apagón para todas las localizaciones y el tiempo máximode apagón para cada una de las localizaciones; en la práctica, estosobjetivos resultan ser mutuamente exclusivos.

Cuando se utilizó el AG en este problema, los resultados queevolucionaron para constelaciones de tres, cuatro y cinco satélites eranextraños, configuraciones orbitales muy asimétricas, con los satélitescolocados alternando huecos grandes y pequeños, en lugar de huecos deigual tamaño como habrían hecho las técnicas convencionales. Sin embargo,esta solución redujo significativamente los tiempos medio y máximo deapagón, en algunos casos hasta en 90 minutos. En un artículoperiodístico, el Dr. William Crossley señaló que ``ingenieros con años deexperiencia aeroespacial quedaorn sorprendidos con el rendimientoofrecido por el diseño no convencional''.

Brazo tridimensional optimizado genéticamente, con una respuestamejorada a la frecuencia

Astronomía y astrofísica

Sugiere la utilidad de los AGs para problemas de astrofísica,aplicándolos a tres problemas de ejemplo: obtener la curva de rotación deuna galaxia basándose en las velocidades rotacionales observadas de suscomponentes, determinar el periodo de pulsación de una estrella variablebasándose en series de datos temporales, y sacar los valores de los

parámetros críticos de un modelo magnetohidrodinámico del viento solar.Son tres difíciles problemas no lineales y multidimensionales.

El algoritmo genético de Charbonneau, PIKAIA, utiliza seleccióngeneracional y proporcional a la aptitud, junto con elitismo, paraasegurar que el mejor individuo se copia una vez hacia la siguientegeneración sin ninguna modificación. PIKAIA tiene un ritmo de cruzamientode 0,65 y un ritmo de mutación variable que se pone a 0,003 inicialmentey luego aumenta gradualmente, mientras la población se aproxima a laconvergencia, para mantener la variabilidad en el acervo genético.

En el problema de la curva de rotación galáctica, el AG produjo doscurvas, y ambas estaban bien ajustadas a los datos (un resultado común eneste tipo de problema, en el que hay poco contraste entre cimascercanas); observaciones posteriores pueden distinguir cuál es lapreferible. En el problema de la serie temporal, el AG fueimpresionantemente exitoso, generando un ajuste de los datos de grancalidad, aunque otros problemas más difíciles no se ajustaron tan bien(aunque, como señala Charbonneau, estos problemas son igualmentedifíciles de resolver con técnicas convencionales). El artículo sugiereque un AG híbrido que emplee tanto evolución artificial como técnicasanalíticas estándar, podría funcionar mejor. Finalmente, en el problemade obtener los seis parámetros críticos del viento solar, el AG determinócon éxito el valor de tres con una precisión de menos del 0,1% y losotros tres con precisiones entre el 1 y el 10%. (Aunque siempre seríanpreferibles unos errores experimentales menores para estos tresparámetros, Charbonneau señala que no existe ningún otro método eficientey robusto para resolver experimentalmente un problema no lineal 6-dimensional de este tipo; un método de gradiente conjugado funciona``siempre que se pueda proporcionar un valor inicial muy acertado'' (p.323). En contraste, los AGs no requieren un conocimiento del dominio tanbien afinado).

Basándose en los resultados obtenidos hasta ahora, Charbonneau sugiereque los AGs pueden y deben encontrar uso en otros problemas difíciles deastrofísica, en particular, problemas inversos como las imágenes porDoppler y las inversiones heliosísmicas. Para terminar, Charbonneausostiene que los AGs son un ``contendiente poderoso y prometedor'' (p.324) en este campo, del que se puede esperar que complemente (nosustituya) a las técnicas tradicionales de optimización, y concluye que``el punto decisivo, si es que tiene que haber alguno, es que losalgoritmos genéticos funcionan, y a menudo colosalmente bien''.

Química

Un pulso láser ultracorto de alta energía puede romper moléculascomplejas en moléculas más sencillas, un proceso con aplicaciones

importantes en la química orgánica y la microelectrónica. Los productosespecíficos de una reacción así pueden controlarse modulando la fase delpulso láser. Sin embargo, para moléculas grandes, obtener la forma delpulso deseado de manera analítica es demasiado difícil: los cálculos sondemasiado complejos y las características relevantes (las superficies deenergía potencial de las moléculas) no se conocen con suficienteprecisión.

Resolvieron este problema utilizando un algoritmo evolutivo para diseñarla forma del pulso. En lugar de introducir información compleja,específica del problema, sobre las características cuánticas de lasmoléculas iniciales, para diseñar el pulso conforme a lasespecificaciones, el AE dispara un pulso, mide las proporciones de lasmoléculas producto resultantes, muta aleatoriamente las característicasdel rayo con la esperanza de conseguir que estas proporciones se acerquena la salida desada, y el proceso se repite. (En lugar de afinardirectamente las características del rayo láser, el AG de los autoresrepresenta a los individuos como un conjunto de 128 números, en el quecada número es un valor de voltaje que controla el índice de refracciónde uno de los pixeles del modulador láser. De nuevo, no se necesita unconocimiento específico del problema sobre las propiedades del láser o delos productos de la reacción). Los autores afirman que su algoritmo,cuando se aplica a dos sustancias de muestra, ``encuentra automáticamentela mejor configuración... no importa lo complicada que sea la respuestamolecular'' , demostrando un ``control coherente automatizado de losproductos que son químicamente diferentes uno del otro y de la moléculapadre'' .

A principios y mediados de los 90, la amplia adopción de una novedosatécnica de diseño de fármacos, llamada química combinatoria, revolucionóla industria farmacéutica. Con este método, en lugar de la síntesisprecisa y meticulosa de un sólo compuesto de una vez, los bioquímicosmezclan deliberadamente una gran variedad de reactivos para producir unavariedad aún mayor de productos -cientos, miles o millones de compuestosdiferentes en cada remesa- que luego pueden aislarse rápidamente para suactividad bioquímica. Hay dos formas de diseñar las bibliotecas dereactivos en esta técnica: diseño basado en los reactivos, que eligegrupos optimizados de reactivos sin considerar qué productos saldrán comoresultado, y diseño basado en los productos, que selecciona los reactivosque producirán con mayor probabilidad los productos con las propiedadesdeseadas. El diseño basado en los productos es más difícil y complejo,pero se ha demostrado que genera bibliotecas combinatorias mejores y másdiversas, y tiene más probabilidades de ofrecer un resultado útil.

En un artículo relacionado, Glen y Payne 1995 describen el uso dealgoritmos genéticos para diseñar automáticamente moléculas nuevas desdecero que se ajustan a un conjunto de especificaciones dado. Dada una

población inicial, bien generada aleatoriamente o utilizando la sencillamolécula del etanol como semilla, el AG añade, elimina y alteraaleatoriamente átomos y fragmentos moleculares con el objetivo de generarmoléculas que se ajusten a los requisitos dados. El AG puede optimizarsimultáneamente un gran número de objetivos, incluyendo el pesomolecular, el volumen molecular, el número de enlaces, el número decentros quirales, el número de átomos, el número de enlaces rotables, lapolarizabilidad, el momento dipolar, etcétera, para producir moléculascandidatas con las propiedades deseadas. Basándose en pruebasexperimentales, incluyendo un difícil problema de optimización queimplicaba la generación de moléculas con propiedades similares a laribosa (un componente del azúcar imitado a menudo en los fármacosantivirales), los autores concluyen que el AG es un ``excelente generadorde ideas'' que ofrece ``propiedades de optimización rápidas ypoderosas'' y puede generar ``un conjunto diverso de estructurasposibles'' . Continúan afirmando: ``Es de interés especial la poderosacapacidad de optimización del algoritmo genético, incluso con tamaños depoblación relativamente pequeños’’. Como prueba de que estos resultadosno son simplemente teóricos, Lemley 2001informa de que la empresaUnilever ha utilizado algoritmos genéticos para diseñar nuevoscomponentes antimicrobianos para su uso en productos de limpieza, algoque ha patentado.