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

Desarrollos Inteligentes

Algoritmos Genticos

CAPTULO

ALGORITMOS GENTICOS
Y cre Dios al ser humano a su imagen, a imagen de Dios los cre, varn y mujer los cre, y los bendijo dicindoles: Crezcan y multiplquense.. Gnesis 1.27. A esta conservacin de las variaciones y diferencias individualmente favorables y a la destruccin de las que son perjudiciales, la he llamado seleccin natural o supervivencia de los ms aptos Charles Darwin.

Objetivo:
El estudiante comprender los conceptos fundamentales de algoritmos genticos, as como sus aplicaciones.

Desarrollos Inteligentes

Algoritmos Genticos

3.1 Fundamentos de gentica y evolucin. Una manera de ubicar la tcnica de los algoritmos genticos puede ser en el campo de la computacin bio-inspirada (Mateos, 2003), la cual se basa en establecer analogas con sistemas naturales o sociales para disear mtodos heursticos no determinsticos de bsqueda, de aprendizaje, de imitacin de comportamiento, etc. Los algoritmos bio-inpirados (ABs) permiten resolver problemas modelando un fenmeno de la naturaleza, presentan con frecuencia una estructura paralela (mltiples agentes), y son adaptativos (tienen realimentacin con el entorno). Algunos modelos de computacin bio-inspirada son: Algoritmos evolutivos Redes neuronales Algoritmos inmunolgicos Algoritmos basados en inteligencia de enjambres

La computacin evolutiva es la rama de la inteligencia artificial que engloba a todas aquellas tcnicas de resolucin de problemas basadas en la evolucin de las especies y la supervivencia del ms apto, parte del hecho observado en la naturaleza en que los seres vivos presentan una capacidad de resolver los problemas de supervivencia mediante el mecanismo de la evolucin natural, la cual se produce casi en la generalidad como consecuencia de dos procesos primarios: la seleccin natural y la reproduccin (cruce). En la computacin evolutiva encontramos a los algoritmos genticos (genetic algorithms), las estrategias evolutivas (evolution strategies) y la programacin evolutiva (evolutionary programming) entre otros.

Desarrollos Inteligentes

Algoritmos Genticos

