/ABC_Matlab

An Implementation of Nature Inspired Artificial Bee Colony Algorithm coded in MATLAB.

Primary LanguageMATLAB

ABC-Matlab

The colony of artificial bees contains three groups of bees: em- ployed bees, onlookers and scouts. The employed bees bring loads of nectar from the food resource to the hive and may share the information about food source in the dancing area. These bees carry information about food sources and share them with a certain probability by dancing in a dancing area in the hive. The onlooker bees wait in the dances area for making a decision on the selection of a food source depending on the probability delivered by employed bees. The computation of probability is based on the amounts of the food source. The other kind of bee is scout bee that carries out random searches for new food sources. The employed bee of an abandoned food source becomes a scout and as soon as it finds a new food source it becomes employed again. In other words, the each search cycle of the ABC algorithm contains three steps. First, the employed bees are sent into their food sources and the amounts of nectar are evaluated. After sharing this information about the nectar, onlooker bees select the food source regions and evaluating the amount of nectar in the food sources. The scout bees and then chosen and sent out to find the new food sources. The artificial bee colony (ABC) algorithm was proposed by Karaboga and Basturk (2008). In this algorithm, the position of a food source zi represents a possible solution to the optimization problems and the amount of nectar in a food source corresponds to the fitness fit(zi) of the corresponding solution. The number of employed or onlooker bees is generally equal to the number of solutions in the population of solutions. Initially, the ABC algorithm randomly produced a distributed initial population P of SN solu- tions, where SN denoted the number of employed bees or onlooker bees. Each solution zi (i = 1, 2, . . . , SN) is a D-dimensional vector. Here D is the number of optimization parameters. In each execution cycle, C (C = 1, 2, . . . , MCN), the population of the solutions is subjected to the search processes of the employed, the onlooker and scout bees. An employed bee modifies the possible solution depending on the amount of nectar (fitness vale) of the new source (new solution). If there is more nectar in new solution is than that in the precious one, the bee remembers the new position and forgets the old one, otherwise it retains the location of the previous one. When all employed bees have finished this search process, they deliver the nectar information and the position of the food sources to the onlooker bees, each of whom chooses a food source according to a probability proportional to the amount of nectar in that food source. The probability pi of selecting a food source zi is determined. In practical terms, any food source zi (i = 1, 2, . . . , SN) sequentially generates a random number between [0, 1] and if this number is less than pi, an onlooker bee are sent to food source zi and produces a new solution based on Eq. (1). If the fitness of the new solution is more than the old one, the onlooker memorizes the new solution and shares this information with other onlooker bees. Otherwise, the new solution will be discarded. The process is repeated until all onlookers have been distributed to the food sources and pro- duces the corresponding new solution. If the position of food source can not be improved through the predetermined number of ‘‘limit’ of bees, then the food resource zi is abandoned and then the employed bee becomes a scout. Assume that the abandoned source is zi and j e {1, 2, . . . , D}, then the scout discovers a new food source to be replaced with zi. If the new solution is better than the abandoned one, the scout will become an employed bee. The selec- tion of employed bees, onlooker bees and scouts is repeated until the termination criteria have been satisfied.