Evolución de las poblaciones

8
CIENTIFICA Investigación Volumen 6, número 2 enero–julio 2012, issn 18708196 Evolución de las poblaciones LUIS COPERTARI SANTIAGO ESPARZA URIEL RAMÍREZ–GARCÍA Universidad Autónoma de Zacatecas Correo–e: [email protected]

description

La evolución de las poblaciones en los seres vivos y la evolución de los individuos en algoritmos genéticos comparten la misma característica: ambas funcionan debido a que los mejores esquemas o secuencias de información tienden a reproducirse con mayor frecuencia.

Transcript of Evolución de las poblaciones

Page 1: Evolución de las poblaciones

CIENTIFICAInvestigaciónVolumen 6, número 2 enero–julio 2012, issn 1870–8196

Evolución de las poblaciones

luis Copertari

santiago esparza

uriel ramÍrez–garCÍa

Universidad Autónoma de Zacatecas

Correo–e: [email protected]

Page 2: Evolución de las poblaciones

CIENTIFICAInvestigación

2

Resumen

La evolución de las poblaciones en los seres vivos y la evolución de los individuos en algoritmos ge-néticos comparten la misma característica: ambas funcionan debido a que los mejores esquemas o secuencias de información tienden a reproducirse con mayor frecuencia. En este ensayo se analiza nu-méricamente un ejemplo en el que se trabaja con diferentes tamaños de población y distintos percen-tiles de los individuos mejor adaptados para hacer las cruzas. La hipótesis es que entre mayor sea la población y la cantidad de individuos mejor adapta-dos que se crucen sea superior, mejor será el resul-tado obtenido.

Palabras clave: evolución, población, cruza, esque-mas, algoritmos genéticos.

Introducción

La naturaleza emplea potentes medios con el propó-sito de impulsar la evolución satisfactoria de los or-ganismos. Aquellos que son poco aptos para un de-terminado ambiente mueren, en tanto que los que están bien adaptados se reproducen. Los hijos son semejantes a sus padres, por lo que cada nueva ge-neración tiene organismos similares a los miembros bien dotados de la generación anterior. Si las modi-ficaciones del ambiente son menores, las especies irán evolucionando gradualmente a la par con él; sin embargo, es probable que un súbito cambio del entorno provoque la desaparición de especies ente-ras. En ocasiones se producen mutaciones al azar, y aunque usualmente implican la pronta muerte del individuo mutado, algunas de ellas dan como resul-tado nuevas y satisfactorias especies. La publicación de la obra de Darwin El origen de las especies basada en la selección natural representó un parteaguas en la historia de la ciencia.

Con el trabajo de Friedberg (1958) surgieron los algoritmos genéticos. Friedberg intentó producir un aprendizaje a partir de la mutación de pequeños programas de Fortran. Como la mayoría de las mu-taciones efectuadas en los programas produjeron

un código inoperativo, fue poco el avance logrado. John Holland (1975) renovó este campo al emplear representaciones de agentes con cadenas de bits, de tal manera que mediante cualquier cadena posi-ble se pudiera representar un agente en operación. John Koza (1992) ha logrado notables resultados en representaciones más complejas de agentes junto con técnicas de mutación y apareamiento en las que se centra la atención en la sintaxis del lenguaje de representación.

Con anterioridad se ha hecho un extensivo tra-bajo en algoritmos genéticos. Los autores que han aportado a este campo son demasiados para nom-brarlos a todos. Sin embargo, siempre ha sido de particular interés la selección de los parámetros a utilizar en el algoritmo genético así como el modo de representación del problema. Algunos investi-gadores han propuesto técnicas automáticas para definir la representación de los individuos, como Shaefer (1987), técnicas de codificación dinámica de parámetros, como Schraudolph y Belew (1992), y al-goritmos genéticos desordenados, como Goldberg et al. (1991).

Es importante señalar que también se ha traba-jado en los operadores. En ese sentido, diferentes operadores juegan distintos roles en diversas etapas del proceso evolutivo. Los operadores deben adap-tarse, por ejemplo, en cruza adaptativa de Schaffer y Morishima en (1987) y de Spears (1995). Además, se han hecho experimentos para el control de los parámetros del algoritmo genético enfocados a en-contrar probabilidades adaptativas de los operado-res (Davis, 1989; Julstrom, 1995; Shrinivas y Patnaik, 1999; Tuson y Ross, 1996), aunque aún queda traba-jo por hacer.

