Bee algorithm

Bee algorithm

The bee algorithm is inspired by the foraging behavior of honey bees. Bees collect nectar from large areas around their hive (over 10 kilometers). It has been observed that bee colonies send bees to collect nectar from flower plots relative to the amount of food available at each plot. The bees communicate with each other at the hive via a dance that informs the other bees in the hive as to the direction, distance and quality rating of food sources.

Bees collect nectar from flower patches as a food source for the beehive. The beehive sends out scouts who locate patches of flowers, who then return to the hive and educate other bees about the fitness and location of a food source via a dance. The scout returns to the field of flowers with following bees. A small number of scouts continue to seek out new sources, while bees returning from flower sources continue to communicate their quality.

The information processing goal of the algorithm is to locate and crawl good sites in a given search space. Scouts are sent out to randomly sample in the definition field and locate the right sites. Good sites are operated through the application of a local search, where a small number of good sites are explored more than others. Good sites are continually mined, although many scouts are sent out with each iteration in search of additional good sites.

The following algorithm provides a pseudocode of the bee algorithm to minimize a cost function.

bee algorithm

The bee algorithm was developed for use with continuous and combinatorial function optimization problems. The Patchsize variable is used as the neighborhood size. For example, in a continuous function optimization problem, each dimension of a site would be sampled with x_i more or less than (rand () * Patchsize). The Patchsize variable is decreased with each iteration, usually by a constant value (such as 0.95). The number of elite sites (EliteSites_num) should be <the number of sites (Sites_num), and the number of elite bees (EliteBees_num) is traditionally <the number of other bees (OtherBees_num).