A Lgor It Mos Genetic Os

of 30 /30
ALGORITMOS GENÉTICOS “En lugar de envidiar la naturaleza debemos emularla” Holland

Embed Size (px)

description

dddddddddddddddddddddddddddddddddddddddd

Transcript of A Lgor It Mos Genetic Os

  • ALGORITMOS GENTICOS En lugar de envidiar la naturaleza debemos emularla Holland

  • Algoritmos genticosAlgoritmos basados en los principios de la evolucin natural Se utilizan en problemas donde no se pueden encontrar soluciones o estas no son satisfactorias Funcionamiento bsico:Se genera de forma aleatoria una poblacin inicial de soluciones potenciales, se entra en un proceso iterativo que trasforma la poblacin a travs de:una evaluacin de las soluciones que forman la poblacin seleccin de las mejores y reproduccin recombinacin de estas formando una nueva poblacin

  • Componentes de un algoritmo genticoUna representacin gentica de las soluciones del problemaUna forma de crear una poblacin inicial de solucionesUna funcin de evaluacin capaz de medir la bondad de cualquier solucinUn conjunto de operadores genticos como reglas de transicin probabilsticas para guiar la bsquedaEl valor de unos parmetros de entrada que el algoritmo gentico utilizar para guiar su evolucin

  • Esquema bsicoProcedimiento AGIniciot:=0;inicializar P(t);evaluar P(t);mientras (no condicin de terminacin) hacert:=t+1;reproducir P(t-1) en P(t);recombinar P(t);evaluar P(t);Fin_mientras;Fin.

  • Esquema bsico

  • RepresentacinCadenas binarias (generalmente) de longitud determinada por el nmero de variables existentes en una solucin y el nmero de bits necesarios para representarlas; cromosomas o estructuras

    Ejemplo: maximizar f(x)=x2 (0- 31) Representacin en binarioLos cromosomas estn compuestos por genes; el valor de un gen se denomina alelo y a su posicin locus

  • RepresentacinCada iteracin ser una generacin; cit = (bi1t...bilt) representa el cromosoma ci de la generacin t, b ser un gen o un elemento del vocabulario elegido.

    Podemos representar un individuo Xit en una generacin determinada t, como la terna:Xit=(cit,xit,fit)xit es la decodificacin del cromosoma (fenotipo) y fit es la adecuacin de la solucin

  • Obtencin de la poblacin inicialConjunto de individuos de nmero m, (m parmetro) P(t)= {Xit,....Xit}Inicializacin de un individuo Xi0 consiste en asignar un valor aleatorio a cada uno de los genes bij0, con la decodificacin obtenemos su fenotipo xi0 y fi0 lo obtendremos a travs de la funcin de evaluacin.m = 4

  • Funcin de evaluacin Objetivo: medir la adecuacin de una solucin en una generacin t

    La funcin de evaluacin se corresponde con la funcin objetivo del problema

    Dado un cromosoma cit, y su fenotipo xit podemos obtener su adecuacin fit como:

    fit=eval(cit)=f(xit)

  • Funcin de evaluacinfit=eval(cit)=f(xit) en este caso f(x) =x2

    CodificacinciDecodificacinxiFitnessfi011011316911000245760100086410011193611170

  • Operadores Genticos Reproduccin: Incluye un algoritmo de seleccin y un algoritmo de muestreo El algoritmo de seleccin asigna una probabilidad de seleccin a cada cromosoma El algoritmo de muestreo produce copias de los cromosomas de la generacin t-1 a la generacin tLos cromosomas con mayor probabilidad de seleccin se reproducirn un nmero de veces mayor y tendrn mayor repercusin en las siguientes generaciones.

  • Operadores Genticos: seleccin y muestreo

    ciciFitness% del total011011316914.4110002457649.2010008645.5100111936130.91170100

  • Operadores Genticos: esquemas de seleccin y muestreoBasado en el rango: Se mantiene el porcentaje de la poblacin.Los M peores se substituyen por la descendencia de los mejores.Diferentes variantesRueda de ruleta:Los cromosomas de la generacin actual en una cantidad proporcional a su bondadSeleccin de torneo: Se escoge aleatoriamente un nmero T de individuos, gana el que mejor se adapta, se repite hasta obtener el nmero de individuos deseados

  • Operadores genticos: rueda de ruleta

  • Operadores Genticos: cruce Cruce: Dependiendo de una probabilidad inicial, probabilidad de cruce seleccionamos de forma aleatoria los cromosomas que van a participar en el apareamientoA continuacin aplicamos alguna tcnica de cruce, por ejemplo el cruce simple 1 1 0 0 01 0 0 1 11 0 0 0 01 1 0 1 1

  • Operadores Genticos: cruceCruce de n puntos: los cromosomas se cortan por n puntos aleatorios y se intercambia el material genticoCruce uniforme: cada gen se obtiene de la madre o del padre de forma aleatoria

  • Operadores Genticos: cruce

  • Operadores Genticos: mutacinMutacin: Su objetivo es producir diversidad en la poblacinTeniendo en cuenta una probabilidad, probabilidad de mutacin, y de forma aleatoria se altera un bit o gen de un cromosoma

    Una vez aplicados los operadores, se evala de nuevo la poblacin

  • Operadores GenticosParmetros:Tamao de la poblacinNmero de generacionesProbabilidad de cruceProbabilidad de mutacin

    Ejemplo: valores aceptados para funciones de optimizacinTamao de la poblacin: 50-100Probabilidad de cruce: 0.60Probabilidad de mutacin: 0.001

  • EL problema de la mochilaN objetos para meter en una mochilaCada objeto i, tiene un pero pi, y si se mete en la mochila produce un beneficio biObjetivo: Llenar la mochila obteniendo el mximo beneficio:Maximizarsujeto a

  • El problema de la mochilaRepresentacinX=(x1, x2,...xn) xi pertenece a (0,1)

    !! Pueden haber individuos que no cumplen las restriciones!!Funcin de evaluacin: si en otro caso

  • Problema de la mochilaCon la funcin de evaluacin eliminamos las soluciones no factiblesSe generan individuos de forma aleatoriaEl operador de cruce, se puede usar el cruce simpleSe puede seguir el esquema general

  • Fundamentos de AGEsquema: patrn de similitud que describe un subconjunto de cadenas con similitudes en ciertas posicionesAumentamos el vocabulario con el smbolo *, en las posiciones en las que aparece este smbolo puede haber cualquier elemento del alfabeto inicial.Orden de un esquema O(E): nmero de posiciones fijas en l

  • Fundamentos de AGLongitud de un esquema L(E): distancia entre la primera y la ltima posicin definida en el esquemaCada ristra pertenece a todas las regiones (esquemas) en las cuales aparece cualquiera de sus bitsEl nmero de esquemas procesados tilmente por un algoritmo gentico que maneje una poblacin de n individuos es del orden de m3. Paralelismo implcito

  • Fundamentos de AGAplicacin del operador seleccin: La probabilidad de seleccionar un cromosoma perteneciente a un esquema E, viene dada por el cociente entre la adecuacin media de los representantes de un esquema y la adecuacin media de la poblacin en un instante t.m(E,t+1)= m(E,t) . fpro(E)/fprom(E,t) nmero de representantes del esquema E en la generacin t

  • Fundamentos de AGAplicacin del operador cruce:Si A=B No se destruye ningn esquemaSi el orden del esquema es cero, no ser destruido nuncaSi la longitud del esquema es uno la probabilidad de que sea destruido es 1/m-1Si la longitud del esquema es dos la probabilidad es 2/m-1. En general L(E)/m-1 Teniendo en cuenta la probabilidad de aplicar el cruce Pc L(E)/m-1

  • Fundamentos de AGAplicacin del operador mutacin: Pm probabilidad de mutacin, 1-Pm probabilidad de que un gen sobrevivaO(E) . Pm probabilidad de que sobrevivan todos los de un cromosoma Si consideramos un esquema por encima de la media e%, el efecto del operador reproduccin, en cada generacin los esquemas por encima de la media reciben un incremento exponencial de sus representantesm(E,t+1) = m(E,0)(1+e)t

  • Fundamentos de AGSi consideramos tambin el efecto del operador cruce y mutacin:m(E,t+1) >= m(E,t) . (fpro(E)/fpro ). [1-PcL(e)/(m-1)-O(E)Pm

    Teorema del esquema:

    Los esquemas de longitud corta, orden bajo y adecuacin por encima de la media reciben un incremento exponencial en subsiguientes generaciones de un algoritmo gentico

  • Fundamentos de AG

  • Tutorialeshttp://geneura.ugr.es/~jmerelo/iehttp://www.cs.qub.ac.uk/~/M.Sullivan/ga/ga_index.htmlhttp://polaris.lcc.uma.es/~ccottap/semEC/http://cs.felk.cvut.cz/~xobitko/ga/http://lisisu02.fis.usal.es/~curdoc7/

    Se encuentran un tutoriales sobre algoritmos genticos, y direcciones donde se pueden encontrar algoritmos simples, con los que se puede jugar cambiando parmetros del algoritmo