SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
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.
                                          o




1    Algoritmos gen´ticos
                   e
Los algoritmos gen´ticos corresponden a la clase de m´todos estoc´sticos de b´squeda. Mientras la
                    e                                     e           a          u
mayor´ de estos m´todos operan sobre una unica soluci´n, estos algoritmos operan en una poblaci´n de
      ıa           e                         ´           o                                         o
soluciones. La idea b´sica, inspirada en los procesos evolutivos en biolog´ es que el contenido gen´tico
                      a                                                   ıa,                       e
de una poblaci´n contiene potencialmente la soluci´n, o una soluci´n mejor, a un dado problema de
               o                                     o                o
adaptaci´n. Esta soluci´n puede estar inactiva porque la combinaci´n gen´tica adecuada est´ disem-
         o              o                                              o      e                a
inada entre varios sujetos. S´lo la asociaci´n de genomas distintos puede llevar a la activaci´n de la
                              o              o                                                  o
soluci´n.
      o
Crudamente, el mecanismo evolutivo procede as´ sobre una poblaci´n, algunos individuos son selec-
                                                    ı:                   o
cionados para la reproducci´n, con m´s oportunidades para los mejor adaptados al ambiente. Durante
                            o         a
la reproducci´n, los nuevos individuos de la poblaci´n resultan de modificaciones e intercambio gen´tico
              o                                        o                                             e
de los padres. Una vez que se renueva la poblaci´n, el proceso recomienza. Es decir que hay dos espacios
                                                  o
donde opera la evoluci´n. Por una parte, a nivel de los individuos f´
                       o                                            ısicos (fenotipo), que deben adaptarse
para ser seleccionados. Y luego, a nivel de la informaci´n gen´tica (genotipo), a trav´s de los operadores
                                                         o     e                        e
que intercambian y var´ la informaci´n gen´tica.
                        ıan             o       e
La informaci´n gen´tica est´ codificada en los cromosomas, que son secuencias de genes, cada uno de los
              o      e        a
cuales codifica una caracter´   ıstica particular del individuo. Estas secuencias est´n escritas en t´rminos
                                                                                    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 informaci´n gen´tica de un individuo.
                 a                            o      e
Hay esencialmente dos operadores gen´ticos. El operador de mutaci´n introduce cierta aleatoriedad en
                                      e                           o
la b´squeda simplemente cambiando unos genes por otros, contribuyendo a una exploraci´n ‘azarosa’
    u                                                                                   o
en el espacio gen´tico. El operador de crossover, en cambio, es una recombinaci´n de la informaci´n
                 e                                                             o                  o
durante la reproducci´n de los individuos seleccionados.
                      o
El proceso de evoluci´n, puesto en estos t´rminos, es adaptable a una enorme familia de problemas,
                     o                     e
incluso ajenos al ´mbito biol´gico. En la pr´xima secci´n se describe la adaptaci´n de este esquema de
                  a          o              o          o                         o
b´squeda de soluciones a un problema matem´tico sencillo.
 u                                            a



                                                       1
2    Adaptaci´n a un problema de optimizaci´n de funciones
             o                             o
En esta secci´n ilustraremos la adaptaci´n de un algoritmo gen´tico a un problema sencillo de mini-
               o                          o                       e
mizaci´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’                                      o
del sistema tender´ a minimizarla. A lo largo de esta gu´ nos referiremos m´s o menos indistintamente,
                   a                                    ıa                 a
a 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).
                                                e

En t´rminos crudos, la meta de la exploraci´n gen´tica es encontrar los individuos mejor adaptados a su
    e                                       o     e
ambiente. Para eso, los individuos se reproducen buscando, con el intercambio de material gen´tico y las
                                                                                             e
mutaciones, que cada nueva generaci´n mejore la adaptaci´n. Para poder aplicar este esquema al prob-
                                     o                     o
lema de la minimizaci´n de funciones, debemos dar las definiciones de individuos, genes, cromosomas y
                      o
ambiente, y cuantificar la adaptaci´n.
                                   o
Si pensamos a cada individuo de la poblaci´n como un par (x, y) ∈ [a, b] × [c, d], se puede definir la
                                             o
adaptaci´n como un escalar inversamente proporcional a la funci´n f , de manera que la minimizaci´n
          o                                                     o                                 o
de f (x, y) corresponder´ a la mejor adaptaci´n al medio definido por la funci´n f .
                        a                    o                               o
En este punto, s´lo queda definir la ‘codificaci´n gen´tica’ del individuo (x, y) para aplicar los operadores
                 o                            o     e
gen´ticos. Definimos un cromosoma como el arreglo consecutivo de dos genes, uno para cada n´mero
    e                                                                                                u
