You are on page 1of 7

Algoritmos genticos: aplicacin en MATLAB e o

Mat Ison, Jacobo Sitt, Marcos Trevisan as Gu de la materia Sistemas Complejos a disponible en www.df.uba.ar/users/mison/genetico.tar.gz November 25, 2005

Abstract Esta gu contiene una introduccin a los elementos bsicos de los algoritmos genticos y su adaptacin a o a e o a un problema simple de minimizacin de funciones de dos variables usando cdigo en matlab. Se o o describe el cdigo con un instructivo bsico de su sintaxis y funcionamiento. Se propone una serie o a de prcticas numricas ejecutando variaciones del algoritmo. En la ultima seccin se describe una a e o aplicacin de los algoritmos genticos al ajuste de parmetros en el modelado de la voz humana, junto o e a con algunas nociones de paralelizacin. o

Algoritmos genticos e

Los algoritmos genticos corresponden a la clase de mtodos estocsticos de bsqueda. Mientras la e e a u mayor de estos mtodos operan sobre una unica solucin, estos algoritmos operan en una poblacin de a e o o soluciones. La idea bsica, inspirada en los procesos evolutivos en biolog es que el contenido gentico a a, e de una poblacin contiene potencialmente la solucin, o una solucin mejor, a un dado problema de o o o adaptacin. Esta solucin puede estar inactiva porque la combinacin gentica adecuada est disemo o o e a inada entre varios sujetos. Slo la asociacin de genomas distintos puede llevar a la activacin de la o o o solucin. o Crudamente, el mecanismo evolutivo procede as sobre una poblacin, algunos individuos son selec: o cionados para la reproduccin, con ms oportunidades para los mejor adaptados al ambiente. Durante o a la reproduccin, los nuevos individuos de la poblacin resultan de modicaciones e intercambio gentico o o e de los padres. Una vez que se renueva la poblacin, el proceso recomienza. Es decir que hay dos espacios o donde opera la evolucin. Por una parte, a nivel de los individuos f o sicos (fenotipo), que deben adaptarse para ser seleccionados. Y luego, a nivel de la informacin gentica (genotipo), a travs de los operadores o e e que intercambian y var la informacin gentica. an o e La informacin gentica est codicada en los cromosomas, que son secuencias de genes, cada uno de los o e a cuales codica una caracter stica particular del individuo. Estas secuencias estn escritas en trminos a e de cuatro bases nitrogenadas: adenocina, timina, citocina y guanina. En este alfabeto de base cuatro, [A, T, C, G], est escrita toda la informacin gentica de un individuo. a o e Hay esencialmente dos operadores genticos. El operador de mutacin introduce cierta aleatoriedad en e o la bsqueda simplemente cambiando unos genes por otros, contribuyendo a una exploracin azarosa u o en el espacio gentico. El operador de crossover, en cambio, es una recombinacin de la informacin e o o durante la reproduccin de los individuos seleccionados. o El proceso de evolucin, puesto en estos trminos, es adaptable a una enorme familia de problemas, o e incluso ajenos al mbito biolgico. En la prxima seccin se describe la adaptacin de este esquema de a o o o o bsqueda de soluciones a un problema matemtico sencillo. u a

Adaptacin a un problema de optimizacin de funciones o o

En esta seccin ilustraremos la adaptacin de un algoritmo gentico a un problema sencillo de minio o e mizacin de funciones bidimensionales f (x, y). La interpretacin f o o sica del problema es, en este caso, casi trivial: haciendo corresponder la funcin f a la energ E asociada al estado (x, y), la evolucin o a o del sistema tender a minimizarla. A lo largo de esta gu nos referiremos ms o menos indistintamente, a a a a la funcin o al paisaje energtico. o e

12 10

9 8 7

8 6

6 5 4

4 2

3 2 1

0 2 1 0 0 1 2 2 1 1 2

0 2 1 0 0 1 2 2 1 1 2

