Está en la página 1de 7

Algoritmos gen eticos: aplicaci on en MATLAB

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

Abstract Esta gu a contiene una introducci on a los elementos b asicos de los algoritmos gen eticos y su adaptaci on a un problema simple de minimizaci on de funciones de dos variables usando c odigo en matlab. Se describe el c odigo con un instructivo b asico de su sintaxis y funcionamiento. Se propone una serie de pr acticas num ericas ejecutando variaciones del algoritmo. En la u ltima secci on se describe una aplicaci on de los algoritmos gen eticos al ajuste de par ametros en el modelado de la voz humana, junto con algunas nociones de paralelizaci on.

Algoritmos gen eticos

Los algoritmos gen eticos corresponden a la clase de m etodos estoc asticos de b usqueda. Mientras la mayor a de estos m etodos operan sobre una u nica soluci on, estos algoritmos operan en una poblaci on de soluciones. La idea b asica, inspirada en los procesos evolutivos en biolog a, es que el contenido gen etico de una poblaci on contiene potencialmente la soluci on, o una soluci on mejor, a un dado problema de adaptaci on. Esta soluci on puede estar inactiva porque la combinaci on gen etica adecuada est a diseminada entre varios sujetos. S olo la asociaci on de genomas distintos puede llevar a la activaci on de la soluci on. Crudamente, el mecanismo evolutivo procede as : sobre una poblaci on, algunos individuos son seleccionados para la reproducci on, con m as oportunidades para los mejor adaptados al ambiente. Durante la reproducci on, los nuevos individuos de la poblaci on resultan de modicaciones e intercambio gen etico de los padres. Una vez que se renueva la poblaci on, el proceso recomienza. Es decir que hay dos espacios donde opera la evoluci on. Por una parte, a nivel de los individuos f sicos (fenotipo), que deben adaptarse para ser seleccionados. Y luego, a nivel de la informaci on gen etica (genotipo), a trav es de los operadores que intercambian y var an la informaci on gen etica. La informaci on gen etica est a codicada en los cromosomas, que son secuencias de genes, cada uno de los cuales codica una caracter stica particular del individuo. Estas secuencias est an escritas en t erminos de cuatro bases nitrogenadas: adenocina, timina, citocina y guanina. En este alfabeto de base cuatro, [A, T, C, G], est a escrita toda la informaci on gen etica de un individuo. Hay esencialmente dos operadores gen eticos. El operador de mutaci on introduce cierta aleatoriedad en la b usqueda simplemente cambiando unos genes por otros, contribuyendo a una exploraci on azarosa en el espacio gen etico. El operador de crossover, en cambio, es una recombinaci on de la informaci on durante la reproducci on de los individuos seleccionados. El proceso de evoluci on, puesto en estos t erminos, es adaptable a una enorme familia de problemas, incluso ajenos al ambito biol ogico. En la pr oxima secci on se describe la adaptaci on de este esquema de b usqueda de soluciones a un problema matem atico sencillo.

Adaptaci on a un problema de optimizaci on de funciones

