Vous êtes sur la page 1sur 32

PONTIFICIAUNIVERSIDADCATLICADELECUADOR FACULTADDEINGENIERA

Apuntesde InteligenciaArtificial
AlgoritmosGenticos
JORGEAGUILARJARAMILLO

Algoritmos Genticos

8 Algoritmos Genticos
8.1 Introduccin
Los Algoritmos genticos (AG) son los algoritmos evolutivos que mayor trascendencia han tenido. La implementacin de estos algoritmos es muy sencilla, tal es as que estos y en general los algoritmos evolutivos estn siendo usados en una amplia variedad de aplicaciones, sin embargo el comportamiento del algoritmo, es muy complejo y hasta la fecha no existe una teora clara que logre explicar porqu trabajan o porqu no pueden resolver ciertos problemas. En este sentido es de suma importancia el desarrollo de los fundamentos tericos que aclaren estas dudas y permitan avanzar en la comprensin y desarrollo de la temtica de computacin evolutiva en general.

8.2 La mecnica de un AG simple


En el captulo introductorio a Computacin Evolutiva, se defini el pseudo cdigo de un algoritmo evolutivo genrico. Consideremos ahora un algoritmo gentico que implementa mutacin en paralelo, como se muestra en la Ilustracin 1. La diferencia de este algoritmo es que parte de la poblacin 1-Pc implementa solo mutacin, mientras que el otro algoritmo lo hara a travs del camino que toma la poblacin Pc, sin mutacin en paralelo haciendo primero cruce y luego mutacin. La poblacin de P(t) (CM+M) estructuras individuales es inicializada y evaluada, entonces evoluciona de la generacin g a la generacin g+1, repitiendo los operadores, de seleccin de padres, recombinacin (C), mutacin (M) y evaluacin y se completa el ciclo con la seleccin de los sobrevivientes para la siguiente generacin y se implementa mutacin en paralelo, simplemente tomando parte de esta poblacin para realizar solamente mutacin. Un AG tradicional trabaja sobre cadenas binarias de longitud fija y aplica aptitudes proporcionales a la seleccin, un punto de cruce y mutacin simple. La poblacin inicial se genera siguiendo una distribucin uniforme dada aleatoriamente, esto es, cada posicin en cada cadena contiene un 0 o un 1 con la misma probabilidad (del 50%). El modelo de evolucin es representado por generaciones sucesivas de poblaciones, as una nueva poblacin reemplaza completamente a la anterior. El algoritmo se detiene cuando se ha alcanzado un nmero predefinido de generaciones. Finalmente, la evaluacin de cualquier cadena dada se hace mapeando el genotipo (Ej. la cadena de bits) al fenotipo (su valor real) por medio de una operacin binaria a decimal para cada grupo de bits del genotipo representando un parmetro del problema. El esfuerzo de clculo de un AG habitualmente reside en las evaluaciones de las cadenas 173 Jorge Aguilar J.

inciales y nuevas. Normalmente la funcin objetivo es compleja, por ejemplo, para entrenar una red neuronal, se necesita inspeccionar docenas de patrones para calcular un valor objetivo simple y as conocer si la respuesta que da la red se acerca a la realidad o a la salida conocida. Resumiendo, el algoritmo usa tres operadores: seleccin, cruce o recombinacin y mutacin, estos operadores son de complejidad lineal y trabajan a velocidades constantes para un problema dado.

Ilustracin 1 Algoritmo gentico simple con mutacin en paralelo

En la actualidad varias modificaciones a este algoritmo se dan, influenciado por las otras disciplinas de la computacin evolutiva y con la finalidad de tener algoritmos ms robustos.

8.3 Explicacin del Algoritmo:


Tomemos el siguiente ejemplo para explicar el funcionamiento del algoritmo. Encontrar el mximo de la siguiente funcin, usando un AG.: f(x) = x + 10*sin(5*x)+7*cos(4*x) definido en el intervalo (0,9), veamos un grfico de la funcin: 174 Jorge Aguilar J.

Algoritmos Genticos

25 20 15 10 5 0 -5 -10 -15 -20

Ilustracin 2. Funcin en la que seterminaremos el msximo, usando algoritmos genticos

Observemos que para poder correr el algoritmo, necesitamos definir dos aspectos: 8.3.1 Codificar el Problema: Representar la solucin.

En el captulo introductorio a la Computacin Evolutiva, vimos que para un algoritmo evolutivo, nos topbamos con el problema de ir del fenotipo al genotipo, es decir el proceso inverso a como se da en la naturaleza. Este procedimiento no es ms que encontrar la forma de representar o de codificar la solucin. Este procedimiento es un factor muy importante para el xito del algoritmo gentico, al igual que en muchos mtodos de aprendizaje y bsqueda. Qu debemos representar?, como estamos buscando la solucin al problema, debemos representar justamente una solucin al problema: en este caso, cual es la solucin, buscamos el mximo de una funcin, entonces tenemos que representar un nmero que nos lleve a definir justamente el mximo, hay ms de una forma de hacerlo, por ejemplo si el nmero representa x, se puede con facilidad calcular f(x). La pregunta que podemos plantearnos ahora es Cmo representar el espacio de bsqueda, en este caso el nmero? Para nuestro problema, si vamos a representar un nmero, tenemos bsicamente dos opciones: definirlo directamente como bits o hacerlo como un nmero real. Para problemas ms complejos, debemos decidir cmo se estructuran los parmetros del problema en la cadena de bits (cromosoma) (si se usara una cadena de bits), es decir: Definir el nmero de bits por parmetro. El rango de la decodificacin binaria a parmetro decimal, Si la cadena tiene longitud constante o cambia durante las operaciones de los AG, etc. En aplicaciones tradicionales la cadena usa un alfabeto binario y su longitud es constante 175 Jorge Aguilar J.

durante todo el proceso de evolucin. Tambin todos los parmetros se decodifican al mismo rango de valores y son localizados con el mismo nmero de bits para los genes en la cadena. 0101110000 Representacin binaria 1.2589436 Representacin decimal (nmero real)

Aplicaciones de mayor complejidad necesitan cadenas de longitud dinmica o de un alfabeto diferente (no binario). Tpicamente, genes de enteros o punto flotante son usados en muchos dominios, como en el entrenamiento de redes neuronales, funciones de optimizacin con un gran nmero de variables, problemas de reordenamiento como el del vendedor viajero, etc.

Ilustracin 3. Un cromosoma formado por cuatro parmetros, que a su vez estn formados por cuatro bits

