Вы находитесь на странице: 1из 27

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

INTRODUCCIN
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. En los aos 1970, de la mano de John Henry Holland, surgi una de las lneas ms prometedoras de la inteligencia artificial, la de los algoritmos genticos. Son llamados as porque se inspiran en la evolucin biolgica y su base gentico-molecular. Estos algoritmos hacen evolucionar una poblacin de individuos sometindola a acciones aleatorias semejantes a las que actan en la evolucin biolgica (mutaciones y recombinaciones genticas), as como tambin a una Seleccin de acuerdo con algn criterio, en funcin del cual se decide cules son los individuos ms adaptados, que sobreviven, y cules los menos aptos, que son descartados. Es incluido dentro de los algoritmos evolutivos, que incluyen tambin las estrategias evolutivas, la programacin evolutiva y la programacin gentica. Dentro de esta ltima se han logrado avances curiosos: En 1999, por primera vez en la historia, se concedi una patente a un invento no realizado directamente por un ser humano: se trata de una antena de forma extraa, pero que funciona perfectamente en las condiciones a las que estaba destinada. No hay, sin embargo, nada injusto en el hecho de que el autor del algoritmo gentico del que sali la forma de la antena se haya atribuido la autora de la patente, pues l escribi el programa e ide el criterio de seleccin que condujo al diseo patentado. Un algoritmo gentico es un mtodo de bsqueda dirigida basada en probabilidad. Bajo una condicin muy dbil (que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la poblacin sin hacerle ningn cambio) se puede demostrar que el algoritmo converge en probabilidad al ptimo. En otras palabras, al aumentar el nmero de iteraciones, la probabilidad de tener el ptimo en la poblacin tiende a 1 (uno).

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Resea Histrica Los algoritmos genticos (AG), fueron inventados en 1975 por John Holland, de la Universidad de Michigan. Los AG son, simplificando, algoritmos de optimizacin, es decir, tratan de encontrar la mejor solucin a un problema dado entre un conjunto de soluciones posibles. Los mecanismos de los que se valen los AG para llevar a cabo esa bsqueda pueden verse como una metfora de los procesos de evolucin biolgica. 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 cmo 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 AG. Por tanto, cuando Holland se enfrent a los AG, los objetivos de su investigacin fueron dos: imitar los procesos adaptativos de los sistemas naturales. 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 AG, 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 AG a problemas industriales. Aunque Holland trat de disuadirle, porque pensaba que el problema era excesivamente complicado como para aplicarle AG, Goldberg consigui lo que quera, escribiendo un AG en un ordenador personal Apple II. Estas y otras aplicaciones creadas por estudiantes de Holland convirtieron a los AG en un campo con bases suficientemente aceptables como para celebrar la primera conferencia en 1985, ICGA85.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Qu son los algoritmos genticos? Los AG son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin (1859). Por imitacin de este proceso, los AG son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas. En la naturaleza los individuos de una poblacin compiten entre si en la bsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la bsqueda de un compaero. Aquellos individuos que tienen ms xito en sobrevivir y en atraer compaeros tienen mayor probabilidad de generar un gran nmero de descendientes. Por el contrario individuos poco dotados producirn un menor nmero de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagaran en sucesivas generaciones hacia un nmero de individuos creciente. La combinacin de buenas caractersticas provenientes de diferentes ancestros, puede a veces producir descendientes "superindividuos", cuya adaptacin es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas caractersticas cada vez mejor adaptadas al entorno en el que viven. El poder de los AG proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el AG encuentre la solucin optima del problema, existe evidencia emprica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria. En el caso de que existan tcnicas especializadas para resolver un determinado problema, lo ms probable es que superen al AG, tanto en rapidez como en eficacia. El gran campo de aplicacin de los AG se relaciona con aquellos problemas para los cuales no existen tcnicas especializadas. Incluso en el caso en que dichas tcnicas existan, y funcionen bien, pueden efectuarse mejoras de las mismas hibridndolas con los AG. Por qu utilizar Algoritmos Genticos en la Optimizacin? La razn del creciente inters por los AG es que estos son un mtodo global y robusto de bsqueda de las soluciones de problemas. La principal ventaja de estas caractersticas es el equilibrio alcanzado entre la eficiencia y eficacia para resolver diferentes y muy complejos problemas de grandes dimensiones. Lo que aventaja a los AG frente a otros algoritmos tradicionales de bsqueda es que se diferencian de estos en los siguientes aspectos:
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Trabajan con una codificacin de un conjunto de parmetros, no con los parmetros mismos. Trabajan con un conjunto de puntos, no con un nico punto y su entorno (su tcnica de bsqueda es global.) Utilizan un subconjunto del espacio total, para obtener informacin sobre el universo de bsqueda, a travs de las evaluaciones de la funcin a optimizar. Esas evaluaciones se emplean de forma eficiente para clasificar los subconjuntos de acuerdo con su idoneidad. No necesitan conocimientos especficos sobre el problema a resolver; es decir, no estn sujetos a restricciones. Por ejemplo, se pueden aplicar a funciones no continuas, lo cual les abre un amplio campo de aplicaciones que no podran ser tratadas por los mtodos tradicionales. Utilizan operadores probabilsticos, en vez determinanticos de las tcnicas tradicionales. de los tpicos operadores