Los algoritmos genticos (AGs), se basan en el proceso gentico de los seres vivos, por lo cual resulta conveniente revisar algunos aspectos fundamentales de la evolucin y la gentica necesarios para clarificar los principios de los AGs. Se considera que la evolucin biolgica es una derivacin de las especies de organismos vivientes, de otras ya existentes, a travs de un proceso de cambio ms o menos gradual y continuo. (http://www.molwick.com/es/evolution/140-genetica-evolucion.html). La teora de la evolucin biolgica en su forma macroscpica ( es decir de los seres vivos como el hombre) que sirve como base para los AGs es la Darwinista, considera como motor de la evolucin la adaptacin de los seres al medio ambiente, derivado del efecto combinado de la seleccin natural y de las mutaciones aleatorias. Casi todas las especies estn formadas por una o ms poblaciones de individuos que se cruzan entre s, formando una comunidad de intercambio de material gentico (genes). En el interior de esas poblaciones se da el hecho de que ciertos individuos dejan ms descendientes que otros, lo que implica que sus genes o alelos estarn mejor representados en la siguiente generacin, en conjunto habr ocurrido un cambio generacional en la frecuencia de aparicin de los genes, es decir una evolucin. Qu procesos hacen que unos alelos cambien de frecuencia entre generaciones?, esos son los factores de evolucin como la mutacin, la deriva gentica, la migracin y la seleccin natural. (http://biologia.uab.es/divulgacio/genpob.html#factores) La mutacin es un cambio estable y heredable en el material gentico, altera la secuencia del ADN introduciendo nuevas variantes y aumentando la diversidad de los genes, la tasa de mutacin es la frecuencia en la que se producen nuevas mutaciones en ese gen en cada generacin, una alta tasa de mutacin implica un mayor potencial de adaptacin a un cierto cambio ambiental, pues permite explorar ms variantes genticas aumentando la probabilidad de obtener la

Desarrollos Inteligentes

Algoritmos Genticos

variante ms adecuada para ese nuevo ambiente. Las mutaciones en s no tienen direccin alguna en relacin al cambio, se pueden considerar por ejemplo como la alteracin al azar de una letra por otra en un texto. Cada especie tiene una tasa de mutacin propia que ha sido establecida por la seleccin natural, para que la especie pueda enfrentar de una mejor manera los compromisos contrapuestos de estabilidad- cambio que le impone su ambiente. Para una cierta poblacin, en cada generacin se produce un sorteo de genes durante la transmisin de gametos de los padres a los hijos conocida como deriva gentica, el que un individuo de la nueva generacin posea un alelo u otro es una cuestin de azar, durante este proceso cambiante bien podra suceder que un tipo de alelo no se transmita de una generacin a otra, esto producira una prdida definitiva de ese alelo, lo cual constituye un efecto contrario a la mutacin. El intercambio de individuos de una poblacin a otra constituye la migracin de genes entre dos poblaciones, integrando as otro factor de cambio gentico. La seleccin natural es la reproduccin diferencial de unas variantes genticas respecto de otras, se puede establecer como el proceso que resulta del cumplimiento de las tres condiciones siguientes: (1) variacin fenotpica entre los individuos de una poblacin, (2) supervivencia o reproduccin diferencial asociada a la variacin, y (3) herencia de la variacin. Esto se puede clarificar mediante un ejemplo, suponga que hay una poblacin de polillas cuyos miembros pueden ser de color oscuro o claro, hay por tanto variacin fenotpica, el fenotipo es el conjunto de caractersticas que determinan a un individuo en particular, a la informacin que contiene el fenotipo se denomina genotipo. Al seguir a ambos tipos de polilla a lo largo de su vida, se ve que en promedio las formas oscuras dejan ms descendientes que las claras, es decir que tienen mayor xito reproductor que las claras lo que constituye la segunda condicin. Pero esta ventaja de la forma oscura no tendra ninguna trascendencia

Desarrollos Inteligentes

Algoritmos Genticos

si la variante oscura no fuera hereditaria, por lo cual es necesario agregar la tercera condicin que es la herencia.

3.2 Fundamentos de algoritmos genticos. Los principios bsicos de los algoritmos genticos fueron establecidos por J. Holland en 1975, son mtodos adaptivos que pueden usarse para resolver diferentes tipos de problemas como pueden ser los de bsqueda y optimizacin. Su operacin esta basada en los procesos genticos de la evolucin de las especies naturales, segn se vio en la seccin anterior, utilizan una analoga en su accionar con estos, a continuacin se describir con mayor detalle esta correspondencia. (http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temageneticos.pdf) En la naturaleza se pueden observar poblaciones de individuos que compiten entre s en la bsqueda de recursos, como son el agua, la comida, y un territorio, tratan de preservarse en un ambiente cambiante, y para ello se reproducen produciendo as una nueva generacin a partir de la poblacin actual. Los individuos que tienen ms xito en sobrevivir y atraer compaeros, tienen una mayor probabilidad de generar un mayor nmero de descendientes, la combinacin entre buenas caractersticas de los ancestros producir individuos que se adapten en forma ms eficiente al medio ambiente, produciendo as la evolucin de la poblacin con individuos mejor preparados para superar los cambios que llegase a presentar el medio en que viven. De esta manera, las especies evolucionan logrando obtener unas caractersticas (genes) que permiten a los organismos adaptarse mejor al entorno en que viven. En la tcnica de la solucin de problemas mediante AGs, de forma muy similar a la naturaleza, se trabaja con una poblacin de individuos, cada uno de los cuales representa una solucin para el problema a resolver, se tiene una funcin de efectividad o rendimiento que permite evaluar a cada individuo en relacin con la bondad de esa solucin, en la evolucin biolgica esto equivaldra al grado que tiene un organismo para competir por un recurso o bien para adaptarse

Desarrollos Inteligentes

Algoritmos Genticos

a un medio. Cuanto mejor sea la evaluacin de un individuo segn su funcin de efectividad, mayor deber ser la probabilidad de ser seleccionado para reproducirse, de manera similar a la seleccin natural, cruzando material gentico con otro individuo seleccionado de igual forma, emulando as la deriva gentica en organismos vivos. Como resultado de este cruce se obtienen descendientes que comparten algunas de las caractersticas de sus padres (herencia), conformando as individuos que integrarn una nueva generacin. Obviamente que los individuos que observan un valor bajo en su evaluacin, tendrn una probabilidad tambin baja de ser seleccionados para la reproduccin, sin embargo podrn ser seleccionados aunque con menos frecuencia, ya que el material gentico que contienen pudiera ser una parte importante de una buena solucin y no debiera perderse. Continuando con el proceso descrito anteriormente, se produce una nueva poblacin, la cual sustituye a la anterior conformando otra generacin, la que se espera la integren individuos o soluciones con caractersticas mejores. A lo largo de las generaciones, se van mejorando las caractersticas de la poblacin cuyos individuos representan diferentes alternativas de solucin, explorando as el espacio solucin, acercndose cada vez ms a una ptima. Si a medida que se avanza en el proceso de operacin de un algoritmo gentico, se tiene que la poblacin no mejora, pudiera ser necesario aplicar mutacin o migracin, la primera mediante la modificacin aleatoria de los valores de algunas caractersticas (genes) de los individuos, la segunda permitiendo de alguna manera que individuos de otras poblaciones reemplacen a algunos de la poblacin actual. Es conveniente destacar el hecho de que independientemente de que se degenere o no la poblacin se puede aplicar sistemticamente los dos ltimos factores de evolucin mencionados. No se garantiza que un algoritmo gentico encuentre la solucin ptima de un problema, sin embargo de acuerdo a la experiencia, se obtienen soluciones con cierto grado de acercamiento a la ptima en un tiempo razonablemente

Desarrollos Inteligentes

Algoritmos Genticos

aceptable, sobre todo para aquellos problemas en los que no se tienen mtodos especficos de solucin. Los algoritmos genticos codifican las posibles soluciones en estructuras llamadas cromosomas, que representan el material gentico de un individuo, es necesario un mtodo que permita obtener ese cdigo, de tal manera que pueda ser procesada la informacin gentica en una computadora, es comn utilizar secuencias de dgitos binarios para representar los cromosomas, en donde el valor de cada dgito es la informacin de una caracterstica de la solucin. Otro mtodo consiste en usar cadenas de nmeros enteros, decimales en donde cada posicin representa un aspecto particular de la solucin, as mismo se pueden utilizar cadenas de letras. Mediante la aplicacin de un conjunto de operadores genticos sobre la poblacin se va refinando gradualmente la solucin hasta alcanzar un resultado que cumpla con las condiciones requeridas. Los AGs se diferencian de otros algoritmos de optimizacin o bsqueda en cuatro aspectos (Goldberg David E., 1989): 1. Trabajan con la codificacin del conjunto de parmetros, no con los parmetros mismos. 2. Manejan una poblacin de puntos solucin, no un solo punto. 3. Utilizan informacin de eficiencia (funcin objetivo), no derivadas o conocimiento auxiliar. 4 Usan reglas de transicin probabilsticas, no determinsticas.

Desarrollos Inteligentes

Algoritmos Genticos

3.3 Descripcin de un algoritmo gentico. Hasta ahora se ha establecido un conjunto de fundamentos o principios de los algoritmos genticos, que permiten crear un modelo conceptual de ellos, a efecto de estar en posibilidad de comprender su actuacin o proceso, siendo ahora necesario entrar a un nivel mayor de detalle para su implementacin computacional, en la presente seccin se aborda esta situacin. La mejor manera para describir un algoritmo gentico es utilizando un modelo general, que incluya los pasos y sus estructuras de control principales, al cual se le denomina algoritmo gentico cannico, como se ilustra en la figura 3.3.1.

Figura 3.3.1 Algoritmo gentico cannico

Desarrollos Inteligentes

Algoritmos Genticos

El primer paso en la aplicacin de un AG consiste en la generacin de una poblacin inicial. En general esta poblacin se genera de manera aleatoria, y el tamao de dicha poblacin (la cantidad de individuos que la compone) es un parmetro que se define al inicio. Una vez generada esta poblacin se debe evaluar la aptitud (fitness) de cada individuo, la cual de alguna manera indica el logro del objetivo. Si el criterio de optimizacin es alcanzado, se termina el proceso obteniendo la solucin con el mejor individuo, si no se logra cumplir con tal criterio se contina aplicando los operadores de seleccin, cruce y mutacin. El operador de seleccin es el encargado de decidir cuales individuos contribuirn en la formacin de la prxima generacin de individuos. Este mecanismo como ya se indic simula el proceso de seleccin natural, forma una poblacin intermedia, que esta compuesta por los individuos con mayor aptitud de la generacin actual. El siguiente operador es el de cruce o cruza, su funcin es recombinar el material gentico. Se toman aleatoriamente dos individuos que hayan sobrevivido al proceso de seleccin y se recombina su material gentico creando uno o ms descendientes, que pasan a la siguiente poblacin. Este operador se aplica tantas veces como sea necesario para formar la nueva poblacin. La ltima tarea en este paso consiste en la aplicacin del operador de mutacin. Este operador, que en general acta con muy baja probabilidad, modifica algunos genes del cromosoma, posibilitando de esta manera la bsqueda de soluciones alternativas. Una vez finalizado el proceso de seleccin, cruza y mutacin se obtiene la siguiente generacin, la cual ser evaluada, repitindose el ciclo descrito previamente. Tras cada iteracin la calidad de la solucin generalmente va incrementndose, y los individuos representan mejores soluciones al problema.

Desarrollos Inteligentes

Algoritmos Genticos

Al algoritmo detallado anteriormente se lo conoce como algoritmo gentico cannico o sencillo, y es la forma ms utilizada. Sin embargo, en algunas implementaciones particulares de AGs se pueden agregar nuevos operadores. En todos los casos, la forma en que se implementen esos operadores variar de acuerdo a las caractersticas propias del problema. A continuacin se ilustra la aplicacin del algoritmo gentico cannico con un ejemplo adaptado de (Goldberg David E., 1989). El problema consiste en encontrar el valor de la variable x que produce el mximo valor de la funcin f(x) =40x- x2, sobre el intervalo para x en [0,1,2,...,31]. Para empezar es necesario generar una poblacin inicial integrada por un cierto nmero de individuos, nos encontramos con el problema de la representacin del cromosoma de cada individuo, supongamos que decidimos utilizar un cdigo binario (0,1), de longitud 5, pues el mximo valor de x es 31 , cuyo cdigo sera el tren de bits 11111, considerando una poblacin de cuatro individuos, y obteniendo al azar los cromosomas de los individuos, podemos evaluarlos y determinar su probabilidad de seleccin para la reproduccin, como se muestra en la tabla 3.3.1.

________________________________________________________________ Individuo cadena valor de x evaluacin probabilidad probabilidad No. (fenotipo) (genotipo) f(x) seleccin acumulada 1 00111 7 231 0.196 0.196 2 11101 29 319 0.270 0.466 3 11001 25 375 0.318 0.784 4 01000 8 256 0.216 1.0 Tabla 3.3.1 Poblacin inicial obtenida en el ejemplo del algoritmo cannico. En la tabla 3.3.1 se obtuvieron los valores de la probabilidad de seleccin, dividiendo el valor especfico de f(x) para cada individuo, entre la sumatoria de los cuatro valores de f(x). De acuerdo con el algoritmo, y observando que ningn integrante de la poblacin actual es el ptimo, se contina con la seleccin de los individuos 10

Desarrollos Inteligentes

Algoritmos Genticos

para la reproduccin, es decir dos parejas. Para esto solamente es requerido generar cuatro nmeros aleatorios entre [0,1], suponiendo que los nmeros 0.41, 0.18, 0.63, y 0.26 son los obtenidos, los cuales a partir de la ltima columna de la tabla 3.3.1, corresponden a los individuos 2, 1, 3, 2 respectivamente, por lo que la primera pareja la integraran los individuos 2 y 1, la segunda pareja la forman los individuos 3 y 2. Con estas dos parejas se puede generar la poblacin 1, o sea la generacin siguiente. El algoritmo indica que se debe aplicar el operador cruza, para ello es necesario determinar los puntos de cruce, es decir la posicin del bit en donde se efectuar el corte de los cromosomas de los padres, procediendo de la misma manera que en la seleccin se generarn dos enteros aleatorios en el rango [1,4], sean por ejemplo los enteros 2 y 3. Finalmente se aplicar la mutacin, se debe definir una probabilidad de mutar Pm cercana a cero, sea por ejemplo 0.01, generando 20 nmeros aleatorios entre [0,1], uno para cada bit de la poblacin, para este caso se tienen los nmeros: 0.82, 0.84, 0.12, 0.60, 0.57, 0.51, 0.16, 0.59, 0.37, 0.01, 0.24, 0.03, 0.85, 0.17, 0.39, 0.16, 0.88, 0.72, 0.13, 0.75. Se observa que solamente se debe mutar el ltimo bit del segundo individuo.

_____________________________________________________________ Individuo Punto Descendiente Nueva poblacin x f(x) seleccionado de cruce Descend. mutados 2 11101 2 11111 11111 31 279 1 00111 2 00101 10101 21 399 3 11001 3 11101 11101 29 319 2 11101 3 11001 11001 25 375 ____________________________________________________________ Tabla 3.3.2 Poblacin en tiempo 1. En la tabla 3.3.2 se muestra la nueva poblacin obtenida, con sus integrantes ya evaluados. Si se comparan ambas poblaciones, se podr observar que en cada una se tiene un mayor valor de bondad de 375, sin embargo en la poblacin inicial la suma de retribuciones es de 1181, mientras que en la nueva se obtiene

11

Desarrollos Inteligentes

Algoritmos Genticos

una suma de 1372, lo que indica que en trminos generales se ha mejorado el rendimiento de la poblacin. Este proceso se debiera continuar por un cierto nmero de generaciones, hasta llegar a un valor de convergencia del mximo valor de f(x), el que debiera aproximarse al valor ptimo de la funcin.

3.4 Componentes de un algoritmo gentico. En este momento el lector ya puede tener un concepto ms claro sobre los AGs, sin embargo se requiere ahora efectuar un estudio ms completo de sus componentes, de tal manera que se haga factible la posibilidad de resolver problemas mediante su implementacin en una computadora. Los componentes caractersticos de los algoritmos genticos son los siguientes: La definicin del problema La representacin de la solucin del problema La decodificacin del cromosoma La evaluacin de un individuo Los operadores evolutivos: Seleccin, cruce y mutacin (Mateos Alfonso, 2003) Los cuatro primeros se tratarn en esta seccin, el ltimo se ver en la siguiente seccin.

3.4.1 Definicin del problema. Los problemas complejos de bsqueda y optimizacin, en donde se tienen diferentes conjuntos de variables que deben ser combinadas para su solucin, y aquellos de mltiples restricciones con espacios de bsqueda muy grandes, conforman el campo de aplicacin de los AGs. No requieren informacin 12

Desarrollos Inteligentes

Algoritmos Genticos

adicional sobre optimizacin, por lo que pueden tomar diferentes tipos de funciones objetivo y todo tipo de restricciones lineales o no lineales definidas sobre espacios discretos, continuos o combinados (Mateos Alfonso, 2003). La flexibilidad que muestran en su estructura y su forma de operar, los AGs se significan como una alternativa excelente para la resolucin de problemas, sobre todo en los que no se tiene una tcnica especfica de solucin, o bien se desea explorar soluciones globales en espacios demasiado grandes.

3.4.2

Representacin de la solucin.

Los algoritmos genticos trabajan manipulando cromosomas, que son estructuras que codifican las distintas soluciones de un determinado problema. La forma en que se codifican los cromosomas es dependiente de cada problema en particular, y suele variar de problema en problema. Un cromosoma esta compuesto por un conjunto de genes. Cada gen representa una caracterstica particular del individuo y ocupa una posicin determinada en el cromosoma, llamada locus. A cada uno de los valores que puede tomar un gen se lo conoce como alelo. Es importante destacar dos conceptos que muchas veces suelen confundirse: genotipo y fenotipo. El genotipo es el conjunto de genes de un individuo, que representan la descripcin gentica del individuo. El fenotipo es la forma en que se expresa el genotipo, como resultado de la interaccin con su entorno. La morfognesis es el proceso de decodificar el genotipo para producir un fenotipo. Una cuestin a resolver cuando se disean algoritmos evolutivos es la forma de codificar los genes. Estos se pueden representar como cadenas binarias, nmeros enteros, nmeros reales, etc. cadenas binarias por varios motivos: En general se utilizan las

13

Desarrollos Inteligentes a)