En cuanto a la codificacin existen varias formas de hacerlas, veamos las principales. Codificacin Binaria. La Codificacin binaria (ej. Cadenas de bits) ha sido la codificacin ms generalizada, bsicamente porque en sus primeros trabajos Holland y sus estudiantes se concentraron en este tipo de codificacin. Adems mucha de la teora existente de los AG se basa en esta asuncin de codificacin binaria y longitud fijas. La justificacin de Holland fue que la codificacin binaria sigue un grado ms alto de paralelismo implcito que una codificacin con un alfabeto de mayor cardinalidad ya que se tiene un mayor nmero de esquemas (ejemplo: codificar en binario con 100 bits nos da un nmero de esquemas de

176 Jorge Aguilar J.

Algoritmos Genticos

3100 mientas que por ejemplo para una cadena de 10 caracteres se tiene 1130)1 . El nmero de esquemas se calcula usando (c+1)l donde c es la cardinalidad del alfabeto y l la longitud de la cadena2. Contraria a estas ventajas, la codificacin binaria no es natural y es pesada para muchos problemas. (ej. Evolucin de los pesos para una red neuronal) Ha habido muchas extensiones a la codificacin binaria bsica de los esquemas, tales como cdigos gray, y otros. El rendimiento de un algoritmo, depende ms bien de la aplicacin y de los detalles del AG usado (Melanie, 1999) y no existen lneas guas rigurosas para predecir qu tipo de codificacin trabaja mejor. Codificacin de valores reales y de varios caracteres Para muchas aplicaciones, es ms natural usar un alfabeto de muchos caracteres o nmeros reales para formar el cromosoma. 0.58 2.15 3.12 0.25 0.39 5.12 0.48 3.54
Ilustracin 4. Ejemplo de una representacin real

Representacin de longitud variable Puede darse el caso en que se necesite de una cadena dinmica, cromosomas de longitud variable, Para tratar este tipo de problemas, Goldberg y sus colegas hacia fines de la dcada de los 80s propusieron el uso de un tipo especial de AG al que se le denomin desordenado messy (mGA ). El objetivo de los AG "messy o AG Desordenados fue mejorar el rendimiento de la funcin-optimizacin para hacer esto se empieza con cromosomas cortos que tengan buenos bloques de construccin y a partir de estos ir aumentando la longitud de la cadena La idea general fue inspirada en la biologa. Despus de todo, la naturaleza no inicia con cadenas de longitud larga, las formas de vida simple ceden el paso a formas de vida ms complejas con los bloques de construccin aprendidos en los primeros tiempos usados y re-usados por el buen efecto a lo largo del camino. (Goldberg, Korb, and Deb 1989)3

Note que, para el mismo alfabeto decimal, si la cadena fuese de 31 posiciones, tiene ms esquemas que la de 100 con cdigo binario. La razn por la que se suma uno a la cardinalidad es porque en los esquemas se usa un smbolo adicional (normalmente el asterisco o el smbolo de nmero) para indicar que no nos importa el valor de esa posicin Tomado de Mitchel M (1999)

177 Jorge Aguilar J.

ersticas prin ncipales de este algoritm son las siguientes: mo Las caracte La Long gitud de la c cadena codi ificada es variable El tama de la poblacin es v ao variable Nuevos esquemas de seleccin basados e 2 fases s n en rimordial o Fase Pr o Fase de Yuxtaposic e cin Nuevos operadores MESSY s s Ope erador de Co orte Ope erador de Un nin

La idea fun ndamental al utilizar est tipo de t l te cnica es qu se represe esquem en lugar ue enta mas r de cromoso omas. La codifica acin genti cambia con respec a lo exp ica cto puesto anter riormente porque cada p a gen es repre esentado co omo un par ordenado en el esquem (locus, v ma valor). El n mero de la a izquierda e la posici cromos es in smica (loc cus) y el de la derech el valor del bit de e ha e codificacin como en e siguiente ejemplo de cadenas v n el e lidas:

Figu 8. 1 Ejem ura mplos de codif ficacin (posi icin y valor)