Resulta sumamente fcil ejecutarlos en las modernas arquitecturas masivas en paralelo. Cuando se usan para problemas de optimizacin, resultan menos afectados por los mximos locales que las tcnicas tradicionales (i.e., son mtodos robustos). Ahora bien; un esquema del funcionamiento general de un algoritmo gentico podra ser el siguiente: Algoritmo Gentico: - Generar una poblacin inicial. - Iterar hasta un criterio de parada. - Evaluar cada individuo de la poblacin. - Seleccionar los progenitores. - Aplicar el operador de cruce y mutacin a estos progenitores. - Incluir la nueva descendencia para formar una nueva generacin. Ventajas El primer y ms importante punto es que los AG son intrnsecamente paralelos. 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 AG tienen descendencia
Ingeniera Artificial

Algoritmos Genticos

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

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, etc. Evaluando la aptitud de esta cadena particular, un AG 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 AG sobre otros mtodos de resolucin de problemas. Debido al paralelismo que les permite evaluar implcitamente muchos esquemas a la vez, los AG 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 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 mucho 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 AG les permite superar incluso este enorme nmero de posibilidades, y encontrar con xito resultados ptimos o
Ingeniera Artificial

Algoritmos Genticos

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

muy buenos en un corto periodo de tiempo, tras muestrear directamente slo regiones pequeas del vasto paisaje adaptativo. Por ejemplo, un AG desarrollado en comn por ingenieros de General Electric y el Rensselaer Polytechnic Institute 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 AG descubri esta solucin en dos das, en una estacin de trabajo de escritorio tpica en ingeniera. Otra ventaja notable de los AG es que se desenvuelven bien en problemas con un paisaje adaptativo complejo -aqullos en los que la funcin objetivo 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 AG 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. (Koza 2003[42], p. 506) 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. Sin embargo, el cruzamiento es el elemento clave que distingue a los AG 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
Ingeniera Artificial

Algoritmos Genticos

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

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. Este punto est ilustrado en Koza et al. 1999[41], p. 486, donde los autores analizan el problema de sintetizar un filtro de paso bajo utilizando programacin gentica. 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 AG 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 AG 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 AG 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.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Finalmente, una de las cualidades de los AG que, a primera vista, puede parecer un desastre, resulta ser una de sus ventajas: a saber, los AG 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 objetivo para determinar si esos cambios producen una mejora. La virtud de esta tcnica es que permite a los AG 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 caminos a priori, perdiendo as cualquier solucin novedosa que pueda existir. Los AG, 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 AG 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 AG 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.

Desventajas Aunque los AG han demostrado su eficiencia y potencia como estrategia de resolucin de problemas, no son la panacea. Los AG 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 AG 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
Ingeniera Artificial

Algoritmos Genticos

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

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 AG, es definir a los individuos como listas de nmeros -binarios, enteros o realesdonde 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, etc. 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 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 codones 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 objetivo 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 objetivo o se define de manera inexacta, puede que el AG 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). Como por ejemplo: unos
Ingeniera Artificial

Algoritmos Genticos

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