Algoritmos Genticos

Cualquier parmetro se puede codificar como una cadena de bits. Una

cadena de bits permite expresar valores booleanos, enteros, reales, etc. b) La codificacin binaria se puede ajustar a cualquier problema. Por este motivo la mayor parte de los trabajos tericos se basa en este esquema de codificacin. c) El uso de cadenas de bits permite contar con gran cantidad de herramientas de anlisis. Las cadenas de bits son fciles de manipular. El desarrollo de operadores genticos es simple y eficiente. Sin embargo, las caractersticas propias del problema podran llevar a la utilizacin de otro esquema de codificacin. En dicho caso ser necesario desarrollar operadores genticos que se adapten al esquema seleccionado. Los algoritmos genticos trabajan sobre una poblacin de individuos, en donde cada uno representa una posible solucin. La poblacin es un concepto muy importante en los algoritmos genticos y existen dos cuestiones fundamentales a resolver: como generar la primera poblacin, y cual debe ser el tamao de la poblacin. La poblacin inicial debe poseer la mayor diversidad posible. Idealmente, la poblacin inicial debera contener todos los posibles valores (alelos) que pueda tomar un gen. De esta manera se asegurara una exploracin completa del espacio de bsqueda. En la prctica, esta situacin no suele ser factible por lo que la primera poblacin se genera comnmente de manera azarosa, asignndole aleatoriamente a cada gen uno de los posibles alelos. De esta manera se asegura la diversidad de alelo por gen. En algunos casos se pueden utilizar heursticas para la generacin de la poblacin inicial, las que permiten obtener un punto de partida ms prximo a la solucin del problema. En estos casos, es importante que la heurstica asegure la diversidad mencionada. De lo contrario el algoritmo

