Sei sulla pagina 1di 13

LOS ALGORITMOS GENTICOS

Una visin General Durante los ltimos treinta aos se ha experimentado un creciente inters por la construccin de sistemas de resolucin de problemas basados en el proceso de evolucin natural. En este sentido los algoritmos genticos son algoritmos de bsqueda y optimizacin cuyo mecanismo de funcionamiento est basado en dicho proceso. Es bien conocido por los bilogos que el proceso de evolucin natural tiene lugar en los cromosomas, que poseen la informacin gentica de los individuos. Aunque no se sabe an de manera completa la informacin especfica codificada en los cromosomas de un individuo, las siguientes propiedades generales son aceptadas por todos los especialistas en el tema: a) La evolucin es un proceso que opera fundamentalmente sobre los cromosomas. b) El proceso de seleccin natural es el responsable de que aquellos individuos que tienen mejor adaptacin al entorno se reproduzcan ms que los poco adaptados. c) En la reproduccin es donde tiene lugar la evolucin. Los procesos de mutacin producen cambios en los cromosomas de los hijos con respecto a los padres y mediante las combinaciones del material gentico de los padres se puede crear en los hijos material gentico diferente. d) La evolucin biolgica carece de memoria. Lo nico que pretende es producir individuos que se adapten de manera ptima al entorno en el que viven. Fue John Holland en los aos 70 el primero que pretendi llevar esta estrategia de actuacin al campo de la computacin y tratar de disear sistemas artificiales con un comportamiento anlogo al del sistema evolutivo natural. Este intento trajo consigo el nacimiento de lo que hoy conocemos como algoritmos evolutivos. Un algoritmo evolutivo es un algoritmo probabilstico que mantiene una poblacin de individuos, P(t) para cada iteracin t. Cada uno de los individuos constituye una potencial solucin del problema, representada mediante alguna estructura de datos. Cada una de estas potenciales soluciones es evaluada para obtener una medida de su calidad como solucin. Posteriormente, se construye una nueva poblacin (iteracin t+1) mediante un proceso de seleccin en P(t) de manera que los mejores individuos tienen mayor probabilidad de ser seleccionados. A continuacin se altera esta nueva poblacin mediante la aplicacin sobre algunos miembros de de la misma de ciertos operadores genticos. Estos operadores genticos pueden ser unarios (mutaciones), produciendo nuevos individuos mediante pequeos cambios en el individuo sobre el que se aplican, o de aridad superior (cruces) de manera que dos o ms individuos se combinan para producir nuevos individuos. As se obtiene finalmente una nueva poblacin P(t+1). Tras un nmero de iteraciones o generaciones es de esperar que el mejor individuo de la poblacin final obtenida represente una solucin del problema ptima o al menos razonablemente buena.

11

Una primera aproximacin a la estructura de un algoritmo evolutivo es la siguiente:

begin t0 inicializar P(t) evaluar P(t) while (not condicion _de_parada) do begin t t+1 seleccionar P(t) desde P(t-1) alterar P(t) evaluar P(t) end end

Un caso concreto de algoritmos evolutivos son los denominados algoritmos genticos. Estos algoritmos se caracterizan por utilizar operadores de cruce en el proceso de alteracin de la poblacin. Teniendo en cuenta lo anterior, los conceptos bsicos que se manejan en la teora de los algoritmos genticos son los siguientes: Individuo o cromosoma: Un individuo determina una potencial solucin del problema que se pretende resolver mediante el algoritmo gentico. Poblacin: Conjunto de individuos con los que se trabaja en el algoritmo gentico. En un algoritmo gentico los individuos que constituyen la poblacin van cambiando pero generalmente el tamao de la misma permanece constante. Funcin fitness: Se trata de una funcin evaluadora de la calidad de un individuo como solucin a nuestro problema. Permite la ordenacin de los individuos de la poblacin en cuanto a bondad de los mismos. Cruce: es una de las operaciones fundamentales que intervienen en todo algoritmo gentico. Como norma general se aplica despus de un proceso de seleccin de dos individuos y consiste en una combinacin de los mismos para obtener como resultado otros dos nuevos individuos.

