Algoritmo genéticos

download Algoritmo genéticos

of 22

Transcript of Algoritmo genéticos

  • 7/25/2019 Algoritmo genticos

    1/22

    Universidad Nacional Autnoma de Mxico

    Posgrado en Ingeniera de sistemas

    Maestra en Investigacin de Operaciones

    Programacin Entera

    Proyecto fnal

    Gonzlez Vargas Carlos Arturo

    19 de noviembre de 2013

  • 7/25/2019 Algoritmo genticos

    2/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    2

    ContenidoObjetivo############################################################################################################# $

    Introduccin##################################################################################################### $

    Algoritmos genticos######################################################################################%

    Or!genes############################################################################################################ %

    "obustidad en mtodos tradicionales de o#timizacin y b$s%ueda#######&

    Evolucin natural y algoritmos genticos###################################################'

    Codifcacin###################################################################################################### 9

    &eleccin#########################################################################################################10

    (eleccin por rueda de ruleta######################################################################## 11

    (eleccin por rango####################################################################################### 11

    (eleccin elitista############################################################################################ 11

    (eleccin por estado estacionario#################################################################11

    (eleccin por torneo###################################################################################### 11

    (eleccin escalada#########################################################################################11

    (eleccin )er"r!uica#######################################################################################12

    Cruce################################################################################################################12

    *ruce de 1 punto +(ingle ,oint -.c/ange (,#############################################13

  • 7/25/2019 Algoritmo genticos

    3/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    3

    *ruce de 2 puntos +ouble ,oint *rossover ,#########################################13

    *ruce uni4orme +5ni4orm ,oint *rossover 5,############################################13

    *ruces espec6cos de codi6caciones no binarias:##########################################1$

    Algoritmos de 7eempla8o############################################################################## 1%

    'utacin######################################################################################################### 1%

    Evaluacin#######################################################################################################1&

    Ejem#lo de algoritmo gentico###################################################################1&

    Ventajas de los algoritmos genticos########################################################1'

    (esventajas de los algoritmos genticos##################################################1

    A#licaciones###################################################################################################1Conclusiones##################################################################################################19

    "e)erencias#####################################################################################################20

  • 7/25/2019 Algoritmo genticos

    4/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    $

    Algoritmos genticos* una alternativa en la

    b$s%ueda de soluciones #ara modelosmatemticos

    Objetivo

    7ecopilar in4ormacin sobre los algoritmos genticos para e.poner sus

    orgenes obetivos alcances aplicaciones ; caractersticas usti6cando el por!u son una /erramienta !ue se debe de tomar en cuenta para la solucin de

    problemas de optimi8acin combinatoria tales como son los problemas de

    ,rogramacin -ntera la cual motiva la elaboracin de este te.to#

    Introduccin

  • 7/25/2019 Algoritmo genticos

    5/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    %

    Algoritmos genticos

    (egn @oldberg los algoritmos genticos son algoritmos de bs!ueda

    basados en la mec"nica de la seleccin natural ; la gentica# *ombinan la

    sobrevivencia del m"s apto entre estructuras de secuencias con un intercambio

    de in4ormacin estructurado aun!ue aleatori8ado para construir as un

    algoritmo de bs!ueda !ue tenga algo de las genialidades de las bs!uedas

    /umanas# -n cada generacin un nuevo arreglo de criaturas arti6ciales es

    creado usando peda8os ; pie8as de lo m"s austado del anterior>

    ocasionalmente una nueva pie8a ser" probada para meorar la medida# Aun!ue

    aleatorios los algoritmos genticos no son una simple caminata aleatoria#

    -.plotan e6cientemente la in4ormacin /istrica para especular sobre los

    nuevos puntos de bs!ueda de donde se espera un meor desempeBo#C

    +@oldberg 199

    Orgenes

    -l desarrollo de los algoritmos genticos se debe en gran medida a )o/n

    Dolland investigador de la 5niversidad de Mic/igan# A 6nales de la dcada de

    los &0 desarroll una tcnica !ue imitaba en su 4uncionamiento a la seleccin

    natural# Aun!ue originalmente esta tcnica recibi el nombre de planesreproductivosC a ra8 de la publicacin en 19'% de su libro Adaptation in

    Natural and Artifcial Systems +Dolland 19'% se conoce principalmente con el

    nombre de Algoritmos @enticos# A grandes rasgos un Algoritmo @entico

    consiste en una poblacin de soluciones codi6cadas de 4orma similar a

    cromosomas# *ada uno de estos cromosomas tendr" asociado un valor de

    auste !ue cuanti6ca su valide8 como solucin al problema# -n 4uncin de este

    valor se le dar"n m"s o menos oportunidades de reproduccin# Adem"s con

    cierta probabilidad se reali8ar"n mutaciones de estos cromosomas +@oldberg

    2002#

  • 7/25/2019 Algoritmo genticos

    6/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    &

    Robustidad en mtodos tradicionales de optimiacin ! b"s#ueda

    @oldberg menciona tres tipos principales de bs!ueda: Gasados en c"lculos

    enumerativos ; aleatorios:

  • 7/25/2019 Algoritmo genticos

    7/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    '

    pero todos los problemas !ue no cumplan con esto se resuelven de manera

    ine6ciente o no se pueden resolver por medio de estos mtodos#

    ,ara encontrar ventaas sobre otros mtodos de optimi8acin ; bs!ueda

    tradicionales en cuanto a robustidad los algoritmos genticos deben ser

    di4erentes en ciertas 4ormas 4undamentales:

    ?rabaan con un cdigo del conunto de par"metros no con el conunto

    mismo +necesitan !ue el conunto de par"metros del problema de

    optimi8acin est codi6cado en cadenas 6nitas sobre un determinado

    al4abeto# ,or trabaar a nivel de cdigo ; no con las 4unciones ; sus

    variables de control como los otros mtodos son m"s di4ciles de

    engaBarC# Guscan una poblacin de puntos no un nico punto# Manteniendo una

    poblacin de puntos muestrales bien adaptados se reduce la

    probabilidad de caer en una cima 4alsa# -mplean la 4uncin obetivo no necesitan derivadas ni otra in4ormacin

    complementaria tan di4cil a veces de conseguir# e este modo ganan

    en e6ciencia ; en generalidad# (e valen de reglas de transicin estoc"sticas no deterministas#

  • 7/25/2019 Algoritmo genticos

    8/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    como genotipo es el conunto de genes contenido en un genoma# -l genotipo

    dar" lugar tras el desarrollo 4etal al 4enotipo del organismo esto es a sus

    caractersticas 4sicas ; mentales tales como el color de oos la estatura o lainteligencia# se

    llaman /aploides en caso contrario# -n el caso del ser /umano cada clula

    som"tica +no germinales de su cuerpo contiene 23 pares de cromosomas#

    urante la reproduccin se.ual se produce una recombinacin o cruce: en cada

    padre se intercambian los genes entre cada par de cromosomas para 4ormar

    un gameto +un cromosoma nico ; entonces los gametos de los dos padres

    se emparean para constituir un conunto completo de cromosomas diploides#

    -n el caso de la reproduccin /aploide los genes se intercambian entre dos

    padres con una sola rama de cromosomas#

  • 7/25/2019 Algoritmo genticos

    9/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    9

    algoritmos !ue poseen un nivel genotpicoC ; uno 4enotpicoC +por eemplo la

    cadena de bits !ue codi6ca una red neuronal ; la red en s misma#

    (egn /emos visto podemos considerar !ue los algoritmos genticos tienen al

    menos estos elementos en comn: poblaciones de cromosomas seleccin en

    base a su capacidad cruces para producir descendencia nueva ; mutacin

    aleatoria de la nueva descendencia#

  • 7/25/2019 Algoritmo genticos

    10/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    10

    normalmente mu; pe!ueBa +por eemplo 0#001 +?olmos 7odrigue8H

    ,iBero 2000#

    ic/os operadores genticos unto con su aplicacin en algoritmos genticos

    son e.plicados m"s adelante en este documento#

  • 7/25/2019 Algoritmo genticos

    11/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    11

    Individuo gentico binario+@estal 7ivero 7abuBal orado K ,a8os 2010#

    entro de la trans4ormacin reali8ada desde el proceso natural /asta el

    proceso computacional se deben de tomar en consideracin los papeles !ue

    uegan los operadores genticos aplicados en el algoritmo en el paso de una

    generacin a otra#

    'eleccin

    -s necesario /acer una seleccin con los individuos m"s capacitados para !ue

    estos sean los !ue se reprodu8can con m"s probabilidad de acuerdo con la

    teora de ar=in en la cual los m"s capacitados son los !ue deben sobrevivir ;

    crear una nueva descendencia m"s 4acultada#

    ,or lo tanto una ve8 evaluado cada cromosoma ; obtenida su puntuacin se

    tiene !ue crear la nueva poblacin teniendo en cuenta !ue los buenos rasgos

    de los meores se transmitan a sta# -sta seleccin se puede reali8ar de varias

    4ormas como se ver" a continuacin en algunas tcnicas recopiladas por Arran8

    de la ,eBa ; ,arra ?ru;ol#

    &eleccin #or rueda de ruleta(e crea para esta seleccin una ruleta con los cromosomas presentes en una

    generacin# *ada cromosoma tendr" una parte de dic/a ruleta ma;or o menor

    en 4uncin de la puntuacin !ue tenga cada uno# (e /ace girar la ruleta ; se

    selecciona el cromosoma en el !ue se para la ruleta# -l cromosoma con ma;or

    puntuacin saldr" con ma;or probabilidad# -n caso de !ue las probabilidades

  • 7/25/2019 Algoritmo genticos

    12/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    12

    di6eran muc/o este mtodo de seleccin dar" problemas puesto !ue si un

    cromosoma tiene un 90L de posibilidades de ser seleccionado el resto apenas

    saldr" lo !ue reducira la diversidad gentica#

    &eleccin #or rango-n este mtodo a cada cromosoma se le asigna un rango numrico basado en

    su aptitud ; la seleccin se reali8a con base en este raning# -n este ltimo

    caso se va a producir una variedad gentica muc/o m"s rica !ue en el primer

    caso# -l problema de esta seleccin es !ue la convergencia puede ser m"s

    lenta ;a !ue no e.iste tanta di4erencia entre el meor cromosoma ; el resto

    como ocurra antes#

    &eleccin elitista-n ciertas ocasiones puede suceder !ue tras el cruce ; la mutacin perdamos

    el cromosoma con meor adaptacin# -ste mtodo de seleccin copia el meor

    cromosoma o alguno de los meores en la nueva poblacin# -l resto se reali8a

    de la misma 4orma !ue /emos visto anteriormente# -l elitismo puede meorar

    el 4uncionamiento de los algoritmos genticos al evitar !ue se pierda la meor

    solucin# 5na variacin del elitismo es !ue el meor cromosoma solo se copie a

    la siguiente generacin en caso de !ue tras una reproduccinNmutacin no se

    /a;a generado un cromosoma meor#

    &eleccin #or estado estacionario

  • 7/25/2019 Algoritmo genticos

    13/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    13

    &eleccin +err%uica-n esta seleccin los individuos atraviesan mltiples rondas de seleccin en

    cada generacin#

  • 7/25/2019 Algoritmo genticos

    14/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    1$

    se podr"n volver a obtener estos padres recuperando as la bondad

    previamente perdida#

    -.isten multitud de algoritmos de cruce# (in embargo los m"s empleados son

    los !ue se detallar"n a continuacin:

    Cruce de , #unto -&ingle Point E.c/ange0 &P125na ve8 seleccionados dos individuos se cortan sus cromosomas por un punto

    seleccionado aleatoriamente para generar dos segmentos di4erenciados en

    cada uno de ellos: la cabe8a ; la cola# (e intercambian las colas entre los dos

    individuos para generar los nuevos descendientes# e esta manera ambos

    descendientes /eredan in4ormacin gentica de los padres>

    Cruce de un #unto+@estal 7ivero 7abuBal orado K ,a8os 2010#

    Cruce de 3 #untos -(ouble Point Crossover0 (P12-n ve8 de cortar por un nico punto los cromosomas de los padres como en elcaso anterior se reali8an dos cortes# eber" tenerse en cuenta !ue ninguno de

    estos puntos de corte coincida con el e.tremo de los cromosomas para

    garanti8ar !ue se originen tres segmentos# ,ara generar la descendencia se

    escoge el segmento central de uno de los padres ; los segmentos laterales del

    otro padre>

    Cruce de dos #untos+@estal 7ivero 7abuBal orado K ,a8os 2010#

  • 7/25/2019 Algoritmo genticos

    15/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    1%

    Cruce uni)orme -4ni)orm Point Crossover0 4P12*ada gen de la descendencia tiene las mismas probabilidades de pertenecer a

    uno u otro padre# Aun!ue se puede implementar de mu; diversas 4ormas la

    tcnica implica la generacin de una m"scara de cruce con valores binarios# (i

    en una de las posiciones de la m"scara /a; un 1 el gen situado en esa

    posicin en uno de los descendientes se copia del primer padre# (i por el

    contrario /a; un 0 el gen se copia del segundo padre# ,ara producir el segundo

    descendiente se intercambian los papeles de los padres o bien se intercambia

    la interpretacin de los unos ; los ceros de la m"scara de cruce#

  • 7/25/2019 Algoritmo genticos

    16/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    1&

    el problema aBadido de !u signo dar al resultado si los padres

    tienen signos di4erentes#

    o -.tensin: se toma la di4erencia e.istente entre los genes situadosen las mismas posiciones de los padres ; se suma al valor m"s

    alto o se resta del valor m"s bao# (olventa el problema de

    generar un nico descendiente# 5na variante basada en este

    cruce son los Algoritmos genticos de evolucin di4erencial#

    Algoritmos de "eem#lazo*uando en ve8 de trabaar con una poblacin temporal se /ace con una nica

    poblacin sobre la !ue se reali8an las selecciones e inserciones deber"

    tenerse en cuenta !ue para insertar un nuevo individuo deber" de eliminarse

    previamente otro de la poblacin# -.isten di4erentes mtodos de reempla8o:

    o Aleatorio: el nuevo individuo se inserta en un lugar escogido de

    manera aleatoria en la poblacin>o 7eempla8o de padres: se obtiene espacio para la nueva

    descendencia liberando el espacio ocupado por los padres#>o 7eempla8o de similares: una ve8 obtenido el auste de la

    descendencia se selecciona un grupo de individuos +entre seis ;

    die8 de la poblacin con un auste similar# (e reempla8an

    aleatoriamente los !ue sean necesarios>o 7eempla8o de los peores: de entre un porcentae de los peores

    individuos de la poblacin se seleccionan aleatoriamente los

    necesarios para dear sitio a la descendencia# +@estal 7ivero

    7abuBal orado K ,a8os 2010

    Mutacin

    ?ras el cruce tiene lugar la mutacin#

  • 7/25/2019 Algoritmo genticos

    17/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    1'

    ser el aumento del tamaBo de la poblacin o garanti8ar la aleatoriedad de la

    poblacin inicial#

    ,ara el caso de una codi6cacin binaria la mutacin consiste simplemente en

    la inversin del gen mutado !ue corresponder" con un bit# -n el caso de una

    codi6cacin numrica la mutacin podra consistir en sustituir un nmero por

    otro o intercambiar un nmero por otro !ue est" en otra posicin del

    cromosoma# -n el caso de codi6cacin por valor directo en el !ue por eemplo

    usemos nmeros reales la mutacin puede consistir simplemente en modi6car

    el valor en unos decimales# ,or ltimo en una codi6cacin en "rbol la

    mutacin podra radicar en el cambio de operador de un nmero o incluso en

    la mutacin de una rama entera +Arran8 de la ,eBa K ,arra ?ru;ol#

    $valuacin

    ,ara el correcto 4uncionamiento de un Algoritmo @entico se debe de poseer

    un mtodo !ue indi!ue si los individuos de la poblacin representan o no

    buenas soluciones al problema planteado# e esto se encarga la 4uncin de

    evaluacin !ue establece una medida numrica de la bondad de una solucin#

    -sta medida recibe el nombre de auste# -n la naturale8a el auste +oadecuacin de un individuo puede considerarse como la probabilidad de !ue

    ese individuo sobreviva /asta la edad de reproduccin ; se reprodu8ca# -sta

    probabilidad deber" estar ponderada con el nmero de individuos de la

    poblacin gentica#

    -n el mundo de los Algoritmos @enticos se emplear" esta medicin para

    controlar la aplicacin de los operadores genticos# -s decir permitir" controlar

    el nmero de selecciones cruces copias ; mutaciones llevadas a cabo#

  • 7/25/2019 Algoritmo genticos

    18/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    1

    ,ara representar una apro.imacin de la teora revisada /asta el momento a su

    transcripcin computacional se eligi tomar un eemplo presentado por ?olmos

    7odrigue8H,iBero tomado de Mitc/ell M# +199 ;a !ue se est" redactado en4orma parecida a un pseudocdigo de programacin sin serlo ;a !ue al estar

    m"s desarrollado es m"s entendible:

    (ea X el problema a resolver# ada una representacin de candidatas a

    soluciones en una cadena de bits un algoritmo gentico simple trabaara del

    siguiente modo:

    1# *omen8ar con una poblacin P generada aleatoriamente de n

    cromosomas de 1 bit#2# *alcular la capacidad (x) para cada cromosomaxde P#

    3# (i (x)da un valor ptimo terminar en otro caso:$# 7epetir los siguientes pasos /asta !ue se /a;an creado ndescendientes:a# (eleccionar un par de cromosomas padre de P siendo la

    probabilidad de seleccin una 4uncin creciente de la capacidad#

  • 7/25/2019 Algoritmo genticos

    19/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    19

    tiempo ; si la solucin !ue descubren resulta subptima no se puede

    /acer otra cosa !ue abandonar todo el trabao /ec/o ; empe8ar de

    nuevo# (in embargo los algoritmos genticos simplemente desec/anesta solucin subptima ; siguen por otros caminos>

    J *uando se usan para problemas de optimi8acin resultan menos

    a4ectados por los m".imos locales +4alsas soluciones !ue las tcnicas

    tradicionales# Muc/os algoritmos de bs!ueda pueden !uedar atrapados

    en los ptimos locales: si llegan a lo alto de una colina del paisae

    adaptativo descubrir"n !ue no e.isten soluciones meores en las

    cercanas ; concluir"n !ue /an alcan8ado la meor de todas aun!ue

    e.istan picos m"s altos en algn otro lugar del mapa situacin !ue no

    sucede para algoritmos genticos>J Otra ventaa es su /abilidad para manipular muc/os par"metros

    simult"neamente# 7esulta interesante en caso de tener varios obetivos

    a resolver>J o necesitan conocimientos espec6cos sobre el problema !ue intentan

    resolver# 7eali8an cambios aleatorios en sus soluciones candidatas ;

    luego utili8an la 4uncin de aptitud para determinar si esos cambios

    producen una meora o no>J 7esulta sumamente 4"cil eecutarlos en las modernas ar!uitecturas

    masivas en paralelo>J 5san operadores probabilsticos en ve8 de los tpicos operadores

    determinsticos de las otras tcnicas#

    )esventajas de los algoritmos genticos

    J e6nir una representacin del problema# -l lenguae utili8ado para

    especi6car soluciones candidatas debe ser robusto debe ser capa8 de

    tolerar cambios aleatorios !ue no produ8can constantemente errores

    4atales o resultados sin sentido# (e puede solucionar mediante la

    de6nicin de los individuos como listas de nmeros donde cada nmero

    representa algn aspecto de la solucin candidata#J ,ueden tardar muc/o en converger o no converger en absoluto

    dependiendo en cierta medida de los par"metros !ue se utilicen#J ,ueden converger prematuramente debido a una serie de problemas# (i

    un individuo !ue es m"s apto !ue la ma;ora de sus competidores

    emerge mu; pronto en el curso de la eecucin se puede reproducir tan

    abundantemente !ue merme la diversidad de la poblacin demasiado

    pronto provocando !ue el algoritmo convera /acia el ptimo local !ue

  • 7/25/2019 Algoritmo genticos

    20/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    20

    representa ese individuo en lugar de rastrear el paisae adaptativo lo

    bastante a 4ondo para encontrar el ptimo global# -sto es un problema

    especialmente comn en las poblaciones pe!ueBas donde incluso unavariacin aleatoria en el ritmo de reproduccin puede provocar !ue un

    genotipo se /aga dominante sobre los otros#

    Aplicaciones

  • 7/25/2019 Algoritmo genticos

    21/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    21

    -cologa: -n la modelacin de 4enmenos ecolgicos tales como las

    carreras de armamento biolgico la coHevolucin de par"sitoH/uesped

    la simbiosis ; el Puo de recursos# @entica de poblaciones: -n el estudio de preguntas del tipo QGao !u

    condiciones ser" viable evolutivamente un gen para la recombinacinRC -volucin ; aprendi8ae:

  • 7/25/2019 Algoritmo genticos

    22/22

    Algoritmos genticos: una alternativa en la bs!ueda de

    soluciones para modelos matem"ticos

    Gonzlez Vargas Carlos Arturo

    22

    no sean lo su6cientemente e6cientes o tengan problemas para encontrar

    soluciones en un tiempo adecuado#

    Re&erencias

    Arran8 de la ,eBa )# K ,arra ?ru;ol A# +s#4##Algoritmos Genticos!Madrid:5niversidad *arlos III#

    @estal M# 7ivero # 7abuBal )# orado )# K ,a8os A# +2010# "ntroducci#n a

    los Algoritmos Genticos y Programaci#n Gentica!