14

Desarrollos Inteligentes

Algoritmos Genticos

gentico no ser capaz de realizar una bsqueda completa sobre el espacio de soluciones. El tamao de la poblacin no es problema crtico. Si el tamao de la poblacin es muy grande se realizar una exploracin del espacio de bsqueda ms rpida en trminos de generaciones. Sin embargo, el tiempo necesario para obtener una nueva generacin a partir de la generaron actual ser mayor, dado que se estarn procesando individuos innecesarios. Si el tamao de la poblacin es muy chico podra llegar a darse el caso en que la poblacin converja rpidamente a una solucin que no sea lo suficientemente buena. En la practica se suelen utilizar poblaciones de 20 individuos, pudindose aumentar el mismo en base a la complejidad del problema o a la calidad de la solucin requerida. En algunos casos se utiliza un tamao de poblacin inicial, el cual se va incrementando a medida que la poblacin tiende a ser homognea.

3.4.3 Decodificacin del cromosoma. La cadena binaria de caracteres del cromosoma representa un valor real candidato a ser una solucin para el problema, dicho valor debe ser obtenido a partir de esta cadena que etiqueta un nmero dentro del intervalo fijado inicialmente. La decodificacin es el proceso inverso al de la codificacin, de tal manera que dado un mtodo, automticamente se define el otro.

3.4.4

Evaluacin de un individuo.

El uso de los conceptos de funcin de evaluacin y funcin de aptitud se suelen utilizar como sinnimos. Sin embargo, ambos conceptos son diferentes, y es conveniente hacer una distincin entre ellos. La funcin de evaluacin, o funcin objetivo, provee una medida de la ejecucin del conjunto de parmetros. Indica que tan buena es la solucin obtenida tras la aplicacin de un conjunto de parmetros, independientemente de

15

Desarrollos Inteligentes

Algoritmos Genticos

la aplicacin de esta funcin sobre otro conjunto de parmetros. En general, esta medida se obtiene tras la decodificacin de un cromosoma en el conjunto de parmetros que representa. Por su parte, la funcin de adaptacin siempre esta definida con respecto al resto de los individuos de la poblacin. Indica que tan buena (o mala) es una solucin comparada con el resto de las soluciones obtenidas hasta el momento. El valor obtenido por esta funcin se traduce, tras la aplicacin del operador de seleccin, en oportunidades de reproduccin. Aquellos que tengan mayor aptitud tendrn mayores posibilidades de reproducirse y transmitir su material gentico a la prxima generacin.

3.5 Operadores evolutivos. La seleccin es el operador evolutivo por naturaleza, mediante l se seleccionan a los individuos ms aptos que deben copiarse o reproducirse para la siguiente generacin. El siguiente operador gentico se llama cruce o cruza, que consiste en tomar a dos individuos ya seleccionados e intercambiar entre ellos segmentos de su cdigo gentico, produciendo una descendencia de hijos heredando caractersticas de sus padres y mejorando as su aptitud. El tercer operador es la mutacin, que al igual que una mutacin en los seres vivos, cambia un gen por otro, o bien alterando puntos concretos del cdigo de un individuo. En las siguientes secciones se estudiarn estos operadores con mayor profundidad.

16

Desarrollos Inteligentes 3.5.1 Seleccin.

Algoritmos Genticos

Este proceso de seleccin de candidatos a reproducirse suele realizarse de forma probabilstica, lo cual implica que todos los individuos tienen posibilidades de ser seleccionados (an los menos aptos). En los AGs las tcnicas de seleccin pueden clasificarse en tres grandes grupos (Coello, 2001): - Seleccin proporcional - Seleccin mediante torneo - Seleccin de estado uniforme La seleccin proporcional Describe a un grupo de esquemas de seleccin propuestos por Holland, en los cuales se eligen individuos de acuerdo a su contribucin de aptitud con respecto al total de la poblacin, los grupos que incluye son: - La ruleta - Sobrante estocstico - Universal estocstica - Muestreo determinstico Solamente se estudiar la ruleta ya que permite ilustrar la manera de realizar esta operacin gentica. La seleccin por ruleta Esta tcnica fue propuesta por DeJong, la cual ha sido ms frecuentemente utilizada debido a su simplicidad y popularidad, ya que es la referencia inicial dada por Goldberg en su texto (Goldberg, 1998). Los pasos de este algoritmo son los siguientes: 1. Calcular la suma T de los valores esperados (Ve) de la aptitud de los individuos

17

Desarrollos Inteligentes 2. Repetir N veces (N es el tamao de la poblacin) - Generar un nmero aleatorio r entre 0 y T

Algoritmos Genticos

- Ciclar a travs de los individuos de la poblacin sumando los valores esperados hasta que la suma sea mayor o igual a r. - El individuo que haga que sta suma exceda el lmite es el seleccionado. Cada individuo tiene un valor de aptitud obtenido en el paso de evaluacin de la funcin objetivo: f ( i) para i = 1 hasta N.

Se calcula la suma de aptitudes: N Suma aptitudes = f (i) i=1 _ Se obtiene el valor f = Suma aptitudes / N Se calcula el valor esperado Ve(i): _ Ve(i) = f(i) / f Se obtiene la suma de los valores esperados Ve(i): N T = Ve(i) i =1 Se genera un nmero aleatorio r [0.0, T] El individuo seleccionado pasa a la siguiente generacin, repitindose el procedimiento tantas veces como sea necesario hasta completar la siguiente generacin. Al contener una componente aleatoria, la cantidad de copias de un individuo que efectivamente pasan a la siguiente generacin puede variar de la cantidad de copias esperadas.

18

Desarrollos Inteligentes 3.5.2 Cruce.

Algoritmos Genticos

Las tcnicas de cruza bsicas suelen disearse para aplicarse a la representacin binaria, pero pueden generalizarse a otro tipo de representacin mediante algunas adaptaciones, las tres tcnicas bsicas son (Coello, 2001) - Cruza de un punto - Cruza de dos puntos (o multipunto) - Cruza uniforme Cruza de un punto En esta variante del operador de cruza se toma un punto de cruza, luego, a un hijo se le asignan todos los genes del padre ubicados a la izquierda del punto de cruza, y todos los genes de la madre ubicados a la derecha del punto de cruza. El segundo hijo es el complemento del primero. La Figura 3.5.1 muestra un ejemplo de cruza simple en el cual se toma como punto de cruza el primero de ellos.

19

Desarrollos Inteligentes

Algoritmos Genticos

Figura 3.5.1 Cruza de un punto

Cruza Multipunto Esta variante del operador de cruza es similar al operador de cruza simple, slo que se toman n puntos de cruza, El valor de n = 2 es el ms comn. Cada hijo recibe los genes entre dos puntos de cruza sucesivos de cada uno de los padres, de manera intercalada. Cabe destacar que la cruza simple es un caso particular de la cruza multipunto, con un nico punto de cruza.

Cruza Uniforme Se trata de una cruza de n puntos, pero el nmero de puntos no se fija previamente. Tambin se puede optar por asignar aleatoriamente los pesos. Cada hijo tiene una probabilidad de 0.5 de recibir los genes de su padre y por ende de recibirlos de su madre.

20

Desarrollos Inteligentes

Algoritmos Genticos

3.5.3