Sin embarg este tipo de codificac go cin trae al lgunos prob blemas: Algunas po A osiciones pu ueden ser a asignadas a ms de un bit (sobr n re-especificacin) Para a solucionar el proble ema de la sobre-esp a pecificacin se debe imponer un orden n e n tico uacin (el p primero enc contrado tien el valor p ne para esa po osicin). Por r determinst de evalu ejemplo, de izquierda a derecha. De esta m e . manera, se i ignoran los valores po osteriores al l primero det p tectado para una cierta posicin cr a romosmica a. Ejemplo: si tenemos la cadena {( i a (1,0) (2,0) (4 (4,0)} 4,1) Tomamos e valor de 1 para el cua bit el arto Algunas po A osiciones pu ueden no s asignada a ningn bit (sub - especifica ser as n acin). Para a solucionar e problema de la sub especifica el a acin se deb bera evaluar cadenas parcialmente r e definidas, v viendo una c cadena com un esquem candida mo ma ato.

guilar J. 178 Jorge Ag 8

Algoritmos Genticos

Ejemplo: si tenemos la cadena candidato: 00*1

{(1,0) (2,0) (4,1) (4,0)}, se trata del esquema

Existen varios mtodos para evitar el problema de la sub-especificacin: Mtodo de los Promedios: Consiste en Generar n valores aleatorios para los lugares faltantes y sacar el promedio de todos esos valores, con lo que se reemplazara el lugar faltante. El problema de este mtodo consiste en que la aptitud promedio de estos n valores, frecuentemente ser demasiado alta para que se pueda obtener un valor significativo mediante un muestreo aleatorio. Plantillas competitivas: Consiste en utilizar el mtodo de ascenso de colina para obtener un mnimo local. Al correr el Algoritmo Gentico Desordenado, se evalan las cadenas sub-especificadas llenando las posiciones faltantes con un valor correspondiente al ptimo local. De esta manera es posible conocer la aptitud de cualquier esquema candidato. Vale la pena efectuar una mejor exploracin si los bits definidos de un esquema candidato mejoran al mnimo local, que en esencia es una cadena que no puede mejorarse con el cambio de un solo bit. El problema identificado con las Plantillas competitivas es que el mtodo de generacin de los bits faltantes es vctima de la explosin combinatoria. Los Algoritmos Genticos Desordenados operan en dos fases: Fase Primordial Fase de Yuxtaposicin
{(1, 0) (2, 0) (3, 0)} {(1, 0) (2, 0) (3, 1)} : : {(1, 1) (2, 1) (3, 1)} {(1, 0) (2, 0) (4, 0)} {(1, 0) (2, 0) (4, 1)} : : {(6, 1) (7, 1) (8, 1)}

El objetivo de la fase primordial es generar esquemas cortos que sirvan como constructores para que en la fase de yuxtaposicin puedan combinarse. El primer problema a resolver es el hecho de conocer que tan largos deberan ser estos esquemas cortos. La solucin fue planteada por Goldberg y consista en adivinar el 179 Jorge Aguilar J.

orden de estos esquemas. El orden de un esquema es el nmero de posiciones fijas que tiene, por ejemplo tenemos la cadena de bits ( 0 # # 1 0 ), entonces el orden es igual a 3. Si se adivina el orden del esquema (k), entonces continuamos con la generacin por enumeracin de todos los esquemas que tengan ese orden y longitud requerida. Por ejemplo si la longitud (l) = 8 y el orden del esquema (k) = 3 tenemos: Estos esquemas cortos (de orden predefinido) se generan en la fase primordial y luego evaluamos sus aptitudes, despus de eso aplicamos slo seleccin a la poblacin (sin cruza ni mutacin) para propagar los buenos bloques constructores, y se borra la mitad de la poblacin a intervalos regulares, luego de un cierto nmero (predefinido) de generaciones, entramos a la fase yuxtaposicional. En este punto, el tamao de la poblacin permanecer fijo y usaremos seleccin y 2 operadores llamados corte y unin. Debido a la naturaleza de este algoritmo, estos operadores siempre producen cadenas vlidas. Codificacin de rboles (ver computacin evolutiva) Esquemas codificados como rboles, tales como los esquemas de John Koza para representar programas de computacin, tienen varias ventajas, incluyendo el hecho que permitan un espacio de bsqueda abierto (ya que pueden formarse rboles de cualquier tamao va cruce y mutacin). Esta apertura tambin conduce a algunas trampas potenciales. Los rboles pueden crecer sin control, impidiendo la formacin de soluciones candidatas estructurada en forma jerrquicas. Estos grandes rboles pueden ser muy difciles de entender y simplificar. Genotipos no convencionales Loa AG han usado un genotipo binario, en el cual cada parmetro del problema es codificado en binario usando un nmero dado de bits. En nmero de bits para cada gen (parmetro) y el rango decimal en el cual ellos se codifican son usualmente los mismos pero no excluye la utilizacin de diferentes nmeros de bits o rangos para cada gen. Para evitar el llamado hamming cliffs el cdigo de Gray es usado cuando se decodifica una cadena binaria. Con este cdigo cualquier valor decimal adyacente es codificado con nmeros binarios que solo difiere en un bit. Esto ayuda a los AG a hacer una aproximacin agradable a un ptimo y normalmente reduce la complejidad de la bsqueda resultante. Sin embargo en varias aplicaciones en los cuales AG ha sido usados rinden muchos genotipos diferentes. Esto significa que la cadena puede ser construida sobre un alfabeto real o entero. Alfabetos enteros tienen propiedades interesantes para problemas de reordenamiento como el vendedor viajero y otros. Genes de punto flotante son muy tiles para optimizacin numrica (por ejemplo entrenamiento de redes neuronales). 180 Jorge Aguilar J.

Algoritmos Genticos

Estos alfabetos de alta cardinalidad mejoran la bsqueda reduciendo el nmero de cadenas mal-construidas resultantes de las aplicaciones de cruce y mutacin. Tambin cuando un nmero muy grande de parmetros ha sido optimizado es til confiar en cadenas cortas (tambin porque la poblacin y el nmero de pasos son menores) Si el genotipo pude expresarse como una cadena, es necesario decidir para una aplicacin dada si la longitud es constante o variable para cada cadena en la misma poblacin. Tambin en ambientes dinmicos (la funcin de aptitud cambia como la bsqueda procede) El uso de individuos diploides es una decisin interesante. En un individuo diploide, dos cromosomas homlogos describen el mismo conjunto de parmetros. Cuando se decodifica la cadena, alguna clase de operador dominante se necesita para decidir el valor del parmetro del problema (gene). Ejemplos de genotipos sofisticados: Un individuo puede ser un rbol de smbolos (semejante a aplicaciones en programacin gentica) El individuo es una combinacin de cadenas y rboles. Cadenas y un rbol. Algunas partes de la cadenas pude evolucionar y otras no en diferentes momentos de la bsqueda. El individuo puede ser una matriz de smbolos. El genotipo podra ser una cadena de smbolos que indican operaciones a ser ejecutadas. Un simulador interpreta los smbolos y destina valores de aptitud dependiendo de los resultados de la interpretacin de la cadena.

Una recomendacin que suele hacerse es usar siempre la codificacin ms natural para el problema y entonces divisar un algoritmo que pueda usar esa codificacin

El segundo punto, no menos importante que el primero es la funcin de aptitud: 8.3.2 Funcin de aptitud:

La funcin de aptitud depende si se quiere maximizar o minimizar algn criterio. Aspectos como los siguientes hay que tomar en cuenta: El ambiente puede representar ruido en la evaluacin (evaluacin parcial por ejemplo). La funcin de aptitud puede cambiar dinmicamente cuando el AG procede La funcin objetivo podra ser tan compleja que solo aproximaciones a su valor pueden 181 Jorge Aguilar J.

calcularse. La funcin objetivo podra localizar valores muy diferentes de la cadena en orden a facilitar el trabajo del operador de seleccin La funcin de aptitud debe considerar la limitacin del problema. Normalmente soluciones no factibles pueden aparecer por lo que la funcin de aptitud debe destinar un valor pequeo de aptitud (si este un problema de maximacin). La funcin aptitud podra incorporar algunos sub-objetivos diferentes. Tales funciones multi objetivo presentan problemas no convencionales cuando se usa en AG. Una funcin de aptitud es una caja negra parta el AG. Se alimenta con el fenotipo entonces consigue el valor de aptitud. Internamente puede ser llevado por una funcin matemtica, un programa de simulacin compleja o una persona que decide que tan buena una cadena es (esto es normal cuando las cadenas codifican imgenes, msica o algo semejante) Con respecto a funciones de aptitud dinmicas un genotipo diploide pueden usarse en los cuales cada valor es determinado por alguna relacin entre dos aleles codificados en la misma cadena. La extensin a cadenas k-ploides es directa. Un operador dominante necesita ser definido para tomar un valor del gen simple (parmetro) desde los k aleles que determinan este. Cuando la evolucin procede, el valor de aptitud asignado por la funcin de aptitud a la cadena es muy similar, ya que la cadena ser evaluada de manera similar. Existen algunos operadores de escalamiento diferentes que ayuda a separar los valores de aptitud en orden a mejorar el trabajo de los mecanismos de evolucin. Cuando cadenas muy diferentes toman el mismo valor de aptitud surge el problema en que al cruzarlos rinde individuos muy malos (llamados letales) incapaces de fomentar mejoras. Mtodos de comparticin ayuda a permitir la existencia concurrente de soluciones muy diferentes en la misma poblacin gentica Una vez definida la forma en que representamos la solucin al problema y la forma en que vamos a evaluar la solucin, podemos aplicar el algoritmo. Como estamos interesados en encontrar el mximo de la funcin, debemos dar un valor de aptitud ms alto a aquellas soluciones cuyo valor f(x) es ms alto, por lo tanto la funcin de aptitud para el problema planteado es la misma funcin: f(x) = x + 10*sin(5*x)+7*cos(4*x) Una vez definidas la forma de codificar y la forma en que evaluaremos las soluciones procedemos ahora s a correr el algoritmo. Antes de correrlo debemos crear la poblacin inicial de soluciones que se ir mejorando en cada generacin

8.3.3

Creamos la poblacin de individuos:

Para el ejemplo planteado, aleatoriamente se definen una poblacin de 10 individuos, es decir 10 182 Jorge Aguilar J.

Algoritmos Genticos

nmeros reales en el rango de 0 a 9. Para este caso codificado como reales, esta poblacin inicial se muestra en la Tabla 1.
25 20 15 10 5 0 -5 -10 -15 -20

Ilustracin 5. Funcin en la que se ha aadido la poblacin inicial

Individuo X f(X) %Total

1 3.63 5.40 7.22

2 1.10 8.22 5.83

3 2.42 5.41

4 2.32 3.55

5 2.99 15.71 17.66

6 1.37 11.61 15.63

7 3.13 10.60 15.13

8 1.09

9 7.96

10 0.85 2.55

9.06 12.82

8.42 23.06 14.85 5.72 21.30

Tabla 1. Nmero de individuo en la poblacin inicial con su aptitud y su peso en toda la poblacin

8.3.4

Seleccin / Reproduccin: Sobre vivencia del ms apto

La seleccin simula a la seleccin natural y enfatiza la influencia gentica de los mejores organismos en generaciones futuras. Un mecanismo de seleccin es la seleccin proporcional a la aptitud, esta da un peso a cada individuo en la poblacin dependiendo de su aptitud, en forma proporcional a la aptitud total como se muestra en la Ecuacin 1:

183 Jorge Aguilar J.

F j lj 0 2 1 =

Ecuacin 1. Seleccin proporcional a la aptitud

Por lo tanto, para el caso del ejemplo que se muestra en la tabla 1. La proporcin de cada solucin en la poblacin inicial es como se ilustra en la siguiente figura.

3% 7% 6% 5% 4%

21% 6%

15%

18%

16%

Ilustracin 6. Representacin de la aptitud proporcional, para la poblacin inicial

Una vez creada y evaluada la poblacin inicial, se procede a hacer la bsqueda en el espacio de soluciones, de tal forma que se implementan dos operadores: de cruce y mutacin. 8.3.5 Cruce El objetivo del cruce es intercambiar informacin entre dos o ms soluciones para crear nuevas individuos que suelen llamrseles soluciones hijas. Existen varias formas de hacer recombinacin o cruce, entre ellas estn: Cruce basado en un punto, en el cual los dos individuos seleccionados pasan a jugar el papel de padres, son recombinados por medio de la seleccin de un punto de corte seleccionado aleatoriamente, para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto. Operadores de bsqueda

184 Jorge Aguilar J.

Algoritmos Genticos

Padres 1 1 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0

Hijos 1 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1

Ilustracin 7. Operador de cruce basado en un punto

La ventaja de tener ms de un punto de cruce radica en que el espacio de bsqueda puede ser explorado ms fcilmente, siendo la principal desventaja el hecho de aumentar la probabilidad de ruptura de buenos esquemas. Cruce basado en dos puntos, En el operador de cruce basado en dos puntos, los cromosomas (individuos) pueden contemplarse como un circuito en el cual se efecta la seleccin aleatoria de dos puntos. Padres 1 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 1 0 Hijos 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0

Ilustracin 8. Cruce basado en 2 puntos

Desde este punto de vista, el cruce basado en un punto, puede verse como un caso particular del cruce basado en dos puntos, en el cual uno de los puntos de corte se encuentra fijo al comienzo de la ristra que representa al individuo. Cruce Uniforme, en este tipo de cruce, cada gen, en la descendencia se crea copiando el correspondiente gen de uno de los dos padres, escogido de acuerdo a una mscara de cruce generada aleatoriamente. Por ejemplo, una manera de hacerlo es definiendo la mscara de 0 y 1: Cuando existe un l en la mscara de cruce, el gen es copiado del primer padre, mientras que cuando exista un 0 en la mscara de cruce, el gen se copia del segundo padre. En la literatura, el trmino operador de cruce uniforme se relaciona con la obtencin de la mscara de cruce uniforme, en el sentido que cualquiera de los elementos del alfabeto tenga asociada la misma probabilidad. Tambin se puede usar la mscara de cruce (en el cual se detalla la manera de intercambiar la informacin de los padres) con ms de dos padres para obtener un nuevo individuo. En el siguiente ejemplo tenemos la aplicacin de una mscara de cruce para generar un nuevo habitante a partir de 3 padres: 185 Jorge Aguilar J.

Mascara de cruce

Nuevo Habitante

Ilustracin 9. Cruce basado en un mscara

Una vez que se ha cruzado entre varios habitantes, se puede optar por utilizar el concepto de mutacin para permitir la flexibilidad del algoritmo en la bsqueda de la solucin.

8.3.6

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

Existen muchas formas de efectuar la mutacin Con probabilidad pequea pm aleatoriamente se altera el contenido de las posiciones en la cadena (cromosoma) Un seguro contra bits perdidos En cdigo binario, con pm cambie 0a11 a 0

Si bien en la mayora de las Ilustracin 10. Mutacin simple implementaciones de Algoritmos Genticos se asume que tanto la probabilidad de cruce como la de mutacin permanecen constantes, algunos autores han obtenido mejores resultados experimentales modificando la probabilidad de mutacin a medida que aumenta el nmero de iteraciones. 8.3.7 Reduccin 186 Jorge Aguilar J.

Algoritmos Genticos

Una vez obtenidos los individuos descendientes de una determinada poblacin en el tiempo t, el proceso de reduccin al tamao original, consiste en escoger individuos de entre los 2 individuos que forman parte de la poblacin en el tiempo t, (los individuos y los descendientes de los primeros). Dicho proceso se suele hacer fundamentalmente de dos formas distintas. Los individuos descendientes son los que forman parte de la poblacin en el tiempo t+1, es lo que se denomina reduccin simple (generacional). Se escogen de entre los 2 individuos, los individuos ms adaptados al problema, siguiendo un criterio de reduccin elitista de grado ; podemos tambin considerar otros procedimientos de reduccin que se colocan entre los anteriores, por ejemplo, si se escoge los (1) mejores de entre padres y descendientes, escogindose los ( 1) restantes de entre los descendientes no seleccionados hasta el momento (no-generacional).

Siguiendo con nuestro ejemplo, luego de realizar el cruce a la poblacin graficada en la Ilustracin 5, tenemos la siguiente poblacin a la siguiente generacin.
30

20

10

-10

-20

25 20 15 10 5 0 -5 -10 -15 -20

Ilustracin 11. Poblacin a la siguiente generacin y poblacin a la generacin final, para el caso de la ltima generacin, toda la poblacin est concentrada en el mismo punto.

187 Jorge Aguilar J.

6% 8% 12%

13% 13%

10% 10%

10% 10%

10%

10%

13% 6% 4% 11% 13%

10% 10% 10%

10%

Ilustracin 12. Representacin de la aptitud proporcional en la generacin quinta y la generacin final. Al final todos los individuos tienen la misma aptitud porque es la misma solucin replicada 10 veces

8.4 Modelo matemtico exacto de un A.G. simple


El siguiente modelo fue formulado por los matemticos Michael Vose y Gunar Liepins en 1991. 1. Se inicia con una poblacin aleatoria de cadenas binarias de longitud L 2. Se calcula la aptitud f(x) de cada cadena x en la poblacin 3. Se escoge (con reemplazo) dos padres de la poblacin actual con una probabilidad proporcional a la aptitud de cada cadena en la poblacin. 4. Se cruza sobre dos padres (en un punto escogido aleatoreamente) con probabilidad pc, para formar dos hijos (si no ocurre el cruce, los hijos son copias exactas de los padres). Seleccione uno de los hijos aleatoreamente y descarte el otro. 5. Mute cada bit en el hijo seleccionado, con probabilidad pm y coloque este en la nueva poblacin. 6. Vaya al punto 3 hasta que una nueva poblacin se complete. 7. Ir al paso 2 La nica diferencia con el modelo estndar de un A.G. simple es que solo uno de los hijos de cada cruce sobrevive. As, para una poblacin n, un total de n recombinaciones se realizan. En el modelo formal de Vose y Liepins, cada cadena en el espacio de bsqueda es representada por un entero i entre 0 y 2l 1 codificado por una cadena. Por ejemplo para l = 8, la cadena 00000111 podra ser representada por el entero 7. La poblacin en la generacin t es representada por dos vectores de valores reales p(t) y s(t), cada uno de longitud 2l . La componente i de p(t) (pi(t)) es la proporcin de la poblacin en la generacin t consistiendo de la cadena i, y la componente i de s(t) (si(t)), es la probabilidad que un ejemplo que un ejemplar de la cadena i sea seleccionada a ser un padre en el paso 3 del algoritmo. 188 Jorge Aguilar J.

Algoritmos Genticos

Por ejemplo, si l = 2 y la poblacin es: 11, 11, 01 y 10 P(t) = (0, 0.25, 0.25, 0.5)T especifica la composicin de la poblacin en la generacin t. Si la aptitud es igual al nmero de unos en la cadena S(t) = (0, 0.166, 0.166, 0.666) T Refleja las probabilidades de seleccin bajo la funcin de aptitud. Estas son conectadas va aptitud: Sea F una matriz 2D tal que Fij = 0 para i j y fii = f(i), es decir Bajo la seleccin proporcional
s (t ) = Fp(t )

2 1
l

j =0

F jj p j (t)

As es fcil encantar s(t). La estrategia de Vose y Liepins es definir un operador simple G tal que aplicando G a s(t), refleje en forma exacta los efectos de correr el A.G. sobre la poblacin a la generacin t, para obtener la poblacin t+1 S(t+1) = Gs(t). Entonces iterando G sobre s(0), tendremos una descripcin del comportamiento esperado del A.G

8.5 Teorema de Los Esquemas y Marco Terico


Como ya hemos revisado, los AE operan sobre una poblacin de P cadenas, las mismas que son por lo general de longitud fija. Las cadenas son de longitud L y a menudo son referidas como cromosomas con L genes. Cada gen puede tomar uno de los C valores, los mismos que son referidos como aleles. C puede verse como la cardinalidad del alfabeto de las cadenas. De esta forma hay CL cadenas posibles. Por ejemplo para un alfabeto de binarios, una cadena de 4 bits: [* * * *] tiene 24 Posibles soluciones, si el alfabeto es de 28 caracteres (ej. Alfabeto espaol) existen 284 Posibles soluciones. 8.5.1 Esquemas.

La base terica de los algoritmos genticos se basa en el concepto de esquema. Los Esquemas (Holland, 1975) son plantillas que especifican parcialmente una solucin. Representan cadenas que usan un smbolo adicional en el alfabeto, si A es el alfabeto, los esquemas pertenecen al conjunto {A U {*}}. Este smbolo extra (*) representa una localidad indefinida, es decir puede tomar cualquier valor del alfabeto. Por ejemplo consideremos el esquema AB** definido sobre el cromosoma de longitud fija de 4 genes, donde cada gen puede tomar uno de los 28 aleles {A, ..., Z}. El smbolo * es definido como no importa qu carcter sea, y el esquema AB** representan los cromosomas que tienen una A como el primer alele y una B como el segundo alele. Ya que el smbolo * puede ser llenado con cualquiera de los 28 aleles, este esquema representa a 282 cromosomas. 189 Jorge Aguilar J.

Esquema 00000 1111 0*1*** {000000 100000}

Cadenas:

{011110, 011111, 111110, 111111} {001000, 001001, 001010, 001100, ......}


Tabla 8. 1 Ejemplos de esquemas

Se dice que un cromosoma empareja a un esquema si ellos coinciden en sus posiciones definidas. Por ejemplo. La cadena 10011010 empareja a la cadena 1******* y a **011***, pero no empareja a *1*11*** ya que difieren en el segundo gen (el segundo definido en el esquema). Esquema H o(H) (H) Visto de otro modo, un esquema describe a un subconjunto de cadenas que comparten caracteres 1******* 1 0 similares en determinadas posiciones: Veamos el **011*** 3 2 siguiente esquema: *1*11*** 3 3 Un esquema puede ser visto como un hiperplano en un espacio L-1 dimensional representando el conjunto de soluciones con propiedades comunes. posiciones definitorias, di, que indican donde no

Tabla 8. 2 Orden y longitud definitoria de los esquemas

Los hiperplanos son descritos por las ocurre el smbolo *.

El nmero de soluciones que emparejan un esquema H depende de: El orden k (representado por o(H)) es el nmero de posiciones definidas ( no smbolos *) en el hiperplano, y asi el plano de orden k es designado como Hk. Ya que hay k posiciones definidas, estas son niveladas desde d1 hasta dk Otro concepto necesario es la longitud definitoria del esquema Figura 8. 2 Hipercubo de tres dimensiones en el que se muestra (representado por (H)), definido un hiperplano (color amarillo) como la distancia entre la ltima y la primera posicin definida en el esquema. Ver tabla 8.2 para ejemplos. Los AG trabajan por asignacin de cadenas al mejor esquema exponencialmente a travs de 190 Jorge Aguilar J.

Algoritmos Genticos

sucesivas generaciones. Una forma de ver un hiperplano es considerar un espacio 3D. Asumiendo que se tiene un problema de codificar justo con 3 bits, esto puede representarse en un cubo con la cadena 000 en el origen. Las esquinas en este cubo son numeradas por cadenas de bits y todas las esquinas adyacentes numeradas son niveladas por cadenas de bits que difieren exactamente en un bit. En la figura (a) el plano frontal contiene todos los puntos que inician con 0, el esquema que representa a este plano ser 0**, mientras que el hiperplano pintado es 1**. Cada esquema corresponde a un hiperplano en el espacio de bsqueda4.

Figura 8. 3 Esquemas 4 dimensional

La figura (b) ilustra un espacio 4-dimensional representado por un cubo dentro de otro cubo. Los puntos pueden ser nivelados como sigue. Nivele los dos cubos exactamente como el espacio 3D, luego fije cada nivel del cubo interno con el bit 1 y el cubo de afuera con el bit 0. De esta forma se asigna a los puntos en el hiperespacio a los puntos adyacentes. El cubo interno ahora corresponde al hiperplano 1*** y el de afuera a 0***, es tambin fcil ver que *0** corresponde a un subconjunto de puntos que corresponden a los frentes de cada cubo. El hiperplano de orden 2, 10** corresponde al frente del cubo interior.

8.5.2

Teorema de los Esquemas.

El teorema del esquema provee la frontera inferior en un cambio en la velocidad de muestreo para un hiperplano simple de la generacin t a la generacin t+1. Para tener una visin general de lo que ocurre en un hiperplano particular H, definamos los siguientes elementos: m(H, t+1): Nmero de ejemplares del esquema H en la generacin (t+1)
4

En el espacio de bsqueda formado por todas las soluciones, un esquema representa un conjunto de soluciones.

191 Jorge Aguilar J.

m(H, t): Nmero de ejemplares del esquema H en la generacin (t) f(H,t) valor medio observado de la funcin de aptitud para todos los elementos del esquema H, en la generacin t. f(t) valor medio observado de la funcin de aptitud, en la generacin t. Pc: taza de cruce. Pm: taza de mutacin O(H): orden del esquema (H): Longitud definitoria. El mecanismo de seleccin se relaciona principalmente a este aspecto: Es decir, esquemas que tienen una aptitud sobre el promedio, tienden a crecer, mientras que
m( H , t + 1) m( H , t ). f (H ) && f

aquellos cuya aptitud es bajo el promedio decrecen. Supongamos que un esquema H, permanece sobre el promedio de aptitud de la poblacin con la cantidad cf. De esta forma la ecuacin 1 ser: Iniciando al tiempo t=0 y c constante, al tiempo t se tiene:

m( H , t + 1) = m( H , t ).

f + cf = m( H , t ).(1 + c) && f

m( H , t + 1) = m( H , t ). (1 + c) t
De esta forma, el efecto de la reproduccin es hacer crecer (o decrecer) en forma de progresin geomtrica los esquemas sobre (o bajo) el promedio de la aptitud de la poblacin. El operador de cruce es el encargado de explorar nuevas combinaciones del espacio de estado con el fin de obtener individuos de mayor aptitud. El cruce se escoge aleatoriamente entre los l-1 sitios posibles, de esta forma, el esquema H se destruye con una probabilidad de: (H ) Pd = l 1 Si la operacin de cruce se realiza con una probabilidad Pc, la probabilidad de supervivencia (Ps) est definida por la siguiente expresin:

l 1 Spears (1998) extiende el anlisis para recombinacin basado en n-puntos y recombinacin uniforme. En ambos casos los resultados indican que los aspectos de rompimiento se ven afectados por la longitud definitoria y el orden k del hiperplano, mientras que para recombinacin uniforme Po solo se ve afectada por el orden. Todas las formas de recombinacin son de mayor rompimiento para hiperplanos ms altos y llegan a ser menores cuando la
192 Jorge Aguilar J.

Ps (1 Pc ).

(H )

Algoritmos Genticos

poblacin converge. Todas las formas de recombinacin de n puntos son poco disruptivas para esquemas cortos, pero para n mayores, son ms disruptivos. Para esquemas largos, recombinacin de n puntos hace ms rompimientos cuando n es par que cuando n es impar.
El operador de mutacin: Finalmente el trabajo del operador de mutacin es introducir un material de genotipo nuevo en la poblacin (esto es especialmente importante cuando la generacin procede). Para que el esquema H sobreviva, todas sus posiciones deben sobrevivir. La probabilidad de que una posicin sobreviva ser (1- Pm) Para que un esquema sobreviva todas y cada una de sus posiciones fijas deben sobrevivir: (1- Pm)o(H)

Si Pm << 1

(1- Pm)o(H) = 1 Pm.o(H)

Spears (1998) determina el nmero esperado de hijos Es [Hk,u], que reside en Hk despus de la mutacin, dado que un padre es miembro de Hk y el otro padre es arbitrario. Es [Hk,u] decrece cunado el orden k del hiperplano se incrementa, mientras que Es [Hk,u] incrementa como Peq se incrementa, para valores razonables de u, Interesantemente, incrementar la cardinalidad de C, no decrece Es [Hk,u], sino solamente en un grado muy pequeo, sugiriendo que la mutacin no es afectada en gran medida por cambios en la cardinalidad. Los resultados tambin indican que es ms probable que los hiperplanos sobrevivan con bajos niveles de mutacin, mientras que altos niveles de mutacin es ms probable que rompa los hiperplanos Spears llega a la conclusin que desde el punto de vista de sobrevivencia. La recombinacin no es tan potente como la mutacin. La mutacin puede conseguir cualquier nivel de sobrevivencia (o rompimiento) que la recombinacin pueda lograr. Sin embargo la mutacin puede conseguir mayores niveles de rompimiento que la recombinacin. Sin embargo, desde un puntos constructivo la recombinacin es ms potente que la mutacin. As, los peores niveles de construccin para la recombinacin son los mismos que los mejores niveles de construccin para la mutacin. La recombinacin ser ms til cuando bloques de construccin de relativamente alto orden (Hm y Hn) pueden combinarse en otros bloques de alto orden (Hk) que son tambin de aptitud alta. La recombinacin ser menos til cuando bloques de construccin de alto orden tienen una aptitud pobre ( la aptitud promedio de todos los individuos dentro del hiperplano) De esta forma, la seleccin, cruce y mutacin definen los esquemas en la generacin t+1. m( H , t + 1) m( H , t ). f (H ) (H ) p m .o( H ) 1 p c . && l 1 f

[5]

Resumiendo: el Teorema fundamental de los A.G dice que los esquemas cortos, de bajo orden
193 Jorge Aguilar J.

y cuya aptitud este sobre el promedio de la poblacin tienen descendientes en las futuras generaciones en un nmero exponencialmente creciente. Esto describe el crecimiento de un esquema de una generacin a otra. El t como es propuesto en la ecuacin 5 representa la frontera inferior ya que est en funcin solo del efecto destructivo del cruce y la mutacin. Sin embargo el cruce es visto como la mayor fuente de poder en los A.G. con la habilidad de recombinar instancias de buenos esquemas para formar ejemplares de igual o mejor orden (aptitud). Los esquemas de bajo orden y bien definidos que tienen una aptitud sobre el promedio se denominan Bloques de construccin.
Los A.G. trabajan descubriendo, enfatizando y re combinando buenos bloques de construccin de soluciones en un modo altamente paralelo. Una cadena de longitud l tiene 2l esquemas diferentes:

Ej. 11 **; 1; 1; 11 As cualquier poblacin dada de n cadenas contiene ejemplos entre 2l y n. 2l esquemas diferentes. Si todos las cadenas son iguales el nmero de ejemplos es exactamente de 2l diferentes esquemas, en otro caso es <= n.2l En la evaluacin de una poblacin de orden N en un AG est estimada implcitamente por la aptitud de los N miembros de la poblacin, sin embargo, en forma implcita se estima un nmero promedio mayor de esquemas por el clculo implcito de las aptitudes promedias observadas de los esquemas con ejemplos en la poblacin. A esta evaluacin implcita simultnea de un gran nmero de esquemas en la poblacin Holland la llam paralelismo implcito. La aptitud de esas estimaciones depende, por supuesto de la varianza de aquellos esquemas.

8.6 Ejercicios:
1. Para la funcin de aptitud definida por: Cul es la aptitud promedio de los esquemas: a) 1**** b) 11*...* c) 1*1*...* R: R: R: 1 1