del par (x, y). Este arreglo se construye normalizando cada coordenada seg´n 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 normalizaci´n arroja el par (0.5/1, 1.34/2.35) = (0.5, 0.57021276...). La identificaci´n del individuo
               o                                                                          o
con 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                                                                    o
evoluci´n suceden en el espacio de las bases nitrogenadas y, aqu´ en la base decimal. Una mutaci´n
        o                                                         ı,                                  o
ser´ 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                  o
de 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                                   o
una poblaci´n inicial de N individuos (xi , yi ), seleccionarlos seg´n su adaptaci´n usando la funci´n
                o                                                        u              o                    o
f (xi , yi ) y aplicarles los operadores gen´ticos para generar la nueva poblaci´n. En las siguientes secciones
                                            e                                   o
se describe el c´digo implementado para resolver este problema en matlab.
                    o


3    Instructivo
Se propone realizar un estudio num´rico del c´digo que implementa un algoritmo gen´tico en la mini-
                                   e         o                                          e
mizaci´n de un paisaje energ´tico complejo. Para ello se sugieren los siguientes pasos:
      o                     e


                                                      2
• 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                     a

3.1     Descripci´n del c´digo en Matlab
                 o       o
3.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               o

3.1.2    Organizaci´n:
                   o
El c´digo a utilizar se encuentra dividido en un c´digo principal (genetico.m) que hace uso de subrutinas
    o                                             o
o 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             o

3.2     Preguntas
Para tener en cuenta: Un estudio cuantitativo del problema num´rico requiere el an´lisis de un conjunto
                                                              e                   a
de evoluciones y no de un evento particular como el que se obtiene directamente del c´digo. Sin
                                                                                            o
embargo creemos que de todas formas es posible realizar un an´lisis interesante. Por esto se proponen
                                                              a
las siguientes preguntas:




                                                    3
• 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?
               o


4     Adaptaci´n al problema de la producci´n de voz
              o                            o
4.1    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 arm´nicos de la frecuencia fundamental. La teor´ cl´sica que permite describir este com-
                 o                                               ıa a
portamiento 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             o
por esta oscilaci´n viaja de ida y vuelta por el trato vocal y es filtrada, generando un sonido definido.
                   o
Aunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometr´ del tracto
                                                                                                ıa
puede 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                 o
tal de oscilaci´n 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 codifica la informaci´n de la identidad del hablante.
                                                           o
El estudio de los sonidos voceados puede separarse en dos partes: la din´mica de las cuerdas vocales y
                                                                             a
el 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               a
extremadamente 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´
                                ınimo
Existen escencialmente dos modelos [1] para estudiar la din´mica de las cuerdas vocales. Ambos est´n
                                                               a                                         a
basados en el mismo principio: las oscilaciones del tejido se inducen por el flujo de aire que pasa a trav´s
                                                                                                         e
de ellas.
El modelo m´s 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 coeficiente
de elasticidad y de disipaci´n, y sometida a la presi´n intraglotal. Para generar el comportamiento
                              o                         o
oscilatorio, es necesario que la presi´n 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 mod-
                                                                    ıa
elo constituye una buena aproximaci´n mientras que el aire en el tracto tenga propiedades inerciales.
                                        o


                                                    4
Cuando las cuerdas se est´n separando, el flujo aumenta y la columna de aire en el tracto se acelera, lo
                          a
cual tiende a abrir m´s 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 disipaci´n y la constante de restituci´n, por
                                                                   o                           o
unidad de area, de las cuerdas vocales, y Pg la presi´n 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 presi´n a la entrada del tracto vocal.
                                 o
Siempre que la frecuencia fundamental de oscilaci´n 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 flujo. El sistema din´mico
                                                                                                       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 correcci´n fenomenol´gico a la ecuaci´n de Bernoulli. De la integraci´n de las
                                   o            o                o                            o
ecs. 1, 2 y 3 se obtiene la serie temporal del flujo de aire a trav´s de las cuerdas vocales.
                                                                   e

4.3    Tracto Vocal
Seg´n la teor´ fuente-filtro, las cuerdas vocales est´n desacopladas ac´sticamente del tracto vocal, de
   u          ıa                                    a                   u
manera 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                                              o
entrada 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                                                                                   o
longitud li para simular las distintas geometr´
                                              ıas. En cada interfaz, la onda de presi´n es parcialmente
                                                                                     o
reflejada y transmitida, de manera que a la salida del ultimo tubo se tiene la se˜al de la voz.
                                                       ´                        n

4.4    Biometr´
              ıa
Una vez construido el modelo completo para generar series temporales sint´ticas de voz, natural-
                                                                                            e
