## 3 Numerical Experiment  
The original FSS algorithm and the hybrids were implemented using the interpreted Python programming language and such libraries, as SciPy and NumPy. First-order and second-order partial derivatives, required by gradient ascent and [PERSON]'s method, respectively, were computed using finite difference approximation. We benchmarked the described hybrid algorithms on multidimensional test functions for optimization, such as the Sphere [32] function \(f_{1}\), the Styblinsky-Tang function [33]\(f_{2}\), the Rosenbrock [34] function \(f_{3}\) and the Rastrigin [35] function \(f_{4}\). We performed the tests using 3, 5 and 10 dimensions. Additionally, we considered such two-dimensional test functions, as Ackley [32], Matyas [36], Eggholder [37] and Booth [36] functions, defined in Table 1 as \(f_{5}\), \(f_{6}\), \(f_{7}\) and \(f_{8}\), respectively. The Michalewicz [32] function \(f_{9}\) was tested with 2, 5 and 10 dimensions. The cause of this is that according to [32] the approximate optimum values for the Michalewicz function are well known only for these dimensions. The functions from Table 1 were designed to be minimized. However, we solved the dual maximization problem in our experiments, so the functions were multiplied by \(-1\) and then maximized. We spawned 100 agents and ran \(iter_{max}=50\) iterations multiple times for each of the functions, except for the Eggholder. Due to the fact, that the Eggholder function \(f_{7}\) has many local extreme points in its search area, as shown in Figure 1a, we used a population of 512 agents there. The evolutionary-inspired algorithm was preliminary approbated on the two-dimensionalStyblinsky-Tang function \(f_{2}\), the optimization process on 5-th iteration of 25 total is illustrated in Figure 1b. For each of the test runs, the individual step size \(step_{ind}\) was set to be equal to the radius of the search area, and the collective-volitive step size was defined as \(step_{val}=0.5\times step_{ind}\). We used \(\gamma=5\times 10^{-3}\) initial step size for gradient ascent, and \(\varepsilon=10^{-6}\) desired accuracy for both of the two classical optimization algorithms. Iteration limit for each of the classical methods was set to 25. The benchmarks were evaluated on a PC running Ubuntu 18.04 operating system, inside a Docker container with Python, Anaconda, Keras and Jupiter Notebooks software installed. The PC had Intel(r) Core(tm) i7-4770 CPU installed with 8 virtual cores and 3.40 GHz processor clock frequency, 16 GB of RAM and an HDD hard drive. Each of the test functions listed in Table 1 was evaluated 50 times to determine how accurate the algorithms are, compared to each other. We gathered such metrics, as the best function value, mean function value, variance and standard deviation. Here, the best value denotes the closest value to the optimum of the considered fitness function. The results are shown in Table 2 and in Table 3, where the best result in each row is highlighted in bold. We use the FSSN abbreviation for the hybrid algorithm, which is based on fish school search and [PERSON]'s optimization method. The FSSGD abbreviation denotes the hybrid algorithm where gradient ascent is used. Benchmark results for two-dimensional, three-dimensional and ten-dimensional versions of multidimensional functions \(f_{1},\ f_{2},\ f_{3},\ f_{4}\) and \(f_{9}\)