investigadores utilizaron un algoritmo evolutivo en conjuncin con una serie de chips reprogramables, haciendo que la funcin objetivo 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 oscilador, 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 objetivo 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 objetivo, 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 AG 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 elaborada maquinaria celular que comprueba y corrige 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. Igualmente, las aplicaciones diversas y los impresionantes resultados de los AG demuestran que son un campo de estudio poderoso y que merece la pena.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Cules son las limitaciones de los Algoritmos Genticos? 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 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. Cmo Saber si es Posible usar un Algoritmo Gentico? La aplicacin ms comn de los AG ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables. Sin embargo, no todos los problemas pudieran ser apropiados para la tcnica, y se recomienda en general tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla: Su espacio de bsqueda (i.e., sus posibles soluciones) debe de estar delimitado dentro de un cierto rango.
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Debe permitir definir una funcin de aptitud que nos indique que tan buena o mala es una cierta respuesta. Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en el computador. El primer punto es muy importante, y lo ms recomendable es intentar resolver problemas que tengan espacios de bsqueda discretos aunque stos sean muy grandes. Sin embargo, tambin podr intentarse usar la tcnica con espacios de bsqueda continuos, pero preferiblemente cuando exista un rango de soluciones relativamente pequeo. Donde se utilizan especficamente los Algoritmos Genticos Acstica Ingeniera aeroespacial Astronoma y astrofsica Qumica Ingeniera elctrica Mercados financieros Juegos Geofsica Ingeniera de materiales Matemticas y algoritmia Biologa molecular Robtica Ingeniera de sistemas

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Algunas Aplicaciones de los Algoritmos Genticos Como hemos podido observar, el rea de aplicacin de los AG es muy amplia, y en general sus aplicaciones se pueden implementar a muchos de los problemas de la vida cotidiana, de igual forma, se hayan aplicado a diversos problemas y modelos en ingeniara, y en la ciencia en general cabe destacar entre ellos: Optimizacin: Se trata de un campo especialmente abonado para el uso de los AG, por las caractersticas intrnsecas de estos problemas. No en vano fueron la fuente de inspiracin para los creadores estos algoritmos. Los AG se han utilizado en numerosas tareas de optimizacin, incluyendo la optimizacin numrica, y los problemas de optimizacin combinatoria. Programacin automtica: Los AG se han empleado para desarrollar programas para tareas especficas, y para disear otras estructuras computacionales tales como el autmata celular, y las redes de clasificacin. Aprendizaje mquina: Los AG se han utilizado tambin en muchas de estas aplicaciones, tales como la prediccin del tiempo o la estructura de una protena. Han servido asimismo para desarrollar determinados aspectos de sistemas particulares de aprendizaje, como pueda ser el de los pesos en una red neuronal, las reglas para sistemas de clasificacin de aprendizaje o sistemas de produccin simblica, y los sensores para robots. Economa: En este caso, se ha hecho uso de estos Algoritmos para modelizar procesos de innovacin, el desarrollo estrategias de puja, y la aparicin de mercados econmicos. Sistemas inmunes: A la hora de modelizar varios aspectos de los sistemas inmunes naturales, incluyendo la mutacin somtica durante la vida de un individuo y el descubrimiento de familias de genes mltiples en tiempo evolutivo, ha resultado til el empleo de esta tcnica. Ecologa: En la modelizacin de fenmenos ecolgicos tales como las carreras de armamento biolgico, la co-evolucin de parsito-huesped, la simbiosis, y el flujo de recursos. Gentica de poblaciones: En el estudio de preguntas del tipo "Bajo qu condiciones ser viable evolutivamente un gene para la recombinacin?". Evolucin y aprendizaje: Los AG se han utilizado en el estudio de las relaciones entre el aprendizaje individual y la evolucin de la especie. Sistemas sociales: En el estudio de aspectos evolutivos de los sistemas sociales, tales como la evolucin del comportamiento social en colonias de insectos, y la evolucin de la cooperacin y la comunicacin en sistemas multi-agentes. Aunque esta lista no es, en modo
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Aunque esta lista no es, en modo alguno, exhaustiva, s transmite la idea de la variedad de aplicaciones que tienen los AG. Gracias al xito en estas y otras reas, los AG han llegado a ser un campo puntero en la investigacin actual. ALGORITMOS GENTICOS SIMPLES Tipos de Representacin Durante los primeros aos el tipo de representacin utilizado era siempre binario, debido a que se adapta perfectamente al tipo de operaciones y el tipo de operadores que se utilizan en un AG. Sin embargo, las representaciones binarias no son siempre efectivas por lo que se empezaron a utilizar otro tipo de representaciones. En general, una representacin ha de ser capaz de identificar las caractersticas constituyentes de un conjunto de soluciones, de forma que distintas representaciones dan lugar a distintas perspectivas y por tanto distintas soluciones. Podemos considerar tres tipos bsicos de representaciones: Representacin binaria: Cada gen es un valor 1 0. 101101 Representacin entera: Cada gen es un valor entero. 1 0 3 -1 0 4 Representacin real: Cada gen es un valor real. 1,78 2,6 7 0 -1,2 6,5