12

Mutacin: Constituye otra operacin fundamental en un algoritmo gentico. En este caso se selecciona un individuo, el cual sufre una pequea modificacin aleatoria en su codificacin obtenindose otro individuo nuevo. En lneas generales y teniendo en cuenta la estructura de un algoritmo evolutivo, la estrategia operativa de un algoritmo gentico consiste en partir de una poblacin inicial de individuos, generada aleatoriamente, cada uno de los cuales representa una posible solucin del problema. Estos individuos se evalan mediante una funcin (fitness) que indica la calidad de la solucin o grado de adaptacin del individuo al entorno. A partir de esta situacin inicial se realizan una serie de iteraciones en cada una de las cuales se simula la creacin de una nueva generacin de individuos a partir de la generacin anterior. Este proceso consiste en aplicar los operadores genticos de seleccin, cruce y mutacin sobre los individuos. Hasta llegar finalmente a una poblacin que, si el algoritmo converge adecuadamente, estar compuesta por buenos individuos, siendo el mejor de estos la solucin que ofrece el algoritmo. Un proceso de los llamados elitistas siempre mantendr en la poblacin al mejor individuo alcanzado hasta el momento. Un algoritmo gentico realiza una bsqueda multidireccional. Esta bsqueda es ms intensiva en las direcciones ms prometedoras, pero se dedica tambin una parte del esfuerzo a considerar regiones en principio de menor inters. La poblacin sufre una evolucin simulada: en cada generacin los individuos buenos se reproducen mientras que los malos se mueren; en este proceso se generan individuos nuevos que heredan algunas caractersticas de sus progenitores mientras que otras son propias de cada individuo. As pues podemos decir que los algoritmos genticos tratan de alcanzar un equilibrio entre dos objetivos aparentemente en conflicto: explotar las buenas cualidades de las potenciales soluciones y explorar el espacio de bsqueda. Robustez de los Mtodos de Optimizacin y Bsqueda Tradicionales No pretendemos realizar un estudio comparativo de las diferentes tcnicas de bsqueda y optimizacin conocidas, pero s resulta interesante, como motivacin de la existencia de los algoritmos genticos, saber si los diferentes mtodos tradicionales colman los objetivos requeridos en la resolucin de un problema de estas caractersticas. Existen en la literatura tres tipos principales de mtodos de bsqueda a saber: basados en el clculo, enumerativos y aleatorios. Los mtodos basados en el clculo se subdividen a su vez en directos e indirectos. Los mtodos indirectos realizan la bsqueda de extremos locales mediante la resolucin de sistemas de ecuaciones no lineales resultantes de igualar a cero el gradiente de la funcin a optimizar. Por ejemplo dada una funcin derivable representando una superficie, la bsqueda de un mximo se restringe a aquellos puntos con derivada nula en todas sus direcciones. Por otro lado, los mtodos directos buscan ptimos locales movindose sobre la funcin en direccin del gradiente local. Este es el comportamiento del denominado mtodo hillclimbing que ante la bsqueda de un mximo local en una superficie escalar a travs de la misma hasta que ya no obtenga mejora. Pero estos mtodos basados en el clculo tienen cierta carencia de robustez, debida principalmente a dos causas. En primer lugar la bsqueda se realiza localmente, es decir se busca mejorar dentro de un entorno del estado actual, lo que en muchos casos deriva en un ptimo local. En segundo lugar, es necesario que las funciones a optimizar sean derivables.

13