2 si x 111* * f ( x) = 1 si x 0 * * 0 de otra forma

La cadena es de longitud n 2. Cuntos esquemas hay en una particin definida por k bits, en un espacio de bsqueda de m bits. 3. Definiendo la aptitud de una cadena de bits como el nmero de 1 en la cadena. De una frmula en trminos de la longitud (l) y el nmero de 1 en la cadena (k) para la aptitud promedio del esquema H que tiene k bits definidos todos en 1: Respuesta (k+l)/2
194 Jorge Aguilar J.

Algoritmos Genticos

4. Defina la aptitud de una cadena de bits con longitud igual a 4, que sea el entero representado por el nmero binario (Ej. f(1111) = 15 ). Cul es la aptitud promedio del esquema: 1*** sobre f R: 11.5 y cul el de 0*** sobre f R: 3.5
Combinaciones: Llene con una expresin matemtica los campos a continuacin , considere cadenas de longitud L en una poblacin de tamao M

Para un alfabeto binario (ej. K = 2), hay ______ esquemas. Para un alfabeto con K caracteres, hay _______ esquemas. La especificidad (ej., el orden) O(H) de un esquema H puede variar entre ______ y _____. La longitud definitoria de un esquema H puede variar entre_____ y _____. Para un alfabeto binario hay _______ individuos (puntos) en un esquema de orden O(H). Para un alfabeto binario, esos puntos pueden ser vistos como un hiperplano de dimensin __________. Para un alfabeto binario hay ______________ de tales hiperplanos de dimensin i, donde i vara entre 0 a L. Para un alfabeto binario (K =2), una cadena de un individuo particular de longitud L es representada en n ______ esquemas Para una cadena de un alfabeto de tamao K, una cadena de un individuo particular L es representada en ______ esquemas En cuantas formas puede darse una operacin de mutacin simple en una poblacin de tamao M de cadenas de longitud L? En cuantas formas puede darse una operacin de cruce en una poblacin de tamao M de cadenas de longitud L? (L) Cuntas poblaciones aleatorias iniciales diferentes hay en una poblacin de tamao M de cadenas de longitud L con un alfabeto de tamao M? Cual es el nmero esperado de ocurrencias de un esquema arbitrario de orden O(H) en la poblacin aleatoria inicial (generacin 0) de una corrida de programacin gentica? Cuantos esquemas, en total, son representados en una poblacin de tamao M de una cadena de longitud L con un alfabeto de tamao K?