Ejemplo: Primero considere como se puede usar una cadena de bits para describir una restriccin sobre un atributo, por ejemplo, el atributo cielo con sus tres valores posibles: soleado, nublado, lluvia. Una manera obvia de codificar una restriccin sobre este atributo, consiste en usar una cadena de 3 bits, en donde cada posicin. De la cadena corresponde a un valor en particular. Colocar un 1 en alguna posicin, indica que el atributo puede tomar el valor correspondiente. Por ejemplo, la cadena 010, representa la restriccin cielo = nublado. De manera similar, la cadena 011 representa la restriccin mas general cielo = nublado _ cielo = lluvia. Observe que 111 representa la restriccin ms general posible, indicando que no importa que valor tome el atributo cielo. Dado este mtodo para representar restricciones sobre atributos, las conjunciones de restricciones sobre mltiples atributos pueden representarse por concatenacin. Por ejemplo, considere un segundo atributo, viento, con valores posibles fuerte y dbil. La
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

precondicin de una regla como: (cielo = nublado _ lluvia) ^ (viento = fuerte) puede representarse por la siguiente cadena de bits de longitud 5: cielo viento 011 10 Las post-condiciones, como jugar-tenis? = si, pueden representarse de la misma manera. La regla completa puede describirse concatenando tambin la cadena que representa la post-condicin. Por ejemplo, la regla: Si viento = fuerte Entonces jugar tenis? = si, puede representarse como: cielo viento jugar-tenis? 111 10 10 Los primeros tres bits indican que no nos importa el valor del atributo cielo; los siguientes dos describen la restriccin sobre viento; los dos ltimos bits representan la post-condicin de la regla. Aqu asumimos que jugar-tenis? Puede tomar valores si o no. Esto nos da una representacin donde las reglas que nos interesan se codifican como cadenas de bits de longitud fija. Es til considerar que toda cadena de bits que es sintcticamente valida, representa una hiptesis bien definida. Por ejemplo, en el cdigo anterior, la cadena 111 10 11, representa una regla cuya post-condicin no establece restricciones sobre el atributo jugar tenis?. Para evitar esta posibilidad, se puede usar un cdigo diferente, por ej., para el atributo jugar-tenis? usar un solo bit que indique los valores si o no; o bien, se pueden alterar los operadores genticos para evitar explcitamente la construccin de tales cadenas de bits; o simplemente asignar un valor de adaptacin muy bajo a estas cadenas. Tamao de la Poblacin Una cuestin que se puede plantear es la relacionada con el tamao idneo de la poblacin. Parece intuitivo que las poblaciones pequeas corren el riesgo de no cubrir adecuadamente el espacio de bsqueda, mientras que el trabajar con poblaciones de gran tamao puede acarrear problemas relacionados con el excesivo costo computacional. Goldberg efectu un estudio terico, obteniendo como conclusin que el tamao ptimo de la poblacin para ristras de longitud I, con codificacin binaria, crece exponencialmente con el tamao de la ristra. Este resultado traera como consecuencia que la aplicabilidad de los AG en problemas reales sera muy limitada, ya que resultaran no competitivos con otros mtodos de optimizacin combinatoria. Alander, basndose en evidencia emprica sugiere que un tamao de poblacin comprendida entre l y 21 es suficiente para atacar con xito los problemas por el considerado.
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Poblacin Inicial Habitualmente la poblacin inicial se escoge generando ristras al azar, pudiendo contener cada gen uno de los posibles valores del alfabeto con probabilidad uniforme. Se podra preguntar qu es lo que sucedera si los individuos de la poblacin inicial se obtuviesen como resultado de alguna tcnica heurstica o de optimizacin local. En los pocos trabajos que existen sobre este aspecto, se constata que esta inicializacin no aleatoria de la poblacin inicial, puede acelerar la convergencia del AG. Sin embargo en algunos casos la desventaja resulta ser la prematura convergencia del algoritmo, queriendo indicar con esto la convergencia hacia ptimos locales. La poblacin inicial de un AG puede ser creada de muy diversas formas, desde generar aleatoriamente el valor de cada gen para cada individuo, utilizar una funcin vida o generar alguna parte de cada individuo y luego aplicar una bsqueda local. Funcin Objetivo Dos aspectos que resultan cruciales en el comportamiento de los AG son la determinacin de una adecuada funcin de adaptacin o funcin objetivo, as como la codificacin utilizada. Idealmente nos interesara construir funciones objetivo con ciertas regularidades, es decir funciones objetivo que verifiquen que para dos individuos que se encuentren cercanos en el espacio de bsqueda, sus respectivos valores en las funciones objetivo sean similares. Por otra parte una dificultad en el comportamiento del AG puede ser la existencia de gran cantidad de ptimos locales, as como el hecho de que el ptimo global se encuentre muy aislado. Operador de Seleccin El operador de Seleccin es el encargado de transmitir y conservar aquellas caractersticas de las soluciones que se consideran valiosas a lo largo de las generaciones. El principal medio para que la informacin til se transmita es que aquellos individuos mejor adaptados (mejor valor de funcin de evaluacin) tengan ms probabilidades de reproducirse. Sin embargo, es necesario tambin incluir un factor aleatorio que permita reproducirse a individuos que aunque no estn muy bien adaptados, puedan contener alguna informacin til para posteriores generaciones, con el objeto de mantener as tambin una cierta diversidad en cada poblacin. Algunas de las tcnicas de las cuales se dispone son las siguientes: Ruleta o Seleccin Proporcional: Con este mtodo la probabilidad que tiene un individuo de reproducirse es proporcional a su valor de funcin de evaluacin, es decir, a su adaptacin. En este mtodo se define un rango con las caractersticas de la seleccin
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

