Algoritmo de abeja

Algoritmo de abeja

El algoritmo de la abeja está inspirado en el comportamiento de búsqueda de alimento de las abejas melíferas. Las abejas recolectan néctar de grandes áreas alrededor de su colmena (más de 10 kilómetros). Se ha observado que las colonias de abejas envían abejas a recolectar néctar de los parches de flores en relación con la cantidad de alimento disponible en cada parche. Las abejas se comunican entre sí en la colmena a través de un baile que informa a otras abejas en la colmena sobre la dirección, distancia y calificación de calidad de las fuentes de alimento.

Las abejas recolectan néctar de los parches de flores como fuente de alimento para la colmena. La colmena envía exploradores que localizan parches de flores, quienes luego regresan a la colmena e informan a otras abejas sobre el estado físico y la ubicación de una fuente de alimento a través de un baile. El explorador regresa al campo de flores con abejas seguidoras. Un pequeño número de exploradores continúa buscando nuevas fuentes, mientras que las abejas que regresan de las fuentes de flores continúan comunicándose sobre su calidad.

El objetivo de procesamiento de información del algoritmo es localizar y rastrear buenos sitios en un espacio de búsqueda determinado. Se envían exploradores para tomar muestras al azar en el campo de definición y localizar los sitios correctos. Los buenos sitios son operados a través de la aplicación de un busqueda local, donde un pequeño número de buenos sitios se exploran más que otros. Los buenos sitios se extraen continuamente, aunque se envían muchos exploradores con cada iteración en busca de buenos sitios adicionales.

El siguiente algoritmo proporciona una pseudocódigo del algoritmo de la abeja para minimizar una función de costo.

algoritmo de abeja

El algoritmo bee fue desarrollado para su uso con problemas de optimización de funciones continuas y combinatorias. La variable Patchsize se utiliza como el tamaño de la vecindad. Por ejemplo, en un problema de optimización de función continua, cada dimensión de un sitio se muestrearía con x_i mayor o menor que (rand()*Patchsize). La variable Patchsize se reduce con cada iteración, normalmente en un valor constante (como 0,95). El número de sitios de élite (EliteSites_num) debe ser < el número de sitios (Sites_num), y el número de abejas de élite (EliteBees_num) es tradicionalmente < el número de otras abejas (OtherBees_num).

Compartir, repartir