Los mtodos enumerativos, como su propio nombre indica, realizan una bsqueda punto a punto. Es evidente que cuando el espacio de bsqueda es de un tamao importante estos mtodos carecen de eficiencia. Finalmente, los algoritmos de bsqueda aleatorios poseen igualmente una falta de eficiencia. De hecho uno puede esperar que no sean mejores que aquellos que utilizan mtodos enumerativos. De todas formas no debemos confundir los mtodos puramente aleatorios con aquellos que utilizan la aleatoriedad como una tcnica en una bsqueda guiada mediante la explotacin de buenas caractersticas de algn punto ya encontrado. De hecho, de alguna manera, este tipo de tcnica es utilizada por los algoritmos genticos. Diferencias entre los Mtodos Tradicionales y los A.G. Podemos decir que los Algoritmos Genticos difieren de los principales mtodos tradicionales de optimizacin en cuatro puntos fundamentales: 1. Los A.G. trabajan con codificaciones de los puntos del espacio de bsqueda en lugar de los puntos propiamente dichos. 2. Los A.G. realizan la bsqueda a partir de una poblacin de puntos en lugar de un solo punto. 3. Los A.G. no utilizan derivadas ni otras propiedades de la funcin objetivo, sino nicamente la propia funcin objetivo. 4. Los A.G. se rigen mediante reglas de transicin probabilsticas, no determinsticas. Los A.G. requieren que el conjunto de puntos del espacio de bsqueda estn codificados mediante cadenas finitas sobre un alfabeto finito. Consideremos por ejemplo el siguiente problema: Tenemos una caja negra con cinco interruptores que pueden estar individualmente en la posicin de encendido o apagado. Supongamos que tenemos una funcin f tal que para cada configuracin s del conjunto de los cinco interruptores nos da un valor f(s). El objetivo del problema es obtener una configuracin de los interruptores tal que el valor de la funcin sobre ella sea mximo. Una codificacin bastante natural de las configuraciones es mediante cadenas de longitud cinco sobre el alfabeto X = {0, 1}; donde el valor 0 significa interruptor apagado y el valor 1 interruptor encendido. Muchos de los mtodos tradicionales, ante este problema utilizan la estrategia de moverse desde un punto al siguiente mediante alguna regla de transicin. Como ya hemos mencionado esto trae consigo la posibilidad de caer en un ptimo local. Por el contrario, los Algoritmos Genticos trabajan con una poblacin de puntos simultneamente. Adems no se requiere informacin auxiliar como conocimientos de derivadas sino que simplemente se necesita la definicin de la funcin objetivo. Finalmente, a diferencia de los mtodos tradicionales, los Algoritmos Genticos utilizan en el proceso de bsqueda reglas de transicin probabilsticas. El uso de este tipo de reglas no debe llevarnos a pensar que se trata de un mtodo de bsqueda puramente aleatoria, pues dichas reglas se utilizan para dirigir el proceso de bsqueda hacia regiones del espacio en la que con alta probabilidad se encuentra el ptimo buscado.

14

El Algoritmo Gentico Simple La mecnica de los algoritmos genticos es sorprendentemente sencilla. Simplicidad de las operaciones y gran capacidad de resolucin son las mejores motivaciones para utilizar los algoritmos genticos. En un algoritmo gentico simple los individuos estn representados mediante cadenas binarias y est compuesto de las siguientes operaciones: 1. Seleccin 2. Cruce 3. Mutacin La seleccin es la operacin mediante la cual se copian cadenas representando a individuos con la particularidad de que a mayor valor de la funcin fitness de un individuo, mayor probabilidad de que ste sea seleccionado. El nmero de individuos copiados depende del parmetro del algoritmo que determina el tamao de la poblacin. Usualmente, el mtodo de seleccin que se realiza es el denominado roulette wheel. En dicho mtodo se considera una ruleta con nmeros desde 1 hasta la suma de los fitness de los individuos que constituyen el conjunto de seleccionables. Cada uno de dichos individuos tendr tantos nmeros consecutivos en la ruleta como el valor de su fitness. En cada tirada de la ruleta ser seleccionado el individuo que posea el nmero que ha salido, de manera que un mismo individuo puede ser copiado varias veces. Cuando se ha seleccionado el nmero de individuos requerido, se realiza un emparejamiento de los mismos de manera aleatoria para a continuacin aplicar cruce a cada una de las parejas. El cruce trata de emular la herencia gentica de caractersticas de los progenitores a los descendientes. La forma de realizarlo depende de la representacin elegida para los cromosomas o individuos. Si esta representacin es binaria, la forma ms sencilla de hacer el cruce entre dos individuos es el denominado cruce en un punto: una vez que se decide cruzar dos individuos, se genera un nmero aleatorio entre 1 y la longitud del individuo, esta es la posicin de cruce; despus se intercambian las subcadenas de los individuos a partir de la posicin de cruce. Por ejemplo, si los individuos se representan por vectores binarios de longitud cinco, el cruce de los padres (01001) y (11110) a partir del segundo gen dar como resultado los hijos (01110) y (11001). Tras el cruce los hijos resultantes sustituyen a los padres en la nueva poblacin, se trata por lo tanto de un mtodo de reemplazamiento generacional. Por ltimo, la mutacin tiene como objetivo cambiar alguna de las caractersticas de alguno de los individuos para introducir diversidad en la poblacin. Cuando la representacin es binaria, la forma concreta de realizarla consiste en que despus del cruce se intercambia el valor de cada uno de los bits de los individuos de acuerdo con una probabilidad de mutacin. La Figura siguiente muestra el funcionamiento conjunto de los tres operadores.