Se debe tener en cuenta que los algoritmos ge-néticos no son lo mismo que la reproducción y evo-lución de las especies. Ambos están basados en el mismo patrón: la mezcla de esquemas específicos que al ser evaluados resultan en mejores nuevas ge-neraciones, ya sea mediante la adaptación del indi-viduo en la población (para el caso de las especies) o por medio de la evaluación numérica (para el caso de los algoritmos genéticos). En este ensayo se ex-perimenta con el tamaño de la población y el por-centaje o percentil a tomar de los individuos mejor

Page 3: Evolución de las poblaciones

Volumen 6, número 2 enero–julio 2012, issn 1870–8196 3

adaptados a fin de observar cuáles casos conducen a soluciones con un menor error promedio.

Materiales y métodos

En general, el proceso de los algoritmos genéticos consta de cinco fases:

Codificación. Se genera la población de indivi-duos de manera aleatoria y se asegura de que sin importar el valor que cada individuo posee, la re-presentación simbólica usada (típicamente, pero no necesariamente, una secuencia de unos y ceros) no conduzca a valores o individuos inadmisibles.

Mutación. De acuerdo con los parámetros de la mutación, se procede a modificar los bits o segmen-tos de código para aquellos individuos selecciona-dos.

Evaluación. Se emplea una regla o función dada para evaluar qué tan apto es un individuo según sus características (genoma).

Reproducción. Se procede a reproducir (cruzar) los individuos de la generación anterior para crear una nueva generación. Aquí es posible dejar algu-nos individuos de la generación previa o sustituirlos a todos por nuevos individuos. La cruza se hace al seleccionar dos individuos (de los más aptos, ele-gidos a través de una evaluación) y generar uno o dos individuos. La figura 1 muestra el cruce de dos individuos (un «macho» y una «hembra») para crear un nuevo individuo. Los dos individuos «padres» podrían generar dos individuos en lugar de uno si también se toma la parte derecha del «macho» y la parte izquierda de la «hembra». La forma de generar a los «padres» puede ser probabilística acorde con su evaluación o se puede escoger al mejor percentil de la población. Aún así, es más sencillo escoger a la mejor mitad de la población al mejor percentil.

Decodificación. Los datos contenidos en el geno-ma se transforman en una solución viable según los datos que contenga la población.

Figura 1Cruza entre dos individuos

(un «maCho» y una «hembra»)

Macho

1 0 1 1 0 1 0 0

1 0 0 0

Hembra

Existe una iteración entre los pasos cuatro y dos hasta que un cierto porcentaje de la población (g) haya llegado a la misma solución. También se obser-va que al ser w la tasa de mutación por individuo, la ecuación (1) debe satisfacerse. Esto se debe a que suponiendo que se haya logrado que el 100 por cien-to (1) de los individuos tenga la misma solución, la tasa de mutación (w) hará que w*100 por ciento de los individuos muten, y en consecuencia, ya no tengan esa solución. Es decir, de la ecuación (1) se deriva la ecuación (2). La tasa generacional (g) debe típicamente ser substancialmente menor que 1–w acorde a la ecuación (2). A menor valor de g, llegará más rápido el algoritmo a una solución (aunque no sea la correcta). A la vez, a mayor valor de w, mayor será la variación aleatoria (mutación) de la pobla-ción, lo que producirá más ruido; dicha situación se ilustra en la figura 2.

Figura 2evaluaCión de la poblaCión a lo largo

de varias generaCiones

Población

Generaciones

1

g

1–w

El algoritmo terminaría

Page 4: Evolución de las poblaciones

CIENTIFICAInvestigación

4

También es posible dejar que el algoritmo genético itere de modo indefinido y elegir la mejor solución obtenida hasta el momento cada vez que sea reque-rido por el usuario.

g + w < 1 (1)g << 1–w (2)

No obstante, la mutación se da en el paso dos y es posible que después de la cruza ya haya g*100 por ciento individuos con la misma solución, por lo que no se procedería a mutar. Pese a lo anterior, la ec-uación (1) es una regla que debe considerarse en la asignación de valores a los parámetros del algoritmo genético. Algunas de las ventajas de los algoritmos genéticos, de acuerdo con Haupt y Haupt (2004) son: a) Se logra el perfeccionamiento con variables continuas o discretas. b) No requieren información derivada. c) Buscan simultáneamente en un amplio rango de la superficie de costo. d) Tratan con un gran número de variables. e) Están bien equipados para lidiar con computadoras paralelas. f) Opti-mizan variables con superficies de costo bastante complejas (pueden saltarse de un mínimo local). g) Proveen una lista de variables óptimas, no sólo una solución. h) Pueden codificar las variables de forma tal que la optimización es hecha con las vari-ables codificadas. i) Trabajan con datos generados por medio de números, datos experimentales o fun-ciones analíticas.