Figura 1: ejemplo de paisaje energtico complejo (izquierda) y simple (derecha). e En trminos crudos, la meta de la exploracin gentica es encontrar los individuos mejor adaptados a su e o e ambiente. Para eso, los individuos se reproducen buscando, con el intercambio de material gentico y las e mutaciones, que cada nueva generacin mejore la adaptacin. Para poder aplicar este esquema al probo o lema de la minimizacin de funciones, debemos dar las deniciones de individuos, genes, cromosomas y o ambiente, y cuanticar la adaptacin. o Si pensamos a cada individuo de la poblacin como un par (x, y) [a, b] [c, d], se puede denir la o adaptacin como un escalar inversamente proporcional a la funcin f , de manera que la minimizacin o o o de f (x, y) corresponder a la mejor adaptacin al medio denido por la funcin f . a o o En este punto, slo queda denir la codicacin gentica del individuo (x, y) para aplicar los operadores o o e genticos. Denimos un cromosoma como el arreglo consecutivo de dos genes, uno para cada nmero e u del par (x, y). Este arreglo se construye normalizando cada coordenada segn el rango donde puede u variar y guardando los primeros n decimales. Por ejemplo, para el par (0.5, 1.34) {[0, 1] [0, 2.35]}, la normalizacin arroja el par (0.5/1, 1.34/2.35) = (0.5, 0.57021276...). La identicacin del individuo o o con su cromosoma resulta, usando cuatro cifras signicativas (0.5, 1.34) [50005702]. En este espacio gentico se pueden aplicar los operadores de cruzamiento y mutacin, que en la e o evolucin suceden en el espacio de las bases nitrogenadas y, aqu en la base decimal. Una mutacin o , o ser el reemplazo de cualquiera de los 8 nmeros del cromosoma por otro, por ejemplo, [23126675] a u [23026675]. El cruzamiento consiste en el intercambio, a partir de cualquier posicin, de la informacin o o de los cromosomas de los individuos seleccionados. Por ejemplo, [12345678]+[87654321] [12354321]. Con estas deniciones, el algoritmo gentico est adaptado al problema y su ejecucin consiste en elegir e a o una poblacin inicial de N individuos (xi , yi ), seleccionarlos segn su adaptacin usando la funcin o u o o f (xi , yi ) y aplicarles los operadores genticos para generar la nueva poblacin. En las siguientes secciones e o se describe el cdigo implementado para resolver este problema en matlab. o

Instructivo

Se propone realizar un estudio numrico del cdigo que implementa un algoritmo gentico en la minie o e mizacin de un paisaje energtico complejo. Para ello se sugieren los siguientes pasos: o e

Baje el archivo desde su ubicacin en internet: http://www.df.uba.ar/users/mison/genetico.tar.gz o Descomprima el archivo genetico.tar.gz ($tar xvzf genetico.tar.gz) Edite el programa principal genetico.m (por ejemplo escriba: $xemacs &) Identique las distintas partes del cdigo y sus funciones (puede ayudarle ver la seccin siguiente) o o Inicie el software matlab desde una terminal ($matlab ) Explore numricamente el cdigo variando los parmetros relevantes del mismo e o a

3.1
3.1.1

Descripcin del cdigo en Matlab o o


Parmetros a genes = 2 = posicin x, posicin y o o largo = 4 = longitud del gen. Ngen = cantidad de ciclos (generaciones) en el algoritmo. Nind = cantidad de individuos en la poblacin. o cross = tasa de cruzamiento. mut = tasa de mutacin. o rango := [xmin ymin], [xmax ymax] = Rango de distribucin de la poblacin inicial. o o

3.1.2

Organizacin: o

El cdigo a utilizar se encuentra dividido en un cdigo principal (genetico.m) que hace uso de subrutinas o o o funciones denidas en archivos externos. cdigo principal genetico.m o 1. se introducen los parmetros del algoritmo a 2. llamado a fun.m (dene el paisaje de energ a estudiar) a 3. se elige la poblacin inicial de manera aleatoria en ran.m o 4. comienza ciclo principal: Para iter desde 1 hasta Ngen hacer se calcula la funcin de tness o llamado a subrutina fentogen.m (toma fenotipo y devuelve genotipo) llamado a subrutina pareja.m: elige los dos individuos, efectua la mutacin y el cruzao miento de manera estocstica a llamado a subrutina gentofen.m (toma genotipo y devuelve fenotipo) se graca la poblacin de la generacin iter o o 5. se reproduce la evolucin completa de la poblacin o o 6. se graca la evolucin de la funcin de tness o o

