## 4 Bee Colony Algorithms
### Benchmark Testing  
The MBC algorithm presented here was implemented in Python. To evaluate its performance, and to compare it to the performance of the widely used ABC algorithm [33], runs were carried out to find global and local minimums of well-known test functions. Despite the fact that all the functions below are generalized for a multidimensional case, and the algorithms can easily be implemented in multidimensional cases, in this work, only a two-dimensional case is explored to allow for easy visualization and to reduce the computational time. The following functions are considered:* _Shekel function_. This is a multidimensional, multimodal, continuous, deterministic function commonly used as a test function for testing optimization techniques [46];
* _Rosenbrock function_. This is a non-convex function, introduced by [PERSON] in 1960 [47], which is used as a performance test problem for optimization algorithms. The global minimum is inside a long, narrow, parabolic-shaped flat valley. To find the valley is trivial. To converge to the global minimum, however, is difficult;
* _Himmelblau function_. This is a multi-modal function used to test the performance of optimization algorithms. The locations of all the minima can be found analytically. However, because they are roots of cubic polynomials, when written in terms of radicals, the expressions are somewhat complicated. The function is named after [PERSON], who introduced it [48];
* _Rastrigin function_. This is a non-convex, non-linear multimodal function. It was first proposed by [PERSON] [49] as a 2-dimensional function and has been generalized by [PERSON] [50]. The generalized version was popularized by [PERSON] and [PERSON] [51] and [PERSON] et al. [52]. Finding the minimum of this function is a fairly difficult problem due to its large search space and its large number of local minima. The definition for each function can be seen in Table 1. The work of the MBC algorithm is illustrated in Figures 4-7. The _light blue_ spots represent processed points, while _red stars_ indicate the extremum found in each location. These pictures are shown for the purpose of demonstrating the movement of the bees. The functions of Shekel and Himmelblau are quite simple in terms of finding extrema, so the number of the best locations and perspective locations in total were chosen the same as the number of the extrema. Since the functions of Rosenbrock and Rastrigin are rather complex functions, despite the fact that they have only one global minimum, we allowed the algorithm to work out more locations to increase the probability of success. Additionally, it is extremely important for us to control the number of function evaluations (NFE). The exact minima and the minima computed by MBC for the four benchmark functions are summarized in Table 2 together with the number of iterations and NFE. As one can see, the algorithm works very well on all benchmarks. Figure 4: Rosenbrock function. Figure 5: Shekel function. Figure 6: Himmelblau function. Figure 7: Rastrigin function. Results from comparative statistical analysis between SBA, ABC and MBC are summarized in Table 5. The average value of the NFEs was the main criterion in the comparison. We performed 100 independent runs for all algorithms. The parameter values used in relation to SBA, ABC and MBC are listed in Tables 6-8, respectively. The notations for the parameters used here are according to [31; 53]. It is easy to see that the SBA does not perform well in the Rastrigin function because it has many local extrema, which is why it converges for a very long time. The ABC works fine in the Rastrigin function, but instead shows weak results in the Rosenbrock function. This is because the Rosebrock function is unimodal, and in our experiment, it has only two dimensions. Conceptually, the ABC should perform better at higher dimensions [33]. Our modification in general works very well, except for the Rastrigin function: the global extremum was reached only 48 times out of 100 launches.