Los algoritmos genéticos producen resultados sorprendentes cuando las técnicas de optimización tradicionales, tales como la programación lineal, fa-llan. Algunas veces, en la evaluación de una función analítica, el cálculo de los algoritmos genéticos pue-de ser mejor. El hecho de que una amplia población de soluciones sea requerida significa que los méto-dos tradicionales pueden encontrar la solución más rápidamente. Si computadoras en paralelo se hallan disponibles, los algoritmos genéticos pueden tomar ventaja porque cada procesador puede calcular el ajuste de un grupo de individuos. Los algoritmos genéticos son idealmente diseñados para la compu-tación paralela.

Con el propósito de establecer si la cruza de un mayor percentil de la población, a medida que el

tamaño de la población aumenta, es una mejor es-trategia de cruza y conduce a un menor error en la solución, se da la ecuación cúbica descrita en la ecuación (3).

y=4x3–8x2+3x–2=0 (3)

Esta ecuación tiene dos soluciones imaginarias (que no nos conciernen) y una solución real, la cual se muestra en la ecuación (4).

( )( )

733751929.132

+4173+64

67

+4173+6461

x31

31

≈=

(4)

Con los algoritmos genéticos se busca la solución real. Para evaluar en una cadena de ocho bits, donde el primer bit indica el signo del número en cuestión, se convierte el número ocho en un número real y se divide entre 64, de tal suerte que el máximo número posible es (27–1)/64 = 127/64 = 1.984375. Por definición el número 10000000 = –128/64 = –2 dado que 00000000 = 0/64 = 0 y que 01111111 = 127/64 = 1.984375, puesto que el número 11111111 = –127/64 = –1.984375. La solución buscada es un número que se encuentra entre –2 y 1.984375.

En cada corrida del algoritmo, se itera entre los pasos cuatro y dos hasta que el g*100 por ciento de la población ha alcanzado la misma solución. Para efectos de validez estadística, se usa un número r de corridas, de acuerdo con la fórmula de la desviación estándar (s) mostrada en la ecuación (5) y tomada de un libro de Kvanli et al. (1989).

2

2/

E

Zr = (5)

Za/2 es el valor de la distribución normal para un

intervalo de confianza dado (a). En este caso, Za/2 es

igual a 1.96, lo cual implica una confianza del 95 por ciento. El valor para s es la desviación estándar de la población, que está típicamente aproximado por la desviación estándar de la muestra. Dado que no se tiene tal valor, es posible aproximarlo por medio de la ecuación (6).

4LH −

≈σ (6)

Page 5: Evolución de las poblaciones

Volumen 6, número 2 enero–julio 2012, issn 1870–8196 5

La razón de la fórmula de la ecuación (6) es que se conoce como regla empírica que el 95.4 por ciento de la población estará entre m–2s y m+2s. Sea L = m–2s el valor mínimo esperado en la muestra y H = m+2s el valor máximo esperado, se tiene que H–L = 4s. Dado que el estadístico señala el número de cor-ridas requeridas, el máximo valor para tal estadís-tico sería r (H = r), mientras que el mínimo sería cero (L = 0). Al sustituir H y L en la ecuación (6) da la ecuación (7).

4r

≈σ (7)

Con la sustitución de s de la ecuación (7) en la ec-uación (5), resulta la ecuación (8).

2

2/

E4

rZr

= α (8)

Cuando se resuelve r de la ecuación (8) da la ec-uación (9).

2

2/ZE4

r

=

α (9)

El único parámetro que no se considera por ahora es E, el cual denota el error absoluto. Se le asigna al considerarlo un valor de 7. Con la ecuación (9) se obtiene el tamaño de la muestra (200), como se apunta en la ecuación (10).

( )( )20008.204

96.174

r2

≈=⎟⎠

⎞⎜⎝

⎛= (10)

Así pues, el proceso de iteración de los algoritmos genéticos se debe aplicar 200 veces, lo que generará cada vez una nueva población. Se emplea una tasa de mutación (w) por individuo del 5 por ciento (es decir, la probabilidad de que un individuo mute es del 5 por ciento) y una probabilidad de 25 por ciento de que alguno de los bits de un individuo seleccionado mute. La selección de la tasa de mu-tación obedece a varias pruebas y errores. La tasa generacional (g) es del 50 por ciento a fin de que el algoritmo no se tarde demasiado en converger a una solución.