mente surge ponerlo a prueba como un m´todo biom´trico para reconocer la identidad de las per-
                                                      e              e
sonas, aprovechando que sus par´metros est´n relacionados con magnitudes anat´micas y fisiol´gicas
                                   a                   a                                       o              o
del sistema de producci´n de la voz.
                         o
Sin embargo, dado que el espacio de par´metros es multidimensional, la elecci´n del m´todo de ajuste es
                                             a                                            o       e
delicada. La preferencia por un algoritmo gen´tico se ve justificada por dos razones: es de programaci´n
                                                        e                                                         o
simple y es f´cilmente adaptable a la paralelizaci´n.
             a                                                o
El problema de la voz es f´cilmente adaptable para ser resuelto por un algoritmo gen´tico. En primer
                            a                                                                      e
lugar, definimos un individuo como la cadena de n´meros que corresponde a los par´metros 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 par´metros
   ı,                                                                                                       a
de las cuerdas vocales (ecuaciones 1 y 2); ai y li la secci´n y longitud del i-´simo tubo que aproxima
                                                                       o                  e
al tracto vocal. La expresi´n de este cromosoma (su fenotipo) es el espectro de potencias que genera.
                             o
El criterio de selecci´n elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente
                      o
proporcional a la diferencia cuadr´tica entre los espectros de la se˜al experimental y la sintetizada por
                                    a                                          n
el modelo. En la figura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontr´ la               o
mejor soluci´n.
             o
Los resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximaci´n 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


                                                        5
de una masa parece demasiado simple para dar cuenta de la din´mica de las cuerdas vocales, lo que
                                                               a
resulta en una dispersi´n en los par´metros del modelo que no permiten una distinci´n 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 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                                                        o
de 8% y crossover de 40%. La frecuencia est´ en unidades de 102 Hz y la potencia est´ normalizada.
                                           a                                        a



4.5    Paralelizaci´n del algoritmo gen´tico
                   o                   e
Una posible implementaci´n en paralelo del algoritmo consiste en definir un nodo principal donde se
                           o
separa la poblaci´n 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 adaptaci´n de cada subpoblaci´n,
                                                                           o                       o
y esta informaci´n es devuelta al nodo principal, que aplica los operadores gen´ticos a la poblaci´n
                 o                                                              e                   o
completa, generando una nueva poblaci´n que repetir´ el proceso.
                                       o            a
El 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
4.6   Performance del c´digo en paralelo
                       o
En la figura 3 se grafica 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´n vs. cantidad de procesadores para el algoritmo gen´tico 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 dispersi´n 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 n´mero de nodos slaves.
                                                               u

A primer orden, se espera que el tiempo de procesamiento Tp en funci´n del n´mero de procesadores n
                                                                             o      u
se comporte aproximadamente como Tp (n) ∝ 1/n, mientras que el tiempo de comunicaci´n Tc (n) ∝ n.
                                                                                            o
Ajustando 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)
                                                                                    n
con n el n´mero de nodos slaves y α = Tp
          u                               slaves (1) el tiempo de procesamiento de 1 nodo slave. Se asume

adem´s que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores
     a
obtenidos implican una correcci´n lineal β muy peque˜a frente a α.
                                 o                         n