Diferentes clases de cruce: La operacin de cruce convencional selecciona uno de L-1 lugares intersticiales entre los L caracteres de un cromosoma como un punto de cruce. Considere una nueva operacin de cruce en el cual un subconjunto arbitrario de L posiciones es seleccionada. Los caracteres de la primera cadena binaria se reemplazan por las posiciones de la segunda 195 Jorge Aguilar J.

cadena binaria iniciando en un cierto subconjunto seleccionado de L posiciones originales en orden a obtener el primer hijo. El segundo hijo se obtiene en un camino simtrico. El cruce convencional puede darse en L-1 caminos. En cuntos caminos puede darse este nuevo cruce?. Cul es el nmero esperado de esquemas (H, t+1) en trminos de m(H, t) para esta nuevo operacin de cruce?

Algunas preguntas Qu es lo que Selecciones repetidas hacen? Qu es lo que el Cruces repetidos hacen? Qu es lo que Mutaciones repetidas hacen?

8.7 Laboratorio - Ejemplo


Adaptando un ejemplo presentado por Coello, ilustremos algunos de los conceptos de un AG. Un grupo de financieros ha resuelto invertir 10 millones de dlares en el campo de telecomunicaciones. De esta forma en 4 ciudades del pas se decide iniciar una vigorosa campaa comercial: Guayaquil y Cuenca al sur y Quito y Riobamba en el norte y centro del pas. A esas 4 ciudades van a corresponder las zonas comerciales I, II, III y IV. Un estudio de mercado ha sido realizado en cada una de las zonas citadas y han sido establecidas curvas de ganancias medias, en millones de pesos, en funcin de las inversiones totales (almacenes, tiendas de venta, representantes, publicidad, etc.) Estos datos se ilustran en la tabla y figura siguiente Para simplificar los clculos, supondremos que las asignaciones de crditos o de inversiones deben hacerse por unidades de 1 milln La pregunta es: en dnde se deben de asignar los 10 millones de los que se dispone para que la ganancia total sea mxima?