La reproducción, es decir, la creación de un nue-vo individuo a partir de dos individuos antecesores, obedece a la evaluación que se hace del individuo

(cada individuo indica un cierto valor de x) con base en la ecuación (3), en la que entre más cercano a cero se halle, mejor evaluado (apto) estará el indi-viduo. Se toma un x*100 por ciento percentil supe-rior de la población escogido de manera aleatoria para la cruza, donde x puede ser 5, 10, 15 y 20 por ciento. La cruza se hace al tomar y juntar los prime-ros cuatro bits del primer individuo y los últimos cuatro bits del segundo individuo.

Cabe destacar que la población abarcada en el estudio fue de 5, 10, 20, 30, 40, 50, 60, 70 y 80 indivi-duos. Asimismo es de suma relevancia aclarar que no importa la velocidad de la máquina utilizada, ni la marca o el modelo, puesto que se arroja el resul-tado de una de las 200 corridas una vez que se ha alcanzado el gx100 por ciento (tasa generacional) de la población con la misma solución. Si la máquina tiene un procesador lento, se tardará más tiempo en llegar a satisfacer el requerimiento,1 pero eventual-mente se conseguirá la información requerida. La velocidad del procesador o el tipo de computadora no afecta el resultado a alcanzar.

Con el objeto de experimentar con estos pará-metros se creó un programa diseñado en Delphi 7 (Pascal) debido a la utilidad de la interface gráfica orientada a objetos y a la familiaridad con el lengua-je de programación. El resultado de la iteración del programa en una población de 20 individuos, una tasa de mutación (w) del 5 por ciento, un percentil superior del 10 por ciento, una tasa generacional (g) del 50 por ciento y 200 corridas (r) se muestra en la figura 3.

Resultados y discusión

Se utilizó el programa anterior con una población de 5, 10, 20, 30, 40, 50, 60 70 y 80 individuos para percentiles superiores a tomar de la población de 5 por ciento, 10 por ciento, 15 por ciento y 20 por ciento. El error promedio en la función para todos los casos estudiados se muestra en la tabla «Errores de experimentación».

1 Si tal es el caso y si g no es demasiado alta comparada con 1–w.

Page 6: Evolución de las poblaciones

CIENTIFICAInvestigación

6

errores promedio de la experimentaCión

PercentilPoblación

5 10 20 30 40 50 60 70 80

5 1.9956 1.0454 0.5195 30.7641 50.5331 29.4263 13.1238 13.9347 19.3373

10 1.9956 1.0454 66.1833 22.7513 47.7852 29.1539 16.7338 13.5803 9.9408

15 1.9956 67.2193 66.7153 46.1448 28.1653 17.0820 18.3030 13.6306 8.6360

20 1.9956 67.0268 51.5804 40.4398 25.9799 18.5276 11.7512 10.6144 8.5086

La tabla anterior se grafica en la figura 4.

Figura 3interFaCe de usuario del programa de experimentaCión

Page 7: Evolución de las poblaciones

Volumen 6, número 2 enero–julio 2012, issn 1870–8196 7

Analizar los resultados de la figura 4 no es tan sen-cillo. Cada línea es un percentil dado. El eje de las x representa el tamaño de la población, en tanto que el eje de las y indica el error promedio obteni-do, que se obtiene de la tabla. Sobresale que para una población de cinco individuos, todos los erro-res en los cuatro percentiles son iguales porque el algoritmo sólo itera una vez. En el caso de una población de diez individuos, el resultado para los percentiles 5 y 10 por ciento son casi iguales y todavía más pequeños, pero para los percentiles 15 y 20 por ciento, el error aumenta en modo con-siderable.

A partir de ese valor, para el máximo percentil (20 por ciento), es decir, para el máximo cruce per-mitido de la población, el error promedio se reduce regularmente a medida que aumenta el tamaño de la población, lo cual apoya nuestra hipótesis de que a mayores porcentajes en la cruza de la población a la par del crecimiento del tamaño de la población, se reduce el error promedio. Los demás percentiles siguen un comportamiento más o menos similar al caso del percentil del 20 por ciento, aunque hay va-riaciones debidas a la aleatoriedad del proceso. El mejor individuo que se obtuvo, para una población de 80 individuos y un percentil de cruza del 20 por ciento fue de 01101111, lo que equivale a un valor de

x de 1.734375 y un valor de y de 0.0070648193359375, con un error cuadrado (y2) de 0.000049911.

Conclusiones