Para estudiar el factor lineal β se usaron logfiles (informaci´n de los tiempos de procesamiento de
                                                                     o
cada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la
                                                   sl
dispersi´n de los tiempos de procesamiento ∆Tp de los nodos slaves, es que
        o
                                                         sl
                                                     ∆Tp (10)              sl
                                                                         ∆Tp (20) >                 (5)
                                                          2
es decir que al usar m´s procesadores la dispersi´n de los tiempos de procesamiento aumenta. La
                        a                          o
diferencia, acumulada a lo largo de la ejecuci´n del c´digo, es del orden de 10 β, que es la correcci´n
                                               o      o                                              o
prevista 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
                                    o
del 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

Más contenido relacionado

Destacado

Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5
Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5
Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5JUAN URIBE
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabAdalberto C
 
Webconference EAE: El Deep Content en estrategias SEO
Webconference EAE: El Deep Content en estrategias SEOWebconference EAE: El Deep Content en estrategias SEO
Webconference EAE: El Deep Content en estrategias SEOEAE Business School
 
DESARROLLO DEL PENSAMIENTO CRITICO
DESARROLLO DEL PENSAMIENTO CRITICODESARROLLO DEL PENSAMIENTO CRITICO
DESARROLLO DEL PENSAMIENTO CRITICOHernan_L
 
Tendencias eCommerce2015 según 90 profesionales del eCommerce
Tendencias eCommerce2015 según 90 profesionales del eCommerceTendencias eCommerce2015 según 90 profesionales del eCommerce
Tendencias eCommerce2015 según 90 profesionales del eCommerceBrainSINS
 
Refranes y eCommerce. Congreso Web Zaragoza
Refranes y eCommerce. Congreso Web ZaragozaRefranes y eCommerce. Congreso Web Zaragoza
Refranes y eCommerce. Congreso Web ZaragozaRicardo Tayar López
 
Numeros Índices
Numeros ÍndicesNumeros Índices
Numeros ÍndicesToriReG
 
Taller S10 Costos y Presupuestos - Parte 2
Taller S10 Costos y Presupuestos - Parte 2Taller S10 Costos y Presupuestos - Parte 2
Taller S10 Costos y Presupuestos - Parte 2Alex Arribasplata
 
Números indice estadística descriptiva
Números indice estadística  descriptivaNúmeros indice estadística  descriptiva
Números indice estadística descriptivajhovanny18
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlabVitoto96
 
Taller S10 Costos y Presupuestos - Parte 1
Taller S10 Costos y Presupuestos - Parte 1Taller S10 Costos y Presupuestos - Parte 1
Taller S10 Costos y Presupuestos - Parte 1Alex Arribasplata
 
Breve resumen de la ingeniería civil
Breve resumen de la ingeniería civilBreve resumen de la ingeniería civil
Breve resumen de la ingeniería civilAngel Santamaria
 
Los 7 saberes de edgar morin presentación diapositivas
Los 7 saberes de edgar morin presentación diapositivasLos 7 saberes de edgar morin presentación diapositivas
Los 7 saberes de edgar morin presentación diapositivasOlger Apaza
 
Opiniones EAE (EAE Business School)
Opiniones EAE (EAE Business School)Opiniones EAE (EAE Business School)
Opiniones EAE (EAE Business School)EAE Business School
 

Destacado (20)

Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5
Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5
Presentación del software COSTOS Y PRESUPUESTOS DE OBRA V3.5
 
Manual cype 2
Manual cype 2Manual cype 2
Manual cype 2
 
2010 11 19_bim estructural
2010 11 19_bim estructural2010 11 19_bim estructural
2010 11 19_bim estructural
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlab
 
Cambio y Futuro - 2010
Cambio y Futuro - 2010Cambio y Futuro - 2010
Cambio y Futuro - 2010
 
Webconference EAE: El Deep Content en estrategias SEO
Webconference EAE: El Deep Content en estrategias SEOWebconference EAE: El Deep Content en estrategias SEO
Webconference EAE: El Deep Content en estrategias SEO
 
DESARROLLO DEL PENSAMIENTO CRITICO
DESARROLLO DEL PENSAMIENTO CRITICODESARROLLO DEL PENSAMIENTO CRITICO
DESARROLLO DEL PENSAMIENTO CRITICO
 
Tendencias eCommerce2015 según 90 profesionales del eCommerce
Tendencias eCommerce2015 según 90 profesionales del eCommerceTendencias eCommerce2015 según 90 profesionales del eCommerce
Tendencias eCommerce2015 según 90 profesionales del eCommerce
 
Manual de presto 8.8
Manual de presto 8.8Manual de presto 8.8
Manual de presto 8.8
 
Refranes y eCommerce. Congreso Web Zaragoza
Refranes y eCommerce. Congreso Web ZaragozaRefranes y eCommerce. Congreso Web Zaragoza
Refranes y eCommerce. Congreso Web Zaragoza
 
Numeros Índices
Numeros ÍndicesNumeros Índices
Numeros Índices
 
110614736 manual-s10-pdf
110614736 manual-s10-pdf110614736 manual-s10-pdf
110614736 manual-s10-pdf
 
Taller S10 Costos y Presupuestos - Parte 2
Taller S10 Costos y Presupuestos - Parte 2Taller S10 Costos y Presupuestos - Parte 2
Taller S10 Costos y Presupuestos - Parte 2
 
Números indice estadística descriptiva
Números indice estadística  descriptivaNúmeros indice estadística  descriptiva
Números indice estadística descriptiva
 
Algoritmos para matlab
Algoritmos para matlabAlgoritmos para matlab
Algoritmos para matlab
 
Taller S10 Costos y Presupuestos - Parte 1
Taller S10 Costos y Presupuestos - Parte 1Taller S10 Costos y Presupuestos - Parte 1
Taller S10 Costos y Presupuestos - Parte 1
 
Breve resumen de la ingeniería civil
Breve resumen de la ingeniería civilBreve resumen de la ingeniería civil
Breve resumen de la ingeniería civil
 
Los 7 saberes de edgar morin presentación diapositivas
Los 7 saberes de edgar morin presentación diapositivasLos 7 saberes de edgar morin presentación diapositivas
Los 7 saberes de edgar morin presentación diapositivas
 
Edgar Morin: Los siete saberes necesarios a la educación del futuro
Edgar Morin: Los siete saberes necesarios a la educación del futuroEdgar Morin: Los siete saberes necesarios a la educación del futuro
Edgar Morin: Los siete saberes necesarios a la educación del futuro
 
Opiniones EAE (EAE Business School)
Opiniones EAE (EAE Business School)Opiniones EAE (EAE Business School)
Opiniones EAE (EAE Business School)
 

Similar a Matlab

Introducción a los Algoritmos Genéticos
Introducción  a los Algoritmos GenéticosIntroducción  a los Algoritmos Genéticos
Introducción a los Algoritmos Genéticosdrk28
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicosESCOM
 
Apunte Algoritmos Geneticos
Apunte Algoritmos GeneticosApunte Algoritmos Geneticos
Apunte Algoritmos GeneticosESCOM
 
Tutorial algoritmosgeneticos
Tutorial algoritmosgeneticosTutorial algoritmosgeneticos
Tutorial algoritmosgeneticosAlex Mescco
 
Tutorial algoritmosgeneticos
Tutorial algoritmosgeneticosTutorial algoritmosgeneticos
Tutorial algoritmosgeneticosELL Xavi
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialGabriela_Rodriguez
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadamartinp
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo geneticoVane Erraez
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticosRichar León
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genéticoandreaac2014
 
Unl articulo cientifico-1
Unl articulo cientifico-1Unl articulo cientifico-1
Unl articulo cientifico-1andreaac2014
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlabMaje Gonzalez
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundialJairo Banda
 
Int.art.equipo02
Int.art.equipo02Int.art.equipo02
Int.art.equipo02elypp11
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5UNEFA
 

Similar a Matlab (20)

Introducción a los Algoritmos Genéticos
Introducción  a los Algoritmos GenéticosIntroducción  a los Algoritmos Genéticos
Introducción a los Algoritmos Genéticos
 
Algoritmos GenéTicos
Algoritmos GenéTicosAlgoritmos GenéTicos
Algoritmos GenéTicos
 
Apunte Algoritmos Geneticos
Apunte Algoritmos GeneticosApunte Algoritmos Geneticos
Apunte Algoritmos Geneticos
 
Tutorial algoritmosgeneticos
Tutorial algoritmosgeneticosTutorial algoritmosgeneticos
Tutorial algoritmosgeneticos
 
Tutorial algoritmosgeneticos
Tutorial algoritmosgeneticosTutorial algoritmosgeneticos
Tutorial algoritmosgeneticos
 
Algoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia ArtificialAlgoritmos Genéticos_Inteligencia Artificial
Algoritmos Genéticos_Inteligencia Artificial
 
Algoritmo genético presentacion
Algoritmo genético presentacionAlgoritmo genético presentacion
Algoritmo genético presentacion
 
Int. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursadaInt. a la Computación Evolutiva - Informe para cursada
Int. a la Computación Evolutiva - Informe para cursada
 
Algoritmo genetico
Algoritmo geneticoAlgoritmo genetico
Algoritmo genetico
 
ALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptxALGORITMO GENETICO - II.pptx
ALGORITMO GENETICO - II.pptx
 
Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13Algoritmos genéticos 2 s lun 30 sep-13
Algoritmos genéticos 2 s lun 30 sep-13
 
Artículo predicción mundial 2014 algoritmos geneticos
Artículo predicción mundial 2014   algoritmos geneticosArtículo predicción mundial 2014   algoritmos geneticos
Artículo predicción mundial 2014 algoritmos geneticos
 
Algoritmo Genético
Algoritmo GenéticoAlgoritmo Genético
Algoritmo Genético
 
Unl articulo cientifico-1
Unl articulo cientifico-1Unl articulo cientifico-1
Unl articulo cientifico-1
 
5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab5 herramienta aprendizaje algoritmos geneticos entorno matlab
5 herramienta aprendizaje algoritmos geneticos entorno matlab
 
Speech v2.docx
Speech v2.docxSpeech v2.docx
Speech v2.docx
 
A Geneticos
A GeneticosA Geneticos
A Geneticos
 
Algoritmos geneticos mundial
Algoritmos geneticos mundialAlgoritmos geneticos mundial
Algoritmos geneticos mundial
 
Int.art.equipo02
Int.art.equipo02Int.art.equipo02
Int.art.equipo02
 
Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5Inteligencia Artificial Clase 5
Inteligencia Artificial Clase 5
 

Más de Cdr Saravena

Luz Edith Ortega.pptx
Luz Edith Ortega.pptxLuz Edith Ortega.pptx
Luz Edith Ortega.pptxCdr Saravena
 
Guia 6 clei iv a ser concentracion desarrollo rural
Guia  6  clei  iv a ser concentracion desarrollo ruralGuia  6  clei  iv a ser concentracion desarrollo rural
Guia 6 clei iv a ser concentracion desarrollo ruralCdr Saravena
 
Guía 3 CICLO IV A
Guía  3  CICLO IV AGuía  3  CICLO IV A
Guía 3 CICLO IV ACdr Saravena
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticosCdr Saravena
 
Cons. ambientes de respeto
Cons. ambientes de respetoCons. ambientes de respeto
Cons. ambientes de respetoCdr Saravena
 
Guia proyectos productivos 11°
Guia proyectos productivos 11°Guia proyectos productivos 11°
Guia proyectos productivos 11°Cdr Saravena
 
De mi colombia_con_amor
De mi colombia_con_amorDe mi colombia_con_amor
De mi colombia_con_amorCdr Saravena
 

Más de Cdr Saravena (10)

Luz Edith Ortega.pptx
Luz Edith Ortega.pptxLuz Edith Ortega.pptx
Luz Edith Ortega.pptx
 
Guia 6 clei iv a ser concentracion desarrollo rural
Guia  6  clei  iv a ser concentracion desarrollo ruralGuia  6  clei  iv a ser concentracion desarrollo rural
Guia 6 clei iv a ser concentracion desarrollo rural
 
Guía 3 CICLO IV A
Guía  3  CICLO IV AGuía  3  CICLO IV A
Guía 3 CICLO IV A
 
Algoritmos geneticos
Algoritmos geneticosAlgoritmos geneticos
Algoritmos geneticos
 
Redes neuronales
Redes neuronalesRedes neuronales
Redes neuronales
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Yolidey
YolideyYolidey
Yolidey
 
Cons. ambientes de respeto
Cons. ambientes de respetoCons. ambientes de respeto
Cons. ambientes de respeto
 
Guia proyectos productivos 11°
Guia proyectos productivos 11°Guia proyectos productivos 11°
Guia proyectos productivos 11°
 
De mi colombia_con_amor
De mi colombia_con_amorDe mi colombia_con_amor
De mi colombia_con_amor
 

Matlab

  • 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. o 1 Algoritmos gen´ticos e Los algoritmos gen´ticos corresponden a la clase de m´todos estoc´sticos de b´squeda. Mientras la e e a u mayor´ de estos m´todos operan sobre una unica soluci´n, estos algoritmos operan en una poblaci´n de ıa e ´ o o soluciones. La idea b´sica, inspirada en los procesos evolutivos en biolog´ es que el contenido gen´tico a ıa, e de una poblaci´n contiene potencialmente la soluci´n, o una soluci´n mejor, a un dado problema de o o o adaptaci´n. Esta soluci´n puede estar inactiva porque la combinaci´n gen´tica adecuada est´ disem- o o o e a inada entre varios sujetos. S´lo la asociaci´n de genomas distintos puede llevar a la activaci´n de la o o o soluci´n. o Crudamente, el mecanismo evolutivo procede as´ sobre una poblaci´n, algunos individuos son selec- ı: o cionados para la reproducci´n, con m´s oportunidades para los mejor adaptados al ambiente. Durante o a la reproducci´n, los nuevos individuos de la poblaci´n resultan de modificaciones e intercambio gen´tico o o e de los padres. Una vez que se renueva la poblaci´n, el proceso recomienza. Es decir que hay dos espacios o donde opera la evoluci´n. Por una parte, a nivel de los individuos f´ o ısicos (fenotipo), que deben adaptarse para ser seleccionados. Y luego, a nivel de la informaci´n gen´tica (genotipo), a trav´s de los operadores o e e que intercambian y var´ la informaci´n gen´tica. ıan o e La informaci´n gen´tica est´ codificada en los cromosomas, que son secuencias de genes, cada uno de los o e a cuales codifica una caracter´ ıstica particular del individuo. Estas secuencias est´n escritas en t´rminos 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 informaci´n gen´tica de un individuo. a o e Hay esencialmente dos operadores gen´ticos. El operador de mutaci´n introduce cierta aleatoriedad en e o la b´squeda simplemente cambiando unos genes por otros, contribuyendo a una exploraci´n ‘azarosa’ u o en el espacio gen´tico. El operador de crossover, en cambio, es una recombinaci´n de la informaci´n e o o durante la reproducci´n de los individuos seleccionados. o El proceso de evoluci´n, puesto en estos t´rminos, es adaptable a una enorme familia de problemas, o e incluso ajenos al ´mbito biol´gico. En la pr´xima secci´n se describe la adaptaci´n de este esquema de a o o o o b´squeda de soluciones a un problema matem´tico sencillo. u a 1
  • 2. 2 Adaptaci´n a un problema de optimizaci´n de funciones o o En esta secci´n ilustraremos la adaptaci´n de un algoritmo gen´tico a un problema sencillo de mini- o o e mizaci´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’ o del sistema tender´ a minimizarla. A lo largo de esta gu´ nos referiremos m´s o menos indistintamente, a ıa a a 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). e En t´rminos crudos, la meta de la exploraci´n gen´tica es encontrar los individuos mejor adaptados a su e o e ambiente. Para eso, los individuos se reproducen buscando, con el intercambio de material gen´tico y las e mutaciones, que cada nueva generaci´n mejore la adaptaci´n. Para poder aplicar este esquema al prob- o o lema de la minimizaci´n de funciones, debemos dar las definiciones de individuos, genes, cromosomas y o ambiente, y cuantificar la adaptaci´n. o Si pensamos a cada individuo de la poblaci´n como un par (x, y) ∈ [a, b] × [c, d], se puede definir la o adaptaci´n como un escalar inversamente proporcional a la funci´n f , de manera que la minimizaci´n o o o de f (x, y) corresponder´ a la mejor adaptaci´n al medio definido por la funci´n f . a o o En este punto, s´lo queda definir la ‘codificaci´n gen´tica’ del individuo (x, y) para aplicar los operadores o o e gen´ticos. Definimos un cromosoma como el arreglo consecutivo de dos genes, uno para cada n´mero e u del par (x, y). Este arreglo se construye normalizando cada coordenada seg´n 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 normalizaci´n arroja el par (0.5/1, 1.34/2.35) = (0.5, 0.57021276...). La identificaci´n del individuo o o con 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 o evoluci´n suceden en el espacio de las bases nitrogenadas y, aqu´ en la base decimal. Una mutaci´n o ı, o ser´ 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 o de 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 o una poblaci´n inicial de N individuos (xi , yi ), seleccionarlos seg´n su adaptaci´n usando la funci´n o u o o f (xi , yi ) y aplicarles los operadores gen´ticos para generar la nueva poblaci´n. En las siguientes secciones e o se describe el c´digo implementado para resolver este problema en matlab. o 3 Instructivo Se propone realizar un estudio num´rico del c´digo que implementa un algoritmo gen´tico en la mini- e o e mizaci´n de un paisaje energ´tico complejo. Para ello se sugieren los siguientes pasos: o e 2
  • 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 a 3.1 Descripci´n del c´digo en Matlab o o 3.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 o 3.1.2 Organizaci´n: o El c´digo a utilizar se encuentra dividido en un c´digo principal (genetico.m) que hace uso de subrutinas o o o 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 o 3.2 Preguntas Para tener en cuenta: Un estudio cuantitativo del problema num´rico requiere el an´lisis de un conjunto e a de evoluciones y no de un evento particular como el que se obtiene directamente del c´digo. Sin o embargo creemos que de todas formas es posible realizar un an´lisis interesante. Por esto se proponen a las siguientes preguntas: 3
  • 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? o 4 Adaptaci´n al problema de la producci´n de voz o o 4.1 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 arm´nicos de la frecuencia fundamental. La teor´ cl´sica que permite describir este com- o ıa a portamiento 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 o por esta oscilaci´n viaja de ida y vuelta por el trato vocal y es filtrada, generando un sonido definido. o Aunque no exista un gran control sobre las oscilaciones de las cuerdas vocales, la geometr´ del tracto ıa puede 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 o tal de oscilaci´n 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 codifica la informaci´n de la identidad del hablante. o El estudio de los sonidos voceados puede separarse en dos partes: la din´mica de las cuerdas vocales y a el 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 a extremadamente 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´ ınimo Existen escencialmente dos modelos [1] para estudiar la din´mica de las cuerdas vocales. Ambos est´n a a basados en el mismo principio: las oscilaciones del tejido se inducen por el flujo de aire que pasa a trav´s e de ellas. El modelo m´s 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 coeficiente de elasticidad y de disipaci´n, y sometida a la presi´n intraglotal. Para generar el comportamiento o o oscilatorio, es necesario que la presi´n 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 mod- ıa elo constituye una buena aproximaci´n mientras que el aire en el tracto tenga propiedades inerciales. o 4
  • 5. Cuando las cuerdas se est´n separando, el flujo aumenta y la columna de aire en el tracto se acelera, lo a cual tiende a abrir m´s 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 disipaci´n y la constante de restituci´n, por o o unidad de area, de las cuerdas vocales, y Pg la presi´n 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 presi´n a la entrada del tracto vocal. o Siempre que la frecuencia fundamental de oscilaci´n 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 flujo. El sistema din´mico 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 correcci´n fenomenol´gico a la ecuaci´n de Bernoulli. De la integraci´n de las o o o o ecs. 1, 2 y 3 se obtiene la serie temporal del flujo de aire a trav´s de las cuerdas vocales. e 4.3 Tracto Vocal Seg´n la teor´ fuente-filtro, las cuerdas vocales est´n desacopladas ac´sticamente del tracto vocal, de u ıa a u manera 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 o entrada 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 o longitud li para simular las distintas geometr´ ıas. En cada interfaz, la onda de presi´n es parcialmente o reflejada y transmitida, de manera que a la salida del ultimo tubo se tiene la se˜al de la voz. ´ n 4.4 Biometr´ ıa Una vez construido el modelo completo para generar series temporales sint´ticas de voz, natural- e mente surge ponerlo a prueba como un m´todo biom´trico para reconocer la identidad de las per- e e sonas, aprovechando que sus par´metros est´n relacionados con magnitudes anat´micas y fisiol´gicas a a o o del sistema de producci´n de la voz. o Sin embargo, dado que el espacio de par´metros es multidimensional, la elecci´n del m´todo de ajuste es a o e delicada. La preferencia por un algoritmo gen´tico se ve justificada por dos razones: es de programaci´n e o simple y es f´cilmente adaptable a la paralelizaci´n. a o El problema de la voz es f´cilmente adaptable para ser resuelto por un algoritmo gen´tico. En primer a e lugar, definimos un individuo como la cadena de n´meros que corresponde a los par´metros 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 par´metros ı, a de las cuerdas vocales (ecuaciones 1 y 2); ai y li la secci´n y longitud del i-´simo tubo que aproxima o e al tracto vocal. La expresi´n de este cromosoma (su fenotipo) es el espectro de potencias que genera. o El criterio de selecci´n elegido es trivial: la probabilidad de seleccionar un cromosoma es inversamente o proporcional a la diferencia cuadr´tica entre los espectros de la se˜al experimental y la sintetizada por a n el modelo. En la figura 2 se ve un ejemplo de ambos espectros una vez que el algoritmo encontr´ la o mejor soluci´n. o Los resultados obtenidos con el modelo de una masa para las cuerdas vocales y la aproximaci´n 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 5
  • 6. de una masa parece demasiado simple para dar cuenta de la din´mica de las cuerdas vocales, lo que a resulta en una dispersi´n en los par´metros del modelo que no permiten una distinci´n 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 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 o de 8% y crossover de 40%. La frecuencia est´ en unidades de 102 Hz y la potencia est´ normalizada. a a 4.5 Paralelizaci´n del algoritmo gen´tico o e Una posible implementaci´n en paralelo del algoritmo consiste en definir un nodo principal donde se o separa la poblaci´n 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 adaptaci´n de cada subpoblaci´n, o o y esta informaci´n es devuelta al nodo principal, que aplica los operadores gen´ticos a la poblaci´n o e o completa, generando una nueva poblaci´n que repetir´ el proceso. o a El 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. 4.6 Performance del c´digo en paralelo o En la figura 3 se grafica 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´n vs. cantidad de procesadores para el algoritmo gen´tico 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 dispersi´n 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 n´mero de nodos slaves. u A primer orden, se espera que el tiempo de procesamiento Tp en funci´n del n´mero de procesadores n o u se comporte aproximadamente como Tp (n) ∝ 1/n, mientras que el tiempo de comunicaci´n Tc (n) ∝ n. o Ajustando 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) n con n el n´mero de nodos slaves y α = Tp u slaves (1) el tiempo de procesamiento de 1 nodo slave. Se asume adem´s que el tiempo de procesamiento del master no cambia con la cantidad de slaves. Los valores a obtenidos implican una correcci´n lineal β muy peque˜a frente a α. o n Para estudiar el factor lineal β se usaron logfiles (informaci´n de los tiempos de procesamiento de o cada procesador) generados para distinta cantidad procesadores. Lo que se observa, promediando la sl dispersi´n de los tiempos de procesamiento ∆Tp de los nodos slaves, es que o sl ∆Tp (10) sl ∆Tp (20) > (5) 2 es decir que al usar m´s procesadores la dispersi´n de los tiempos de procesamiento aumenta. La a o diferencia, acumulada a lo largo de la ejecuci´n del c´digo, es del orden de 10 β, que es la correcci´n o o o prevista 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 o del 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