15

000110010111 111010101100 001110101001 111011011100 a) Poblacin actual

8 32%

111010101100 000110010111 111010101100 001110101001 c) Seleccin

111010010111 000110101100

111010010111 000110101100 111 10101001 00111010110 1 e) Mutacin

6 24% 6 24% 5 20% b) Fitness y prob. de seleccin

111010101001 001110101100 d) Cruce

Generacin de una nueva poblacin mediante la aplicacin de los operadores de seleccin, cruce en un punto y mutacin

En resumen, para resolver un problema particular mediante un algoritmo gentico, debemos tener las siguientes componentes: una codificacin o representacin gentica de las soluciones potenciales del problema (cadenas binarias en el caso del algoritmo gentico simple). un modo de crear la poblacin inicial (aleatoria en el algoritmo gentico simple). una funcin de evaluacin que juega el papel del entorno permitiendo clasificar a los individuos en trminos de su fitness, operadores genticos de reproduccin, cruce y mutacin que simulan la evolucin de las poblaciones, y valores de los parmetros del algoritmo: longitud de los individuos, tamao de la poblacin, nmero de generaciones y probabilidad de mutacin.

Ejemplo A continuacin vamos a ilustrar la estrategia operativa de un algoritmo gentico simple. La aplicacin que consideramos est tomada de [Michalewicz 94]. Se trata del clculo del mximo de la funcin f(x)=x*sen(10x)+2.0

16

en el intervalo [-1..2]. La figura siguiente muestra la grfica de esta funcin. Si calculamos de forma analtica los mximos de la funcin anterior (calculando los ceros de la primera derivada ....), observamos que el mximo global en el intervalo [-1..2] se obtiene para el valor 1.85, siendo f(1.85) = 3.85. Para resolver este problema, hay que particularizar algunos elementos del algoritmo gentico como la funcin fitness y el tamao de los individuos. Otros, como los operadores genticos, en principio no dependen del problema. Las particularidades del algoritmo para esta aplicacin son las siguientes. Representacin de los individuos Los individuos deben representar valores de la variable X en el intervalo [-1..2 ], ya que en principio estos valores son las soluciones potenciales del problema. Dado que consideramos una representacin binaria, el tamao de los individuos se determinar teniendo en cuenta la precisin requerida. Por ejemplo, si queremos seis dgitos despus del punto decimal, necesitamos, al menos, 3000000 valores distintos. Esto significa que necesitamos al menos 22 bits, ya que 2097152 = 221 < 3000000 < 222 = 4194304 As, necesitamos una aplicacin de un vector de 22 bits en valores reales del intervalo [1..2]. Por ejemplo, el cromosoma (1000101110110101000111) representa al nmero 0.637197; y los vectores de 22 ceros y 22 unos representan respectivamente los valores 1 y 2. En este caso, resulta evidente que cada genotipo representa nicamente a un solo fenotipo.

4 3,5 3 2,5 f(x) 2 1,5 1 0,5 0 -1 0 x 1 2

Poblacin inicial Si no se dispone de algn tipo de informacin que nos ayude en este punto, la poblacin inicial se generar de forma aleatoria.