por sorteo. El nmero al azar ser un nmero aleatorio forzosamente menor que el tamao del rango. El elemento escogido ser aquel en cuyo rango est el nmero resultante de sumar el nmero aleatorio con el resultado total que sirvi para escoger el elemento anterior. Seleccin por Ranking: Desarrollado por Whitley(1989) consiste en calcular las probabilidades de reproduccin atendiendo a la ordenacin de la poblacin por el valor de adaptacin en vez de atender simplemente a su valor de adecuacin. Estas probabilidades se pueden calcular de diversas formas, aunque el mtodo habitual es el ranking lineal (Baker (1985)). Seleccin por Torneo: Reporta un valor computacional muy bajo debido a su sencillez. Se selecciona un grupo de t individuos (normalmente t = 2, torneo binario) y se genera un nmero aleatorio entre 0 y 1. Si este nmero es menor que un cierto umbral K (usualmente 0,75), se selecciona para reproducirse al individuo con mejor adaptacin, y si este nmero es menor que K, se selecciona, por el contrario, al individuo con peor adaptacin. Operador de Cruce El operador de cruce permite realizar una exploracin de toda la informacin almacenada hasta el momento en la poblacin y combinarla para crear mejores individuos. Dentro de los mtodos habituales destacamos los siguientes: Cruce de un punto: Es el mtodo de cruce ms sencillo. Se selecciona una posicin en las cadenas de los progenitores, y se intercambian los genes a la izquierda de esta posicin. Cruce de n puntos: Es una generalizacin del mtodo anterior. Se seleccionan varias posiciones (n) en las cadenas de los progenitores y se intercambian los genes a ambos lados de estas posiciones. Cruce Uniforme: Se realiza un test aleatorio para decidir de cual de los progenitores se toma cada posicin de la cadena. Cruces para permutacin: Existe una familia de cruces especficas para los problemas de permutacin, siendo algunos de ellos: Cruce de mapeamiento parcial: Toma una subsecuencia del genoma del padre y procura preservar el orden absoluto de los fenotipos -es decir, orden y posicin en el genoma- del resto del genoma lo ms parecido posible de la madre.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Cruce de orden: toma una subsecuencia del genoma del padre y procura preservar el orden relativo de los fenotipos del resto del genoma lo ms parecido posible de la madre. Cruce de ciclo: Tomamos el primer gen del genoma del padre, ponindolo en la primera posicin del hijo, y el primer gen del genoma de la madre, ponindolo dentro del genoma del hijo en la posicin que ocupe en el genoma del padre. El fenotipo que est en la posicin que ocupa el gen del genoma del padre igual al primer gen del genoma de la madre se va a colocar en la posicin que ocupe en el genoma del padre, y as hasta rellenar el genoma del hijo.