3.2

Preguntas

Para tener en cuenta: Un estudio cuantitativo del problema numrico requiere el anlisis de un conjunto e a de evoluciones y no de un evento particular como el que se obtiene directamente del cdigo. Sin o embargo creemos que de todas formas es posible realizar un anlisis interesante. Por esto se proponen a las siguientes preguntas:

En el cdigo, el criterio de seleccin de los cromosomas tiene una probabilidad p f (x, y) 1 . o o Interprete en trminos del algoritmo gentico y del problema particular. e e Qu tiene que garantizarse para que, as denida, la probabilidad no genere errores numricos? e e Proponga otras funciones de adaptacin. o Cmo construir un algoritmo para seleccionar uno (o ms) individuos con probabilidad p teo a a niendo en cuenta su adaptacin? o Considere disponible una funcin numrica rand(a,b) que le permite elegir nmeros al azar en o e u el intervalo (a, b). Verique si su idea coincide con la seccin comentada como ruleta en el cdigo. o o Para una cantidad suciente de generaciones Ngen Qu operador gentico subsiste? Qu come e e portamiento observa? Proponga otros criterios para mejorar la bsqueda. u En este trabajo, el cdigo se ejecuta una cantidad Ngen de veces prejada por el usuario. Es o posible adaptar el cdigo para que cumpla con algn criterio de convergencia antes de detenerse? o u Proponga alguno e incorprelo al cdigo. o o Suponga que se seleccionan (xp , yp ) y (xm , ym ) como el padre y la madre de un nuevo individuo (xh , yh ). Se puede predecir, por argumentos geomtricos, el subespacio de los posibles (x h , yh ) debidos e a la accin del operador gentico de cruzamiento? Podr simplicarse el cdigo con esta intero e a o pretacin? o

4
4.1

Adaptacin al problema de la produccin de voz o o


F sica de la voz - Teor de Fuente Filtro a

El contenido espectral de los sonidos voceados es relativamente simple, mostrando una serie de picos en ciertos armnicos de la frecuencia fundamental. La teor clsica que permite describir este como a a portamiento es conocida como fuente-ltro, y puede resumirse as el ujo de aire desde los pulmones : a travs de la glotis genera oscilaciones de las cuerdas vocales. La perturbacin en la presin causada e o o por esta oscilacin viaja de ida y vuelta por el trato vocal y es ltrada, generando un sonido denido. o Aunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometr del tracto a puede ser modicada con los articuladores principales: la lengua y la mand bula. En esencia, el ltrado representa el nfasis o la supresin de ciertos armnicos de la frecuencia fundamene o o tal de oscilacin de las cuerdas vocales. Las frecuencias enfatizadas son conocidas como las formantes, o y en el caso de las vocales, es el cociente entre las dos primeras lo que determina la identidad de cada vocal. En el resto del espectro se codica la informacin de la identidad del hablante. o El estudio de los sonidos voceados puede separarse en dos partes: la dinmica de las cuerdas vocales y a el ltrado de una sel sonora a travs de una compleja geometr Ms aun, la dinmica puede resultar a e a. a a extremadamente rica si se agregan los efectos de acople entre la fuente de sonido (las cuerdas vocales) y el ltro.

4.2

Cuerdas vocales: Modelo m nimo

Existen escencialmente dos modelos [1] para estudiar la dinmica de las cuerdas vocales. Ambos estn a a basados en el mismo principio: las oscilaciones del tejido se inducen por el ujo de aire que pasa a travs e de ellas. El modelo ms simple que da cuenta de este mecanismo es conocido como el modelo de una masa [1]. a Cada cuerda vocal se asume como una masa sujeta al tejido principal, caracterizada por un coeciente de elasticidad y de disipacin, y sometida a la presin intraglotal. Para generar el comportamiento o o oscilatorio, es necesario que la presin durante la apertura de las cuerdas no se compense en el semiciclo o de cierre, para que en un ciclo completo pueda entregarse energ a las cuerdas oscilantes. Este moda elo constituye una buena aproximacin mientras que el aire en el tracto tenga propiedades inerciales. o