Inversin (en millones) 196 Jorge Aguilar J.

Beneficio Beneficio Beneficio Beneficio I II III IV

Algoritmos Genticos

0 1 2 3 4 5 6 7 8 9 10

0 0.28 0.45 0.65 0.78 0.90 1.02 1.13 1.23 1.32 1.38

0 0.25 0.41 0.55 0.65 0.75 0.80 0.85 0.88 0.90 0.90

0 0.15 0.25 0.40 0.50 0.62 0.73 0.82 0.90 0.96 1.00

0 0.20 0.33 0.42 0.48 0.53 0.56 0.58 0.60 0.60 0.60

Tabla 2. Datos obtenidos con la investigacin de mercado en cada una de las regiones en estudio.

Representacin: Para poder aplicar el algoritmo gentico, lo primero que necesitamos determinar es cul ser el esquema a utilizarse para representar las posibles soluciones del problema. En este caso necesitamos 4 bits son necesarios para representar cada inversin por zona (de 0 a 10). Como existen 4 valores independientes (uno por cada zona de estudio), se requieren entonces 16 bits (4 x 4) por cada cromosoma. De tal forma, una cadena representativa de un cromosoma ser como se muestra en la figura 5. Es importante hacer notar que se requiere una funcin de codificacin (i.e., que transforme el valor de la inversin a binario) y una de decodificacin (i.e., que realice el proceso inverso). Debido a que en este caso los 4 bits utilizados para representar una solucin pueden producir ms valores de los que se necesitan, se usar una funcin de ajuste que haga que los resultados producidos siempre se encuentren en el rango vlido.