Operador de Mutacin La mutacin se considera un operador bsico, que proporciona un pequeo elemento de aleatoriedad en la vecindad (entorno) de los individuos de la poblacin. Si bien se admite que el operador de cruce es el responsable de efectuar la bsqueda a lo largo del espacio de posibles soluciones, tambin parece desprenderse de los experimentos efectuados por varios investigadores que el operador de mutacin va ganando en importancia a medida que la poblacin de individuos va convergiendo (Davis). El objetivo del operador de mutacin es producir nuevas soluciones a partir de la modificacin de un cierto nmero de genes de una solucin existente, con la intencin de fomentar la variabilidad dentro de la poblacin. Existen muy diversas formas de realizar la mutacin, desde la ms sencilla ( Puntual), donde cada gen muta aleatoriamente con independencia del resto de genes, hasta configuraciones ms complejas donde se tienen en cuanta la estructura del problema y la relacin entre los distintos genes. Reemplazo de la Poblacin y Condicin de Parada Cada vez que se aplica el operador de cruce, nos encontramos con un nmero de nuevos individuos (la descendencia) que se han de integrar en la poblacin para formar la siguiente generacin. Esta operacin se puede hacer de diversas formas, pero en general existen tres mtodos fundamentales para realizar el reemplazo: - Cuando el nmero de individuos llega a un cierto nmero, se elimina un subconjunto de la poblacin conteniendo a los individuos peor adaptados. - Cada vez que se crea un nuevo individuo, en la poblacin se elimina el peor adaptado para dejar su lugar a este nuevo individuo. - Cada vez que se crea un nuevo individuo, en la poblacin se elimina aleatoriamente una solucin, independientemente de su adaptacin.
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