17

Operadores genticos Elegiremos los operadores de cruce en un punto y de mutacin comentados anteriormente. Funcin de evaluacin La funcin de evaluacin eval sobre un cromosoma v puede ser simplemente el valor de que nos da la funcin f sobre el valor real x que representa v eval(v)=f(x). Como hemos comentado, la funcin de evaluacin juega el papel del entorno clasificando las soluciones potenciales en funcin de su fitness o adaptacin. Por ejemplo, los individuos v1 = (1000101110110101000111), v2 = (0000001110000000010000), v3 = (1110000000111111000101), corresponden a los valores reales x1=0.637197, x2=-0.958973 y x3=1.627888, respectivamente. Consecuentemente, la funcin de evaluacin para estos individuos tomar los valores eval(v1) = f(x1) = 2.586345, eval(v2) = f(x2) = 1.078878, eval(v3) = f(x3) = 3.250650. Claramente el mejor individuo es v3 ya que tiene el valor ms alto de la funcin de evaluacin. En trminos genticos, es el que mejor se adapta al entorno y por lo tanto representa la mejor de las tres soluciones potenciales del problema. Parmetros La determinacin de los parmetros se suele hacer de forma emprica. No obstante, para un problema como el que nos ocupa, unos valores en principio razonables pueden ser: tamao de la poblacin 50, nmero de generaciones 100, probabilidad de cruce 0.5 y probabilidad de mutacin 0.01. Ya hemos visto que el tamao del individuo debe ser 22.

Algunas Modificaciones Hasta aqu hemos visto la versin ms simple de un algoritmo gentico tal y como est propuesta, por ejemplo, en [Goldberg 89]. A partir de esta versin, todos los componentes del algoritmo se pueden refinar con el fin de adaptarlos a las caractersticas del problema que se trata de resolver. La primera modificacin que se suele introducir es un cambio en la representacin de los individuos. Por ejemplo, en lugar de considerar la representacin binaria, se puede tener como cromosoma un vector de nmeros reales o de otra clase smbolos. Cualquier cambio de representacin lleva asociado un cambio en los operadores genticos. Por ejemplo, si se trata de resolver el problema del viajante de comercio, las ciudades se pueden representar por los nmeros {0,1,2,...,n} siendo 0 la ciudad de partida. En este caso los cromosomas pueden ser permutaciones del conjunto {1,2,...,n}. Cada individuo representa la secuencia de
18

ciudades que visita el viajante, y el fitness ser el coste del recorrido. En este caso, la operacin de mutacin se puede realizar seleccionando al azar dos nmeros de ciudades e intercambiarlos. En cuanto al cruce, una versin habitual es el denominado cruce basado en el orden, que consiste en lo siguiente: dados dos individuos que juegan el papel de padres, por ejemplo si hay 5 ciudades adems de la 0 de partida (1 2 3 4 5) (4 2 5 1 3)