197 Jorge Aguilar J.

Ganancia por inversin


1.6

1.4

1.2

Ganancia en milones

0.8

0.6

0.4

0.2

0 0 1 2 3 4 5 Inversin en millones Zona I Zona II Zona III Zona IV 6 7 8 9 10

Figura 4. Grfica de los valores de la Tabla 2. * * * * .. * * * * * * * * * * * *

Ilustracin 13. Cadena representativa del cromosoma. Las cadenas 1, 2, 3 y 4 corresponden a las cantidades invertidas en las zonas econmicas respectivas

Funcin de Aptitud: Dado que el objetivo es obtener las inversiones que sumen 10, y que tengan un beneficio mximo, podemos usar la siguiente funcin de aptitud penalizada:

F ( x)=

g1 + g 2 + g 3 + g 4 InversionTotal 10 *100+ 1

donde g1, g2, g3 y g4 son las ganancias por zona, que se calculan de acuerdo a los valores de la tabla 2. Ntese que cuando no se viole ninguna restriccin (ejemplo cuando la suma de inversiones sea exactamente 10) la funcin de aptitud no ser penalizada. Operadores: cruce de 2 puntos, con una probabilidad del 80%. En cuanto a la mutacin, se le asignar una probabilidad baja, del 1%. Poblacin, 50 cromosomas, y se correr el algoritmo gentico durante 20 generaciones. Resultados: El resultado obtenido en una corrida tpica es un beneficio de 1.81 millones de pesos, correspondiente a invertir 4 millones en la zona comercial I, 3 millones en la zona II, 1 milln en la zona III y 2 millones en la zona IV. Esta es la solucin ptima. Debe
198 Jorge Aguilar J.