Mutacin.

Este operador en los algoritmos genticos cannicos se suele considerar como de menor importancia, es tema de debate e investigacin en la comunidad de computacin evolutiva. La mutacin binaria es el tipo de mutacin tradicionalmente utilizado en el algoritmo gentico cannico, y consiste en invertir un gen seleccionado aleatoriamente. Dada la representacin binaria del gen, se invierte el bit que lo representa con una determinada probabilidad llamada probabilidad de mutacin. Por ejemplo: Antes Despus 10101010 10111010

Mutacin por insercin Se selecciona un gen en forma arbitraria y se le inserta en una posicin arbitraria. Por ejemplo: Sea el individuo: 8 7 6 0 4 3 2 5

Si elegimos la posicin 6 de izquierda a derecha y movemos ese valor a la posicin 2, entonces se tendr el individuo mutado de la siguiente forma: Individuo mutado: 8 3 7 6 0 4 2 5

Mutacin por desplazamiento Es una generalizacin de la mutacin por insercin, en vez de mover un solo valor se mueven varios. Mutacin adaptativa por temperatura ascendente La probabilidad de mutacin se va incrementando a medida que transcurren las generaciones. El objetivo de este aumento es mantener la diversidad de

21

Desarrollos Inteligentes

Algoritmos Genticos

individuos en la poblacin, que tiende a hacerse homognea con el transcurso de las generaciones. Mutacin adaptativa por temperatura descendente La probabilidad de mutacin va decreciendo a medida que transcurren las generaciones. De esta manera se asegura una alta diversidad de individuos en las generaciones iniciales. La probabilidad mnima debe ser mayor a cero para permitir continuar la exploracin del espacio de bsqueda a medida que las generaciones avanzan.

3.6 Ventajas y limitaciones de los algoritmos genticos. Es conveniente considerar las ventajas y desventajas que presentan los AGs, al igual que toda herramienta, ya que de esta manera se puede estar en condiciones de aprovechar sus bondades, y as mismo, atender las desventajas que pudiera presentar. Algunas de las ventajas pueden ser las siguientes: Una ventaja muy importante y quizs la principal, la constituye el hecho de que los AGs son paralelos, es decir, permiten explorar el espacio de soluciones en muy diversas direcciones a la vez, lo que posibilita encontrar una solucin cercana a la ptima en un tiempo relativamente corto. El AG puede dirigirse hacia el espacio con los individuos ms aptos y encontrar el mejor de ese grupo. En el contexto de los algoritmos evolutivos, esto se conoce como teorema del esquema, y es la ventaja principal de los AGs sobre otros mtodos de resolucin de problemas Debido al paralelismo que les permite evaluar implcitamente muchos esquemas a la vez, los algoritmos genticos funcionan particularmente bien resolviendo problemas cuyo espacio de soluciones potenciales es realmente grande demasiado vasto para hacer una bsqueda exhaustiva

22

Desarrollos Inteligentes

Algoritmos Genticos

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. 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). Muchos problemas de la vida real no pueden definirse en trminos de un nico valor que hay que minimizar o maximizar, sino que deben expresarse en trminos de mltiples objetivos, a menudo involucrando contrapartidas: uno slo puede mejorar a expensas de otro. Los AGs son muy buenos resolviendo estos problemas: en particular, su uso del paralelismo les permite producir mltiples soluciones, igualmente buenas, al mismo problema, donde posiblemente una solucin candidata optimiza un parmetro y otra candidata optimiza uno distinto, y luego un supervisor humano puede seleccionar una de esas candidatas para su

23

Desarrollos Inteligentes

Algoritmos Genticos

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. Los AGs no saben nada de los problemas que deben resolver. En lugar de utilizar informacin especfica conocida a priori para guiar cada paso y realizar cambios con un ojo puesto en el mejoramiento, como hacen los diseadores humanos; realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la funcin de aptitud para determinar si esos cambios producen una mejora. Por otra parte, algunas de las desventajas pueden ser: 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

24

Desarrollos Inteligentes

Algoritmos Genticos

aptitudes y quiz asegurando que slo se producen valores realistas y posibles para el problema dado. 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 de aptitud debe considerarse cuidadosamente para que se pueda alcanzar una mayor aptitud y verdaderamente signifique una solucin mejor para el problema dado. Si se elige mal una funcin de aptitud o se define de manera inexacta, puede que el algoritmo gentico sea incapaz de encontrar una solucin al problema, o puede acabar resolviendo el problema equivocado. (Esta ltima situacin se describe a veces como la tendencia del AG a ``engaar'', aunque en realidad lo que est pasando es que el AG est haciendo lo que se le pidi hacer, no lo que sus creadores pretendan que hiciera). Unos investigadores utilizaron un algoritmo evolutivo en conjuncin con una serie de chips reprogramables, haciendo que la funcin de aptitud recompensara al circuito en evolucin por dar como salida una seal oscilatoria. Al final del experimento, se produca efectivamente una seal oscilatoria -pero en lugar de actuar como un osculador, como pretendan los investigadores, descubrieron que el circuito se haba convertido en un receptor de radio que estaba recibiendo

25

Desarrollos Inteligentes

Algoritmos Genticos

y retransmitiendo una seal oscilatoria de un componente electrnico cercano. Adems de elegir bien la funcin de aptitud, tambin deben elegirse cuidadosamente los otros parmetros de un AG, el tamao de la poblacin, el ritmo de mutacin y cruzamiento, el tipo y fuerza de la seleccin. Si el tamao de la poblacin es demasiado pequeo, puede que el algoritmo gentico no explore suficientemente el espacio de soluciones para encontrar buenas soluciones consistentemente. Si el ritmo de cambio gentico es demasiado alto o el sistema de seleccin se escoge inadecuadamente, puede alterarse el desarrollo de esquemas beneficiosos y la poblacin puede entrar en catstrofe de errores, al cambiar demasiado rpido para que la seleccin llegue a producir convergencia.

Un problema muy conocido que puede surgir con un AG se conoce como convergencia prematura. Si un individuo que es ms apto que la mayora de sus competidores emerge muy pronto en el curso de la ejecucin, se puede reproducir tan abundantemente que merme la diversidad de la poblacin demasiado pronto, provocando que el algoritmo converja hacia el ptimo local que representa ese individuo, en lugar de rastrear el paisaje adaptativo lo bastante a fondo para encontrar el ptimo global. Esto es un problema especialmente comn en las poblaciones pequeas, donde incluso una variacin aleatoria en el ritmo de reproduccin puede provocar que un genotipo se haga dominante sobre los otros.

Finalmente, varios investigadores aconsejan no utilizar algoritmos genticos en problemas resolubles de manera analtica. No es que los algoritmos genticos no puedan encontrar soluciones buenas para estos problemas; simplemente es que los mtodos analticos tradicionales consumen mucho menos tiempo y potencia computacional que los AGs y, a diferencia de los AGs, a menudo est demostrado matemticamente que ofrecen la nica solucin exacta. Por supuesto, como no existe una

26

Desarrollos Inteligentes

Algoritmos Genticos

solucin matemtica perfecta para ningn problema de adaptacin biolgica, este problema no aparece en la naturaleza.

3.7 Aplicaciones diversas. Esta seccin se orientar a revisar algunas de las aplicaciones de los AGs, las cuales se incrementan en forma explosiva en el tiempo, cada vez surgen nuevos campos y aumenta la diversidad de soluciones. Por ello solamente con el fin de ilustrar al lector, se considerarn varias de ellas, para terminar la presente seccin con la ejemplificacin de un caso especfico.