Cuando las cuerdas se estn separando, el ujo aumenta y la columna de aire en el tracto se acelera, lo a cual tiende a abrir ms aun las cuerdas. En el semiciclo de cierre, por otra parte, la columna de aire en a movimiento tiende a cerrar las cuerdas, y en el ciclo completo se entrega energ al tejido. a Las ecuaciones de movimiento para este modelo de cuerdas vocales pueden ser escritas como M x + Bx + Kx = Pg (1)

donde M , B y K representan la masa, la constante de disipacin y la constante de restitucin, por o o unidad de area, de las cuerdas vocales, y Pg la presin glotal. o Si las reas de entrada y salida al tracto vocal son iguales, como corresponde al modelo de una masa, a tenemos Pi = Pg , con Pi la presin a la entrada del tracto vocal. o Siempre que la frecuencia fundamental de oscilacin de las cuerdas vocales sea menor que la primera o resonancia del tracto (primera formante), su impedancia de entrada es inercial [6], de manera que Pi = R2 U + I 2 U (2)

con R2 e I2 la resistencia y la constante de inercia del aire en el tracto, y U el ujo. El sistema dinmico a queda cerrado, entonces, relacionando las ecuaciones 1 y 2 mediante PL (R2 U + I2 U ) = kt v 2 (3)

donde kt es un factor de correccin fenomenolgico a la ecuacin de Bernoulli. De la integracin de las o o o o ecs. 1, 2 y 3 se obtiene la serie temporal del ujo de aire a travs de las cuerdas vocales. e

4.3

Tracto Vocal

Segn la teor fuente-ltro, las cuerdas vocales estn desacopladas acsticamente del tracto vocal, de u a a u manera que la seal de voz se genera a travs del ltrado de la serie temporal de la presin P i a la n e o entrada del tracto. El modelo ms simple consiste en aproximar el tracto por una serie de n tubos de distinta seccin a i y a o longitud li para simular las distintas geometr as. En cada interfaz, la onda de presin es parcialmente o reejada y transmitida, de manera que a la salida del ultimo tubo se tiene la seal de la voz. n

4.4

Biometr a

Una vez construido el modelo completo para generar series temporales sintticas de voz, naturale mente surge ponerlo a prueba como un mtodo biomtrico para reconocer la identidad de las pere e sonas, aprovechando que sus parmetros estn relacionados con magnitudes anatmicas y siolgicas a a o o del sistema de produccin de la voz. o Sin embargo, dado que el espacio de parmetros es multidimensional, la eleccin del mtodo de ajuste es a o e delicada. La preferencia por un algoritmo gentico se ve justicada por dos razones: es de programacin e o simple y es fcilmente adaptable a la paralelizacin. a o El problema de la voz es fcilmente adaptable para ser resuelto por un algoritmo gentico. En primer a e lugar, denimos un individuo como la cadena de nmeros que corresponde a los parmetros del modelo. u a As la cadena {M, K, B, R2 , I2 , a1 , ..., an , l1 , ..., ln } es un individuo. M ,K B, R2 e I2 son los parmetros , a de las cuerdas vocales (ecuaciones 1 y 2); ai y li la seccin y longitud del i-simo tubo que aproxima o e al tracto vocal. La expresin de este cromosoma (su fenotipo) es el espectro de potencias que genera. o El criterio de seleccin elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente o proporcional a la diferencia cuadrtica entre los espectros de la seal experimental y la sintetizada por a n el modelo. En la gura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontr la o mejor solucin. o Los resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximacin por o tubos del tracto vocal no son concluyentes. Por una parte, las geometr a las que converge el tracto as vocal corresponden a las de las vocales utilizadas citadas por la bibliograf [3]. Sin embargo, el modelo a

de una masa parece demasiado simple para dar cuenta de la dinmica de las cuerdas vocales, lo que a resulta en una dispersin en los parmetros del modelo que no permiten una distincin un o a o voca de la identidad.
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 10 20 30 40 50 60 70

Figura 2: Espectro experimental de una vocal [o] (barras verticales) y de las mejores series sintticas (l e neas)
generadas por el modelo usando un algoritmo gentico de 500 generaciones y 150 cromosomas, tasa de mutacin e o de 8% y crossover de 40%. La frecuencia est en unidades de 102 Hz y la potencia est normalizada. a a

