El algoritmo firefly  (FA por sus siglas en inglés, "firefly algorithm"; algoritmo luciérnaga en español) es un algoritmo metaheurístico, inspirado en el comportamiento del centelleo de las luciérnagas. El propósito primario de una luciérnaga es generar destellos de luz para actuar como sistema de señal para atraer a otras luciérnagas. Xin-She Yang formuló este algoritmo con las siguientes premisas:[1]​

Todas las luciérnagas son "unisexuales", de modo que cualquier luciérnaga individual será atraída por todas las demás;
La atracción es proporcional a su brillo, y para cualquier par de luciérnagas, la menos brillante será atraída por (y por lo tanto se desplazará hacia) la más brillante; aun así, la intensidad (el brillo aparente) decrece cuando aumenta la distancia entre ambas;
Si no hay luciérnagas más brillantes que una dada, esta se mueve aleatoriamente.El brillo es asociado con los valores de una función objetivo.
El algoritmo firefly es un procedimiento metaheurístico de optimización inspirado en la naturaleza.