Prediccin. Una aplicacin en mercados financieros lo constituye el algoritmo gentico utilizado para predecir el rendimiento futuro de 1.600 acciones ofertadas pblicamente, al AG se le asign la tarea de predecir el beneficio relativo de cada accin, definido como el beneficio de esa accin menos el beneficio medio de las 1.600 acciones a lo largo del periodo de tiempo en cuestin, 12 semanas (un cuarto del calendario) en el futuro. Como entrada, al AG se le proporcionaron datos histricos de cada accin en forma de una lista de 15 atributos, como la relacin precio-beneficio y el ritmo de crecimiento, medidos en varios puntos del tiempo pasado; se le pidi al AG que evolucionara un conjunto de reglas si/entonces para clasificar cada accin y proporcionar, como salida, una recomendacin sobre qu hacer con respecto a la accin (comprar, vender o ninguna prediccin) y un pronstico numrico del beneficio relativo. Los resultados del AG fueron comparados con los de un sistema establecido, basado en una red neuronal, que los autores haban estado utilizando para pronosticar los precios de las acciones y administrar las carteras de valores durante tres aos. Por supuesto, el mercado de valores es un sistema extremadamente ruidoso y no lineal, y ningn mecanismo predictivo puede ser

27

Desarrollos Inteligentes

Algoritmos Genticos

