| ) Initialization phase |
| () Food Number = , that is, the number of food sources equals to half of the colony size |
| () Based on the opposition-based learning of population initialization as in Section 3.1 |
| () Calculate their fitness values |
| () Based on -type sub-population grouping described in Section 3.2 |
| () trial = zeros (1, Food Number). Initialize trial counters to be zeros |
| () Initialize elitists to be food sources |
| () Memorize the best food source |
| Iter = 0; |
| while Iter max iteration |
| Select a better elitist by sensitivity-pheromone option in Section 3.3 |
| () Employed bees phase |
| for = 1 to Food Number |
| () Update step length of each food source by (7) and generate a new solution by (10) |
| () Evaluate the new solution |
| () Iter = Iter + 1 |
| () A sensitivity-pheromone selection is applied between the current solution and its mutant. |
| If the mutant solution is better than the current solution , replace the solution |
| with the mutant and reset the trial counter of solution . Otherwise, increase |
| its trial counter. |
| end |
| Calculate probabilities using (6) |
| () Onlooker bees phase |
| () Select a food source by sensitivity-pheromone method in Section 3.3 |
| () For each onlooker bee, update step length of each food source by (7) and generate a new solution by (10) |
| () Iter = Iter + 1 |
| () A sensitivity-pheromone selection is applied between the current solution and its mutant. |
| If the mutant solution is better than the current solution, replace the solution |
| with the mutant and reset the trial counter of solution. |
| Otherwise, increase its trial counter. |
| The optimal solution is memorized |
| () Scout bees phase |
| () Determine the food sources whose trial counter exceeds the “limit” value, |
| and only one scout bee is allowed to occur in each iteration |
| () Use a scout bee to carry out randomly search |
| if Food Number max iteration |
| end while |
| Return the optimal solution |