ALGORITMOS FIREFLY (Luciérnaga).
Enviado por Sandra75 • 27 de Abril de 2018 • 1.274 Palabras (6 Páginas) • 301 Visitas
...
(2)[pic 3]
donde I0 es la intensidad de luz original a distancia cero r = 0. Para evitar la singularidad en r = 0 en la expresión Is/r2, el efecto combinado tanto de la ley del cuadrado inverso y la absorción se puede aproximar como la siguiente forma de Gauss:
(3)[pic 4]
Debido a que el atractivo de una luciérnaga es proporcional a la intensidad de la luz vista por luciérnagas adyacentes, ahora se puede definir la atracción β de una luciérnaga por
(4)[pic 5]
donde β0 es la atracción a r = 0. Debido a que muchas veces es más rápido calcular 1/(1 + r2) que una función exponencial, esta función, si es necesario, convenientemente se puede aproximar como
[pic 6]
(5)
Puede ser ventajoso usar esta aproximación en algunas aplicaciones. Ambas (4) y (5) definen un distancia característica = 1/ sobre la cual el atractivo cambia significativamente desde β0 a β0 para la Eq. (4) o β0/2 para la Eq. (5).[pic 7][pic 8][pic 9]
En la implementación actual, la función de la atracción β(r) puede ser cualquier función monótonamente decreciente tal como la siguiente forma generalizada:
(m (6)[pic 10][pic 11]
Para una fija, la longitud característica se convierte en[pic 12]
(7)[pic 13]
A la inversa, para una escala de longitud dada en un problema de optimización, el parámetro γ puede ser utilizado como un valor inicial típico. Es decir,[pic 14]
(8)[pic 15]
La distancia entre dos luciérnagas i y j en xi y xj, es la distancia Cartesiana
(9)[pic 16]
donde xi,k es el componente k-ésimo de la coordenada espacial xi de la i-ésima luciérnaga. En un caso 2D, se tiene
(10)[pic 17]
El movimiento de una luciérnaga i atraída a otra luciérnaga j más atractiva (más brillante), está determinada por
(11)[pic 18]
donde el segundo término es debido a la atracción. El tercer término es la aleatorización, con α siendo el parámetro de la aleatorización, y i es un vector de números aleatorios extraídos de una distribución Gaussiana o una distribución uniforme. Por ejemplo, la forma más simple de i puede ser sustituida por rand-1/2, donde rand es un generador de números aleatorios distribuidos uniformemente en [0,1]. Para la mayor parte de aplicaciones se puede tomar β0 = 1 y α ∈ [0, 1].[pic 19][pic 20]
1.4 Control de la aleatorización
Una mejora adicional en la convergencia del algoritmo es variar el parámetro de aleatorización α de manera que disminuya gradualmente a medida que se está acercando a los óptimos. Por ejemplo, se puede utilizar
(12)[pic 21]
donde t ∈ [0, tmax] es el pseudo tiempo para simulaciones y tmax es el número máximo de generaciones. α0 es el parámetro inicial de la aleatorización, mientras que α∞ es el valor final. También Se puede utilizar una función similar a la del programa de alineación geométrica. Es decir,
(13)[pic 22]
...