## 3 Manipulation of Swarms Positions and Space Solution Using Multi-Threaded Techniques
After \(r=\lambda\%t\) of all iteration \(t\), each core \(k\) is evaluated as  
\[\Phi_{k}=\alpha\frac{\sum_{i=1}^{r}f(\overline{x_{i}})}{n}+\beta f(\overline{ x}_{best}), \tag{34}\]where \(\alpha+\beta=1\) and they are coefficients describing the importance of a given part - the average of all individuals and the best individual on the current thread. We choose the \(p\) best areas and repeated the movement of population on each core in the sum of these areas by \((100-\chi)\%\) of the iteration and \((100-\chi)\%\) of the individuals. If the case, when individuals leaves the area, he is killed and a new individual is created in his place. After all iteration, the best solution is funded in all populations. In this proposition, the multi-threading technique has a big role because dividing the space and choosing the best areas does not cost extra time and above all, it allows the placement of most individuals in a smaller area in parallel several times. These actions are described in Algorithm 8  
```
1:Start,
2:Define the solution space \(a\times b\), the size of population \(n\), the number \(t\) of iterations and a fitness function \(f\),
3:Detect the number \(pc\) of processor cores,
4:Divide and assign the given areas to threads through Equations (29) and (30),
5:for each thread do
6: Create a population of \(\chi\%n\) individuals at random,
7:\(T:=0\),
8:for\(T<\chi\%t\)do
9: Move the individuals in population,
10:\(T++\),
11:endfor
12:endfor
13:Rate populations on each thread and select the best,
14:Define new solution space using the best areas,
15:for each thread do
16: Create a population of \((100-\chi)\%n\) individuals at random,
17:\(T:=0\),
18:for\(T<(100-\chi)\%t\)do
19: Move the individuals in population,
20:\(T++\),
21:endfor
22:endfor
23:Choose and return the best individuals in all populations,
24:Stop. ### Proposition III

Our last proposition is the combination of the above two propositions with some modifications. At first, we dividing solution space according to (29) and (30). Having the number of areas, threads can be created. \(\chi^{\prime\prime}\)% of all individuals are created in each area for \(\chi^{\prime\prime}\)%_f_ iterations. The occurring \(\chi\) for iterations and populations may have different values. To simplify the introduction of a large number of parameters, we assume that they have the same value. At the end, in each population, the best individuals stays, the rest of them is destroyed. For each survived individual (which are identify with the best solutions), a group is formed exactly like in Section 3.1 but the size of group should not be greater than 50% of all \(n\). Next, all individuals moves for the rest of iterations. In addition, then, the population size is replenished (if the size is smaller than \(n\)) in a random way throughout the area. ## 4 Test Results

All presented propositions have been implemented along with extended versions with the proposed multi-threading technique. All tests were carried out on the six-processor Intel Core i7 6850K clocked at 3.6 GHz. ### The Benchmark Functions

Proposed solutions were tested on different 10 functions described in \[a=\langle a_{1},a_{2}\rangle=\left\langle a_{1},\frac{a_{2}}{pc}\right\rangle \cup\bigcup_{k=1}^{pc-1}\left\langle\frac{ka_{2}}{pc},\frac{a_{2}}{pc}(k+1) \right\rangle. \tag{27}\]0 All these functions were given in dimension \(D=100\). The selected functions are the representatives of different types like bowl, plate, valley shaped and with many local minima. ### Experimental Settings

In experiments, we used described version of classical meta-heuristic algorithms. For all tests, we used the same numbers of iterations \(t=100\) and population size of 100 individual and \(\chi=10\). For each test, 100 measurements were taken and averaged. The tests were performed in terms of performance depending on the number of cores and as regards the accuracy of averaged solutions. The coefficients used by all the algorithm have been selected before the start of operation.