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

Tutorial algoritmosgeneticos

  • 1.
    Introducci´n a losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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 losAlgoritmos 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