SlideShare una empresa de Scribd logo
Introducci´n a los Algoritmos Gen´ticos
           o                      e
                       Marcos Gestal Pose
    Depto. Tecnolog´ de la Informaci´n y las Comunicaciones
                   ıas                o
                     Universidade da Coru˜a
                                          n
                http://sabia.tic.udc.es/˜mgestal
                         mgestal@udc.es


´
Indice
1. Introducci´n
             o                                                                                         2

2. Or´
     ıgenes                                                                                            2

3. Bases Biol´gicas
             o                                                                                         4

4. Codificaci´n de Problemas
            o                                                                                          4

5. Algoritmo Principal                                                                                5

6. Operadores Gen´ticos
                      e                                                                                8
   6.1. Selecci´n . . . . . . . . . . .
               o                          . . . . . . . .   . . . . . . .     .   .   .   .   .   .    8
        6.1.1. Selecci´n por ruleta
                       o                  . . . . . . . .   . . . . . . .     .   .   .   .   .   .    8
        6.1.2. Selecci´n por torneo
                       o                  . . . . . . . .   . . . . . . .     .   .   .   .   .   .    9
   6.2. Cruce . . . . . . . . . . . .     . . . . . . . .   . . . . . . .     .   .   .   .   .   .    9
        6.2.1. Cruce de 1 punto . .       . . . . . . . .   . . . . . . .     .   .   .   .   .   .   10
        6.2.2. Cruce de 2 puntos .        . . . . . . . .   . . . . . . .     .   .   .   .   .   .   10
        6.2.3. Cruce Uniforme . . .       . . . . . . . .   . . . . . . .     .   .   .   .   .   .   11
        6.2.4. Cruces espec´  ıficos de    codificaciones     no binarias       .   .   .   .   .   .   11
   6.3. Algoritmos de Reemplazo .         . . . . . . . .   . . . . . . .     .   .   .   .   .   .   12
   6.4. Copia . . . . . . . . . . . .     . . . . . . . .   . . . . . . .     .   .   .   .   .   .   13
   6.5. Mutaci´n . . . . . . . . . .
               o                          . . . . . . . .   . . . . . . .     .   .   .   .   .   .   13

7. Evaluaci´n
           o                                                                                          14

´
Indice de figuras
   1.    Ecuaci´n Evolutiva . . . . . . . . . . . . . . . . . .
                o                                                     .   .   .   .   .   .   .   .    2
   2.    Soft Computing . . . . . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .    3
   3.    Individuo Gen´tico Binario . . . . . . . . . . . . .
                      e                                               .   .   .   .   .   .   .   .    5
   4.    Ejemplo Codificaci´n: Red de Neuronas Artificiales
                           o                                          .   .   .   .   .   .   .   .    6
   5.    Cruce de 1 Punto . . . . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   10
   6.    Cruce de 2 Puntos . . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   11
   7.    Cruce Uniforme . . . . . . . . . . . . . . . . . . . .       .   .   .   .   .   .   .   .   12


                                           1
Introducci´n a los Algoritmos Gen´ticos
          o                      e




         El siguiente tutorial no pretende ser un documento exhaustivo acer-
     ca de los Algoritmos Gen´ticos. M´s bien una referencia que sirva para
                                 e       a
     introducir la terminolog´ los conceptos claves y una bibliograf´ de ba-
                              ıa,                                   ıa
     se, quedando en manos del lector profundizar en aquellos aspectos que
     considere de mayor inter´s.
                               e


1.    Introducci´n
                o
    Los Algoritmos Gen´ticos son m´todos adaptativos, generalmente usados en
                        e             e
problemas de b´squeda y optimizaci´n de par´metros, basados en la reproduc-
                u                      o        a
ci´n sexual y en el principio supervivencia del m´s apto.
  o                                               a
    M´s formalmente, y siguiendo la definici´n dada por Goldberg, “los Algorit-
      a                                       o
mos Gen´ticos son algoritmos de b´squeda basados en la mec´nica de selecci´n
          e                         u                         a               o
natural y de la gen´tica natural. Combinan la supervivencia del m´s apto entre
                   e                                               a
estructuras de secuencias con un intercambio de informaci´n estructurado, aun-
                                                           o
que aleatorizado, para constituir as´ un algoritmo de b´squeda que tenga algo de
                                    ı                  u
las genialidades de las b´squedas humanas” [Goldberg, 1989].
                         u
    Para alcanzar la soluci´n a un problema se parte de un conjunto inicial
                            o
de individuos, llamado poblaci´n, generado de manera aleatoria. Cada uno
                                 o
de estos individuos representa una posible soluci´n al problema. Estos indi-
                                                    o
viduos evolucionar´n tomando como base los esquemas propuestos por Dar-
                    a
win [Darwin, 1859] sobre la selecci´n natural, y se adaptar´n en mayor medida
                                    o                       a
tras el paso de cada generaci´n a la soluci´n requerida.
                              o             o


2.    Or´
        ıgenes
    Si algo funciona bien, ¿por qu´ no imitarlo?. La respuesta a esta pregun-
                                    e
ta nos lleva directamente a los or´ıgenes de la computaci´n evolutiva. Durante
                                                          o
millones de a˜os las diferentes especies se han adaptado para poder sobrevivir
               n
en un medio cambiante. De la misma manera se podr´ tener una poblaci´n de
                                                       ıa                  o
potenciales soluciones a un problema de las que se ir´ seleccionando las mejo-
                                                     ıan
res hasta que se adaptasen perfectamente al medio, en este caso el problema a
resolver. En t´rminos muy generales se podr´ definir la computaci´n evolutiva
               e                             ıa                      o
como una familia de modelos computacionales inspirados en la evoluci´n. o
    M´s formalmente el t´rmino de computaci´n evolutiva se refiere al estudio
      a                   e                     o
de los fundamentos y aplicaciones de ciertas t´cnicas heur´
                                               e           ısticas basadas en los
principios de la evoluci´n natural [Tomassini, 1995]. Estas t´cnicas heur´
                        o                                     e           ısticas
podr´ clasificarse en 3 categor´ principales dando lugar a la ecuaci´n evolu-
     ıan                         ıas                                    o
tiva (Fig. 1).




                         Figura 1: Ecuaci´n Evolutiva
                                         o

    A continuaci´n se detallar´n un poco m´s los or´
                 o             a             a     ıgenes de cada una de las
disciplinas participantes en dicha ecuaci´n.
                                         o


M. Gestal                                                                      2
Introducci´n a los Algoritmos Gen´ticos
          o                      e


    El desarrollo de los Algoritmos Gen´ticos se debe en gran medida a John
                                           e
Holland, investigador de la Universidad de Michigan. A finales de la d´cada de
                                                                        e
los 60 desarroll´ una t´cnica que imitaba en su funcionamiento a la selecci´n
                  o        e                                                    o
natural. Aunque originalmente esta t´cnica recibi´ el nombre de planes repro-
                                       e            o
ductivos, a ra´ de la publicaci´n en 1975 de su libro “Adaptation in Natural
                ız               o
and Artificial Systems” [Holland, 1975] se conoce principalmente con el nombre
de Algoritmos Gen´ticos.
                      e
    A grandes rasgos un Algoritmo Gen´tico consiste en una poblaci´n de solu-
                                          e                           o
ciones codificadas de forma similar a cromosomas. Cada uno de estos cromoso-
mas tendr´ asociado un ajuste, valor de bondad, ajuste o fitness, que cuantifica
           a
su validez como soluci´n al problema. En funci´n de este valor se le dar´n m´s
                          o                     o                         a     a
o menos oportunidades de reproducci´n. Adem´s, con cierta probabilidad se
                                         o        a
realizar´n mutaciones de estos cromosomas.
         a
    Las bases de las Estrategias de Evoluci´n fueron apuntadas en 1973 por
                                              o
Rechemberg en su obra “Evolutionsstrategie: Optimierung Technisher Systeme
nach Prinzipien der Biologischen Evolution” [Rechenberg, 1973]. Las dos Es-
trategias de Evoluci´n m´s empleadas son la (μ + λ)-ES y la (μ, λ)-ES. En la
                        o    a
primera de ellas un total de μ producen λ descendientes reduci´ndose nueva-
                                                                  e
mente la poblaci´n a μ individuos (los padres de la siguiente generaci´n) por
                    o                                                     o
selecci´n de los mejores individuos. De esta manera los padres sobreviven hasta
       o
que son reemplazados por hijos mejores que ellos. En la (μ+λ)-ES la descenden-
cia reemplaza directamente a los padres, sin hacer ning´n tipo de comprobaci´n.
                                                        u                      o
    La Programaci´n Evolutiva surge principalmente a ra´ del trabajo “Ar-
                      o                                      ız
tificial Intelligence Through Simulated Evolution” de Fogel, Owens y Walsh,
publicado en 1966 [Fogel et al., 1966]. En este caso los individuos, conocidos
aqu´ como organismos, son m´quinas de estado finito. Los organismos que mejor
    ı                          a
resuelven alguna de las funciones objetivo obtienen la oportunidad de reprodu-
cirse. Antes de producirse los cruces para generar la descendencia se realiza una
mutaci´n sobre los padres.
        o
    A su vez la computaci´n evolutiva puede verse como uno de los campos de
                             o
investigaci´n de lo que se ha dado en llamar Soft Computing (Fig. 2).
           o




                           Figura 2: Soft Computing

   Como se ha comentado anteriormente la computaci´n evolutiva tiene una
                                                       o
fuerte base biol´gica. En sus or´
                o                ıgenes los algoritmos evolutivos consistieron
en copiar procesos que tienen lugar en la selecci´n natural. Este ultimo con-
                                                 o                ´
cepto hab´ sido introducido, rodeado de mucha pol´mica, por Charles Dar-
          ıa                                         e
win [Darwin, 1859]. A pesar de que a´n hoy en d´ no todos los detalles de la
                                     u            ıa
evoluci´n biol´gica son completamente conocidos, existen algunos hechos apo-
       o      o
yados sobre una fuerte evidencia experimental:

     La evoluci´n es un proceso que opera, m´s que sobre los propios organis-
               o                            a
     mos, sobre los cromosomas. Estos cromosomas pueden ser considerados
     como herramientas org´nicas que codifican la vida, o visto al rev´s, una
                           a                                          e



M. Gestal                                                                      3
Introducci´n a los Algoritmos Gen´ticos
          o                      e


     criatura es creada decodificando la informaci´n contenida en los cromoso-
                                                 o
     mas.

     La selecci´n natural es el mecanismo que relaciona los cromosomas con la
               o
     eficiencia respecto al medio de la entidad que representan. Otorga a los
     individuos m´s adaptados al medio un mayor n´mero de oportunidades
                  a                                   u
     de reproducirse.

     Los procesos evolutivos tienen lugar durante la etapa de reproducci´n.    o
     Aunque existe una larga serie de mecanismos que afectan a la reproducci´n  o
     los m´s comunes son la mutaci´n, causante de que los cromosomas de la
          a                          o
     descendencia sean diferentes a los de los padres, y el cruce o recombinaci´n,
                                                                               o
     que combina los cromosomas de los padres para producir la descendencia.


3.    Bases Biol´gicas
                o
    En la naturaleza, los individuos de una poblaci´n compiten constantemente
                                                     o
con otros por recursos tales como comida, agua y refugio. Los individuos que
tienen m´s ´xito en la lucha por los recursos tienen mayores probabilidades de
          a e
sobrevivir y generalmente una descendencia mayor. Al contrario, los individuos
peor adaptados tienen un menor n´mero de descendientes, o incluso ninguno.
                                      u
Esto implica que los genes de los individuos mejor adaptados se propagar´n a a
un n´mero cada vez mayor de individuos de las sucesivas generaciones.
     u
    La combinaci´n de caracter´
                 o               ısticas buenas de diferentes ancestros puede ori-
ginar en ocasiones que la descendencia est´ incluso mejor adaptada al medio que
                                            e
los padres. De esta manera, las especies evolucionan adapt´ndose m´s y m´s al
                                                             a         a     a
medio a medida que transcurren las generaciones [Beasley et al., 1993].
    Pero la adaptaci´n de un individuo al medio no s´lo est´ determinada por su
                     o                                 o     a