se selecciona una subcadena de nmeros del primero, por ejemplo la que aparece subrayada. Los individuos de esta subcadena se eliminan del segundo padre y luego se inserta en lo que queda de este la subcadena ocupando las mismas posiciones que en el primer padre, desplazando lo necesario las ciudades que quedaban en el segundo. En este caso el resultado ser (2 5 3 4 1) Otra modificacin posible consiste en introducir informacin heurstica sobre el dominio del problema en los operadores genticos, o bien en la poblacin inicial. En la seccin siguiente veremos cmo se pueden introducir algunas modificaciones a travs de la solucin de un problema ms complejo que el simple clculo de mximos de funciones reales. Cuando se introduce alguna de estas modificaciones en la estrategia bsica que hemos visto aqu, se suele cambiar la denominacin de algoritmo gentico simple por otras como algoritmo gentico hbrido, algoritmo evolutivo, estrategia evolutiva, entre otras. Un caso importante lo constituye la denominada programacin gentica que trata de disear programas mediante estrategias evolutivas, por lo que los individuos son programas en algn lenguaje de programacin como el LISP o el PROLOG. La experiencia demuestra que la clave del xito de la bsqueda gentica est en elegir una buena representacin para los individuos. Esta representacin debe permitir que los operadores genticos produzcan individuos vlidos y que stos sean fciles de evaluar. Adems, la representacin debe definir un espacio de bsqueda exhaustivo, es decir que cualquier solucin real pueda ser eventualmente generada, o que al menos incluya una solucin ptima, pero que no sea demasiado grande. Otra caracterstica importante de la representacin es que, en la medida de lo posible, cada fenotipo debe estar representado por un solo genotipo; esto en algunos casos puede depender de la funcin fitness. Si no es factible esta correspondencia de uno a uno, al menos hay que tratar de que el nmero de genotipos que representan al mismo fenotipo sea lo menor posible. De esta forma se consigue una mayor diversidad de soluciones potenciales en la poblacin que ayuda a prevenir una convergencia prematura del AG. Esto es, una convergencia de la poblacin a regiones del espacio de bsqueda prximas a mximos locales. Existen otros factores que tambin son importantes como son las probabilidades de aplicacin de los operadores de cruce y mutacin, la definicin de la funcin fitness que determina la probabilidad de supervivencia de un individuo en la fase de seleccin. La evaluacin de esta funcin no debe tener un coste excesivo, pero, por otra parte, la funcin fitness debe discriminar bien la calidad de los individuos. Tambin es importante la eleccin del nmero de generaciones y del tamao de la poblacin. Todos estos parmetros se suelen fijar de forma emprica para cada problema, pero teniendo en

19

cuenta algunas caractersticas del problema como por ejemplo el tamao del espacio de bsqueda. La gran utilidad que tienen los algoritmos genticos como estrategias de resolucin de problemas se basa en los excelentes resultados experimentales que producen. No obstante, existen algunos resultados tericos que avalan tanto su eficiencia como su eficacia. Uno de estos resultados tericos es el denominado Teorema de los Esquemas ( [Goldberg 89], [Michalewicz 94] ) que, de una forma estadstica, trata de justificar que para valores razonables de los parmetros del algoritmo, el fitness medio de la poblacin mejora en las sucesivas generaciones. Con lo cual tambin cabe esperar que mejore el fitness del mejor individuo de la poblacin.

Por qu Funcionan los Algoritmos Genticos? Si se tiene una poblacin de individuos representados por sus correspondientes cromosomas as como los respectivos valores de la funcin fitness, la pregunta que nos podemos formular es: qu informacin tenemos para hacer una bsqueda guiada hacia la solucin ptima?. Consideremos por ejemplo las siguientes cadenas binarias y los fitness correspondientes en un determinado problema (calcular el mximo de la funcin f(x) = x2) Cadena 01101 11000 01000 10011 Fitness 169 576 64 361

Observando las cadenas y los fitness asociados, quiz podamos sacar alguna conclusin sobre aspectos de los individuos que estn relacionados con un valor elevado de la funcin fitness. Por ejemplo, parece que el tener un 1 como primer bit de la izquierda es una buena caracterstica para tener un valor alto de la funcin fitness. La propia dinmica del AG explotar esta caracterstica, ya que generar muchos cromosomas con un 1 en la primera posicin de la izquierda, debido a que los cromosomas que tienen un 1 en esta posicin tienen en general un valor de fitness alto y los operadores de cruce y mutacin tienden a mantener este 1 en los descendientes. Si realmente es cierto que el fitness medio de los cromosomas que tienen un 1 en la primera posicin es sustancialmente superior al fitness medio de todos los cromosomas del espacio de bsqueda, diremos que la cadena 1**** es un buen patrn o esquema. El AG mantendr un nmero elevado de instancias de este esquema en las sucesivas generaciones. El hecho de que existan buenos esquemas es determinante para la buena convergencia de los AGs. En la seccin siguiente formalizamos un poco estas ideas.

20

