Ir al contenido

Usuario:Juan de Anda-suárez/Taller

De Wikipedia, la enciclopedia libre

En Ciencias de la computación, Symmetric-Approximation Energy-Based Estimation of Distribution (SEED)[1]​ es un algoritmo de Optimización global en el esquema de Algoritmo de estimación de distribución, la estructura fundamental de SEED se semienta en Univariate Marginal Distribution Algorithm (UMDA [2]​), en donde se busca aproximar la distribución de Boltzmann mediante la mínima diferencia entre la distribución normal, la aproximación mencionada permite a SEED tener una mejor selección de elementos, ya que la distribución Boltzmann garantiza que la probabilidad de obtener elementos con menor energía (en problemas de maximización) es baja, lo que dota a SEED con un mejor desempeño.

Los Algoritmos evolutivos conciten en proponer diferentes individuos solución distribuidos en el espacio de búsqueda del problema y al conjunto de dichos individuos se le nombra población. Los Individuos son modificados a lo largo de la evolución, mediante tres operadores fundamentales conocidos como cruza, mutación y selección [3]​., SEED está especialmente diseñado para mejorar el operador de selección, como ya se menciono utilizando la distribución de Boltzmann, en la siguiente sección se explica a detalle la modificación al operador de selección de la población.

Fundamentos teóricos[editar]

El algoritmo SEED usa como método de selección de nuevos individuos la función de distribución de probabilidad de Boltzmann la cual es definida por

donde es la función de partición del sistema, entendiéndose a como el nivel de energía ideal al que se desea llegar en el sistema, mientras que representa la función de costo a optimizar. Sin embargo, estimar nueva población directamente de la distribución Boltzmann conlleva a dificultades técnicas, tales como la generación de Número pseudoaleatorio en dicha distribución, de manera que se ha optado en el estado del arte[4]​,[5]​ por estimar la nueva población en términos de los parámetros estadísticos y de la distribución normal, la cual es definida por

Para poder comparar las dos distribuciones de probabilidad en el espacio de probabilidades se han definido diferentes medidas de divergencia destacando para el procedimiento matemático la Jeffrey's divergence, devido a que es una medida que garantiza al menos dos criterios de una métrica, la que ha sido definida como[6]

minimizando la con respecto a el parámetro , nos da como resultado


Comenzamos inicialmente estimando un valor para el parámetro , y considerando que , entonces

donde es la Divergencia de Kullback-Leibler, la cual es derivada parcial por dando como resultado

resolviendo la ecuación anterior mediante Momento central y dando nos como resultado las siguiente ecuación

note se que y , entonces despejando el resultado para tenemos el resultado de

A hora vamos a trabajar en deducir un fórmula para hacer la estimación del parámetro , la cual parte del siguiente resultado

expandiendo la integral anterior tenemos

calculando para , y resolviendo para

Con los resultados teóricos encontrados en la presente sección vamos a construir un nuevo algoritmo para la optimización en el espacio continuo y donde el problema de optimización contenga la restricción de ser de variables independientes.

Algoritmo SEED[editar]

Para construir el algoritmo SEED necesitamos hacer modificaciones a los resultados teóricos presentados en la sección anterior

initialize , , , ,   // initialize state variables
while not terminate do  // iterate
    for  in  do  // sample  new solutions and evaluate them
         = sample_multivariate_normal(mean=, covariance_matrix=)
         = fitness()
     with  = argsort(, )  // sort solutions
     =   // we need later  and        
     ← update_m   // move mean to better solutions 
     ← update_ps   // update isotropic evolution path
     ← update_pc    // update anisotropic evolution path
     ← update_C     // update covariance matrix
     ← update_sigma   // update step-size using isotropic path length
return  or 

Referencias[editar]

  1. De Anda-Suarez, Juan; Carpio-Valadez, Juan Martin; Puga-Soberanese, Hector J.; Calzada-Ledesma, Valentin; Rojas-Dominguez, Alfonso; Jeyakumar, Solai; Espinal, Andres (2019). «Symmetric-Approximation Energy-Based Estimation of Distribution (SEED): A Continuous Optimization Algorithm». IEEE Access 7: 154859-154871. ISSN 2169-3536. doi:10.1109/ACCESS.2019.2948199. Consultado el 15 de junio de 2020. 
  2. Brownlee, Jason. (2012). Clever algorithms : nature-inspired programming recipes. LuLu.com. ISBN 978-1-4467-8506-5. OCLC 826547864. Consultado el 23 de enero de 2020. 
  3. Sivanandam, S. N., author. Introduction to Genetic Algorithms. ISBN 978-3-540-73189-4. OCLC 1066472148. Consultado el 1 de febrero de 2020. 
  4. Valdez, S. Ivvan; Hernández, Arturo; Botello, Salvador (2013-07). «A Boltzmann based estimation of distribution algorithm». Information Sciences 236: 126-137. ISSN 0020-0255. doi:10.1016/j.ins.2013.02.040. Consultado el 15 de junio de 2020. 
  5. Gallagher, Marcus; Frean, Marcus (2005-03). «Population-Based Continuous Optimization, Probabilistic Modelling and Mean Shift». Evolutionary Computation 13 (1): 29-42. ISSN 1063-6560. doi:10.1162/1063656053583478. Consultado el 15 de junio de 2020. 
  6. «An invariant form for the prior probability in estimation problems». Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences 186 (1007): 453-461. 24 de septiembre de 1946. ISSN 0080-4630. doi:10.1098/rspa.1946.0056. Consultado el 15 de junio de 2020.