Algoritmos gen´ticos: aplicaci´n en MATLAB                                  e               o                             ...
2    Adaptaci´n a un problema de optimizaci´n de funciones             o                             oEn esta secci´n ilus...
• Baje el archivo desde su ubicaci´n en internet: http://www.df.uba.ar/users/mison/genetico.tar.gz                        ...
• En el c´digo, el criterio de selecci´n de los cromosomas tiene una probabilidad p ∝ f (x, y) −1 .             o         ...
Cuando las cuerdas se est´n separando, el flujo aumenta y la columna de aire en el tracto se acelera, lo                   ...
de una masa parece demasiado simple para dar cuenta de la din´mica de las cuerdas vocales, lo que                         ...
4.6   Performance del c´digo en paralelo                       oEn la figura 3 se grafica el tiempo de procesamiento contra ...
Próxima SlideShare
Cargando en…5
×

Matlab

639 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
639
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
10
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Matlab

  1. 1. Algoritmos gen´ticos: aplicaci´n 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 introducci´n a los elementos b´sicos de los algoritmos gen´ticos y su adaptaci´n ıa o a e o a un problema simple de minimizaci´n de funciones de dos variables usando c´digo en matlab. Se o o describe el c´digo con un instructivo b´sico de su sintaxis y funcionamiento. Se propone una serie o a de pr´cticas num´ricas ejecutando variaciones del algoritmo. En la ultima secci´n se describe una a e ´ o aplicaci´n de los algoritmos gen´ticos al ajuste de par´metros en el modelado de la voz humana, junto o e a con algunas nociones de paralelizaci´n. o1 Algoritmos gen´ticos eLos algoritmos gen´ticos corresponden a la clase de m´todos estoc´sticos de b´squeda. Mientras la e e a umayor´ de estos m´todos operan sobre una unica soluci´n, estos algoritmos operan en una poblaci´n de ıa e ´ o osoluciones. La idea b´sica, inspirada en los procesos evolutivos en biolog´ es que el contenido gen´tico a ıa, ede una poblaci´n contiene potencialmente la soluci´n, o una soluci´n mejor, a un dado problema de o o oadaptaci´n. Esta soluci´n puede estar inactiva porque la combinaci´n gen´tica adecuada est´ disem- o o o e ainada entre varios sujetos. S´lo la asociaci´n de genomas distintos puede llevar a la activaci´n de la o o osoluci´n. oCrudamente, el mecanismo evolutivo procede as´ sobre una poblaci´n, algunos individuos son selec- ı: ocionados para la reproducci´n, con m´s oportunidades para los mejor adaptados al ambiente. Durante o ala reproducci´n, los nuevos individuos de la poblaci´n resultan de modificaciones e intercambio gen´tico o o ede los padres. Una vez que se renueva la poblaci´n, el proceso recomienza. Es decir que hay dos espacios odonde opera la evoluci´n. Por una parte, a nivel de los individuos f´ o ısicos (fenotipo), que deben adaptarsepara ser seleccionados. Y luego, a nivel de la informaci´n gen´tica (genotipo), a trav´s de los operadores o e eque intercambian y var´ la informaci´n gen´tica. ıan o eLa informaci´n gen´tica est´ codificada en los cromosomas, que son secuencias de genes, cada uno de los o e acuales codifica una caracter´ ıstica particular del individuo. Estas secuencias est´n escritas en t´rminos a ede cuatro bases nitrogenadas: adenocina, timina, citocina y guanina. En este alfabeto de base cuatro,[A, T, C, G], est´ escrita toda la informaci´n gen´tica de un individuo. a o eHay esencialmente dos operadores gen´ticos. El operador de mutaci´n introduce cierta aleatoriedad en e ola b´squeda simplemente cambiando unos genes por otros, contribuyendo a una exploraci´n ‘azarosa’ u oen el espacio gen´tico. El operador de crossover, en cambio, es una recombinaci´n de la informaci´n e o odurante la reproducci´n de los individuos seleccionados. oEl proceso de evoluci´n, puesto en estos t´rminos, es adaptable a una enorme familia de problemas, o eincluso ajenos al ´mbito biol´gico. En la pr´xima secci´n se describe la adaptaci´n de este esquema de a o o o ob´squeda de soluciones a un problema matem´tico sencillo. u a 1
  2. 2. 2 Adaptaci´n a un problema de optimizaci´n de funciones o oEn esta secci´n ilustraremos la adaptaci´n de un algoritmo gen´tico a un problema sencillo de mini- o o emizaci´n de funciones bidimensionales f (x, y). La interpretaci´n f´ o o ısica del problema es, en este caso,casi trivial: haciendo corresponder la funci´n f a la ‘energ´ E asociada al estado (x, y), la evoluci´n o ıa’ odel sistema tender´ a minimizarla. A lo largo de esta gu´ nos referiremos m´s o menos indistintamente, a ıa aa la funci´n o al ‘paisaje energ´tico’. o e 12 9 8 10 7 8 6 5 6 4 4 3 2 2 1 0 0 2 2 1 2 1 2 1 1 0 0 0 0 −1 −1 −1 −1 −2 −2 −2 −2 Figura 1: ejemplo de paisaje energ´tico complejo (izquierda) y simple (derecha). eEn t´rminos crudos, la meta de la exploraci´n gen´tica es encontrar los individuos mejor adaptados a su e o eambiente. Para eso, los individuos se reproducen buscando, con el intercambio de material gen´tico y las emutaciones, que cada nueva generaci´n mejore la adaptaci´n. Para poder aplicar este esquema al prob- o olema de la minimizaci´n de funciones, debemos dar las definiciones de individuos, genes, cromosomas y oambiente, y cuantificar la adaptaci´n. oSi pensamos a cada individuo de la poblaci´n como un par (x, y) ∈ [a, b] × [c, d], se puede definir la oadaptaci´n como un escalar inversamente proporcional a la funci´n f , de manera que la minimizaci´n o o ode f (x, y) corresponder´ a la mejor adaptaci´n al medio definido por la funci´n f . a o oEn este punto, s´lo queda definir la ‘codificaci´n gen´tica’ del individuo (x, y) para aplicar los operadores o o egen´ticos. Definimos un cromosoma como el arreglo consecutivo de dos genes, uno para cada n´mero e udel par (x, y). Este arreglo se construye normalizando cada coordenada seg´n el rango donde puede uvariar y guardando los primeros n decimales. Por ejemplo, para el par (0.5, 1.34) ∈ {[0, 1] × [0, 2.35]},la normalizaci´n arroja el par (0.5/1, 1.34/2.35) = (0.5, 0.57021276...). La identificaci´n del individuo o ocon su cromosoma resulta, usando cuatro cifras significativas (0.5, 1.34) → [50005702].En este ‘espacio gen´tico’ se pueden aplicar los operadores de cruzamiento y mutaci´n, que en la e oevoluci´n suceden en el espacio de las bases nitrogenadas y, aqu´ en la base decimal. Una mutaci´n o ı, oser´ el reemplazo de cualquiera de los 8 n´meros del cromosoma por otro, por ejemplo, [23126675] → a u[23026675]. El cruzamiento consiste en el intercambio, a partir de cualquier posici´n, de la informaci´n o ode los cromosomas de los individuos seleccionados. Por ejemplo, [12345678]+[87654321] → [12354321].Con estas definiciones, el algoritmo gen´tico est´ adaptado al problema y su ejecuci´n consiste en elegir e a ouna poblaci´n inicial de N individuos (xi , yi ), seleccionarlos seg´n su adaptaci´n usando la funci´n o u o of (xi , yi ) y aplicarles los operadores gen´ticos para generar la nueva poblaci´n. En las siguientes secciones e ose describe el c´digo implementado para resolver este problema en matlab. o3 InstructivoSe propone realizar un estudio num´rico del c´digo que implementa un algoritmo gen´tico en la mini- e o emizaci´n de un paisaje energ´tico complejo. Para ello se sugieren los siguientes pasos: o e 2
  3. 3. • Baje el archivo desde su ubicaci´n 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 &) • Identifique las distintas partes del c´digo y sus funciones (puede ayudarle ver la secci´n siguiente) o o • Inicie el software matlab desde una terminal ($matlab ) • Explore num´ricamente el c´digo variando los par´metros relevantes del mismo e o a3.1 Descripci´n del c´digo en Matlab o o3.1.1 Par´metros a genes = 2 = posici´n x, posici´n y o o largo = 4 = longitud del gen. Ngen = cantidad de ciclos (generaciones) en el algoritmo. Nind = cantidad de individuos en la poblaci´n. o cross = tasa de cruzamiento. mut = tasa de mutaci´n. o rango := [xmin ymin], [xmax ymax] = Rango de distribuci´n de la poblaci´n inicial. o o3.1.2 Organizaci´n: oEl c´digo a utilizar se encuentra dividido en un c´digo principal (genetico.m) que hace uso de subrutinas o oo funciones definidas en archivos externos. • c´digo principal genetico.m o 1. se introducen los par´metros del algoritmo a 2. llamado a fun.m (define el paisaje de energ´ a estudiar) ıa 3. se elige la poblaci´n inicial de manera aleatoria en ran.m o 4. comienza ciclo principal: Para iter desde 1 hasta Ngen hacer – se calcula la funci´n de fitness o – llamado a subrutina fentogen.m (toma fenotipo y devuelve genotipo) – llamado a subrutina pareja.m: elige los dos individuos, efectua la mutaci´n y el cruza- o miento de manera estoc´stica a – llamado a subrutina gentofen.m (toma genotipo y devuelve fenotipo) – se grafica la poblaci´n de la generaci´n iter o o 5. se reproduce la evoluci´n completa de la poblaci´n o o 6. se grafica la evoluci´n de la funci´n de fitness o o3.2 PreguntasPara tener en cuenta: Un estudio cuantitativo del problema num´rico requiere el an´lisis de un conjunto e ade evoluciones y no de un evento particular como el que se obtiene directamente del c´digo. Sin oembargo creemos que de todas formas es posible realizar un an´lisis interesante. Por esto se proponen alas siguientes preguntas: 3
  4. 4. • En el c´digo, el criterio de selecci´n de los cromosomas tiene una probabilidad p ∝ f (x, y) −1 . o o Interprete en t´rminos del algoritmo gen´tico y del problema particular. e e ¿Qu´ tiene que garantizarse para que, as´ definida, la probabilidad no genere errores num´ricos? e ı e Proponga otras funciones de adaptaci´n. o • ¿C´mo construir´ un algoritmo para seleccionar uno (o m´s) individuos con probabilidad p te- o ıa a niendo en cuenta su adaptaci´n? o Considere disponible una funci´n num´rica rand(a,b) que le permite elegir n´meros ‘al azar’ en o e u el intervalo (a, b). Verifique si su idea coincide con la secci´n comentada como ruleta en el c´digo. o o • Para una cantidad suficiente de generaciones Ngen ¿Qu´ operador gen´tico subsiste? ¿Qu´ com- e e e portamiento observa? Proponga otros criterios para mejorar la b´squeda. u • En este trabajo, el c´digo se ejecuta una cantidad Ngen de veces prefijada por el usuario. ¿Es o posible adaptar el c´digo para que cumpla con alg´n criterio de convergencia antes de detenerse? o u Proponga alguno e incorp´relo al c´digo. 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 geom´tricos, el subespacio de los posibles (x h , yh ) debidos e a la acci´n del operador gen´tico de cruzamiento? ¿Podr´ simplificarse el c´digo con esta inter- o e a o pretaci´n? o4 Adaptaci´n al problema de la producci´n de voz o o4.1 F´ ısica de la voz - Teor´ de Fuente Filtro ıaEl contenido espectral de los sonidos voceados es relativamente simple, mostrando una serie de picosen ciertos arm´nicos de la frecuencia fundamental. La teor´ cl´sica que permite describir este com- o ıa aportamiento es conocida como fuente-filtro, y puede resumirse as´ el flujo de aire desde los pulmones ı:a trav´s de la glotis genera oscilaciones de las cuerdas vocales. La perturbaci´n en la presi´n causada e o opor esta oscilaci´n viaja de ida y vuelta por el trato vocal y es filtrada, generando un sonido definido. oAunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometr´ del tracto ıapuede ser modificada con los articuladores principales: la lengua y la mand´ ıbula.En esencia, el filtrado representa el ´nfasis o la supresi´n de ciertos arm´nicos de la frecuencia fundamen- e o otal de oscilaci´n de las cuerdas vocales. Las frecuencias enfatizadas son conocidas como las formantes, oy en el caso de las vocales, es el cociente entre las dos primeras lo que determina la identidad de cadavocal. En el resto del espectro se codifica la informaci´n de la identidad del hablante. oEl estudio de los sonidos voceados puede separarse en dos partes: la din´mica de las cuerdas vocales y ael filtrado de una se˜l sonora a trav´s de una compleja geometr´ M´s aun, la din´mica puede resultar a e ıa. a aextremadamente rica si se agregan los efectos de acople entre la fuente de sonido (las cuerdas vocales)y el filtro.4.2 Cuerdas vocales: Modelo m´ ınimoExisten escencialmente dos modelos [1] para estudiar la din´mica de las cuerdas vocales. Ambos est´n a abasados en el mismo principio: las oscilaciones del tejido se inducen por el flujo de aire que pasa a trav´s ede ellas.El modelo m´s simple que da cuenta de este mecanismo es conocido como el modelo de una masa [1]. aCada cuerda vocal se asume como una masa sujeta al tejido principal, caracterizada por un coeficientede elasticidad y de disipaci´n, y sometida a la presi´n intraglotal. Para generar el comportamiento o ooscilatorio, es necesario que la presi´n durante la apertura de las cuerdas no se compense en el semiciclo ode cierre, para que en un ciclo completo pueda entregarse energ´ a las cuerdas oscilantes. Este mod- ıaelo constituye una buena aproximaci´n mientras que el aire en el tracto tenga propiedades inerciales. o 4
  5. 5. Cuando las cuerdas se est´n separando, el flujo aumenta y la columna de aire en el tracto se acelera, lo acual tiende a abrir m´s aun las cuerdas. En el semiciclo de cierre, por otra parte, la columna de aire en amovimiento tiende a cerrar las cuerdas, y en el ciclo completo se entrega energ´ al tejido. ıaLas 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´n y la constante de restituci´n, por o ounidad de area, de las cuerdas vocales, y Pg la presi´n glotal. oSi las ´reas de entrada y salida al tracto vocal son iguales, como corresponde al modelo de una masa, atenemos Pi = Pg , con Pi la presi´n a la entrada del tracto vocal. oSiempre que la frecuencia fundamental de oscilaci´n de las cuerdas vocales sea menor que la primera oresonancia 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 flujo. El sistema din´mico aqueda 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´n fenomenol´gico a la ecuaci´n de Bernoulli. De la integraci´n de las o o o oecs. 1, 2 y 3 se obtiene la serie temporal del flujo de aire a trav´s de las cuerdas vocales. e4.3 Tracto VocalSeg´n la teor´ fuente-filtro, las cuerdas vocales est´n desacopladas ac´sticamente del tracto vocal, de u ıa a umanera que la se˜al de voz se genera a trav´s del filtrado de la serie temporal de la presi´n P i a la n e oentrada del tracto.El modelo m´s simple consiste en aproximar el tracto por una serie de n tubos de distinta secci´n a i y a olongitud li para simular las distintas geometr´ ıas. En cada interfaz, la onda de presi´n es parcialmente oreflejada y transmitida, de manera que a la salida del ultimo tubo se tiene la se˜al de la voz. ´ n4.4 Biometr´ ıaUna vez construido el modelo completo para generar series temporales sint´ticas de voz, natural- emente surge ponerlo a prueba como un m´todo biom´trico para reconocer la identidad de las per- e esonas, aprovechando que sus par´metros est´n relacionados con magnitudes anat´micas y fisiol´gicas a a o odel sistema de producci´n de la voz. oSin embargo, dado que el espacio de par´metros es multidimensional, la elecci´n del m´todo de ajuste es a o edelicada. La preferencia por un algoritmo gen´tico se ve justificada por dos razones: es de programaci´n e osimple y es f´cilmente adaptable a la paralelizaci´n. a oEl problema de la voz es f´cilmente adaptable para ser resuelto por un algoritmo gen´tico. En primer a elugar, definimos un individuo como la cadena de n´meros que corresponde a los par´metros del modelo. u aAs´ la cadena {M, K, B, R2 , I2 , a1 , ..., an , l1 , ..., ln } es un individuo. M ,K B, R2 e I2 son los par´metros ı, ade las cuerdas vocales (ecuaciones 1 y 2); ai y li la secci´n y longitud del i-´simo tubo que aproxima o eal tracto vocal. La expresi´n de este cromosoma (su fenotipo) es el espectro de potencias que genera. oEl criterio de selecci´n elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente oproporcional a la diferencia cuadr´tica entre los espectros de la se˜al experimental y la sintetizada por a nel modelo. En la figura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontr´ la omejor soluci´n. oLos resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximaci´n por otubos del tracto vocal no son concluyentes. Por una parte, las geometr´ a las que converge el tracto ıasvocal corresponden a las de las vocales utilizadas citadas por la bibliograf´ [3]. Sin embargo, el modelo ıa 5
  6. 6. de una masa parece demasiado simple para dar cuenta de la din´mica de las cuerdas vocales, lo que aresulta en una dispersi´n en los par´metros del modelo que no permiten una distinci´n un´ o a o ıvoca de laidentidad. 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 70Figura 2: Espectro experimental de una vocal [o] (barras verticales) y de las mejores series sint´ticas (l´ e ıneas)generadas por el modelo usando un algoritmo gen´tico de 500 generaciones y 150 cromosomas, tasa de mutaci´n e ode 8% y crossover de 40%. La frecuencia est´ en unidades de 102 Hz y la potencia est´ normalizada. a a4.5 Paralelizaci´n del algoritmo gen´tico o eUna posible implementaci´n en paralelo del algoritmo consiste en definir un nodo principal donde se osepara la poblaci´n inicial de cromosomas en sub-dominios a ser procesados en paralelo por el resto de olos nodos (esclavos). Cada uno de los nodos esclavos encuentra la adaptaci´n de cada subpoblaci´n, o oy esta informaci´n es devuelta al nodo principal, que aplica los operadores gen´ticos a la poblaci´n o e ocompleta, generando una nueva poblaci´n que repetir´ el proceso. o aEl algoritmo en paralelo opera seg´n la siguiente secuencia: u • Nodo principal 1. calcula espectro de la serie experimental 2. env´ espectro a nodos esclavos ıa 3. crea poblaci´n 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 cuadr´ticas de esclavos a 3. operadores gen´ticos: selecci´n, cross-over, mutaci´n e o o – Nodos esclavos 1. recibe cromosomas locales del nodo principal 2. calcula espectros sint´ticos desde cromosomas locales e 3. compara espectros sint´ticos y experimental e 4. calcula diferencias cuadr´ticas a 5. env´ diferencias cuadr´ticas al nodo principal ıa a • fin loop generaciones 6
  7. 7. 4.6 Performance del c´digo en paralelo oEn la figura 3 se grafica el tiempo de procesamiento contra la cantidad de procesadores utilizados (lassimulaciones 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 procesadoresFigura 3: Tiempo de ejecuci´n vs. cantidad de procesadores para el algoritmo gen´tico usando 500 generaciones, o e150 cromosomas, tasa de crossing del 40% y tasa de mutaciones de 8%. Los valores usados resultan del promediode 2 o 3 corridas. A partir de n = 10 procesadores, la dispersi´n en los valores es despreciable. A la derecha, odetalle y ajuste con T (n) = 8.77 + 686.54/n + 0.05n, n es el n´mero de nodos slaves. uA primer orden, se espera que el tiempo de procesamiento Tp en funci´n del n´mero de procesadores n o use comporte aproximadamente como Tp (n) ∝ 1/n, mientras que el tiempo de comunicaci´n Tc (n) ∝ n. oAjustando los valores de la figura 3 para T (n) de la forma master slaves α T (n) = Tp (n) + Tc (n) = Tp + Tp (n) + Tc (n) = γ + + βn (4) ncon n el n´mero de nodos slaves y α = Tp u slaves (1) el tiempo de procesamiento de 1 nodo slave. Se asumeadem´s que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores aobtenidos implican una correcci´n lineal β muy peque˜a frente a α. o nPara estudiar el factor lineal β se usaron logfiles (informaci´n de los tiempos de procesamiento de ocada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la sldispersi´n de los tiempos de procesamiento ∆Tp de los nodos slaves, es que o sl ∆Tp (10) sl ∆Tp (20) > (5) 2es decir que al usar m´s procesadores la dispersi´n de los tiempos de procesamiento aumenta. La a odiferencia, acumulada a lo largo de la ejecuci´n del c´digo, es del orden de 10 β, que es la correcci´n o o oprevista por la ecuaci´n 4. Esto sugiere que la mayor parte del tiempo de comunicaci´n es el tiempo de o o‘espera’ que proviene de la dispersi´n en los tiempos de procesamiento de las distintas computadoras odel cluster.Referencias [1] I. R. Titze, Principles of Voice Production (Prentice-Hall, Englewood Cliffs, 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 scientific computing, Cambridge University, 1999. [5] N. MacDonald et al., Writing Message-Passing Parallel Programs with MPI, Course Notes, Edin- burgh Parallel Computing Centre, University of Edinburgh. [6] Rothemberg, Vocal Fold Physiology, University of Tokyo Press, Tokyo, 1981, pp. 304-323. 7

×