4.5

Paralelizacin del algoritmo gentico o e

Una posible implementacin en paralelo del algoritmo consiste en denir un nodo principal donde se o separa la poblacin inicial de cromosomas en sub-dominios a ser procesados en paralelo por el resto de o los nodos (esclavos). Cada uno de los nodos esclavos encuentra la adaptacin de cada subpoblacin, o o y esta informacin es devuelta al nodo principal, que aplica los operadores genticos a la poblacin o e o completa, generando una nueva poblacin que repetir el proceso. o a El algoritmo en paralelo opera segn la siguiente secuencia: u Nodo principal 1. calcula espectro de la serie experimental 2. env espectro a nodos esclavos a 3. crea poblacin inicial de cromosomas o 4. divide en dominios locales Nodos esclavos 1. recibe espectro experimental del nodo principal loop generaciones Nodo principal 1. env cromosomas locales a nodos esclavos a 2. recibe diferencias cuadrticas de esclavos a 3. operadores genticos: seleccin, cross-over, mutacin e o o Nodos esclavos 1. 2. 3. 4. 5. recibe cromosomas locales del nodo principal calcula espectros sintticos desde cromosomas locales e compara espectros sintticos y experimental e calcula diferencias cuadrticas a env diferencias cuadrticas al nodo principal a a

n loop generaciones

4.6

Performance del cdigo en paralelo o

En la gura 3 se graca el tiempo de procesamiento contra la cantidad de procesadores utilizados (las simulaciones se ejecutaron usando hasta 30 procesadores en el cluster del CeSEN).
700 600

500 tiempo de ejecucion (s)

400

300

200

100

0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 numero de procesadores

Figura 3: Tiempo de ejecucin vs. cantidad de procesadores para el algoritmo gentico usando 500 generaciones, o e 150 cromosomas, tasa de crossing del 40% y tasa de mutaciones de 8%. Los valores usados resultan del promedio de 2 o 3 corridas. A partir de n = 10 procesadores, la dispersin en los valores es despreciable. A la derecha, o detalle y ajuste con T (n) = 8.77 + 686.54/n + 0.05n, n es el nmero de nodos slaves. u A primer orden, se espera que el tiempo de procesamiento Tp en funcin del nmero de procesadores n o u se comporte aproximadamente como Tp (n) 1/n, mientras que el tiempo de comunicacin Tc (n) n. o Ajustando los valores de la gura 3 para T (n) de la forma master slaves (4) T (n) = Tp (n) + Tc (n) = Tp + Tp (n) + Tc (n) = + + n n slaves (1) el tiempo de procesamiento de 1 nodo slave. Se asume con n el nmero de nodos slaves y = Tp u adems que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores a obtenidos implican una correccin lineal muy pequea frente a . o n Para estudiar el factor lineal se usaron logles (informacin de los tiempos de procesamiento de o cada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la sl dispersin de los tiempos de procesamiento Tp de los nodos slaves, es que o
sl Tp (10) (5) 2 es decir que al usar ms procesadores la dispersin de los tiempos de procesamiento aumenta. La a o diferencia, acumulada a lo largo de la ejecucin del cdigo, es del orden de 10 , que es la correccin o o o prevista por la ecuacin 4. Esto sugiere que la mayor parte del tiempo de comunicacin es el tiempo de o o espera que proviene de la dispersin en los tiempos de procesamiento de las distintas computadoras o del cluster. sl Tp (20) >

Referencias
[1] I. R. Titze, Principles of Voice Production (Prentice-Hall, Englewood Clis, NJ, 1993). [2] D. E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Addison Wesley, 1989. [3] Rabiner, L., Juang, B. (1993) in Fundamentals of speech recognition (Prentice Hall) pp. 24-256. [4] Press, H. W. et al., Numerical Recipies in C: The art of scientic computing, Cambridge University, 1999. [5] N. MacDonald et al., Writing Message-Passing Parallel Programs with MPI, Course Notes, Edinburgh Parallel Computing Centre, University of Edinburgh. [6] Rothemberg, Vocal Fold Physiology, University of Tokyo Press, Tokyo, 1981, pp. 304-323.

You might also like