Los Esquemas Puesto que las similitudes entre cadenas con buenos valores de fitness pueden ayudarnos en nuestra bsqueda de la solucin del problema, es necesario definir un patrn o patrones de similitud entre cadenas. Surge as el concepto de esquema en la teora de los A.G. Un esquema describir un conjunto de cadenas con similitudes en ciertas posiciones. Supongamos que tenemos el alfabeto binario {0,1} y que aadimos al alfabeto un smbolo especial denotado por * que puede substituirse por cualquiera de los smbolos del alfabeto para formar una cadena. Con dicho alfabeto extendido podemos crear las cadenas que representarn los esquemas. El significado de los esquemas es claro si lo vemos como patrones de cadenas. As una cadena est representada por un esquema determinado si las posiciones en las que el esquema posee un 0 un 1 coinciden de manera exacta con las de la cadena. Consideremos por ejemplo el siguiente esquema de cadenas de longitud 5: *1111. Dicho esquema representa las cadenas 11111 y 01111. Como se puede intuir, la idea de esquema nos proporciona un mtodo claro para hablar de similitudes entre las cadenas. Obsrvese que fijada una longitud L, existen 3L esquemas de dicha longitud sobre el alfabeto binario. Adems, dada una cadena de longitud L, sta estar representada por 2L esquemas. En consecuencia en una poblacin de n individuos el nmero de esquemas representados estar comprendido entre 2L y n2L. Todos estos ejercicios de conteo pueden darnos una idea de la magnitud de informacin que es procesada en un algoritmo gentico. Dado un esquema H, definimos su orden, denotado por o(H), como el nmero de posiciones distintas de *. Por ejemplo o(0110*1) = 5 y o(1***10*) = 3. Definimos tambin la longitud de un esquema H, y la denotamos por (H), como la distancia entre la primera y la ltima de sus posiciones distintas de *. De esta forma tenemos que (011*0**) = 4 y (0*****) = 0.

El Teorema de los Esquemas Los esquemas resultan de gran importancia a la hora de clasificar las similitudes entre cromosomas. Consideremos el efecto individual y combinado de los operadores de seleccin, cruce y mutacin sobre los esquemas contenidos en una poblacin. El efecto de la seleccin es sencillo de determinar. Supongamos que en una determinada generacin t existen m individuos pertenecientes a un esquema H, contenidos en la poblacin P(t), denotndolo como m = m(H,t). Durante la seleccin, la probabilidad de que un individuo Ci sea seleccionado es pi = f i / f j , es decir el cociente entre el fitness de Ci y la suma de los fitness de los individuos de P(t). En consecuencia en n selecciones con en P(t) podemos deducir la siguiente igualdad m(H, t+1) = m(H,t) n f(H) / fj que nos dar una estimacin del nmero de individuos del esquema H que hemos escogido en esas n selecciones. En la frmula anterior, f(H) denota el fitness medio de los individuos de m(H,t). Considerando que el fitness medio de la totalidad de la poblacin es f = f j / n , la frmula anterior puede ponerse tambin:

21

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

f (H ) (1) f

Es decir el crecimiento de un esquema depende de la ratio fitness medio del mismo entre fitness medio de la poblacin con lo que los esquemas con fitness medio mayor que el fitness medio de la poblacin crecern en nmero de individuos mientras que aquellos esquemas con fitness medio menor que el fitness medio de la totalidad de la poblacin decrecern en nmero de muestras. De hecho este crecimiento de los buenos esquemas ser exponencial mientras que los esquemas malos tienden a desaparecer. Supongamos que el fitness medio de un determinado esquema H se mantiene por encima del fitness medio de la poblacin una cantidad c f . Entonces la frmula (1) se convierte en m( H , t + 1) = m( H , t ) f + cf = (1 + c)m( H , t ) (2) f