composici´n gen´tica. Influyen otros factores como el aprendizaje, en ocasiones
           o     e
adquirido por el m´todo de prueba y error, en ocasiones adquirido por imitaci´n
                   e                                                           o
del comportamiento de los padres. Para imitar esta adquisici´n de conocimiento
                                                               o
se han desarrollado variantes como el Ajuste Fino.
    Pero la adaptaci´n de un individuo al medio no s´lo est´ determinada por su
                     o                                 o     a
composici´n gen´tica. Influyen otros factores como el aprendizaje, en ocasiones
           o     e
adquirido por el m´todo de prueba y error, en ocasiones adquirido por imitaci´n
                   e                                                           o
del comportamiento de los padres. Para imitar esta adquisici´n de conocimiento
                                                               o
pueden emplearse t´cnicas de Ajuste Fino, consistentes en peque˜as modifica-
                     e                                              n
ciones de los genes de un cromosoma. Por ejemplo, estas modificaciones pueden
realizarse tomando como resultado el mejor individuo tras la ejecuci´n de va-
                                                                         o
rias generaciones de un Algoritmo Gen´tico cuya poblaci´n previamente ha sido
                                         e                 o
creada a partir de ligeras variaciones del individuo al que se desea incorporar el
conocimiento.


4.    Codificaci´n de Problemas
               o
    Cualquier soluci´n potencial a un problema puede ser presentada dando
                    o
valores a una serie de par´metros. El conjunto de todos los par´metros (genes
                          a                                    a
en la terminolog´ de Algoritmos Gen´ticos) se codifica en una cadena de valores
                ıa                  e
denominada cromosoma.


M. Gestal                                                                       4
Introducci´n a los Algoritmos Gen´ticos
          o                      e


    El conjunto de los par´metros representado por un cromosoma particular
                            a
recibe el nombre de genotipo. El genotipo contiene la informaci´n necesaria para
                                                                  o
la construcci´n del organismo, es decir, la soluci´n real al problema, denominada
             o                                    o
fenotipo. Por ejemplo, en t´rminos biol´gicos, la informaci´n gen´tica contenida
                            e           o                     o      e
en el ADN de un individuo ser´ el genotipo, mientras que la expresi´n de ese
                                ıa                                       o
ADN (el propio individuo) ser´ el fenotipo.
                               ıa
    Desde los primeros trabajos de John Holland la codificaci´n suele hacerse
                                                                   o
mediante valores binarios. Se asigna un determinado n´mero de bits a cada
                                                             u
par´metro y se realiza una discretizaci´n de la variable representada por cada
    a                                    o
gen. El n´mero de bits asignados depender´ del grado de ajuste que se desee
           u                                   a
alcanzar. Evidentemente no todos los par´metros tienen porque estar codificados
                                           a
con el mismo n´mero de bits. Cada uno de los bits pertenecientes a un gen suele
               u
recibir el nombre de alelo.
    La figura 3 muestra un ejemplo de un individuo binario que codifica 3
par´metros.
    a




                     Figura 3: Individuo Gen´tico Binario
                                            e


    Sin embargo, tambi´n pueden existir representaciones que codifiquen direc-
                        e
tamente cada par´metro con un valor entero, real o en punto flotante. A pesar
                  a
de que se acusa a estas representaciones de degradar el paralelismo impl´    ıcito
de las representaciones binarias, permiten el desarrollo de operadores gen´ticos
                                                                           e
m´s espec´
  a       ıficos al campo de aplicaci´n del Algoritmo Gen´tico.
                                       o                   e
    Un ejemplo t´ıpico de la aplicaci´n de los Algoritmos Gen´ticos es la optimi-
                                     o                        e
zaci´n de los pesos de una red de neuronas artificiales. La codificaci´n de la red
    o                                                                o
en forma de cromosoma (fig. 4) es tan sencilla como asignar un gen del cromo-
soma a cada uno de los pesos de la red. Tambi´n se podr´ a˜adir genes que
                                                  e         ıan n
indicasen el n´mero de capas de la red, y el n´mero de elementos de procesado
              u                                 u
en cada capa.


5.    Algoritmo Principal
    Los Algoritmos Gen´ticos trabajan sobre una poblaci´n de individuos. Cada
                       e                                o
uno de ellos representa una posible soluci´n al problema que se desea resolver.
                                          o
Todo individuo tiene asociado un ajuste de acuerdo a la bondad con respecto
al problema de la soluci´n que representa (en la naturaleza el equivalente ser´
                        o                                                     ıa
una medida de la eficiencia del individuo en la lucha por los recursos).


M. Gestal                                                                       5
Introducci´n a los Algoritmos Gen´ticos
          o                      e




        Figura 4: Ejemplo Codificaci´n: Red de Neuronas Artificiales
                                   o


    El funcionamiento gen´rico de un Algoritmo Gen´tico puede apreciarse en
                           e                      e
el siguiente pseudoc´digo:
                    o


Inicializar poblaci´n actual aleatoriamente
                   o

MIENTRAS no se cumpla el criterio de terminaci´n
                                              o
       crear poblaci´n temporal vac´a
                    o              ı

  MIENTRAS poblaci´n temporal no llena
                    o
        seleccionar padres
        cruzar padres con probabilidad Pc
        SI se ha producido el cruce
             mutar uno de los descendientes con probabilidad Pm
             evaluar descendientes
             a~adir descendientes a la poblaci´n temporal
              n                               o
        SINO
             a~adir padres a la poblaci´n temporal
              n                        o
        FIN SI
  FIN MIENTRAS

  aumentar contador generaciones
  establecer como nueva poblaci´n actual la poblaci´n temporal
                               o                   o

FIN MIENTRAS


   Una generaci´n se obtiene a partir de la anterior por medio de los operadores
                o
de reproducci´n. Existen 2 tipos:
             o

     Cruce: Se trata de una reproducci´n de tipo sexual. Se genera una des-
                                         o
     cendencia a partir del mismo n´mero de individuos (generalmente 2) de
                                     u
     la generaci´n anterior. Existen varios tipos que se detallar´n en un punto
                o                                                a
     posterior.

     Copia: Se trata de una reproducci´n de tipo asexual. Un determinado
                                         o
     n´mero de individuos pasa sin sufrir ninguna variaci´n directamente a la
       u                                                 o
     siguiente generaci´n.
                       o



M. Gestal                                                                     6
Introducci´n a los Algoritmos Gen´ticos
          o                      e


   Una vez generados los nuevos individuos se realiza la mutaci´n con una
                                                                   o
probabilidad Pm. La probabilidad de mutaci´n suele ser muy baja, por lo general
                                           o
entre el 0.5 % y el 2 %.
   Se sale de este proceso cuando se alcanza alguno de los criterios de parada
fijados. Los m´s usuales suelen ser:
               a

     Los mejores individuos de la poblaci´n representan soluciones suficiente-
                                         o
     mente buenas para el problema que se desea resolver.

     La poblaci´n ha convergido. Un gen ha convergido cuando el 95 % de la
                o
     poblaci´n tiene el mismo valor para ´l, en el caso de trabajar con codi-
            o                              e
     ficaciones binarias, o valores dentro de un rango especificado, en el caso
     de trabajar con otro tipo de codificaciones. Una vez que todos los genes
     alcanzan la convergencia se dice que la poblaci´n ha convergido. Cuando
                                                    o
     esto ocurre la media de bondad de la poblaci´n se aproxima a la bondad
                                                  o
     del mejor individuo.
     Se ha alcanzado el n´mero de generaciones m´ximo especificado.
                         u                      a

    Sobre este algoritmo inicialmente propuesto por Holland se han definido
numerosas variantes.
    Quiz´s una de las m´s extendidas consiste en prescindir de la poblaci´n
        a                a                                                    o
temporal de manera que los operadores gen´ticos de cruce y mutaci´n se aplican
                                           e                       o
directamente sobre la poblaci´n gen´tica. Con esta variante el proceso de cruces
                             o      e
var´ ligeramente. Ahora no basta, en el caso de que el cruce se produzca, con
   ıa
insertar directamente la descendencia en la poblaci´n. Puesto que el n´mero
                                                     o                    u
de individuos de la poblaci´n se ha de mantener constante, antes de insertar la
                           o
descendencia en la poblaci´n se le ha de hacer sitio. Existen para ello diversas
                           o
opciones:

     Reemplazo de padres: para hacer hueco a la descendencia en la pobla-
     ci´n se eliminan de ella a los padres.
       o

     Reemplazo de individuos similares: cada uno de los individuos de la
     descendencia reemplazar´ a un individuo de la poblaci´n con un ajuste
                               a                               o
     similar al suyo. Para escoger este individuo se obtiene la posici´n en la
                                                                       o
     que se deber´ insertar el nuevo individuo para mantener ordenada la
                   ıa
     poblaci´n y se escoge para insertarlo una posici´n al azar de su vecindad
             o                                        o
     (p.e. uno de entre los cinco individuos superiores o inferiores).
     Reemplazo de los peores individuos: los individuos que se eliminar´n   a
     de la poblaci´n para dejar paso a la descendencia se seleccionar´n aleato-
                  o                                                  a
     riamente de entre los peores individuos de la poblaci´n. Por lo general se
                                                          o
     consideran individuos pertenecientes al ultimo 10 %.
                                             ´

     Reemplazo aleatorio: los individuos eliminados se seleccionan al azar.

    Evidentemente trabajando con un unica poblaci´n no se puede decir que
                                         ´            o
se pase a la siguiente generaci´n cuando se llene la poblaci´n, pues siempre
                                o                              o
est´ llena. En este caso el paso a la siguiente generaci´n se producir´ una vez
   a                                                    o             a
que se hayan alcanzado cierto n´mero de cruces y mutaciones. Este n´mero
                                  u                                      u
depender´ de la tasa de cruces y mutaciones especificadas por el usuario y
          a


M. Gestal                                                                     7
Introducci´n a los Algoritmos Gen´ticos
          o                      e


del tama˜o de la poblaci´n. As´ con una tasa de cruces del 90 %, una tasa de
         n               o     ı
mutaciones del 0.02 % y trabajando con 100 individuos se pasar´ a la siguiente
                                                              a
generaci´n cuando se alcanzasen 45 cruces (cada cruce genera 2 individuos con
        o
lo que se habr´ insertado en la poblaci´n 90 individuos, esto es el 90 %) o 2
              ıan                       o
mutaciones.


6.       Operadores Gen´ticos
                       e
   Para el paso de una generaci´n a la siguiente se aplican una serie de opera-
                                o
dores gen´ticos. Los m´s empleados son los operadores de selecci´n, cruce, copia
         e            a                                         o
y mutaci´n. En el caso de no trabajar con una poblaci´n intermedia temporal
         o                                             o
tambi´n cobran relevancia los algoritmos de reemplazo.
      e
   A continuaci´n se ver´n en mayor detalle.
                 o       a

6.1.     Selecci´n
                o
    Los algoritmos de selecci´n ser´n los encargados de escoger qu´ individuos
                              o     a                               e
van a disponer de oportunidades de reproducirse y cu´les no.
                                                       a
    Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otor-
gar un mayor n´mero de oportunidades de reproducci´n a los individuos m´s
                u                                        o                    a
aptos. Por lo tanto la selecci´n de un individuo estar´ relacionada con su valor
                              o                       a
de ajuste. No se debe sin embargo eliminar por completo las opciones de repro-
ducci´n de los individuos menos aptos, pues en pocas generaciones la poblaci´n
     o                                                                       o
se volver´ homog´nea.
         ıa       e
    Una opci´n bastante com´n consiste en seleccionar el primero de los indi-
             o                 u
viduos participantes en el cruce mediante alguno de los m´todos expuestos a
                                                             e
continuaci´n y el segundo de manera aleatoria.
           o

6.1.1.    Selecci´n por ruleta
                 o
    Propuesto por DeJong, es posiblemente el m´todo m´s utilizado desde los
                                                     e      a
or´
  ıgenes de los Algoritmos Gen´ticos [Blickle and Thiele, 1995].
                                 e
    A cada uno de los individuos de la poblaci´n se le asigna una parte pro-
                                                   o