Se puede concluir que la hipótesis establecida en un principio —de que un mayor porcentaje de cruza (percentil de cruza) de la población, a medida que la población va aumentando, conduce a mejores resul-tados, específicamente, a menores errores promedio en la solución— varía, pues el resultado está sujeto a que la población y el percentil sean lo suficiente-mente grandes para permitir tal comportamiento.

Por otro lado, ciertas poblaciones de individuos y percentiles más grandes hacen más lento el al-goritmo y pueden llegar a convertir el proceso en inviable gracias a su lentitud. Sin embargo, la afir-mación se mantiene: a mayor sea el grado de cruce de los individuos en poblaciones grandes, mejores resultados se obtendrán, a pesar de la mayor lenti-tud del proceso. Desde luego, si se desea generalizar los resultados obtenidos numéricamente mediante la aplicación de algoritmos genéticos a poblaciones de seres vivos, el tamaño de la población ya no cons-tituye una limitante puesto que las cruzas se dan de manera natural, pero controlar qué individuos

Figura 4gráFiCa de poblaCión versus errores promedio de la experimentaCión

para diFerentes perCentiles superiores

0

10

20

30

40

50

60

70

80

0 10 20 30 40 50 60 70 80 90

POBLACIÓN

ER

RO

R P

RO

ME

DIO

5 10 15 20

Page 8: Evolución de las poblaciones

CIENTIFICAInvestigación

8

se cruzan es más difícil. Además, la evolución de la población se iría dando a lo largo de millones de años, lo que haría imposible la observación de su comportamiento. Esa es precisamente la razón por la cual la analogía entre la evolución de las poblacio-nes de seres vivos y la evolución de las poblaciones en algoritmos genéticos es tan útil.

bibliograFÍa

Davis, L. 1989. «Adapting operator probabilities in genetic algorithms», in Proceedings of the 3rd Inter-national Conference on Genetic Algorithms, Morgan Kaufmann, pp. 61–69.

Friedberg, R.M. 1958. «A learning machine: Part I», in IBM Journal, 2, pp. 2–13.

Goldberg, D.E. et al. 1991. «Do not worry, be mes-sy», in Proceedings of the 4th International Conference on Genetic Algorithms, Morgan Kaufmann, pp. 24–30.

Haupt Randy, L. and Sue Ellen Haupt. 2004. Prac-tical genetic algorithms, Hoboken, NJ. John Wiley & Sons, Inc.

Holland, J.H. 1975. Adaptation in natural and artifi-cial systems, University of Michigan Press.

Julstrom, B.A. 1995. «What have you done for me la-tely? Adapting operator probabilities in a steady–state genetic algorithm», in Proceedings of the Sixth International Conference on Genetic Algorithms, Morgan Kaufmann, pp. 81–87.

Koza, J.R. 1992. Genetic programming: on the program-ming of computers by means of natural selection, Cambridge, Massachusetts. MIT Press.

Kvanli, Alan H. et al. 1989. Introduction to business statistics, West Publishing Company.

Schaefer, C.G. 1987. «The argot strategy: adaptive representation genetic optimizer technique», in Proceedings of the 2nd International Conference on Ge-netic Algorithms, Lawrence Erlbaum Associates, pp. 50–55.

Schraudolph, N. and R. Belew. 1992. «Dynamic pa-rameter encoding for genetic algorithms», in Ma-chine Learning, 9(1), pp. 9–21.

Shaffer, J.D. and A. Morishima. 1987. «An adapti-ve crossover distribution mechanism for genetic

algorithms», in Proceedings of the 2nd International Conference on Genetic Algorithms, Lawrence Erl-baum Associates, pp. 36–40.

Spears, W.M. 1995. «Adaptive crossover in evolutio-nary algorithms», en J.R. McDonnell, R.G. Rey-nolds and D.B. Fogel (editors), Proceedings of the Fourth Annual Conference on Evolutionary Program-ming, Cambridge, Massachusetts. MIT Press, pp. 367–384.

Srinivas, M. and L.M. Patnaik. 1994. «Adaptive pro-babilities of crossover and mutation in genetic algorithms», in IEEE Transactions on Systems, Man, and Cybernetics, 24(4), pp. 17–26.

Tuson, A. and P. Ross. 1996. «Cost based operator rate adaptation: an investigation», in H.M. Voigt, W. Ebeling, I. Rechenberg and H.P. Schwefel (editors), Proceedings of the 4th Conference on Parallel Problem Solving from Nature, No. 1141, in Lecture Notes in Computer Science, Springer, Berlín, pp. 461–469.