En esta secci on ilustraremos la adaptaci on de un algoritmo gen etico a un problema sencillo de minimizaci on de funciones bidimensionales f (x, y ). La interpretaci on f sica del problema es, en este caso, casi trivial: haciendo corresponder la funci on f a la energ a E asociada al estado (x, y ), la evoluci on del sistema tender a a minimizarla. A lo largo de esta gu a nos referiremos m as o menos indistintamente, a la funci on o al paisaje energ etico.

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 energ etico complejo (izquierda) y simple (derecha). En t erminos crudos, la meta de la exploraci on gen etica es encontrar los individuos mejor adaptados a su ambiente. Para eso, los individuos se reproducen buscando, con el intercambio de material gen etico y las mutaciones, que cada nueva generaci on mejore la adaptaci on. Para poder aplicar este esquema al problema de la minimizaci on de funciones, debemos dar las deniciones de individuos, genes, cromosomas y ambiente, y cuanticar la adaptaci on. Si pensamos a cada individuo de la poblaci on como un par (x, y ) [a, b] [c, d], se puede denir la adaptaci on como un escalar inversamente proporcional a la funci on f , de manera que la minimizaci on de f (x, y ) corresponder a a la mejor adaptaci on al medio denido por la funci on f . En este punto, s olo queda denir la codicaci on gen etica del individuo (x, y ) para aplicar los operadores gen eticos. Denimos un cromosoma como el arreglo consecutivo de dos genes, uno para cada n umero del par (x, y ). Este arreglo se construye normalizando cada coordenada seg un el rango donde puede variar y guardando los primeros n decimales. Por ejemplo, para el par (0.5, 1.34) {[0, 1] [0, 2.35]}, la normalizaci on arroja el par (0.5/1, 1.34/2.35) = (0.5, 0.57021276...). La identicaci on del individuo con su cromosoma resulta, usando cuatro cifras signicativas (0.5, 1.34) [50005702]. En este espacio gen etico se pueden aplicar los operadores de cruzamiento y mutaci on, que en la evoluci on suceden en el espacio de las bases nitrogenadas y, aqu , en la base decimal. Una mutaci on ser a el reemplazo de cualquiera de los 8 n umeros del cromosoma por otro, por ejemplo, [23126675] [23026675]. El cruzamiento consiste en el intercambio, a partir de cualquier posici on, de la informaci on de los cromosomas de los individuos seleccionados. Por ejemplo, [12345678]+[87654321] [12354321]. Con estas deniciones, el algoritmo gen etico est a adaptado al problema y su ejecuci on consiste en elegir una poblaci on inicial de N individuos (xi , yi ), seleccionarlos seg un su adaptaci on usando la funci on f (xi , yi ) y aplicarles los operadores gen eticos para generar la nueva poblaci on. En las siguientes secciones se describe el c odigo implementado para resolver este problema en matlab.

Instructivo

Se propone realizar un estudio num erico del c odigo que implementa un algoritmo gen etico en la minimizaci on de un paisaje energ etico complejo. Para ello se sugieren los siguientes pasos:

Baje el archivo desde su ubicaci on en internet: http://www.df.uba.ar/users/mison/genetico.tar.gz 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 c odigo y sus funciones (puede ayudarle ver la secci on siguiente) Inicie el software matlab desde una terminal ($matlab ) Explore num ericamente el c odigo variando los par ametros relevantes del mismo

3.1
3.1.1

Descripci on del c odigo en Matlab


Par ametros genes = 2 = posici on x, posici on y largo = 4 = longitud del gen. Ngen = cantidad de ciclos (generaciones) en el algoritmo. Nind = cantidad de individuos en la poblaci on. cross = tasa de cruzamiento. mut = tasa de mutaci on. rango := [xmin ymin], [xmax ymax] = Rango de distribuci on de la poblaci on inicial.

3.1.2

Organizaci on:

El c odigo a utilizar se encuentra dividido en un c odigo principal (genetico.m) que hace uso de subrutinas o funciones denidas en archivos externos. c odigo principal genetico.m 1. se introducen los par ametros del algoritmo 2. llamado a fun.m (dene el paisaje de energ a a estudiar) 3. se elige la poblaci on inicial de manera aleatoria en ran.m 4. comienza ciclo principal: Para iter desde 1 hasta Ngen hacer se calcula la funci on de tness llamado a subrutina fentogen.m (toma fenotipo y devuelve genotipo) llamado a subrutina pareja.m: elige los dos individuos, efectua la mutaci on y el cruzamiento de manera estoc astica llamado a subrutina gentofen.m (toma genotipo y devuelve fenotipo) se graca la poblaci on de la generaci on iter 5. se reproduce la evoluci on completa de la poblaci on 6. se graca la evoluci on de la funci on de tness

3.2

Preguntas

Para tener en cuenta: Un estudio cuantitativo del problema num erico requiere el an alisis de un conjunto de evoluciones y no de un evento particular como el que se obtiene directamente del c odigo. Sin embargo creemos que de todas formas es posible realizar un an alisis interesante. Por esto se proponen las siguientes preguntas:

En el c odigo, el criterio de selecci on de los cromosomas tiene una probabilidad p f (x, y ) 1 . Interprete en t erminos del algoritmo gen etico y del problema particular. Qu e tiene que garantizarse para que, as denida, la probabilidad no genere errores num ericos? Proponga otras funciones de adaptaci on. C omo construir a un algoritmo para seleccionar uno (o m as) individuos con probabilidad p teniendo en cuenta su adaptaci on? Considere disponible una funci on num erica rand(a,b) que le permite elegir n umeros al azar en el intervalo (a, b). Verique si su idea coincide con la secci on comentada como ruleta en el c odigo. Para una cantidad suciente de generaciones Ngen Qu e operador gen etico subsiste? Qu e comportamiento observa? Proponga otros criterios para mejorar la b usqueda. En este trabajo, el c odigo se ejecuta una cantidad Ngen de veces prejada por el usuario. Es posible adaptar el c odigo para que cumpla con alg un criterio de convergencia antes de detenerse? Proponga alguno e incorp orelo al c odigo. 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 geom etricos, el subespacio de los posibles (x h , yh ) debidos a la acci on del operador gen etico de cruzamiento? Podr a simplicarse el c odigo con esta interpretaci on?

4
4.1

Adaptaci on al problema de la producci on de voz


F sica de la voz - Teor a de Fuente Filtro

El contenido espectral de los sonidos voceados es relativamente simple, mostrando una serie de picos en ciertos arm onicos de la frecuencia fundamental. La teor a cl asica que permite describir este comportamiento es conocida como fuente-ltro, y puede resumirse as : el ujo de aire desde los pulmones a trav es de la glotis genera oscilaciones de las cuerdas vocales. La perturbaci on en la presi on causada por esta oscilaci on viaja de ida y vuelta por el trato vocal y es ltrada, generando un sonido denido. Aunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometr a del tracto puede ser modicada con los articuladores principales: la lengua y la mand bula. En esencia, el ltrado representa el enfasis o la supresi on de ciertos arm onicos de la frecuencia fundamental de oscilaci on de las cuerdas vocales. Las frecuencias enfatizadas son conocidas como las formantes, 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 informaci on de la identidad del hablante. El estudio de los sonidos voceados puede separarse en dos partes: la din amica de las cuerdas vocales y el ltrado de una se al sonora a trav es de una compleja geometr a. M as aun, la din amica puede resultar 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 din amica de las cuerdas vocales. Ambos est an basados en el mismo principio: las oscilaciones del tejido se inducen por el ujo de aire que pasa a trav es de ellas. El modelo m as simple que da cuenta de este mecanismo es conocido como el modelo de una masa [1]. Cada cuerda vocal se asume como una masa sujeta al tejido principal, caracterizada por un coeciente de elasticidad y de disipaci on, y sometida a la presi on intraglotal. Para generar el comportamiento oscilatorio, es necesario que la presi on durante la apertura de las cuerdas no se compense en el semiciclo de cierre, para que en un ciclo completo pueda entregarse energ a a las cuerdas oscilantes. Este modelo constituye una buena aproximaci on mientras que el aire en el tracto tenga propiedades inerciales.

Cuando las cuerdas se est an separando, el ujo aumenta y la columna de aire en el tracto se acelera, lo cual tiende a abrir m as aun las cuerdas. En el semiciclo de cierre, por otra parte, la columna de aire en movimiento tiende a cerrar las cuerdas, y en el ciclo completo se entrega energ a al tejido. 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 disipaci on y la constante de restituci on, por unidad de area, de las cuerdas vocales, y Pg la presi on glotal. Si las areas de entrada y salida al tracto vocal son iguales, como corresponde al modelo de una masa, tenemos Pi = Pg , con Pi la presi on a la entrada del tracto vocal. Siempre que la frecuencia fundamental de oscilaci on de las cuerdas vocales sea menor que la primera 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 din amico 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 correcci on fenomenol ogico a la ecuaci on de Bernoulli. De la integraci on de las ecs. 1, 2 y 3 se obtiene la serie temporal del ujo de aire a trav es de las cuerdas vocales.

4.3

Tracto Vocal

Seg un la teor a fuente-ltro, las cuerdas vocales est an desacopladas ac usticamente del tracto vocal, de manera que la se nal de voz se genera a trav es del ltrado de la serie temporal de la presi on P i a la entrada del tracto. El modelo m as simple consiste en aproximar el tracto por una serie de n tubos de distinta secci on a i y longitud li para simular las distintas geometr as. En cada interfaz, la onda de presi on es parcialmente reejada y transmitida, de manera que a la salida del u ltimo tubo se tiene la se nal de la voz.

4.4

Biometr a