Con lo que suponiendo un valor de c estacionario a lo largo de las generaciones podemos poner m(H,t) = m(H,0) (1 + c)t. Ntese que todo este movimiento de los diferentes esquemas presentes en la poblacin va realizndose en paralelo de manera independiente. Por otro lado observemos que la seleccin no explora otras zonas del espacio de bsqueda ya que simplemente realiza copias de individuos presentes en la poblacin. Para ver cmo afecta el cruce en los diferentes esquemas consideremos una cadena de longitud 7 y dos esquemas representativos de dicha cadena: C = 0111000 H1 = *1****0 H2 = ***10** Considerando el cruce en un punto, supongamos que el punto de cruce se produce entre el tercer y el cuarto gen. En ese caso se puede observar que a no ser que la pareja de C en el cruce tenga un 0 en su ltimo gen o un 1 en su segundo gen, el esquema H1 se destruir con el cruce. Por el contrario el esquema H2 sobrevivir al cruce pues al menos uno de los hijos pertenece a H2. Aunque hemos utilizado un punto de cruce concreto, est claro que en un punto aleatorio es ms probable que se destruya el esquema H1. qu diferencia hay entre ambos esquemas?. Ntese que (H1) = 5, mientras que (H2) =1. Teniendo en cuenta lo anterior y el hecho de que el punto de corte se elige aleatoriamente, podemos decir que la probabilidad de que el esquema H1 sea destruido es (H1) / 6 = 5 / 6; mientras que la probabilidad de que lo sea H2 es (H1) / 6 = 1 / 6. En general la probabilidad de supervivencia de un esquema H tras el cruce ser: ps = 1 (H) / (L 1); siendo L la longitud de los cromosomas. Si adems consideramos una probabilidad de cruce pc para cada par de cromosomas emparejados, la probabilidad de supervivencia de un esquema H queda:

p s 1 pc

(H )
L 1

(3)

Si consideramos ahora el efecto combinado del cruce y la seleccin sobre un esquema H, considerando las frmulas (1) y (3) adems del hecho de que seleccin y cruce son operaciones independientes, tenemos:

22

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

(H ) f (H ) 1 p c L 1 (4) f

En consecuencia podemos decir que el esquema H crece o decrece segn un factor multiplicativo. Hasta el momento dicho factor depende de dos circunstancias: la calidad de esquema medida con su fitness medio y la longitud. En efecto, aquellos esquemas con un fitness medio por encima del fitness medio de la poblacin y con una longitud pequea crecern. Consideremos finalmente el efecto de la operacin de mutacin sobre los esquemas. Teniendo en cuenta la mutacin utilizada, en la que se muta cada gen del cromosoma con una probabilidad pm, para que un esquema sobreviva a una mutacin no deben cambiar ninguna de sus posiciones fijas (aquellas distintas de *). As la probabilidad de que un esquema H sobreviva a una mutacin es (1 pm)o(H), pues H tendr o(H) posiciones fijas y la probabilidad de que una posicin fija no mute es (1 pm). Para valores muy pequeos de pm la expresin anterior puede aproximarse por 1 o(H) pm. As pues podemos concluir, teniendo en cuenta el conjunto de las operaciones de seleccin, cruce y mutacin que para un esquema H el nmero de individuos pertenecientes a l esperados en la poblacin siguiente puede aproximarse mediante la siguiente desigualdad (donde se suprimen los productos de los trminos pequeos):
m( H , t + 1) m( H , t )

(H ) f (H ) 1 p c L 1 o( H ) p m (5) f

Por tanto y como conclusin de este estudio de la influencia de la seleccin cruce y mutacin sobre los esquemas, podemos decir que aquellos esquemas con un fitness medio superior a la media de la poblacin, de longitud pequea y con un orden bajo, aumentarn su presencia de manera exponencial en las sucesivas generaciones. Esta conclusin, reflejada por la ecuacin (5) se conoce como el Teorema de los Esquemas o Teorema Fundamental de los Algoritmos Genticos.
BIBLIOGRAFA RECOMENDADA

[Goldberg 89] Goldberg, D. Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, Reading, MA (1989). [Michalewicz 96] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd edition, Springer, Berlin (1996). [Alba/Cotta] Alba, E. Cotta, C. http://polaris.lcc.uma.es/~ccottap/semEC/ Tutorial de Algoritmos Evolutivos

[Hans-Georg] Hans-Georg, Beyer et others, Glossary, Evolutionary Algorithms terms and Definitions http://ls11-www.cs.uni-dortmund.de/people/beyer/EA-glossary/def-engl-html.html

23

Potrebbero piacerti anche