correcto el 100% del tiempo; el reto consiste en encontrar un predictor que sea preciso ms de la mitad de las veces. En el experimento, el AG y la red neuronal hicieron pronsticos al final de la semana para cada una de las 1.600 acciones, durante doce semanas consecutivas. Doce semanas despus de cada prediccin, se compar el rendimiento verdadero con el beneficio relativo predicho. Globalmente, el AG super significativamente a la red neuronal: en una ejecucin de prueba, el AG predijo correctamente la direccin de una accin el 47,6% de las veces, no hizo prediccin el 45,8% de las veces y realiz una prediccin incorrecta slo un 6.6% de las veces, una precisin predictiva total de un 87,8%. El AG tambin super significativamente a tres ndices burstiles importantes -el S&P 500, el S&P 400 y el Russell 2000- en este periodo; la casualidad fue excluida como causa de este resultado con un margen de confianza de un 95%. Los autores atribuyen este convincente xito a la capacidad del algoritmo gentico de percatarse de relaciones no lineales difcilmente evidentes para los observadores humanos, adems del hecho de que carece del prejuicio contra las reglas anti intuitivas y contradictorias'' de los expertos humanos. (http://www.molwick.com/es/evolucion/140-genetica-evolucion.html)

Otro caso en esta categora de aplicaciones, lo es el sistema Omega, desarrollado por la empresa Holandesa Cap Gemini, y la britnica KiQ Ltd (Coello, 2001), que usa un portafolio del comportamiento pasado de un cliente, genera un modelo matemtico que puede usarse para predecir los comportamientos de clientes que se encuentran fuera de los portafolios conocidos. Omega se puede usar para evaluar solicitudes de crdito, generar listas de correo, modelar lealtad de los consumidores a un producto, y para detectar fraudes.

28

Desarrollos Inteligentes Reconocimiento de patrones.

Algoritmos Genticos

Este tipo de aplicacin es una de las ms generalmente utilizadas, se vern a continuacin algunas de ellas. El reconocimiento de criminales, es una solucin en la que a un testigo se le presentan una serie de caras seleccionadas aleatoriamente, el testigo asigna un valor de aptitud a cada una de las caras, se contina generando nuevas poblaciones de caras mediante cruce y mutacin, hasta lograr la identificacin de una cara muy similar a la del criminal. En la industria de las telecomunicaciones se ha establecido el trmino ``fuga'' para describir la velocidad a la que los usuarios se cambian de un proveedor de servicios a otro. La fuga le cuesta a las compaas de telecomunicaciones una gran cantidad de dinero cada ao, y reducir las fugas es un factor importante para aumentar la rentabilidad. Si las compaas pueden contactar con los clientes que tienen probabilidad de cambiar y ofrecerles incentivos especiales para que se queden, puede reducirse la tasa de fugas; pero ninguna compaa tiene los recursos para contactar a ms de un pequeo porcentaje de sus clientes. El problema es, por tanto, cmo identificar a los clientes que ms piensen fugarse con mayor probabilidad. Todas las compaas tienen grandes bases de datos con informacin de los clientes que tericamente puede utilizarse para este propsito; pero qu mtodo funciona mejor para examinar esta enorme cantidad de datos e identificar los sutiles patrones y tendencias que indican la probabilidad de fuga de un cliente? Au, Chan y Yao aplicaron algoritmos genticos a este problema para generar un conjunto de reglas de tipo si-entonces para predecir la probabilidad de fuga de distintos grupos de clientes. En su AG, la primera generacin de reglas, todas las cuales tenan una condicin, fue generada utilizando una tcnica de induccin probabilstica. Las generaciones posteriores las refinaron, combinando sencillas reglas de una condicin con reglas ms complejas con varias condiciones. Para la medicin de la aptitud se utiliz una medida de correlacin objetiva de la ``interesantitud'', que no necesitaba informacin de entrada subjetiva. El algoritmo evolutivo de explotacin de datos se prob sobre una base de datos 29

Desarrollos Inteligentes

Algoritmos Genticos

real de 100.000 clientes proporcionada por una compaa de Malasia, y su rendimiento se compar con el de dos mtodos alternativos: una red neuronal multicapa y un algoritmo basado en rbol de decisiones ampliamente utilizado, el C4.5. Los autores afirman que su AG fue capaz de descubrir regularidades ocultas en la base de datos y ``efectu predicciones precisas de fuga con distintas tasas de fuga'', superando al C4.5 bajo todas las circunstancias, superando a la red neuronal en tasas mensuales de fuga bajas e igualndola en tasas de fuga mayores y, en ambos casos, alcanzando las conclusiones ms rpidamente. Algunas ventajas ms del enfoque evolutivo son que puede funcionar eficientemente incluso cuando faltan algunos campos de datos, y que puede expresar sus descubrimientos en conjuntos de reglas fcilmente comprensibles, al contrario que la red neuronal. Entre algunas de las reglas ms interesantes halladas por el AG se encuentran las siguientes: los clientes tienen ms probabilidad de fugarse si se han suscrito personalmente al plan de servicios y no han sido admitidos en ningn plan de bonificacin (una solucin potencial sera admitir a todos esos clientes en planes de bonificacin); los clientes tienen ms probabilidad de fugarse si viven en Kuala Lumpur, tienen entre 36 y 44 aos y pagan sus facturas en efectivo (supuestamente porque es ms fcil cambiarse de proveedor para los clientes que pagan al contado, a diferencia de los que cargan en cuenta automticamente); y los clientes que viven en Penang y contrataron a travs de un cierto vendedor tienen ms probabilidades de fugarse (este vendedor puede estar proporcionando un mal servicio al cliente y debera ser investigado).

Optimizacin y Matemticas. La optimizacin de losas de concreto prefabricadas es un problema abordado en el Engineering Design Centre de la Universidad de Plymouth en Inglaterra (Coello, 2001), la losa se representa como una placa sujeta a diversos tipos de cargas. En el problema se tienen unas 400 variables continuas de decisin, el costo computacional asociado a esta solucin es muy alto, una sola evaluacin

30

Desarrollos Inteligentes

Algoritmos Genticos

de la funcin de aptitud toma aproximadamente 10 minutos en una estacin de trabajo Sun Spark con 6 procesadores. Se recurri a un esquema distribuido para evaluar la funcin de aptitud, se logr obtener un ahorro del 3% al 5% en relacin con el mejor resultado obtenido por expertos humanos utilizando tcnicas tradicionales de optimizacin. La empresa Escocesa Quadstone, us AGs para resolver un problema de optimizacin de estrategias de produccin de British Petrol. El objetivo era maximizar el rendimiento financiero de un grupo de campos petrolferos y de gas interdependientes, con un sinnmero de restricciones complejas de compromisos y penalizaciones. El uso de AGs produjo retornos netos substancialmente mejores que los obtenidos por planeadores humanos o por cualquier otra tcnica de optimizacin. Tambin los AGs se han enfocado a la optimizacin de las estrategias de acceso a una gran base de datos, para mejorar los tiempos de respuesta en las consultas. Algunos problemas clsicos en Informtica como el ordenamiento de una lista de elementos, han sido direccionados mediante algoritmos genticos. Igualmente en Matemticas se han utilizado AGs, para resolver ecuaciones de derivadas parciales no lineales de alto orden, normalmente encontrando los valores para los que las ecuaciones se hacen cero, y dan como ejemplo una solucin casi perfecta para los coeficientes de la ecuacin de quinto orden conocida como Super Korteweg-de Vries.

Diseo. Muy diversas aplicaciones se han abordado en el campo del diseo, en diferentes disciplinas, se mencionarn a continuacin algunas de estas.

31

Desarrollos Inteligentes

Algoritmos Genticos

Diseo de un sistema de suspensin para un automvil realizado por investigadores del KanGAL, que es un laboratorio de Algoritmos Genticos de Kanpur en la India (Coello, 2001). Burke y Newall utilizaron algoritmos genticos para disear los horarios de los exmenes universitarios. Se sabe que, en general, el problema del horario es NPcompleto, lo que significa que no se conoce un mtodo para hallar con garantas una solucin ptima en un tiempo razonable. En un problema as, hay restricciones duras -no puede asignarse el mismo aula a dos exmenes a la vezy restricciones suaves -si es posible, no deben asignarse varios exmenes en sucesin a un mismo estudiante, para minimizar la fatiga. Las restricciones duras deben satisfacerse, mientras que las restricciones suaves deben satisfacerse lo mximo posible. GAnet es uno de los tres productos principales de software de la empresa Optimal Solutions, que es una biblioteca de clases para desarrollar algoritmos genticos, incluye rutinas para simular redes hidrulicas y permite el manejo de restricciones duras y blandas. Se aplic esta solucin en el diseo de una red de agua potable para la regin de York (Ontario, Canad) (Coello, 2001). He y Mort aplicaron algoritmos genticos al problema de hallar rutas ptimas en las redes de telecomunicaciones (como las redes de telefona e Internet), que se usan para transmitir datos desde los remitentes hasta los destinatarios. Esto es un problema NP-difcil, un tipo de problema para el que los AGs son ``extremadamente aptos... y han encontrado una enorme variedad de aplicaciones exitosas en esos campos''. Es adems un problema multiobjetivo, en el que hay que equilibrar objetivos en conflicto como maximizar el caudal de datos, minimizar los retrasos en la transmisin y la prdida de datos, encontrar caminos de bajo coste y distribuir la carga uniformemente entre los encaminadores o conmutadores de la red. Cualquier algoritmo real satisfactorio debe tambin ser capaz de redirigir el trfico de las rutas principales que fallen o estn congestionadas. Los AGs combinados con redes neuronales fueron utilizados por un grupo de Unilever Research, para disear nuevos pptidos bactericidas para usarse en 32

Desarrollos Inteligentes

Algoritmos Genticos

limpiadores anti-bacterianos y preservativos de alimentos. El resultado fue la generacin de 400 bactericidas virtuales potencialmente activos, de los cuales cinco fueron sintetizados (Coello, 2001). Otras investigaciones plantean la utilizacin de un AG para auxiliar en la seleccin de los diversos parmetros que deben considerarse en el diseo de una aeronave. A continuacin se ejemplificar la aplicacin de los AGs con la descripcin del problema del agente viajero, se recomienda al lector tomarse su tiempo para revisar esta solucin. El problema del agente viajero. Se trata de un problema muy conocido referenciado como TSP (Travelling
Salesman Problem),

pero tambin de mucha aplicabilidad, y sobre todo fcil de

entender, por lo que resulta un caso paradigmtico. Es la situacin de un agente viajero (Travelling Salesman), que debe planear su recorrido por n ciudades (n>=3), pasando solo una vez por cada una, y regresando a la ciudad en donde inici su viaje, de tal manera que la distancia recorrida sea mnima. Sea Cij la distancia de la ciudad i a la j. Es decir, se debe obtener una permutacin de n elementos Cij que minimiza la sumatoria: n Cij i=1 Sin repetir ciudades a visitar.

El nmero de soluciones posibles es del orden de n!. Existen diferentes formas de representar una gira, y por tanto una solucin al problema, los operadores de cruce y mutacin dependern fuertemente de tal representacin, a efecto de mostrar esta situacin se ver a continuacin unas maneras de hacerlo. Una forma muy natural de representacin es la que se basa en la trayectoria, una gira se representa como una lista de n ciudades, si se observa la figura 3.7.1, la gira 1-2-3-6-5-8-7-4 se puede indicar mediante (1 2 3 6 5 8 7 4). 33

Desarrollos Inteligentes

Algoritmos Genticos

Figura 3.7.1 Representacin de un mapa de 8 ciudades con sus comunicaciones. Operador de cruce PMX (Partially Mapped Crossover) (Bukcland Mat, 2002), En l, una parte de la ristra representando a uno de los padres, se hace corresponder con una parte, de igual tamao, de la ristra del otro padre, intercambindose la informacin restante. Por ejemplo si se consideran los padres: Padre 1 Padre 2 (3 2 5 6 8 7 4 1) y (3 1 2 5 6 8 7 4)

El operador PMX crea las giras descendientes de la siguiente manera. En primer lugar, selecciona con probabilidad uniforme dos puntos de corte a lo largo de las ristras que representan las giras padres. Supongamos que el primer punto de corte se selecciona entre el tercer y el cuarto elemento de la gira, y el segundo entre el sexto y el sptimo elemento: Padre 1 (3 2 5 | 6 8 7 | 4 1) y Padre 2 (3 1 2 | 5 6 8 | 7 4) Se establece una correspondencia biunvoca entre los elementos comprendidos entre los puntos de corte, en este caso se tienen las correspondencias: 6 <--> 5, 34

Desarrollos Inteligentes

Algoritmos Genticos

8<--> 6, y 7 <--> 8. Posteriormente se copian las subristras del padre 1 en el hijo 1 y la del padre 2 en el hijo 2 quedando as: Hijo 1: ( 3 2 5 | 6 8 7 | 4 1) Hijo 2 : ( 3 1 2 | 5 6 8 | 7 4) A continuacin se procede a intercambiar los elementos de los hijos tomando en cuenta los mapeos correspondientes. Considerando el mapeo 6 <--> 5:

Hijo 1: ( 3 2 6 | 5 8 7 | 4 1) Hijo 2: ( 3 1 2 | 6 5 8 | 7 4) Se procede con los intercambios de acuerdo al mapeo 8<-->6, de esta manera quedarn los descendientes as: Hijo 1: ( 3 2 8 | 5 6 7 | 4 1) Hijo 2: ( 3 1 2 | 8 5 6 | 7 4) Finalmente se procede con el mapeo 7 <--> 8: Hijo 1: ( 3 2 7 | 5 6 8 | 4 1) Hijo 2: ( 3 1 2 | 7 5 6 | 8 4) Generando finalmente los descendientes: Hijo 1: ( 3 2 7 5 6 8 4 1) Hijo 2: ( 3 1 2 7 5 6 8 4) Operador de mutacin basado en desplazamiento (DM), se inicia extrayendo una subcadena al azar y se inserta en otra posicin dada aleatoriamente. Por ejemplo sea la cadena (1 2 5 3 6 8 7 4), suponiendo que se selecciona la sublista (3 6 8) y al azar se elige la posicin que se encuentra despus del elemento con valor 7,

35

Desarrollos Inteligentes

Algoritmos Genticos

entonces la cadena resultante ya aplicado el operador de mutacin ser la siguiente: ( 1 2 5 7 3 6 8 4). Los descendientes obtenidos mediante los operadores PMX y DM, no tienen elementos repetidos, cumpliendo as con esta restriccin, sin embargo la factibilidad de conectividad pudiera no ser satisfecha, de tal manera que al final de la obtencin de una solucin ptima debiera verificarse tal situacin. Existen una diversidad de operadores de cruce y de mutacin propuestos por diferentes autores, conviene que el lector investigue algunos de ellos con el fin de comparar las formas de codificacin y los resultados que arroja cada una.

36

Desarrollos Inteligentes

Algoritmos Genticos

PREGUNTAS 1. En qu se basa la computacin bio-inspirada?. 2. Mencione algunos modelos de computacin bio-inspirada. 3. En qu tipo de proceso de los seres vivos se basan los algoritmos genticos?. 4. Cul es la teora de la evolucin biolgica en su forma macroscpica que sirve como base para los Algoritmos genticos?. 5. Qu procesos hacen que unos alelos cambien de frecuencia entre generaciones de poblaciones de los seres vivos?. 6. Por quin y en qu ao fueron establecidos los principios bsicos de los algoritmos genticos?. 7. Un cromosoma Qu codifica y qu representa en un algoritmo gentico?. 8. En qu se diferencian de otros algoritmos de optimizacin o bsqueda los AGs ?. 9. Cules son los componentes caractersticos de los algoritmos genticos? 10. Una ventaja muy importante y quizs la principal de los AGs es?

37

Desarrollos Inteligentes

Algoritmos Genticos

RETROALIMENTACIN SOBRE LAS PREGUNTAS 1. La computacin bio-inspirada se basa en establecer analogas con sistemas naturales o sociales para disear mtodos heursticos no determinsticos de bsqueda, de aprendizaje, de imitacin de comportamiento, etc. . 2. Algunos modelos de computacin bio-inspirada son: . 3. Los algoritmos genticos se basan en el proceso gentico de los seres vivos. 4. La teora de la evolucin biolgica en su forma macroscpica que sirve como base para los AGs es la Darwinista. 5. Esos procesos son los factores de evolucin como la mutacin, la deriva gentica, la migracin y la seleccin natural. 6. Los principios bsicos de los algoritmos genticos fueron establecidos por J. Holland en 1975. 7. Los algoritmos genticos codifican las posibles soluciones en estructuras llamadas cromosomas, que representan el material gentico de un individuo 8. Los AGs se diferencian de otros algoritmos de optimizacin o bsqueda en cuatro aspectos: - Trabajan con la codificacin del conjunto de parmetros, no con los parmetros mismos. - Manejan una poblacin de puntos solucin, no un solo punto. Algoritmos evolutivos Redes neuronales Algoritmos inmunolgicos Algoritmos basados en inteligencia de enjambres

38

Desarrollos Inteligentes

Algoritmos Genticos

- Utilizan informacin de eficiencia (funcin objetivo), no derivadas o conocimiento auxiliar. - Usan reglas de transicin probabilsticas, no determinsticas. 9. Los componentes caractersticos de los algoritmos genticos son los siguientes: La definicin del problema La representacin de la solucin del problema La decodificacin del cromosoma La evaluacin de un individuo Los operadores evolutivos: Seleccin, cruce y mutacin.

10. Una ventaja muy importante y quizs la principal, la constituye el hecho de que los AGs son paralelos, es decir, permiten explorar el espacio de soluciones en muy diversas direcciones a la vez, lo que posibilita encontrar una solucin cercana a la ptima en un tiempo relativamente corto.

39

Desarrollos Inteligentes EJERCICIOS

Algoritmos Genticos

1. Considere el siguiente problema: Se tiene una caja negra, la cual consta de 5 interruptores de entrada, para cada configuracin de ellos existe una seal de salida f, el objetivo es determinar la posicin de los interruptores que genere un valor mximo para f. Suponga que se asocia los valores 0 y 1 a las posiciones apagado y encendido de los interruptores respectivamente. Elabore una codificacin del problema de tal manera que pueda ser resuelto mediante un algoritmo gentico. 2. Para el problema del ejercicio 1, suponga que se tienen seis configuraciones especficas de los interruptores, y que sus seales de salida son las siguientes: 5, 10, 15, 25, 50, y 100. Bajo el operador de la ruleta sencilla, determine el nmero esperado de copias de cada configuracin en una cierta generacin, si el tamao de la poblacin manejada es de seis. 3. El problema consiste en encontrar el valor de la variable x que produce el mximo valor de la funcin f(x) = 28x- x2, sobre el intervalo para x en [0,1,2,...,31]. Desarrolle una codificacin y ejecute manualmente el algoritmo gentico que permita resolver el problema. En cuntas generaciones pudo obtener una solucin ptima?. 4. Una poblacin contiene las siguientes cadenas de bits cada una representando una configuracin de los cinco interruptores del ejercicio1, sus valores de bondad de adaptacin f son los siguientes: Cadena 10001 11100 00011 01110 f 20 10 5 15

40

Desarrollos Inteligentes

Algoritmos Genticos

La probabilidad de mutacin es Pm = 0.001, y la probabilidad de cruce es Pc=1.0 . Calcule el nmero esperado de esquemas de la forma 1**** en la generacin 1.

41

Desarrollos Inteligentes

Algoritmos Genticos

BIBLIOGRAFA.

Bukcland Mat (2002).- A I Techniques for game programming. Premier Press, Cincinnati, Ohio, U.S.A. Coello Coello Carlos (2001).- Introduccin a la computacin evolutiva (notas del curso). CINVESTAV-IPN, Mxico D.F. Goldberg David E. (1989).- Genetic Algorithms in search, optimization, and machine learning. Addison Wesley publishing Co. Inc.U.S.A. Mateos Alfonso (2003). Algoritmos evolutivos y algoritmos genticos.- Universidad Carlos III, Madrid.

42

Desarrollos Inteligentes

Algoritmos Genticos

REFERENCIAS WEB:
http://www.molwick.com/es/evolucion/140-genetica-evolucion.html Fecha de acceso: 7/Mayo/2008 Tema: Fundamentos de gentica y evolucin. http://biologia.uab.es/divulgacio/genpob.html#factores Fecha de acceso: 15/Mayo/2008 Tema: Fundamentos de gentica y evolucin. http://www.sc.ehu.es/ccwbayes/docencia/mmcc/docs/temageneticos.pdf Fecha de acceso: 18/Mayo/2008 Tema: Fundamentos de algoritmos genticos.

43

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