En cuanto a el criterio de parada, generalmente viene determinado por criterios a priori sencillos, como un nmero mximo de generaciones o un tiempo mximo de resolucin, o ms eficientemente por estrategias relacionadas con indicadores del estado de evolucin de la poblacin, como por la prdida de diversidad dentro de la poblacin o por no haber mejora en un cierto nmero de iteraciones, siendo por lo general una condicin mixta lo ms utilizado, es decir, limitar el tiempo de ejecucin a un nmero de iteraciones y tener en cuenta algn indicador del estado de la poblacin para considerar la convergencia antes de alcanzar tal limitacin. Otros Operadores Estos operadores no son utilizados en todos los problemas, solamente son empleados 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. Cromosomas de Longitud Variable: 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. 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; se tendra que utilizar los AG para hallar el nmero ptimo de neuronas. En estos casos, se necesitan 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 gen es duplicar uno ya existente, el cul sufre mutacin y se aade al lado del anterior. En este caso, los operadores del AG simple (seleccin, mutacin, cruce) funcionarn de la forma habitual, salvo, claro est, que slo se har cruce en la zona del cromosoma de menor longitud. Operadores de Nicho (Ecolgico): 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 AG 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 Operadores Especializados: En una serie de problemas hay que restringir las nuevas soluciones generadas por los operadores genticos, pues no todas las soluciones
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

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. Transposicin: Similar al cruce y a la recombinacin gentica (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.), 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 Genticos En toda ejecucin de un AG hay que decidir con qu frecuencia se va a aplicar cada uno de los AG; en algunos casos, como en la mutacin o el cruce 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 suelen aplicar con poca frecuencia; la recombinacin se suele aplicar con frecuencia alta. Mtodos de representacin Antes de que un algoritmo gentico pueda ponerse a trabajar en un problema, se necesita un mtodo para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque comn es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dgito de cada posicin representa el valor de algn aspecto de la solucin. Otro mtodo similar consiste en codificar las soluciones como cadenas de enteros o nmeros decimales, donde cada posicin, de nuevo, representa algn aspecto particular de la solucin. Este mtodo permite una mayor precisin y complejidad que el mtodo comparativamente restringido de utilizar slo nmeros binarios, y a menudo ``est intuitivamente ms cerca del espacio de problemas''.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Esta tcnica se utiliz, por ejemplo, en el trabajo de Steffen Schulze-Kremer, que escribi un algoritmo gentico para predecir la estructura tridimensional de una protena, basndose en la secuencia de aminocidos que la componen (Mitchell). El AG de Schulze-Kremer utilizaba nmeros reales para representar los famosos ``ngulos de torsin'' entre los enlaces peptdicos que conectan a los aminocidos. (Una protena est formada por una secuencia de bloques bsicos llamados aminocidos, que se conectan como los eslabones de una cadena. Una vez que todos los aminocidos estn enlazados, la protena se dobla formando una compleja estructura tridimensional, basada en cules aminocidos se atraen entre ellos y cules se repelen. La forma de una protena determina su funcin). Los algoritmos genticos para entrenar a las redes neuronales tambin utilizan a menudo este mtodo de codificacin. Un tercer mtodo consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra, de nuevo, representa un aspecto especfico de la solucin. Un ejemplo de esta tcnica es el mtodo basado en ``codificacin gramtica'' de Hiroaki Kitano, en el que a un AG se le encarg la tarea de evolucionar un sencillo conjunto de reglas llamadas gramtica libre de contexto, que a su vez se utilizaban para generar redes neuronales para una variedad de problemas (Mitchell). La virtud de estos tres mtodos es que facilitan la definicin de operadores que causen los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un nmero una cantidad elegida al azar, o cambiar una letra por otra. Otra estrategia, desarrollada principalmente por John Koza, de la Universidad de Stanford, y denominada programacin gentica, representa a los programas como estructuras de datos ramificadas llamadas rboles (Koza), p. 35). En este mtodo, los cambios aleatorios pueden generarse cambiado el operador o alterando el valor de un cierto nodo del rbol, o sustituyendo un subrbol por otro.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Funcionamiento Los algoritmos entre el conjunto de soluciones de un problema, llamado fenotipo, y el conjunto de individuos de una poblacin natural, codificando la informacin de cada solucin en una cadena, generalmente binaria, llamada cromosoma. Los smbolos que forman la cadena son llamados los genes. Cuando la representacin de los cromosomas se hace con cadenas de dgitos binarios se le conoce como genotipo. Los cromosomas evolucionan a travs de iteraciones, llamadas generaciones. En cada generacin, los cromosomas son evaluados usando alguna medida de aptitud. Las siguientes generaciones (nuevos cromosomas), operadores genticos, de sobrecruzamiento y de mutacin. Cundo usar estos algoritmos Los algoritmos genticos son de probada eficacia en caso de querer calcular funciones no derivables (o de derivacin muy compleja) aunque su uso es posible con cualquier funcin. Deben tenerse en cuenta tambin las siguientes consideraciones:

Si la funcin a optimizar tiene muchos mximos/mnimos locales se requerirn ms iteraciones del algoritmo para "asegurar" el mximo/mnimo global. Si la funcin a optimizar contiene varios puntos muy cercanos en valor al ptimo, solamente podemos "asegurar" que encontraremos uno de ellos (no necesariamente el ptimo).

Funcionamiento de un algoritmo gentico bsico Un algoritmo gentico puede presentar diversas variaciones, dependiendo de cmo se aplican los operadores genticos (cruzamiento, mutacin), de cmo se realiza la seleccin y de cmo se decide el reemplazo de los individuos para formar la nueva poblacin. En general, el pseudocdigo consiste de los siguientes pasos:

Inicializacin: Se genera aleatoriamente la poblacin inicial, que est constituida por un conjunto de cromosomas los cuales representan las posibles soluciones del problema. En caso de no hacerlo aleatoriamente, es importante garantizar que dentro de la poblacin inicial, se tenga la diversidad estructural de estas soluciones para tener una representacin de la mayor parte de la poblacin posible o al menos evitar la convergencia prematura. Evaluacin: A cada uno de los cromosomas de esta poblacin se aplicar la funcin de aptitud para saber qu tan "buena" es la solucin que se est codificando.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Condicin de trmino El AG se deber detener cuando se alcance la solucin ptima, pero sta generalmente se desconoce, por lo que se deben utilizar otros criterios de detencin. Normalmente se usan dos criterios: correr el AG un nmero mximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la poblacin. Mientras no se cumpla la condicin de trmino se hace lo siguiente:
o

Seleccin Despus de saber la aptitud de cada cromosoma se procede a elegir los cromosomas que sern cruzados en la siguiente generacin. Los cromosomas con mejor aptitud tienen mayor probabilidad de ser seleccionados. Recombinacin La recombinacin es el principal operador gentico, representa la reproduccin sexual, opera sobre dos cromosomas a la vez para generar dos descendientes donde se combinan las caractersticas de ambos cromosomas padres. Mutacin modifica al azar parte del cromosoma de los individuos, y permite alcanzar zonas del espacio de bsqueda que no estaban cubiertas por los individuos de la poblacin actual. Reemplazo una vez aplicados los operadores genticos, se seleccionan los mejores individuos para conformar la poblacin de la generacin siguiente

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Aplicaciones

Diseo automatizado, incluyendo investigacin en diseo de materiales y diseo multiobjetivo de componentes automovilsticos: mejor comportamiento ante choques, ahorros de peso, mejora de aerodinmica, etc.

Diseo automatizado de equipamiento industrial. Diseo automatizado de sistemas de comercio en el sector financiero. Construccin de rboles filogenticos. Optimizacin de carga de contenedores. Diseo de sistemas de distribucin de aguas. Diseo de topologas de circuitos impresos. Diseo de topologas de redes computacionales. En Teora de juegos, resolucin de equilibrios. Anlisis de expresin de genes. Aprendizaje de comportamiento de robots. Aprendizaje de reglas de Lgica difusa. Anlisis lingstico, incluyendo induccin gramtica, y otros aspectos de Procesamiento de lenguajes naturales, tales como eliminacin de ambigedad de sentido.

Infraestructura de redes de comunicaciones mviles. Optimizacin de estructuras moleculares. Planificacin de produccin multicriteria. Prediccin. Aplicacin de Algoritmos Genticos al Dilema del Prisionero Iterado Optimizacin de sistemas de compresin de datos, por ejemplo, usando wavelets. Prediccin de Plegamiento de protenas. Optimizacin de Layout. Prediccin de estructura de ARN. En bioinformtica, Alineamiento mltiple de secuencias. Aplicaciones en planificacin de procesos industriales, incluyendo planificacin job-shop.

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Seleccin ptima de modelos matemticos para la descripcin de sistemas biolgicos.

Manejo de residuos slidos. Ingeniera de software. Construccin de horarios en grandes universidades, evitando conflictos de clases. Problema del viajante. Hallazgo de errores en programas. Optimizacin de produccin y distribucin de energa elctrica. Diseo de redes geodsicas (Problemas de diseo). Calibracin y deteccin de daos en estructuras civiles.

Conclusin 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. Veamos. 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, pero sus salidas no son lo bastante uniformes como se requiere; producen pequeas
Algoritmos Genticos Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

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?

Algoritmos Genticos

Ingeniera Artificial

Universidad Nacional de Trujillo Sede Valle Jequetepeque

-Ingeniera de Sistemas VIII-

Lincografa http://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico http://the-geek.org/docs/algen/ http://www.youtube.com/watch?v=KdrfFFWwWiU

Iniciar Poblacin

Evaluacin Inicial

Seleccin Condicin Salida Cross-over

Mutacin

Evaluar

Solucin Final

Algoritmos Genticos

Ingeniera Artificial

Вам также может понравиться