Algoritmos Genticos

hacerse notar que, en este caso, si deseramos analizar inversiones que sumen otra cantidad, y en unidades menores al milln, el algoritmo gentico tendra que modificarse de manera mnima, mientras que la programacin dinmica requerira una cantidad tal de trabajo que prcticamente se volvera inoperante. Aunque ste es slo un sencillo ejemplo del uso del algoritmo gentico para resolver problemas de optimizacin con restricciones, puede alcanzar a percibirse el poder de la tcnica en comparacin con los mtodos tradicionales de bsqueda.

Veamos un ejemplo de Javad Ivakpour (2006), que muestra la evolucin de un algoritmo gentico para encontrar el mximo de una funcin. Como ejercicio prctico de algoritmos genticos y computacin evolutiva, se va a utilizar las herramientas sobre este tema que ofrece MATLAB.

8.8 Problema de optimizacin.


Matlab implementa un algoritmo gentico a travs de la funcin ga, la misma que es optimizada para encontrar el mnimo de una funcin. La sintaxis de esta funcin es: x = ga(fitnessfun, nvars)5 x = ga(fitnessfun, nvars, options) x = ga(problem) [x, fval] = ga(...) [x, fval, reason] = ga(...) [x, fval, reason, output] = ga(...) [x, fval, reason, output, population] = ga(...) [x, fval, reason, output, population, scores] = ga(...)

Para mayor informacin revisar el help de matlab: help ga

199 Jorge Aguilar J.

Donde fitnessfcn es la funcin de aptitud codificada en un archivo .m nvars Es el nmero de variable indepoendientes para esa funcin de aptitud Options es una esptructura creada con gaoptimset que permite modificar los diferentes opciones del algoritmo: options = gaoptimset('param1',value1,'param2',value2,...)6 Para el caso del problema de optimizacin de la ganancia, pag 128-129 de los apuntes de clase, se debe escribir la funcin:
function fitness=inversion(solucion) % solucion es una cadena de 16 bits. en la que cada 4 bits representa la % inversin por zona. % por lo tanto el valor de la inversin la obtenemos en las siguientes % lineas.

InvZona(1)= bin2dec(num2str(solucion(1:4))); InvZona(2)= bin2dec(num2str(solucion(5:8))); InvZona(3)= bin2dec(num2str(solucion(9:12))); InvZona(4)= bin2dec(num2str(solucion(13:16)));

% matyriz de ganacias ganancia = [0 0 0 0; 0.28 0.25 0.15 0.20; 0.45 0.41 0.25 0.33; 0.65 0.55 0.40 0.42; 0.78 0.65 0.50 0.48; 0.90 0.75 0.62 0.53; 1.02 0.80 0.73 0.56; 1.13 0.85 0.82 0.58; 1.23 0.88 0.90 0.60; 1.32 0.90 0.96 0.60; 1.38 0.90 1.00 0.60; ];

Revisar las diferentes opciones en Matlab: help gaoptimiset

200 Jorge Aguilar J.

Algoritmos Genticos

% Definimos la funcin de aptitud fitness:

if InvZona(1)>=11 | InvZona(2)>=11 | InvZona(3)>=11 | InvZona(4)>=11 y=100; else g1=ganancia(InvZona(1)+1,1); g2=ganancia(InvZona(2)+1,2); g3=ganancia(InvZona(3)+1,3); g4=ganancia(InvZona(4)+1,4); inversiontotal=InvZona(1)+InvZona(2)+InvZona(3)+InvZona(4); fitness=-(g1+g2+g3+g4)/((inversiontotal-10)*100+1); end;

Por ejemplo para usar esta funcin dentro en el contexto de la funcin ga tenemos:
options = gaoptimset('PopulationType','bitstring', 'PopInitRange', '[0;1]'); [b, fval] = GA(@inversion,16,options); % Por lo que la inversin por zona es: InvZona(1)= b(4)*1+b(3)*2+b(2)*4+b(1)*8; InvZona(2)= b(8)*1+b(7)*2+b(6)*4+b(5)*8; InvZona(3)= b(12)*1+b(11)*2+b(10)*4+b(9)*8; InvZona(4)= b(16)*1+b(15)*2+b(14)*4+b(13)*8;

Trabajo:

Para cada tarea descrita a continuacin debe repetir el mismo experimento 10 veces y reportar el mejor resultado, la media y desviacin estndar del conjunto de corridas. Revisar detalladamente la funcin gaoptimiset y disear un experimento para probar dos caracteristicas en cuanto a: 1. Cruce: CrossoverFraction: 0.5, 0.8, CrossoverFcn seleccione dos opciones a su juicio.
201 Jorge Aguilar J.

Comente los resultados 2. Con la mejor opcin encontrada del experimento anterior, pruebe las siguientes opciones: Mutacin: MutationFcn las dos opciones Seleccin: SelectionFcn dos opciones a su juicio.

Comente los resultados 3. Suponga que ahora puede invertirse cualquier cantidad de dinero, no solamente valores enteros y dispone de la misma tabla de ganancias para inversiones de valores enteros. Cmo procedera para resolver este ejemplo?

202 Jorge Aguilar J.

Algoritmos Genticos

1. Mitchell Melanie (1999) An Introduction to Genetic Algorithms, A Bradford Book The MIT Press, Cambridge, Massachusetts London, England; Fifth printing 2. Coello Coello, Carlos A., La importancia de la representacin en los algoritmos Genticos (Parte I), Soluciones Avanzadas. Tecnologas de Informacin y Estrategias de Negocios, Ao 7, Nmero 69, pp. 50-56, 15 de mayo de 1999. 3. Coello Coello, Carlos A., La importancia de la representacin en los algoritmos Genticos (Parte II), Soluciones Avanzadas. Tecnologas de Informacin y Estrategias de Negocios, Ao 7, Nmero 70, pp. 44-48, 15 de junio de 1999 4. Spears, William M. Crossover or Mutation?, in L. Darrell Whitley, Foundations of Genetic Algorithms 2, Morgan Kaufmann Publishers, San Mateo, California, pp. 221237, 1993.

203 Jorge Aguilar J.

Vous aimerez peut-être aussi