# Algoritmo de murciélago

El algoritmo de murciélago es un tipo de algoritmo metaheurístico de optimización desarrollado por Xin-She Yang en 2010. Está basado en la ecolocalización, comportamiento presentado en algunas especies de micromurciélagos con índices de pulso variable de emisión y volumen.

## Descripción del algoritmo

La modelización de la ecolocalización de los micromurciélagos puede ser resumida como sigue: cada murciélago virtual vuela aleatoriamente con una velocidad vi en la posición xi (solución) con una frecuencia variable o longitud de onda y un volumen Ai. Mientras busca y encuentra su presa, cambia de frecuencia, volumen e índice de emisión del pulso $r$. La búsqueda está intensificada por un camino aleatorio local. La selección del mejor destino continúa hasta alcanzar ciertos criterios de parada. Para esto se utiliza esencialmente una técnica de ajuste de frecuencia para controlar el comportamiento dinámico de un enjambre de murciélagos, y el equilibrio entre exploración y explotación puede ser controlado ajustando los parámetros dependientes en el algoritmo de murciélago.
Yang ha facilitado una introducción detallada de los algoritmos metaheurísticos que incluyen el algoritmo de murciélago, incluyendo una demostración disponible en Matlab/Octave, mientras una revisión exhaustiva está siendo llevada a cabo por Parpinelli y Lopes. Una mejora más avanzada es el desarrollo de un algoritmo de evolución de murciélagos (EBA) más eficiente.
Una demostración en Matlab está disponible en el Matlab exchange.

## Multi-Algoritmo de Murciélago Objetivo (MOBA)

Utilizando una sencilla suma de pesos con pesos aleatorios, un muy efectivo pero todavía sencillo algoritmo multiobjetivos de murciélago (MOBA) ha sido desarrollado para solucionar tareas multiobjetivo de diseño de ingeniería. Otro algoritmo multiobjetivo de murciélago se consigue combinando el algoritmo de murciélago con NSGA-#II, lo que produce resultados muy competitivos con buena eficiencia.

## Algoritmo de Murciélago Embedded con FLANN (BAT-FLANN)

El modelo BAT-FLANN fue propuesto por Sashikala y otros colaboradores en 2012 para solucionar la clasificación de datos de expresión del gen. Utilizando frecuencia de murciélago, volumen y pulso de adaptación lógicos simples y peso aleatorio, se puede diseñar un algoritmo muy eficaz que da resultados prometedores.

## Algoritmo de Murciélago Artificial dirigido (DABA)

El Algoritmo de Murciélago Artificial dirigido fue propuesto por Rekaby en agosto de 2013. Este algoritmo simula el sistema de eco de los murciélagos, y cómo utilizan este sistema para hallar presas y para evitar obstáculos. En esta investigación, queda probada la eficiencia del algoritmo DABA en comparación con los resultados del Algoritmo ABC.

## Algoritmo de Murciélago binario (BBA)

El Algoritmo de Murciélago binario fue propuesto por Mirjalili y otros en 2014. Una función de transferencia "V-shaped" fue empleada para permitir a BBA solucionar problemas binarios.

## Aplicaciones

El Algoritmo de murciélago ha sido utilizado para diseño de ingeniería. Las clasificaciones de datos de expresión del gen está hecha mediante el modelo BAT-FLANN de Sashikala Mishra, Kailash Shaw y Debahuti Mishra. Un agregado difuso de murciélagos ha sido desarrollado para solucionar problemas de puestos de trabajo ergonómicos. Una aproximación interesante que utiliza el algoritmo murciélago y sistemas difusos ha mostrado una correspondencia fiable entre predicción y datos reales para una modelización "exergy" (uso eficiente de energía).
Una comparación detallada del algoritmo de murciélago (BA) con el algoritmo genético (GA), PSO y otros métodos para entrenar redes neuronales feedforward concluyeron claramente que BA tiene ventajas sobre los otros algoritmos.