porcional a su ajuste de una ruleta, de tal forma que la suma de todos los
porcentajes sea la unidad. Los mejores individuos recibir´n una porci´n de la
                                                            a            o
ruleta mayor que la recibida por los peores. Generalmente la poblaci´n est´ or-
                                                                      o      a
denada en base al ajuste por lo que las porciones m´s grandes se encuentran al
                                                       a
inicio de la ruleta. Para seleccionar un individuo basta con generar un n´mero
                                                                           u
aleatorio del intervalo [0..1] y devolver el individuo situado en esa posici´n de
                                                                            o
la ruleta. Esta posici´n se suele obtener recorriendo los individuos de la pobla-
                      o
ci´n y acumulando sus proporciones de ruleta hasta que la suma exceda el valor
  o
obtenido.
    Es un m´todo muy sencillo, pero ineficiente a medida que aumenta el tama˜o
             e                                                                 n
de la poblaci´n (su complejidad es O(n2 )). Presenta adem´s el inconveniente de
               o                                            a
que el peor individuo puede ser seleccionado m´s de una vez.
                                                  a
    En mucha bibliograf´ se suele referenciar a este m´todo con el nombre de
                         ıa                               e
Selecci´n de Montecarlo.
       o




M. Gestal                                                                      8
Introducci´n a los Algoritmos Gen´ticos
          o                      e


6.1.2.    Selecci´n por torneo
                 o
   La idea principal de este m´todo consiste en realizar la selecci´n en base
                              e                                    o
a comparaciones directas entre individuos. Existen dos versiones de selecci´n
                                                                           o
mediante torneo:

       Determin´
               ıstica

       Probabil´
               ıstica

    En la versi´n determin´
                 o            ıstica se selecciona al azar un n´mero p de indivi-
                                                                u
duos (generalmente se escoge p = 2). De entre los individuos seleccionados se
selecciona el m´s apto para pasarlo a la siguiente generaci´n.
                 a                                            o
    La versi´n probabil´
             o           ıstica unicamente se diferencia en el paso de selecci´n del
                                ´                                             o
ganador del torneo. En vez de escoger siempre el mejor se genera un n´mero    u
aleatorio del intervalo [0..1], si es mayor que un par´metro p (fijado para todo el
                                                        a
proceso evolutivo) se escoge el individuo m´s alto y en caso contrario el menos
                                                a
apto. Generalmente p toma valores en el rango 0,5 < p ≤ 1.
    Variando el n´mero de individuos que participan en cada torneo se puede
                    u
modificar la presi´n de selecci´n. Cuando participan muchos individuos en cada
                   o              o
torneo, la presi´n de selecci´n es elevada y los peores individuos apenas tienen
                 o             o
oportunidades de reproducci´n. Un caso particular es el elitismo global. Se trata
                                o
de un torneo en el que participan todos los individuos de la poblaci´n con lo cual
                                                                     o
la selecci´n se vuelve totalmente determin´
          o                                    ıstica. Cuando el tama˜o del torneo
                                                                     n
es reducido, la presi´n de selecci´n disminuye y los peores individuos tienen m´s
                      o             o                                             a
oportunidades de ser seleccionados.
    Elegir uno u otro m´todo de selecci´n determinar´ la estrategia de b´sque-
                          e                o              a                  u
da del Algoritmo Gen´tico. Si se opta por un m´todo con una alta presi´n de
                        e                             e                        o
selecci´n se centra la b´squeda de las soluciones en un entorno pr´ximo a las
       o                  u                                             o
mejores soluciones actuales. Por el contrario, optando por una presi´n de selec-
                                                                        o
ci´n menor se deja el camino abierto para la exploraci´n de nuevas regiones del
  o                                                        o
espacio de b´squeda.
              u
    Existen muchos otros algoritmos de selecci´n. Unos buscan mejorar la efi-
                                                    o
ciencia computacional, otros el n´mero de veces que los mejores o peores in-
                                      u
dividuos pueden ser seleccionados. Algunos de estos algoritmos son muestreo
determin´ ıstico, escalamiento sigma, selecci´n por jerarqu´ estado uniforme,
                                                o             ıas,
sobrante estoc´stico, brecha generacional, etc.
                a

6.2.     Cruce
    Una vez seleccionados los individuos, ´stos son recombinados para producir
                                           e
la descendencia que se insertar´ en la siguiente generaci´n. Tal y como se ha
                                 a                           o
indicado anteriormente el cruce es una estrategia de reproducci´n sexual.
                                                                   o
    Su importancia para la transici´n entre generaciones es elevada puesto que
                                     o
las tasas de cruce con las que se suele trabajar rondan el 90 %.
    Los diferentes m´todos de cruce podr´n operar de dos formas diferentes.
                       e                     a
Si se opta por una estrategia destructiva los descendientes se insertar´n en la
                                                                          a
poblaci´n temporal aunque sus padres tengan mejor ajuste (trabajando con una
        o
unica poblaci´n esta comparaci´n se realizar´ con los individuos a reemplazar).
´             o                  o             a
Por el contrario utilizando una estrategia no destructiva la descendencia pasar´ a
                                                                               a
la siguiente generaci´n unicamente si supera la bondad del ajuste de los padres
                      o ´


M. Gestal                                                                         9
Introducci´n a los Algoritmos Gen´ticos
          o                      e


(o de los individuos a reemplazar). La idea principal del cruce se basa en que,
si se toman dos individuos correctamente adaptados al medio y se obtiene una
descendencia que comparta genes de ambos, existe la posibilidad de que los
genes heredados sean precisamente los causantes de la bondad de los padres.
Al compartir las caracter´ ısticas buenas de dos individuos, la descendencia, o
al menos parte de ella, deber´ tener una bondad mayor que cada uno de los
                                ıa
padres por separado. Si el cruce no agrupa las mejores caracter´ ısticas en uno de
los hijos y la descendencia tiene un peor ajuste que los padres no significa que se
est´ dando un paso atr´s. Optando por una estrategia de cruce no destructiva
    e                   a
garantizamos que pasen a la siguiente generaci´n los mejores individuos. Si, a´n
                                                o                               u
con un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes
de los padres continuar´n en la poblaci´n - aunque dispersos y posiblemente
                         a                 o
levemente modificados por la mutaci´n - en posteriores cruces se podr´n volver
                                      o                                  a
a obtener estos padres, recuperando as´ la bondad previamente perdida.
                                         ı
     Existen multitud de algoritmos de cruce. Sin embargo los m´s empleados
                                                                     a
son los que se detallar´n a continuaci´n:
                       a               o

     Cruce de 1 punto

     Cruce de 2 puntos

     Cruce uniforme

6.2.1.   Cruce de 1 punto
    Es la m´s sencilla de las t´cnicas de cruce. Una vez seleccionados dos indivi-
           a                   e
duos se cortan sus cromosomas por un punto seleccionado aleatoriamente para
generar dos segmentos diferenciados en cada uno de ellos: la cabeza y la cola.
Se intercambian las colas entre los dos individuos para generar los nuevos des-
cendientes. De esta manera ambos descendientes heredan informaci´n gen´tica
                                                                      o      e
de los padres, tal y como puede verse en la figura 5.
    En la bibliograf´ suele referirse a este tipo de cruce con el nombre de SPX
                    ıa
(Single Point Crossover)




                          Figura 5: Cruce de 1 Punto



6.2.2.   Cruce de 2 puntos
    Se trata de una generalizaci´n del cruce de 1 punto. En vez de cortar por un
                                o
unico punto los cromosomas de los padres como en el caso anterior se realizan
´
dos cortes. Deber´ tenerse en cuenta que ninguno de estos puntos de corte
                  a
coincida con el extremo de los cromosomas para garantizar que se originen tres


M. Gestal                                                                      10
Introducci´n a los Algoritmos Gen´ticos
          o                      e


