En optimización matemática , el algoritmo de la luciérnaga es una metaheurística propuesta por Xin-She Yang e inspirada en el comportamiento parpadeante de las luciérnagas . [1]
Algoritmo
En pseudocódigo el algoritmo puede enunciarse así:
Comenzar
1) Función objetivo: ;
2) Generar una población inicial de luciérnagas ;.
3) Formular la intensidad de luz I de modo que se asocie con
(por ejemplo, para problemas de maximización, o simplemente ;)
4) Definir el coeficiente de absorción γ
mientras (t < MaxGeneration)
para i = 1 : n (todas las n luciérnagas)
para j = 1 : i (n luciérnagas)
si ( ),
Varía la atracción con la distancia r a través de ;
mover la luciérnaga i hacia j;
Evaluar nuevas soluciones y actualizar la intensidad de la iluminación;
fin si
fin para j
fin para i
Clasifica las luciérnagas y encuentra la mejor actual;
fin mientras
fin
Tenga en cuenta que la cantidad de evaluaciones de la función objetivo por bucle es una evaluación por luciérnaga, aunque el pseudocódigo anterior sugiere que es n × n . (Basado en el código MATLAB de Yang ). Por lo tanto, la cantidad total de evaluaciones de la función objetivo es (cantidad de generaciones) × (cantidad de luciérnagas).
La fórmula de actualización principal para cualquier par de dos luciérnagas es
donde es un parámetro que controla el tamaño del paso, mientras que es un vector extraído de una distribución gaussiana u otra.zae
Se puede demostrar que el caso límite corresponde a la Optimización de Enjambre de Partículas (PSO) estándar. De hecho, si se elimina el bucle interno (para j) y se reemplaza el brillo por el mejor valor global actual , entonces FA se convierte esencialmente en la PSO estándar.
Crítica
En general, las metaheurísticas inspiradas en la naturaleza han recibido críticas de la comunidad científica por ocultar su falta de novedad detrás de metáforas. El algoritmo de la luciérnaga ha sido criticado por diferir de la optimización por enjambre de partículas bien establecida solo de manera insignificante. [2] [3] [4]
Véase también
Referencias
- ^ Yang, XS (2008). Algoritmos metaheurísticos inspirados en la naturaleza . Luniver Press. ISBN 978-1-905986-10-1.
- ^ Almasi, Omid N.; Rouhani, Modjtaba (2016). "Un nuevo enfoque de asignación de membresía difusa y selección de modelos basado en centros de clase dinámicos para la familia SVM difusa utilizando el algoritmo Firefly". Revista Turca de Ingeniería Eléctrica y Ciencias de la Computación . 4 : 1– 19. doi : 10.3906/elk-1310-253 .
Aplicación práctica de FA en conjuntos de datos UCI.
- ^ Lones, Michael A. (2014). "Metaheurísticas en algoritmos inspirados en la naturaleza" (PDF) . Actas de la publicación complementaria de la Conferencia anual de 2014 sobre computación genética y evolutiva . pp. 1419– 1422. CiteSeerX 10.1.1.699.1825 . doi :10.1145/2598394.2609841. ISBN . 9781450328814. S2CID 14997975.
Por otro lado, FA tiene poco que lo distinga de PSO, ya que la ley del cuadrado inverso tiene un efecto similar al hacinamiento y al intercambio de aptitud en EA, y el uso de enjambres múltiples en PSO.
- ^ Weyland, Dennis (2015). "Un análisis crítico del algoritmo de búsqueda de armonía: cómo no resolver sudoku". Perspectivas de investigación de operaciones . 2 : 97– 105. doi : 10.1016/j.orp.2015.04.001 . hdl : 10419/178253 .
Por ejemplo, las diferencias entre la metaheurística de optimización de enjambre de partículas y las metaheurísticas "novedosas" como el algoritmo de la luciérnaga, el algoritmo de optimización de la mosca de la fruta, el algoritmo de optimización de enjambre de peces o el algoritmo de optimización de enjambre de gatos parecen insignificantes.
- ^ Ariyaratne MKA, Pemarathne WPJ (2015) Una revisión de los avances recientes del algoritmo Firefly: un algoritmo moderno inspirado en la naturaleza. En: Actas de la 8.ª conferencia internacional de investigación, 61-66, KDU, publicado en noviembre de 2015, http://ir.kdu.ac.lk/bitstream/handle/345/1038/com-047.pdf?sequence=1&isAllowed=y
Enlaces externos
- [1] Archivos de los programas Matlab incluidos en el libro: Xin-She Yang, Nature-Inspired Metaheuristic Algorithms, segunda edición, Luniver Press, (2010).