Una vez construido el modelo completo para generar series temporales sint eticas de voz, naturalmente surge ponerlo a prueba como un m etodo biom etrico para reconocer la identidad de las personas, aprovechando que sus par ametros est an relacionados con magnitudes anat omicas y siol ogicas del sistema de producci on de la voz. Sin embargo, dado que el espacio de par ametros es multidimensional, la elecci on del m etodo de ajuste es delicada. La preferencia por un algoritmo gen etico se ve justicada por dos razones: es de programaci on simple y es f acilmente adaptable a la paralelizaci on. El problema de la voz es f acilmente adaptable para ser resuelto por un algoritmo gen etico. En primer lugar, denimos un individuo como la cadena de n umeros que corresponde a los par ametros del modelo. As , la cadena {M, K, B, R2 , I2 , a1 , ..., an , l1 , ..., ln } es un individuo. M ,K B , R2 e I2 son los par ametros de las cuerdas vocales (ecuaciones 1 y 2); ai y li la secci on y longitud del i- esimo tubo que aproxima al tracto vocal. La expresi on de este cromosoma (su fenotipo) es el espectro de potencias que genera. El criterio de selecci on elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente proporcional a la diferencia cuadr atica entre los espectros de la se nal experimental y la sintetizada por el modelo. En la gura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontr o la mejor soluci on. Los resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximaci on por tubos del tracto vocal no son concluyentes. Por una parte, las geometr as a las que converge el tracto vocal corresponden a las de las vocales utilizadas citadas por la bibliograf a [3]. Sin embargo, el modelo

de una masa parece demasiado simple para dar cuenta de la din amica de las cuerdas vocales, lo que resulta en una dispersi on en los par ametros del modelo que no permiten una distinci on un 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 sint eticas (l neas)
generadas por el modelo usando un algoritmo gen etico de 500 generaciones y 150 cromosomas, tasa de mutaci on de 8% y crossover de 40%. La frecuencia est a en unidades de 102 Hz y la potencia est a normalizada.

4.5

Paralelizaci on del algoritmo gen etico

Una posible implementaci on en paralelo del algoritmo consiste en denir un nodo principal donde se separa la poblaci on inicial de cromosomas en sub-dominios a ser procesados en paralelo por el resto de los nodos (esclavos). Cada uno de los nodos esclavos encuentra la adaptaci on de cada subpoblaci on, y esta informaci on es devuelta al nodo principal, que aplica los operadores gen eticos a la poblaci on completa, generando una nueva poblaci on que repetir a el proceso. El algoritmo en paralelo opera seg un la siguiente secuencia: Nodo principal 1. calcula espectro de la serie experimental 2. env a espectro a nodos esclavos 3. crea poblaci on inicial de cromosomas 4. divide en dominios locales Nodos esclavos 1. recibe espectro experimental del nodo principal loop generaciones Nodo principal 1. env a cromosomas locales a nodos esclavos 2. recibe diferencias cuadr aticas de esclavos 3. operadores gen eticos: selecci on, cross-over, mutaci on Nodos esclavos 1. 2. 3. 4. 5. recibe cromosomas locales del nodo principal calcula espectros sint eticos desde cromosomas locales compara espectros sint eticos y experimental calcula diferencias cuadr aticas env a diferencias cuadr aticas al nodo principal

n loop generaciones

4.6

Performance del c odigo en paralelo

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 ejecuci on vs. cantidad de procesadores para el algoritmo gen etico usando 500 generaciones, 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 dispersi on en los valores es despreciable. A la derecha, detalle y ajuste con T (n) = 8.77 + 686.54/n + 0.05n, n es el n umero de nodos slaves. A primer orden, se espera que el tiempo de procesamiento Tp en funci on del n umero de procesadores n se comporte aproximadamente como Tp (n) 1/n, mientras que el tiempo de comunicaci on Tc (n) n. 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 n umero de nodos slaves y = Tp adem as que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores obtenidos implican una correcci on lineal muy peque na frente a . Para estudiar el factor lineal se usaron logles (informaci on de los tiempos de procesamiento de cada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la sl de los nodos slaves, es que dispersi on de los tiempos de procesamiento Tp
sl (10) Tp (5) 2 es decir que al usar m as procesadores la dispersi on de los tiempos de procesamiento aumenta. La diferencia, acumulada a lo largo de la ejecuci on del c odigo, es del orden de 10 , que es la correcci on prevista por la ecuaci on 4. Esto sugiere que la mayor parte del tiempo de comunicaci on es el tiempo de espera que proviene de la dispersi on en los tiempos de procesamiento de las distintas computadoras 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.

También podría gustarte