segmentos. Para generar la descendencia se escoge el segmento central de uno
de los padres y los segmentos laterales del otro padre (ver figura 6.




                         Figura 6: Cruce de 2 Puntos


    Generalmente se suele referir a este tipo de cruce con las siglas DPX (Double
Point Crossover).
    Generalizando se pueden a˜adir m´s puntos de cruce dando lugar a algorit-
                                n       a
mos de cruce multipunto. Sin embargo existen estudios que desaprueban esta
t´cnica [Jong, 1975] . Aunque se admite que el cruce de 2 puntos aporta una
 e
sustancial mejora con respecto al cruce de un solo punto, el hecho de a˜adir un
                                                                         n
mayor n´mero de puntos de cruce reduce el rendimiento del Algoritmo Gen´tico.
         u                                                                  e
El problema principal de a˜adir nuevos puntos de cruce radica en que es m´s
                            n                                                  a
f´cil que los segmentos originados sean corrompibles, es decir, que por separado
 a
quiz´s pierdan las caracter´
     a                       ısticas de bondad que pose´ conjuntamente. Sin
                                                          ıan
embargo no todo son desventajas y a˜adiendo m´s puntos de cruce se consigue
                                       n           a
que el espacio de b´squeda del problema sea explorado m´s a fondo.
                   u                                         a

6.2.3.   Cruce Uniforme
    El cruce uniforme es una t´cnica completamente diferente de las vistas hasta
                              e
el momento. Cada gen de la descendencia tiene las mismas probabilidades de
pertenecer a uno u otro padre.
    Aunque se puede implementar de muy diversas formas, la t´cnica implica
                                                                  e
la generaci´n de una m´scara de cruce con valores binarios. Si en una de las
            o            a
posiciones de la m´scara hay un 1, el gen situado en esa posici´n en uno de los
                    a                                           o
descendientes se copia del primer padre. Si por el contrario hay un 0 el gen se
copia del segundo padre. Para producir el segundo descendiente se intercambian
los papeles de los padres, o bien se intercambia la interpretaci´n de los unos y
                                                                o
los ceros de la m´scara de cruce.
                  a
    Tal y como se puede apreciar en la figura 7, la descendencia contiene una
mezcla de genes de cada uno de los padres. El n´mero efectivo de puntos de
                                                   u
cruce es fijo pero ser´ por t´rmino medio L/2, siendo L la longitud del cromo-
                      a     e
soma (n´mero de alelos en representaciones binarias o de genes en otro tipo de
         u
representaciones).
    Se suele referir a este tipo de cruce con las siglas UPX (Uniform Point
Crossover).

6.2.4.   Cruces espec´
                     ıficos de codificaciones no binarias
   Los tres tipos de cruce vistos hasta el momento son v´lidos para cualquier
                                                        a
tipo de representaci´n del genotipo. Si se emplean genotipos compuestos por
                    o


M. Gestal                                                                     11
Introducci´n a los Algoritmos Gen´ticos
          o                      e




                            Figura 7: Cruce Uniforme



valores enteros o reales pueden definirse otro tipo de operadores de cruce:

       Media: el gen de la descendencia toma el valor medio de los genes de los
       padres. Tiene la desventaja de que unicamente se genera un descendiente
                                          ´
       en el cruce de dos padres.

       Media geom´trica: cada gen de la descendencia toma como valor la ra´
                    e                                                             ız
       cuadrada del producto de los genes de los padres. Presenta el problema
       a˜adido de qu´ signo dar al resultado si los padres tienen signos diferentes.
        n           e

       Extensi´n: se toma la diferencia existente entre los genes situados en las
               o
       mismas posiciones de los padres y se suma al valor m´s alto o se resta del
                                                            a
       valor m´s bajo. Solventa el problema de generar un unico descendiente.
              a                                             ´

6.3.     Algoritmos de Reemplazo
   Cuando en vez de trabajar con una poblaci´n temporal se hace con una unica
                                                 o                            ´
poblaci´n, sobre la que se realizan las selecciones e inserciones, deber´ tenerse en
       o                                                                a
cuenta que para insertar un nuevo individuo deber´ de eliminarse previamente
                                                       a
otro de la poblaci´n. Existen diferentes m´todos de reemplazo:
                  o                          e

       Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la
       poblaci´n.
              o

       Reemplazo de padres: se obtiene espacio para la nueva descendencia
       liberando el espacio ocupado por los padres.

       Reemplazo de similares: una vez obtenido el ajuste de la descendencia
       se selecciona un grupo de individuos (entre seis y diez) de la poblaci´n con
                                                                             o
       un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios.

       Reemplazo de los peores: de entre un porcentaje de los peores indi-
       viduos de la poblaci´n se seleccionan aleatoriamente los necesarios para
                             o
       dejar sitio a la descendencia.




M. Gestal                                                                        12
Introducci´n a los Algoritmos Gen´ticos
          o                      e


6.4.     Copia
    La copia es la otra estrategia reproductiva para la obtenci´n de una nueva
                                                                  o
generaci´n a partir de la anterior. A diferencia del cruce, se trata de una estra-
         o
tegia de reproducci´n asexual. Consiste simplemente en la copia de un individuo
                    o
en la nueva generaci´n.
                      o
    El porcentaje de copias de una generaci´n a la siguiente es relativamente
                                                 o
reducido, pues en caso contrario se corre el riesgo de una convergencia prematura
de la poblaci´n hacia ese individuo. De esta manera el tama˜o efectivo de la
               o                                                 n
poblaci´n se reducir´ notablemente y la b´squeda en el espacio del problema
        o             ıa                       u
se focalizar´ en el entorno de ese individuo.
            ıa
    Lo que generalmente se suele hacer es seleccionar dos individuos para el
cruce, y si ´ste finalmente no tiene lugar, se insertan en la siguiente generaci´n
            e                                                                  o
los individuos seleccionados.

6.5.     Mutaci´n
               o
    La mutaci´n de un individuo provoca que alguno de sus genes, generalmente
               o
uno s´lo, var´ su valor de forma aleatoria.
      o       ıe
    Aunque se pueden seleccionar los individuos directamente de la poblaci´n    o
actual y mutarlos antes de introducirlos en la nueva poblaci´n, la mutaci´n se
                                                               o             o
suele utilizar de manera conjunta con el operador de cruce. Primeramente se se-
leccionan dos individuos de la poblaci´n para realizar el cruce. Si el cruce tiene
                                      o
´xito entonces uno de los descendientes, o ambos, se muta con cierta probabili-
e
dad Pm. Se imita de esta manera el comportamiento que se da en la naturaleza,
pues cuando se genera la descendencia siempre se produce alg´n tipo de error,
                                                                 u
por lo general sin mayor trascendencia, en el paso de la carga gen´tica de padres
                                                                   e
a hijos.
    La probabilidad de mutaci´n es muy baja, generalmente menor al 1 %. Esto
                               o
se debe sobre todo a que los individuos suelen tener un ajuste menor despu´s de
                                                                             e
mutados. Sin embargo se realizan mutaciones para garantizar que ning´n punto
                                                                         u
del espacio de b´squeda tenga una probabilidad nula de ser examinado.
                 u
    Tal y como se ha comentado, la mutaci´n m´s usual es el reemplazo aleatorio.
                                          o    a
Este consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja
con codificaciones binarias consistir´ simplemente en negar un bit. Tambi´n es
                                    a                                        e
posible realizar la mutaci´n intercambiando los valores de dos alelos del cromo-
                          o
soma. Con otro tipo de codificaciones no binarias existen otras opciones:

       Incrementar o decrementar a un gen una peque˜a cantidad generada alea-
                                                   n
       toriamente.

       Multiplicar un gen por un valor aleatorio pr´ximo a 1.
                                                   o

    Aunque no es lo m´s com´n, existen implementaciones de Algoritmos Gen´ti-
                     a      u                                              e
cos en las que no todos los individuos tienen los cromosomas de la misma lon-
gitud. Esto implica que no todos ellos codifican el mismo conjunto de variables.
En este caso existen mutaciones adicionales como puede ser a˜ adir un nuevo
                                                               n
gen o eliminar uno ya existente.




M. Gestal                                                                      13
Introducci´n a los Algoritmos Gen´ticos
          o                      e


7.    Evaluaci´n
              o
    Para el correcto funcionamiento de un Algoritmo Gen´tico se debe de poseer
                                                            e
un m´todo que indique si los individuos de la poblaci´n representan o no buenas
      e                                               o
soluciones al problema planteado. Por lo tanto para cada tipo de problema que
se desee resolver deber´ derivarse un nuevo m´todo, al igual que ocurrir´ con la
                        a                       e                          a
propia codificaci´n de los individuos.
                  o
    De esto se encarga la funci´n de evaluaci´n, que establece una medida
                                  o               o
num´rica de la bondad de una soluci´n. Esta medida recibe el nombre de ajuste.
     e                               o
En la naturaleza el ajuste (o adecuaci´n) de un individuo puede considerarse co-
                                      o
mo la probabilidad de que ese individuo sobreviva hasta la edad de reproducci´no
y se reproduzca. Esta probabilidad deber´ estar ponderada con el n´mero de
                                            a                            u
descendientes. Evidentemente no es lo mismo una probabilidad de reproducci´n   o
del 25 % en una poblaci´n de un par de cientos de individuos que esa misma
                          o
probabilidad en una poblaci´n de varios millones.
                              o
    En el mundo de los Algoritmos Gen´ticos se emplear´ esta medici´n para
                                          e                   a            o
controlar la aplicaci´n de los operadores gen´ticos. Es decir, permitir´ controlar
                      o                       e                        a
el n´mero de selecciones, cruces, copias y mutaciones llevadas a cabo.
    u
    La aproximaci´n m´s com´n consiste en crear expl´
                    o   a       u                       ıcitamente una medida de
ajuste para cada individuo de la poblaci´n. A cada uno de los individuos se les
                                          o
asigna un valor de ajuste escalar por medio de un procedimiento de evaluaci´n  o
bien definido. Tal y como se ha comentado, este procedimiento de evaluaci´n     o
ser´ espec´
   a       ıfico del dominio del problema en el que se aplica el Algoritmo Gen´ti-
                                                                              e
co. Tambi´n puede calcularse el ajuste mediante una manera ’co-evolutiva’. Por
          e
ejemplo, el ajuste de una estrategia de juego se determina aplicando esa estra-
tegia contra la poblaci´n entera (o en su defecto una muestra) de estrategias de
                        o
oposici´n.
        o
    Se pueden diferenciar cuatro tipos de ajuste o fitness [Koza, 1992]:

     Fitness Puro: r(i,t)
     Es la medida de ajuste establecida en la terminolog´ natural del propio
                                                        ıa
     problema. La ecuaci´n 1 establece el c´lculo del valor de bondad de un
                         o                   a
     individuo i en un instante t (o generaci´n).
                                             o

                                         Nc
                             r(i, t) =         |s(i, j) − c(i, j)|            (1)
                                         j=1




        Siendo :
               s(i, j) = valor deseado para el individuo i en el caso j
             c(i, j) = valor obtenido por el individuo i para el caso j
                                Nc = N´mero de casos
                                      u



     Por ejemplo, sup´ngase una poblaci´n de hormigas que deben llenar la
                      o                   o
     despensa de cara al invierno. La bondad de cada hormiga ser´ el n´mero
                                                                a     u
     de piezas de comida llevadas por ella hasta el hormiguero.


M. Gestal                                                                      14
Introducci´n a los Algoritmos Gen´ticos
          o                      e


     En los problemas de maximizaci´n, como ser´ el de las hormigas mencio-
                                     o            ıa
     nado anteriormente, los individuos con un fitness puro elevado ser´n los
                                                                       a
     m´s interesantes. Al contrario, en los problemas de minimizaci´n intere-
       a                                                           o
     sar´n los individuos con un fitness puro reducido.
        a
     Fitness Estandarizado: s(i,t)
     Para solucionar esta dualidad ante problemas de minimizaci´n o maximi-
                                                                o
     zaci´n se modifica el ajuste puro de acuerdo a la ecuaci´n 2.
         o                                                  o

                                   r(i, t)             minimizaci´n
                                                                 o
                      s(i, t) =                                               (2)
                                   rmax − r(i, t)      maximizaci´n
                                                                 o
     En el caso de problemas de minimizaci´n se emplea directamente la medida
                                           o
     de fitness puro. Si el problema es de maximizaci´n se resta de una cota
                                                        o
     superior rmax del error el fitness puro. Empleando esta m´trica la bondad
                                                               e
     de un individuo ser´ mayor cuanto m´s cercano est´ a cero el valor del
                         a                   a               e
     ajuste. Por lo tanto, dentro de la generaci´n t, un individuo i siempre
                                                   o
     ser´ mejor que uno j si se verifica que s(i, t) < s(j, t).
        a
     Fitness Ajustado: a(i,t)
     Se obtiene aplicando la transformaci´n reflejada en la ecuaci´n 3 al fitness
                                         o                       o
     estandarizado.

                                                   1
                                   a(i, t) =                                  (3)
                                               1 + s(i, t)
     De esta manera, el fitness ajustado tomar´ siempre valores del intervalo
                                             a
     [0..1]. Cuando m´s se aproxime el fitness ajustado de un individuo a 1
                     a
     mayor ser´ su bondad.
               a
     Fitness Normalizado: n(i,t)
     Los diferentes tipos de fitness vistos hasta ahora hacen referencia uni-
                                                                           ´
     camente a la bondad del individuo en cuesti´n. El fitness normalizado
                                                     o
     introduce un nuevo aspecto: indica la bondad de una soluci´n con respec-
                                                                 o
     to al resto de soluciones representadas en la poblaci´n. Considerando una
                                                          o
     poblaci´n de tama˜o N, se obtiene seg´n la ecuaci´n 4.
             o           n                   u           o

                                                 a(i, t)
                                  n(i, t) =     N
                                                                              (4)
                                                k=1   a(k, t)
     Al igual que el fitness ajustado, siempre tomar´ valores del intervalo [0..1],
                                                   a
     con mejores individuos cuanto m´s pr´ximo est´ a la unidad. Pero a di-
                                        a   o         e
     ferencia de antes, un valor cercano a 1 no s´lo indica que ese individuo
                                                  o
     represente una buena soluci´n al problema, sino que adem´s es una so-
                                  o                                a
     luci´n destacadamente mejor que las proporcionadas por el resto de la
         o
     poblaci´n.
             o
     La suma de los valores del fitness normalizado de todos los individuos de
     una poblaci´n dar´ siempre 1.
                o     a
     Este tipo de ajuste es empleado en la mayor´ de los m´todos de selecci´n
                                                ıa        e                o
     proporcionales al fitness.


M. Gestal                                                                      15
Introducci´n a los Algoritmos Gen´ticos
          o                      e


Referencias
[Beasley et al., 1993] Beasley, D., Bull, D. R., and Martin, R. R. (1993). An
  overview of genetic algorithms: Part 1, fundamentals. University Computing,
  15(2):58–69.

[Blickle and Thiele, 1995] Blickle, T. and Thiele, L. (1995). A comparison of
  selection schemes used in genetic algorithms. Technical Report 11, Computer
  Engineering and Comunnication Network Lab (TIK), Gloriastrasse 35, 8092
  Zurich, Switzerland.

[Darwin, 1859] Darwin, C. (1859). On the Origin of Species by Means of Natural
  Selection. John Murray, London.

[Fogel et al., 1966] Fogel, L. J., Owens, A. J., and Walsh, M. J. (1966). Artificial
  Intelligence through Simulated Evolution. John Wiley & Sons, New York.

[Goldberg, 1989] Goldberg, D. E. (1989). Genetic Algorithms in Search, Opti-
  mization and Machine Learning. Addison-Wesley Longman Publishing Co.,
  Inc., Boston, MA, USA.

[Holland, 1975] Holland, J. H. (1975). Adaptation in Natural and Artificial
  Systems. University of Michigan Press, Ann Arbor. Republished by the MIT
  press, 1992.
[Jong, 1975] Jong, K. A. D. (1975). An analysis of the behavior of a class of
   genetic adaptive systems. PhD thesis, University of Michigan.

[Koza, 1992] Koza, J. R. (1992). Genetic Programming: On the Programming
  of Computers by Means of Natural Selection (Complex Adaptive Systems).
  The MIT Press.

[Rechenberg, 1973] Rechenberg, I. (1973). Evolutionsstrategie: Optimierung te-
  chnischer Systeme nach Prinzipien der biologischen Evolution. Frommann-
  Holzboog, Stuttgart.
[Tomassini, 1995] Tomassini, M. (1995). A survey of genetic algorithms. Annual
  Reviews of Computational Physics, III:87–118.




M. Gestal                                                                       16

Más contenido relacionado

Destacado

Sandpapir Nr. 67 2003
Sandpapir Nr. 67 2003Sandpapir Nr. 67 2003
Sandpapir Nr. 67 2003ispirix
 
Sandpapir Nr. 63 1999
Sandpapir Nr. 63 1999Sandpapir Nr. 63 1999
Sandpapir Nr. 63 1999ispirix
 
Sandpapir Nr. 62 1998
Sandpapir Nr. 62 1998Sandpapir Nr. 62 1998
Sandpapir Nr. 62 1998ispirix
 
Sandpapir Nr. 61 1997
Sandpapir Nr. 61 1997Sandpapir Nr. 61 1997
Sandpapir Nr. 61 1997ispirix
 
Sandpapir Nr. 65 2001
Sandpapir Nr. 65 2001Sandpapir Nr. 65 2001
Sandpapir Nr. 65 2001ispirix
 
Sandpapir Nr. 68 2004
Sandpapir Nr. 68 2004Sandpapir Nr. 68 2004
Sandpapir Nr. 68 2004ispirix
 
Sandpapir Nr. 64 2000
Sandpapir Nr. 64 2000Sandpapir Nr. 64 2000
Sandpapir Nr. 64 2000ispirix
 
Sandpapir Nr. 69 2005
Sandpapir Nr. 69 2005Sandpapir Nr. 69 2005
Sandpapir Nr. 69 2005ispirix
 
Airbusou CruzeironasféRias 713480o4
Airbusou CruzeironasféRias 713480o4Airbusou CruzeironasféRias 713480o4
Airbusou CruzeironasféRias 713480o4
Antonio Lopes
 

Destacado (9)

Sandpapir Nr. 67 2003
Sandpapir Nr. 67 2003Sandpapir Nr. 67 2003
Sandpapir Nr. 67 2003
 
Sandpapir Nr. 63 1999
Sandpapir Nr. 63 1999Sandpapir Nr. 63 1999
Sandpapir Nr. 63 1999
 
Sandpapir Nr. 62 1998
Sandpapir Nr. 62 1998Sandpapir Nr. 62 1998
Sandpapir Nr. 62 1998
 
Sandpapir Nr. 61 1997
Sandpapir Nr. 61 1997Sandpapir Nr. 61 1997
Sandpapir Nr. 61 1997
 
Sandpapir Nr. 65 2001
Sandpapir Nr. 65 2001Sandpapir Nr. 65 2001
Sandpapir Nr. 65 2001
 
Sandpapir Nr. 68 2004
Sandpapir Nr. 68 2004Sandpapir Nr. 68 2004
Sandpapir Nr. 68 2004
 
Sandpapir Nr. 64 2000
Sandpapir Nr. 64 2000Sandpapir Nr. 64 2000
Sandpapir Nr. 64 2000
 
Sandpapir Nr. 69 2005
Sandpapir Nr. 69 2005Sandpapir Nr. 69 2005
Sandpapir Nr. 69 2005
 
Airbusou CruzeironasféRias 713480o4
Airbusou CruzeironasféRias 713480o4Airbusou CruzeironasféRias 713480o4
Airbusou CruzeironasféRias 713480o4
 

Similar a Tutorial algoritmosgeneticos

Sudoku
SudokuSudoku
Sudoku
sparta117
 
Materia investigación operativa 2
Materia investigación operativa 2Materia investigación operativa 2
Materia investigación operativa 2
Roger Melgarejo Peña
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto B
Cristian C
 
TFM_MJVillanueva
TFM_MJVillanuevaTFM_MJVillanueva
TFM_MJVillanueva
Maria Jose Villanueva
 
Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.
Pablo Vargas Ibarra
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
Diego Rivero
 
Example of iterative method
Example of iterative methodExample of iterative method
Example of iterative method
daferro
 
Example of iterative method
Example of iterative methodExample of iterative method
Example of iterative method
daferro
 
Esquemas iterativos en paralelo con OpenMP
Esquemas iterativos en paralelo con OpenMPEsquemas iterativos en paralelo con OpenMP
Esquemas iterativos en paralelo con OpenMP
Sotero Ordones
 
Criptografia
CriptografiaCriptografia
Criptografia
ssuser0df809
 
284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf
FranciscoMayorga16
 
Criptografia (1)
Criptografia (1)Criptografia (1)
Criptografia (1)
Ricardo Sanfeliz Zurita
 
Probabilidad y estadistica elementales
Probabilidad y estadistica elementalesProbabilidad y estadistica elementales
Probabilidad y estadistica elementales
Noelia Larsen
 
Probabilidad y estadistica elementales
Probabilidad y estadistica elementalesProbabilidad y estadistica elementales
Probabilidad y estadistica elementales
Samantha Piña
 
6. bioestadistica
6. bioestadistica6. bioestadistica
6. bioestadistica
Marco Sanabria
 
*
**
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
Ernesto Cortés
 
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
MarioRivera243377
 
411681131 inferencia-estadistica-1
411681131 inferencia-estadistica-1411681131 inferencia-estadistica-1
411681131 inferencia-estadistica-1
CarlosRoberto154965
 
Redes Neuronales Artificiales y Estadística
Redes Neuronales Artificiales y EstadísticaRedes Neuronales Artificiales y Estadística
Redes Neuronales Artificiales y Estadística
Banco Santander Chile
 

Similar a Tutorial algoritmosgeneticos (20)

Sudoku
SudokuSudoku
Sudoku
 
Materia investigación operativa 2
Materia investigación operativa 2Materia investigación operativa 2
Materia investigación operativa 2
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto B
 
TFM_MJVillanueva
TFM_MJVillanuevaTFM_MJVillanueva
TFM_MJVillanueva
 
Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Example of iterative method
Example of iterative methodExample of iterative method
Example of iterative method
 
Example of iterative method
Example of iterative methodExample of iterative method
Example of iterative method
 
Esquemas iterativos en paralelo con OpenMP
Esquemas iterativos en paralelo con OpenMPEsquemas iterativos en paralelo con OpenMP
Esquemas iterativos en paralelo con OpenMP
 
Criptografia
CriptografiaCriptografia
Criptografia
 
284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf
 
Criptografia (1)
Criptografia (1)Criptografia (1)
Criptografia (1)
 
Probabilidad y estadistica elementales
Probabilidad y estadistica elementalesProbabilidad y estadistica elementales
Probabilidad y estadistica elementales
 
Probabilidad y estadistica elementales
Probabilidad y estadistica elementalesProbabilidad y estadistica elementales
Probabilidad y estadistica elementales
 
6. bioestadistica
6. bioestadistica6. bioestadistica
6. bioestadistica
 
*
**
*
 
Apuntes Coello Coello 2009
Apuntes Coello Coello 2009Apuntes Coello Coello 2009
Apuntes Coello Coello 2009
 
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
06. apuntes de estadística en ciencias de la salud autor p. botella rocamora...
 
411681131 inferencia-estadistica-1
411681131 inferencia-estadistica-1411681131 inferencia-estadistica-1
411681131 inferencia-estadistica-1
 
Redes Neuronales Artificiales y Estadística
Redes Neuronales Artificiales y EstadísticaRedes Neuronales Artificiales y Estadística
Redes Neuronales Artificiales y Estadística
 

Tutorial algoritmosgeneticos

  • 1. Introducci´n a los Algoritmos Gen´ticos o e Marcos Gestal Pose Depto. Tecnolog´ de la Informaci´n y las Comunicaciones ıas o Universidade da Coru˜a n http://sabia.tic.udc.es/˜mgestal mgestal@udc.es ´ Indice 1. Introducci´n o 2 2. Or´ ıgenes 2 3. Bases Biol´gicas o 4 4. Codificaci´n de Problemas o 4 5. Algoritmo Principal 5 6. Operadores Gen´ticos e 8 6.1. Selecci´n . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . 8 6.1.1. Selecci´n por ruleta o . . . . . . . . . . . . . . . . . . . . . 8 6.1.2. Selecci´n por torneo o . . . . . . . . . . . . . . . . . . . . . 9 6.2. Cruce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6.2.1. Cruce de 1 punto . . . . . . . . . . . . . . . . . . . . . . . 10 6.2.2. Cruce de 2 puntos . . . . . . . . . . . . . . . . . . . . . . 10 6.2.3. Cruce Uniforme . . . . . . . . . . . . . . . . . . . . . . . . 11 6.2.4. Cruces espec´ ıficos de codificaciones no binarias . . . . . . 11 6.3. Algoritmos de Reemplazo . . . . . . . . . . . . . . . . . . . . . . 12 6.4. Copia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.5. Mutaci´n . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . 13 7. Evaluaci´n o 14 ´ Indice de figuras 1. Ecuaci´n Evolutiva . . . . . . . . . . . . . . . . . . o . . . . . . . . 2 2. Soft Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Individuo Gen´tico Binario . . . . . . . . . . . . . e . . . . . . . . 5 4. Ejemplo Codificaci´n: Red de Neuronas Artificiales o . . . . . . . . 6 5. Cruce de 1 Punto . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6. Cruce de 2 Puntos . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7. Cruce Uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1
  • 2. Introducci´n a los Algoritmos Gen´ticos o e El siguiente tutorial no pretende ser un documento exhaustivo acer- ca de los Algoritmos Gen´ticos. M´s bien una referencia que sirva para e a introducir la terminolog´ los conceptos claves y una bibliograf´ de ba- ıa, ıa se, quedando en manos del lector profundizar en aquellos aspectos que considere de mayor inter´s. e 1. Introducci´n o Los Algoritmos Gen´ticos son m´todos adaptativos, generalmente usados en e e problemas de b´squeda y optimizaci´n de par´metros, basados en la reproduc- u o a ci´n sexual y en el principio supervivencia del m´s apto. o a M´s formalmente, y siguiendo la definici´n dada por Goldberg, “los Algorit- a o mos Gen´ticos son algoritmos de b´squeda basados en la mec´nica de selecci´n e u a o natural y de la gen´tica natural. Combinan la supervivencia del m´s apto entre e a estructuras de secuencias con un intercambio de informaci´n estructurado, aun- o que aleatorizado, para constituir as´ un algoritmo de b´squeda que tenga algo de ı u las genialidades de las b´squedas humanas” [Goldberg, 1989]. u Para alcanzar la soluci´n a un problema se parte de un conjunto inicial o de individuos, llamado poblaci´n, generado de manera aleatoria. Cada uno o de estos individuos representa una posible soluci´n al problema. Estos indi- o viduos evolucionar´n tomando como base los esquemas propuestos por Dar- a win [Darwin, 1859] sobre la selecci´n natural, y se adaptar´n en mayor medida o a tras el paso de cada generaci´n a la soluci´n requerida. o o 2. Or´ ıgenes Si algo funciona bien, ¿por qu´ no imitarlo?. La respuesta a esta pregun- e ta nos lleva directamente a los or´ıgenes de la computaci´n evolutiva. Durante o millones de a˜os las diferentes especies se han adaptado para poder sobrevivir n en un medio cambiante. De la misma manera se podr´ tener una poblaci´n de ıa o potenciales soluciones a un problema de las que se ir´ seleccionando las mejo- ıan res hasta que se adaptasen perfectamente al medio, en este caso el problema a resolver. En t´rminos muy generales se podr´ definir la computaci´n evolutiva e ıa o como una familia de modelos computacionales inspirados en la evoluci´n. o M´s formalmente el t´rmino de computaci´n evolutiva se refiere al estudio a e o de los fundamentos y aplicaciones de ciertas t´cnicas heur´ e ısticas basadas en los principios de la evoluci´n natural [Tomassini, 1995]. Estas t´cnicas heur´ o e ısticas podr´ clasificarse en 3 categor´ principales dando lugar a la ecuaci´n evolu- ıan ıas o tiva (Fig. 1). Figura 1: Ecuaci´n Evolutiva o A continuaci´n se detallar´n un poco m´s los or´ o a a ıgenes de cada una de las disciplinas participantes en dicha ecuaci´n. o M. Gestal 2
  • 3. Introducci´n a los Algoritmos Gen´ticos o e El desarrollo de los Algoritmos Gen´ticos se debe en gran medida a John e Holland, investigador de la Universidad de Michigan. A finales de la d´cada de e los 60 desarroll´ una t´cnica que imitaba en su funcionamiento a la selecci´n o e o natural. Aunque originalmente esta t´cnica recibi´ el nombre de planes repro- e o ductivos, a ra´ de la publicaci´n en 1975 de su libro “Adaptation in Natural ız o and Artificial Systems” [Holland, 1975] se conoce principalmente con el nombre de Algoritmos Gen´ticos. e A grandes rasgos un Algoritmo Gen´tico consiste en una poblaci´n de solu- e o ciones codificadas de forma similar a cromosomas. Cada uno de estos cromoso- mas tendr´ asociado un ajuste, valor de bondad, ajuste o fitness, que cuantifica a su validez como soluci´n al problema. En funci´n de este valor se le dar´n m´s o o a a o menos oportunidades de reproducci´n. Adem´s, con cierta probabilidad se o a realizar´n mutaciones de estos cromosomas. a Las bases de las Estrategias de Evoluci´n fueron apuntadas en 1973 por o Rechemberg en su obra “Evolutionsstrategie: Optimierung Technisher Systeme nach Prinzipien der Biologischen Evolution” [Rechenberg, 1973]. Las dos Es- trategias de Evoluci´n m´s empleadas son la (μ + λ)-ES y la (μ, λ)-ES. En la o a primera de ellas un total de μ producen λ descendientes reduci´ndose nueva- e mente la poblaci´n a μ individuos (los padres de la siguiente generaci´n) por o o selecci´n de los mejores individuos. De esta manera los padres sobreviven hasta o que son reemplazados por hijos mejores que ellos. En la (μ+λ)-ES la descenden- cia reemplaza directamente a los padres, sin hacer ning´n tipo de comprobaci´n. u o La Programaci´n Evolutiva surge principalmente a ra´ del trabajo “Ar- o ız tificial Intelligence Through Simulated Evolution” de Fogel, Owens y Walsh, publicado en 1966 [Fogel et al., 1966]. En este caso los individuos, conocidos aqu´ como organismos, son m´quinas de estado finito. Los organismos que mejor ı a resuelven alguna de las funciones objetivo obtienen la oportunidad de reprodu- cirse. Antes de producirse los cruces para generar la descendencia se realiza una mutaci´n sobre los padres. o A su vez la computaci´n evolutiva puede verse como uno de los campos de o investigaci´n de lo que se ha dado en llamar Soft Computing (Fig. 2). o Figura 2: Soft Computing Como se ha comentado anteriormente la computaci´n evolutiva tiene una o fuerte base biol´gica. En sus or´ o ıgenes los algoritmos evolutivos consistieron en copiar procesos que tienen lugar en la selecci´n natural. Este ultimo con- o ´ cepto hab´ sido introducido, rodeado de mucha pol´mica, por Charles Dar- ıa e win [Darwin, 1859]. A pesar de que a´n hoy en d´ no todos los detalles de la u ıa evoluci´n biol´gica son completamente conocidos, existen algunos hechos apo- o o yados sobre una fuerte evidencia experimental: La evoluci´n es un proceso que opera, m´s que sobre los propios organis- o a mos, sobre los cromosomas. Estos cromosomas pueden ser considerados como herramientas org´nicas que codifican la vida, o visto al rev´s, una a e M. Gestal 3
  • 4. Introducci´n a los Algoritmos Gen´ticos o e criatura es creada decodificando la informaci´n contenida en los cromoso- o mas. La selecci´n natural es el mecanismo que relaciona los cromosomas con la o eficiencia respecto al medio de la entidad que representan. Otorga a los individuos m´s adaptados al medio un mayor n´mero de oportunidades a u de reproducirse. Los procesos evolutivos tienen lugar durante la etapa de reproducci´n. o Aunque existe una larga serie de mecanismos que afectan a la reproducci´n o los m´s comunes son la mutaci´n, causante de que los cromosomas de la a o descendencia sean diferentes a los de los padres, y el cruce o recombinaci´n, o que combina los cromosomas de los padres para producir la descendencia. 3. Bases Biol´gicas o En la naturaleza, los individuos de una poblaci´n compiten constantemente o con otros por recursos tales como comida, agua y refugio. Los individuos que tienen m´s ´xito en la lucha por los recursos tienen mayores probabilidades de a e sobrevivir y generalmente una descendencia mayor. Al contrario, los individuos peor adaptados tienen un menor n´mero de descendientes, o incluso ninguno. u Esto implica que los genes de los individuos mejor adaptados se propagar´n a a un n´mero cada vez mayor de individuos de las sucesivas generaciones. u La combinaci´n de caracter´ o ısticas buenas de diferentes ancestros puede ori- ginar en ocasiones que la descendencia est´ incluso mejor adaptada al medio que e los padres. De esta manera, las especies evolucionan adapt´ndose m´s y m´s al a a a medio a medida que transcurren las generaciones [Beasley et al., 1993]. Pero la adaptaci´n de un individuo al medio no s´lo est´ determinada por su o o a composici´n gen´tica. Influyen otros factores como el aprendizaje, en ocasiones o e adquirido por el m´todo de prueba y error, en ocasiones adquirido por imitaci´n e o del comportamiento de los padres. Para imitar esta adquisici´n de conocimiento o se han desarrollado variantes como el Ajuste Fino. Pero la adaptaci´n de un individuo al medio no s´lo est´ determinada por su o o a composici´n gen´tica. Influyen otros factores como el aprendizaje, en ocasiones o e adquirido por el m´todo de prueba y error, en ocasiones adquirido por imitaci´n e o del comportamiento de los padres. Para imitar esta adquisici´n de conocimiento o pueden emplearse t´cnicas de Ajuste Fino, consistentes en peque˜as modifica- e n ciones de los genes de un cromosoma. Por ejemplo, estas modificaciones pueden realizarse tomando como resultado el mejor individuo tras la ejecuci´n de va- o rias generaciones de un Algoritmo Gen´tico cuya poblaci´n previamente ha sido e o creada a partir de ligeras variaciones del individuo al que se desea incorporar el conocimiento. 4. Codificaci´n de Problemas o Cualquier soluci´n potencial a un problema puede ser presentada dando o valores a una serie de par´metros. El conjunto de todos los par´metros (genes a a en la terminolog´ de Algoritmos Gen´ticos) se codifica en una cadena de valores ıa e denominada cromosoma. M. Gestal 4
  • 5. Introducci´n a los Algoritmos Gen´ticos o e El conjunto de los par´metros representado por un cromosoma particular a recibe el nombre de genotipo. El genotipo contiene la informaci´n necesaria para o la construcci´n del organismo, es decir, la soluci´n real al problema, denominada o o fenotipo. Por ejemplo, en t´rminos biol´gicos, la informaci´n gen´tica contenida e o o e en el ADN de un individuo ser´ el genotipo, mientras que la expresi´n de ese ıa o ADN (el propio individuo) ser´ el fenotipo. ıa Desde los primeros trabajos de John Holland la codificaci´n suele hacerse o mediante valores binarios. Se asigna un determinado n´mero de bits a cada u par´metro y se realiza una discretizaci´n de la variable representada por cada a o gen. El n´mero de bits asignados depender´ del grado de ajuste que se desee u a alcanzar. Evidentemente no todos los par´metros tienen porque estar codificados a con el mismo n´mero de bits. Cada uno de los bits pertenecientes a un gen suele u recibir el nombre de alelo. La figura 3 muestra un ejemplo de un individuo binario que codifica 3 par´metros. a Figura 3: Individuo Gen´tico Binario e Sin embargo, tambi´n pueden existir representaciones que codifiquen direc- e tamente cada par´metro con un valor entero, real o en punto flotante. A pesar a de que se acusa a estas representaciones de degradar el paralelismo impl´ ıcito de las representaciones binarias, permiten el desarrollo de operadores gen´ticos e m´s espec´ a ıficos al campo de aplicaci´n del Algoritmo Gen´tico. o e Un ejemplo t´ıpico de la aplicaci´n de los Algoritmos Gen´ticos es la optimi- o e zaci´n de los pesos de una red de neuronas artificiales. La codificaci´n de la red o o en forma de cromosoma (fig. 4) es tan sencilla como asignar un gen del cromo- soma a cada uno de los pesos de la red. Tambi´n se podr´ a˜adir genes que e ıan n indicasen el n´mero de capas de la red, y el n´mero de elementos de procesado u u en cada capa. 5. Algoritmo Principal Los Algoritmos Gen´ticos trabajan sobre una poblaci´n de individuos. Cada e o uno de ellos representa una posible soluci´n al problema que se desea resolver. o Todo individuo tiene asociado un ajuste de acuerdo a la bondad con respecto al problema de la soluci´n que representa (en la naturaleza el equivalente ser´ o ıa una medida de la eficiencia del individuo en la lucha por los recursos). M. Gestal 5
  • 6. Introducci´n a los Algoritmos Gen´ticos o e Figura 4: Ejemplo Codificaci´n: Red de Neuronas Artificiales o El funcionamiento gen´rico de un Algoritmo Gen´tico puede apreciarse en e e el siguiente pseudoc´digo: o Inicializar poblaci´n actual aleatoriamente o MIENTRAS no se cumpla el criterio de terminaci´n o crear poblaci´n temporal vac´a o ı MIENTRAS poblaci´n temporal no llena o seleccionar padres cruzar padres con probabilidad Pc SI se ha producido el cruce mutar uno de los descendientes con probabilidad Pm evaluar descendientes a~adir descendientes a la poblaci´n temporal n o SINO a~adir padres a la poblaci´n temporal n o FIN SI FIN MIENTRAS aumentar contador generaciones establecer como nueva poblaci´n actual la poblaci´n temporal o o FIN MIENTRAS Una generaci´n se obtiene a partir de la anterior por medio de los operadores o de reproducci´n. Existen 2 tipos: o Cruce: Se trata de una reproducci´n de tipo sexual. Se genera una des- o cendencia a partir del mismo n´mero de individuos (generalmente 2) de u la generaci´n anterior. Existen varios tipos que se detallar´n en un punto o a posterior. Copia: Se trata de una reproducci´n de tipo asexual. Un determinado o n´mero de individuos pasa sin sufrir ninguna variaci´n directamente a la u o siguiente generaci´n. o M. Gestal 6
  • 7. Introducci´n a los Algoritmos Gen´ticos o e Una vez generados los nuevos individuos se realiza la mutaci´n con una o probabilidad Pm. La probabilidad de mutaci´n suele ser muy baja, por lo general o entre el 0.5 % y el 2 %. Se sale de este proceso cuando se alcanza alguno de los criterios de parada fijados. Los m´s usuales suelen ser: a Los mejores individuos de la poblaci´n representan soluciones suficiente- o mente buenas para el problema que se desea resolver. La poblaci´n ha convergido. Un gen ha convergido cuando el 95 % de la o poblaci´n tiene el mismo valor para ´l, en el caso de trabajar con codi- o e ficaciones binarias, o valores dentro de un rango especificado, en el caso de trabajar con otro tipo de codificaciones. Una vez que todos los genes alcanzan la convergencia se dice que la poblaci´n ha convergido. Cuando o esto ocurre la media de bondad de la poblaci´n se aproxima a la bondad o del mejor individuo. Se ha alcanzado el n´mero de generaciones m´ximo especificado. u a Sobre este algoritmo inicialmente propuesto por Holland se han definido numerosas variantes. Quiz´s una de las m´s extendidas consiste en prescindir de la poblaci´n a a o temporal de manera que los operadores gen´ticos de cruce y mutaci´n se aplican e o directamente sobre la poblaci´n gen´tica. Con esta variante el proceso de cruces o e var´ ligeramente. Ahora no basta, en el caso de que el cruce se produzca, con ıa insertar directamente la descendencia en la poblaci´n. Puesto que el n´mero o u de individuos de la poblaci´n se ha de mantener constante, antes de insertar la o descendencia en la poblaci´n se le ha de hacer sitio. Existen para ello diversas o opciones: Reemplazo de padres: para hacer hueco a la descendencia en la pobla- ci´n se eliminan de ella a los padres. o Reemplazo de individuos similares: cada uno de los individuos de la descendencia reemplazar´ a un individuo de la poblaci´n con un ajuste a o similar al suyo. Para escoger este individuo se obtiene la posici´n en la o que se deber´ insertar el nuevo individuo para mantener ordenada la ıa poblaci´n y se escoge para insertarlo una posici´n al azar de su vecindad o o (p.e. uno de entre los cinco individuos superiores o inferiores). Reemplazo de los peores individuos: los individuos que se eliminar´n a de la poblaci´n para dejar paso a la descendencia se seleccionar´n aleato- o a riamente de entre los peores individuos de la poblaci´n. Por lo general se o consideran individuos pertenecientes al ultimo 10 %. ´ Reemplazo aleatorio: los individuos eliminados se seleccionan al azar. Evidentemente trabajando con un unica poblaci´n no se puede decir que ´ o se pase a la siguiente generaci´n cuando se llene la poblaci´n, pues siempre o o est´ llena. En este caso el paso a la siguiente generaci´n se producir´ una vez a o a que se hayan alcanzado cierto n´mero de cruces y mutaciones. Este n´mero u u depender´ de la tasa de cruces y mutaciones especificadas por el usuario y a M. Gestal 7
  • 8. Introducci´n a los Algoritmos Gen´ticos o e del tama˜o de la poblaci´n. As´ con una tasa de cruces del 90 %, una tasa de n o ı mutaciones del 0.02 % y trabajando con 100 individuos se pasar´ a la siguiente a generaci´n cuando se alcanzasen 45 cruces (cada cruce genera 2 individuos con o lo que se habr´ insertado en la poblaci´n 90 individuos, esto es el 90 %) o 2 ıan o mutaciones. 6. Operadores Gen´ticos e Para el paso de una generaci´n a la siguiente se aplican una serie de opera- o dores gen´ticos. Los m´s empleados son los operadores de selecci´n, cruce, copia e a o y mutaci´n. En el caso de no trabajar con una poblaci´n intermedia temporal o o tambi´n cobran relevancia los algoritmos de reemplazo. e A continuaci´n se ver´n en mayor detalle. o a 6.1. Selecci´n o Los algoritmos de selecci´n ser´n los encargados de escoger qu´ individuos o a e van a disponer de oportunidades de reproducirse y cu´les no. a Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otor- gar un mayor n´mero de oportunidades de reproducci´n a los individuos m´s u o a aptos. Por lo tanto la selecci´n de un individuo estar´ relacionada con su valor o a de ajuste. No se debe sin embargo eliminar por completo las opciones de repro- ducci´n de los individuos menos aptos, pues en pocas generaciones la poblaci´n o o se volver´ homog´nea. ıa e Una opci´n bastante com´n consiste en seleccionar el primero de los indi- o u viduos participantes en el cruce mediante alguno de los m´todos expuestos a e continuaci´n y el segundo de manera aleatoria. o 6.1.1. Selecci´n por ruleta o Propuesto por DeJong, es posiblemente el m´todo m´s utilizado desde los e a or´ ıgenes de los Algoritmos Gen´ticos [Blickle and Thiele, 1995]. e A cada uno de los individuos de la poblaci´n se le asigna una parte pro- o porcional a su ajuste de una ruleta, de tal forma que la suma de todos los porcentajes sea la unidad. Los mejores individuos recibir´n una porci´n de la a o ruleta mayor que la recibida por los peores. Generalmente la poblaci´n est´ or- o a denada en base al ajuste por lo que las porciones m´s grandes se encuentran al a inicio de la ruleta. Para seleccionar un individuo basta con generar un n´mero u aleatorio del intervalo [0..1] y devolver el individuo situado en esa posici´n de o la ruleta. Esta posici´n se suele obtener recorriendo los individuos de la pobla- o ci´n y acumulando sus proporciones de ruleta hasta que la suma exceda el valor o obtenido. Es un m´todo muy sencillo, pero ineficiente a medida que aumenta el tama˜o e n de la poblaci´n (su complejidad es O(n2 )). Presenta adem´s el inconveniente de o a que el peor individuo puede ser seleccionado m´s de una vez. a En mucha bibliograf´ se suele referenciar a este m´todo con el nombre de ıa e Selecci´n de Montecarlo. o M. Gestal 8
  • 9. Introducci´n a los Algoritmos Gen´ticos o e 6.1.2. Selecci´n por torneo o La idea principal de este m´todo consiste en realizar la selecci´n en base e o a comparaciones directas entre individuos. Existen dos versiones de selecci´n o mediante torneo: Determin´ ıstica Probabil´ ıstica En la versi´n determin´ o ıstica se selecciona al azar un n´mero p de indivi- u duos (generalmente se escoge p = 2). De entre los individuos seleccionados se selecciona el m´s apto para pasarlo a la siguiente generaci´n. a o La versi´n probabil´ o ıstica unicamente se diferencia en el paso de selecci´n del ´ o ganador del torneo. En vez de escoger siempre el mejor se genera un n´mero u aleatorio del intervalo [0..1], si es mayor que un par´metro p (fijado para todo el a proceso evolutivo) se escoge el individuo m´s alto y en caso contrario el menos a apto. Generalmente p toma valores en el rango 0,5 < p ≤ 1. Variando el n´mero de individuos que participan en cada torneo se puede u modificar la presi´n de selecci´n. Cuando participan muchos individuos en cada o o torneo, la presi´n de selecci´n es elevada y los peores individuos apenas tienen o o oportunidades de reproducci´n. Un caso particular es el elitismo global. Se trata o de un torneo en el que participan todos los individuos de la poblaci´n con lo cual o la selecci´n se vuelve totalmente determin´ o ıstica. Cuando el tama˜o del torneo n es reducido, la presi´n de selecci´n disminuye y los peores individuos tienen m´s o o a oportunidades de ser seleccionados. Elegir uno u otro m´todo de selecci´n determinar´ la estrategia de b´sque- e o a u da del Algoritmo Gen´tico. Si se opta por un m´todo con una alta presi´n de e e o selecci´n se centra la b´squeda de las soluciones en un entorno pr´ximo a las o u o mejores soluciones actuales. Por el contrario, optando por una presi´n de selec- o ci´n menor se deja el camino abierto para la exploraci´n de nuevas regiones del o o espacio de b´squeda. u Existen muchos otros algoritmos de selecci´n. Unos buscan mejorar la efi- o ciencia computacional, otros el n´mero de veces que los mejores o peores in- u dividuos pueden ser seleccionados. Algunos de estos algoritmos son muestreo determin´ ıstico, escalamiento sigma, selecci´n por jerarqu´ estado uniforme, o ıas, sobrante estoc´stico, brecha generacional, etc. a 6.2. Cruce Una vez seleccionados los individuos, ´stos son recombinados para producir e la descendencia que se insertar´ en la siguiente generaci´n. Tal y como se ha a o indicado anteriormente el cruce es una estrategia de reproducci´n sexual. o Su importancia para la transici´n entre generaciones es elevada puesto que o las tasas de cruce con las que se suele trabajar rondan el 90 %. Los diferentes m´todos de cruce podr´n operar de dos formas diferentes. e a Si se opta por una estrategia destructiva los descendientes se insertar´n en la a poblaci´n temporal aunque sus padres tengan mejor ajuste (trabajando con una o unica poblaci´n esta comparaci´n se realizar´ con los individuos a reemplazar). ´ o o a Por el contrario utilizando una estrategia no destructiva la descendencia pasar´ a a la siguiente generaci´n unicamente si supera la bondad del ajuste de los padres o ´ M. Gestal 9
  • 10. Introducci´n a los Algoritmos Gen´ticos o e (o de los individuos a reemplazar). La idea principal del cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se obtiene una descendencia que comparta genes de ambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los padres. Al compartir las caracter´ ısticas buenas de dos individuos, la descendencia, o al menos parte de ella, deber´ tener una bondad mayor que cada uno de los ıa padres por separado. Si el cruce no agrupa las mejores caracter´ ısticas en uno de los hijos y la descendencia tiene un peor ajuste que los padres no significa que se est´ dando un paso atr´s. Optando por una estrategia de cruce no destructiva e a garantizamos que pasen a la siguiente generaci´n los mejores individuos. Si, a´n o u con un ajuste peor, se opta por insertar a la descendencia, y puesto que los genes de los padres continuar´n en la poblaci´n - aunque dispersos y posiblemente a o levemente modificados por la mutaci´n - en posteriores cruces se podr´n volver o a a obtener estos padres, recuperando as´ la bondad previamente perdida. ı Existen multitud de algoritmos de cruce. Sin embargo los m´s empleados a son los que se detallar´n a continuaci´n: a o Cruce de 1 punto Cruce de 2 puntos Cruce uniforme 6.2.1. Cruce de 1 punto Es la m´s sencilla de las t´cnicas de cruce. Una vez seleccionados dos indivi- a e duos se cortan sus cromosomas por un punto seleccionado aleatoriamente para generar dos segmentos diferenciados en cada uno de ellos: la cabeza y la cola. Se intercambian las colas entre los dos individuos para generar los nuevos des- cendientes. De esta manera ambos descendientes heredan informaci´n gen´tica o e de los padres, tal y como puede verse en la figura 5. En la bibliograf´ suele referirse a este tipo de cruce con el nombre de SPX ıa (Single Point Crossover) Figura 5: Cruce de 1 Punto 6.2.2. Cruce de 2 puntos Se trata de una generalizaci´n del cruce de 1 punto. En vez de cortar por un o unico punto los cromosomas de los padres como en el caso anterior se realizan ´ dos cortes. Deber´ tenerse en cuenta que ninguno de estos puntos de corte a coincida con el extremo de los cromosomas para garantizar que se originen tres M. Gestal 10
  • 11. Introducci´n a los Algoritmos Gen´ticos o e segmentos. Para generar la descendencia se escoge el segmento central de uno de los padres y los segmentos laterales del otro padre (ver figura 6. Figura 6: Cruce de 2 Puntos Generalmente se suele referir a este tipo de cruce con las siglas DPX (Double Point Crossover). Generalizando se pueden a˜adir m´s puntos de cruce dando lugar a algorit- n a mos de cruce multipunto. Sin embargo existen estudios que desaprueban esta t´cnica [Jong, 1975] . Aunque se admite que el cruce de 2 puntos aporta una e sustancial mejora con respecto al cruce de un solo punto, el hecho de a˜adir un n mayor n´mero de puntos de cruce reduce el rendimiento del Algoritmo Gen´tico. u e El problema principal de a˜adir nuevos puntos de cruce radica en que es m´s n a f´cil que los segmentos originados sean corrompibles, es decir, que por separado a quiz´s pierdan las caracter´ a ısticas de bondad que pose´ conjuntamente. Sin ıan embargo no todo son desventajas y a˜adiendo m´s puntos de cruce se consigue n a que el espacio de b´squeda del problema sea explorado m´s a fondo. u a 6.2.3. Cruce Uniforme El cruce uniforme es una t´cnica completamente diferente de las vistas hasta e el momento. Cada gen de la descendencia tiene las mismas probabilidades de pertenecer a uno u otro padre. Aunque se puede implementar de muy diversas formas, la t´cnica implica e la generaci´n de una m´scara de cruce con valores binarios. Si en una de las o a posiciones de la m´scara hay un 1, el gen situado en esa posici´n en uno de los a o descendientes se copia del primer padre. Si por el contrario hay un 0 el gen se copia del segundo padre. Para producir el segundo descendiente se intercambian los papeles de los padres, o bien se intercambia la interpretaci´n de los unos y o los ceros de la m´scara de cruce. a Tal y como se puede apreciar en la figura 7, la descendencia contiene una mezcla de genes de cada uno de los padres. El n´mero efectivo de puntos de u cruce es fijo pero ser´ por t´rmino medio L/2, siendo L la longitud del cromo- a e soma (n´mero de alelos en representaciones binarias o de genes en otro tipo de u representaciones). Se suele referir a este tipo de cruce con las siglas UPX (Uniform Point Crossover). 6.2.4. Cruces espec´ ıficos de codificaciones no binarias Los tres tipos de cruce vistos hasta el momento son v´lidos para cualquier a tipo de representaci´n del genotipo. Si se emplean genotipos compuestos por o M. Gestal 11
  • 12. Introducci´n a los Algoritmos Gen´ticos o e Figura 7: Cruce Uniforme valores enteros o reales pueden definirse otro tipo de operadores de cruce: Media: el gen de la descendencia toma el valor medio de los genes de los padres. Tiene la desventaja de que unicamente se genera un descendiente ´ en el cruce de dos padres. Media geom´trica: cada gen de la descendencia toma como valor la ra´ e ız cuadrada del producto de los genes de los padres. Presenta el problema a˜adido de qu´ signo dar al resultado si los padres tienen signos diferentes. n e Extensi´n: se toma la diferencia existente entre los genes situados en las o mismas posiciones de los padres y se suma al valor m´s alto o se resta del a valor m´s bajo. Solventa el problema de generar un unico descendiente. a ´ 6.3. Algoritmos de Reemplazo Cuando en vez de trabajar con una poblaci´n temporal se hace con una unica o ´ poblaci´n, sobre la que se realizan las selecciones e inserciones, deber´ tenerse en o a cuenta que para insertar un nuevo individuo deber´ de eliminarse previamente a otro de la poblaci´n. Existen diferentes m´todos de reemplazo: o e Aleatorio: el nuevo individuo se inserta en un lugar cualquiera de la poblaci´n. o Reemplazo de padres: se obtiene espacio para la nueva descendencia liberando el espacio ocupado por los padres. Reemplazo de similares: una vez obtenido el ajuste de la descendencia se selecciona un grupo de individuos (entre seis y diez) de la poblaci´n con o un ajuste similar. Se reemplazan aleatoriamente los que sean necesarios. Reemplazo de los peores: de entre un porcentaje de los peores indi- viduos de la poblaci´n se seleccionan aleatoriamente los necesarios para o dejar sitio a la descendencia. M. Gestal 12
  • 13. Introducci´n a los Algoritmos Gen´ticos o e 6.4. Copia La copia es la otra estrategia reproductiva para la obtenci´n de una nueva o generaci´n a partir de la anterior. A diferencia del cruce, se trata de una estra- o tegia de reproducci´n asexual. Consiste simplemente en la copia de un individuo o en la nueva generaci´n. o El porcentaje de copias de una generaci´n a la siguiente es relativamente o reducido, pues en caso contrario se corre el riesgo de una convergencia prematura de la poblaci´n hacia ese individuo. De esta manera el tama˜o efectivo de la o n poblaci´n se reducir´ notablemente y la b´squeda en el espacio del problema o ıa u se focalizar´ en el entorno de ese individuo. ıa Lo que generalmente se suele hacer es seleccionar dos individuos para el cruce, y si ´ste finalmente no tiene lugar, se insertan en la siguiente generaci´n e o los individuos seleccionados. 6.5. Mutaci´n o La mutaci´n de un individuo provoca que alguno de sus genes, generalmente o uno s´lo, var´ su valor de forma aleatoria. o ıe Aunque se pueden seleccionar los individuos directamente de la poblaci´n o actual y mutarlos antes de introducirlos en la nueva poblaci´n, la mutaci´n se o o suele utilizar de manera conjunta con el operador de cruce. Primeramente se se- leccionan dos individuos de la poblaci´n para realizar el cruce. Si el cruce tiene o ´xito entonces uno de los descendientes, o ambos, se muta con cierta probabili- e dad Pm. Se imita de esta manera el comportamiento que se da en la naturaleza, pues cuando se genera la descendencia siempre se produce alg´n tipo de error, u por lo general sin mayor trascendencia, en el paso de la carga gen´tica de padres e a hijos. La probabilidad de mutaci´n es muy baja, generalmente menor al 1 %. Esto o se debe sobre todo a que los individuos suelen tener un ajuste menor despu´s de e mutados. Sin embargo se realizan mutaciones para garantizar que ning´n punto u del espacio de b´squeda tenga una probabilidad nula de ser examinado. u Tal y como se ha comentado, la mutaci´n m´s usual es el reemplazo aleatorio. o a Este consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja con codificaciones binarias consistir´ simplemente en negar un bit. Tambi´n es a e posible realizar la mutaci´n intercambiando los valores de dos alelos del cromo- o soma. Con otro tipo de codificaciones no binarias existen otras opciones: Incrementar o decrementar a un gen una peque˜a cantidad generada alea- n toriamente. Multiplicar un gen por un valor aleatorio pr´ximo a 1. o Aunque no es lo m´s com´n, existen implementaciones de Algoritmos Gen´ti- a u e cos en las que no todos los individuos tienen los cromosomas de la misma lon- gitud. Esto implica que no todos ellos codifican el mismo conjunto de variables. En este caso existen mutaciones adicionales como puede ser a˜ adir un nuevo n gen o eliminar uno ya existente. M. Gestal 13
  • 14. Introducci´n a los Algoritmos Gen´ticos o e 7. Evaluaci´n o Para el correcto funcionamiento de un Algoritmo Gen´tico se debe de poseer e un m´todo que indique si los individuos de la poblaci´n representan o no buenas e o soluciones al problema planteado. Por lo tanto para cada tipo de problema que se desee resolver deber´ derivarse un nuevo m´todo, al igual que ocurrir´ con la a e a propia codificaci´n de los individuos. o De esto se encarga la funci´n de evaluaci´n, que establece una medida o o num´rica de la bondad de una soluci´n. Esta medida recibe el nombre de ajuste. e o En la naturaleza el ajuste (o adecuaci´n) de un individuo puede considerarse co- o mo la probabilidad de que ese individuo sobreviva hasta la edad de reproducci´no y se reproduzca. Esta probabilidad deber´ estar ponderada con el n´mero de a u descendientes. Evidentemente no es lo mismo una probabilidad de reproducci´n o del 25 % en una poblaci´n de un par de cientos de individuos que esa misma o probabilidad en una poblaci´n de varios millones. o En el mundo de los Algoritmos Gen´ticos se emplear´ esta medici´n para e a o controlar la aplicaci´n de los operadores gen´ticos. Es decir, permitir´ controlar o e a el n´mero de selecciones, cruces, copias y mutaciones llevadas a cabo. u La aproximaci´n m´s com´n consiste en crear expl´ o a u ıcitamente una medida de ajuste para cada individuo de la poblaci´n. A cada uno de los individuos se les o asigna un valor de ajuste escalar por medio de un procedimiento de evaluaci´n o bien definido. Tal y como se ha comentado, este procedimiento de evaluaci´n o ser´ espec´ a ıfico del dominio del problema en el que se aplica el Algoritmo Gen´ti- e co. Tambi´n puede calcularse el ajuste mediante una manera ’co-evolutiva’. Por e ejemplo, el ajuste de una estrategia de juego se determina aplicando esa estra- tegia contra la poblaci´n entera (o en su defecto una muestra) de estrategias de o oposici´n. o Se pueden diferenciar cuatro tipos de ajuste o fitness [Koza, 1992]: Fitness Puro: r(i,t) Es la medida de ajuste establecida en la terminolog´ natural del propio ıa problema. La ecuaci´n 1 establece el c´lculo del valor de bondad de un o a individuo i en un instante t (o generaci´n). o Nc r(i, t) = |s(i, j) − c(i, j)| (1) j=1 Siendo : s(i, j) = valor deseado para el individuo i en el caso j c(i, j) = valor obtenido por el individuo i para el caso j Nc = N´mero de casos u Por ejemplo, sup´ngase una poblaci´n de hormigas que deben llenar la o o despensa de cara al invierno. La bondad de cada hormiga ser´ el n´mero a u de piezas de comida llevadas por ella hasta el hormiguero. M. Gestal 14
  • 15. Introducci´n a los Algoritmos Gen´ticos o e En los problemas de maximizaci´n, como ser´ el de las hormigas mencio- o ıa nado anteriormente, los individuos con un fitness puro elevado ser´n los a m´s interesantes. Al contrario, en los problemas de minimizaci´n intere- a o sar´n los individuos con un fitness puro reducido. a Fitness Estandarizado: s(i,t) Para solucionar esta dualidad ante problemas de minimizaci´n o maximi- o zaci´n se modifica el ajuste puro de acuerdo a la ecuaci´n 2. o o r(i, t) minimizaci´n o s(i, t) = (2) rmax − r(i, t) maximizaci´n o En el caso de problemas de minimizaci´n se emplea directamente la medida o de fitness puro. Si el problema es de maximizaci´n se resta de una cota o superior rmax del error el fitness puro. Empleando esta m´trica la bondad e de un individuo ser´ mayor cuanto m´s cercano est´ a cero el valor del a a e ajuste. Por lo tanto, dentro de la generaci´n t, un individuo i siempre o ser´ mejor que uno j si se verifica que s(i, t) < s(j, t). a Fitness Ajustado: a(i,t) Se obtiene aplicando la transformaci´n reflejada en la ecuaci´n 3 al fitness o o estandarizado. 1 a(i, t) = (3) 1 + s(i, t) De esta manera, el fitness ajustado tomar´ siempre valores del intervalo a [0..1]. Cuando m´s se aproxime el fitness ajustado de un individuo a 1 a mayor ser´ su bondad. a Fitness Normalizado: n(i,t) Los diferentes tipos de fitness vistos hasta ahora hacen referencia uni- ´ camente a la bondad del individuo en cuesti´n. El fitness normalizado o introduce un nuevo aspecto: indica la bondad de una soluci´n con respec- o to al resto de soluciones representadas en la poblaci´n. Considerando una o poblaci´n de tama˜o N, se obtiene seg´n la ecuaci´n 4. o n u o a(i, t) n(i, t) = N (4) k=1 a(k, t) Al igual que el fitness ajustado, siempre tomar´ valores del intervalo [0..1], a con mejores individuos cuanto m´s pr´ximo est´ a la unidad. Pero a di- a o e ferencia de antes, un valor cercano a 1 no s´lo indica que ese individuo o represente una buena soluci´n al problema, sino que adem´s es una so- o a luci´n destacadamente mejor que las proporcionadas por el resto de la o poblaci´n. o La suma de los valores del fitness normalizado de todos los individuos de una poblaci´n dar´ siempre 1. o a Este tipo de ajuste es empleado en la mayor´ de los m´todos de selecci´n ıa e o proporcionales al fitness. M. Gestal 15
  • 16. Introducci´n a los Algoritmos Gen´ticos o e Referencias [Beasley et al., 1993] Beasley, D., Bull, D. R., and Martin, R. R. (1993). An overview of genetic algorithms: Part 1, fundamentals. University Computing, 15(2):58–69. [Blickle and Thiele, 1995] Blickle, T. and Thiele, L. (1995). A comparison of selection schemes used in genetic algorithms. Technical Report 11, Computer Engineering and Comunnication Network Lab (TIK), Gloriastrasse 35, 8092 Zurich, Switzerland. [Darwin, 1859] Darwin, C. (1859). On the Origin of Species by Means of Natural Selection. John Murray, London. [Fogel et al., 1966] Fogel, L. J., Owens, A. J., and Walsh, M. J. (1966). Artificial Intelligence through Simulated Evolution. John Wiley & Sons, New York. [Goldberg, 1989] Goldberg, D. E. (1989). Genetic Algorithms in Search, Opti- mization and Machine Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. [Holland, 1975] Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor. Republished by the MIT press, 1992. [Jong, 1975] Jong, K. A. D. (1975). An analysis of the behavior of a class of genetic adaptive systems. PhD thesis, University of Michigan. [Koza, 1992] Koza, J. R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection (Complex Adaptive Systems). The MIT Press. [Rechenberg, 1973] Rechenberg, I. (1973). Evolutionsstrategie: Optimierung te- chnischer Systeme nach Prinzipien der biologischen Evolution. Frommann- Holzboog, Stuttgart. [Tomassini, 1995] Tomassini, M. (1995). A survey of genetic algorithms. Annual Reviews of Computational Physics, III:87–118. M. Gestal 16