## 3 Material and Methods
### Methodology
#### 3.2.1 Swarm Intelligence Algorithm  
This paper proposes three swarm algorithms that can solve the FP pollination problem. Such algorithms, which were inspired by the behavior of social insect colonies and other animal societies, are known as Swarm Intelligence (SI) and are one of the most widely used techniques by researchers to solve complex problems [22; 23; 24]. SI, in particular, is frequently used as an inspiration in natural biological systems, involving the collaborative study of the behavior of individuals from populations interacting with one another locally. However, as already explained, we do not use direct fitness evaluations on SI but, instead, a \"idle-mode\" variant. Note that the algorithms operate in concurrent modes, each FP described is calculated at a new position on a periodic schedule within the simulation. There is no looping through all FP individuals or any central control of the algorithm. Moreover, generally all FP repositionings are clamped by not exceeding a maximum distance from the hives. A step _Pollination_ in the following pseudo-codes is, according to the above descriptions, a tree is pollinated under the condition that current FP already carries poll picked up at a different tree in the preceding algorithm steps. **Method 1:** Idle-Jaya  
The Java Algorithm is one of the well-known algorithms used by researchers to solve complex optimization problems. Since this algorithm has no parameters to set, it is known as a simple algorithm. This Algorithm 1 concept is about the same as Particle Swarm Optimization (PSO) [25], but Jaya Algorithm tends toward the best and away from the worst rather than heading to the personal and global best. We used the Idle-Jaya formula in the pseudo-code below and by changing the concept mildly, we moved randomly towards the farther FP and away from the closer FP, which replaces the notion of the best and worst individual in the standard Jaya update formula:  
\[X^{\prime}_{j,k,l}=X_{j,k,l}+r_{1,j,i}\big{(}X_{j,best,i}-|X_{j,k,l}|\big{)}- r_{2,j,i}\big{(}X_{j,worst,i}-|X_{j,k,l}|\big{)} \tag{1}\]  
Notation: \begin{tabular}{l l} \(X_{j,best,i}\) & The value of the variable \(j\) for the best candidate; \\ \(X_{j,worst,i}\) & The value of the variable \(j\) for the worst candidate; \\ \(X^{\prime}_{j,k,l}\) & The updated value of \(X_{j,k,i}\); \\ \(r_{1,j,i}\) and \(r_{2,j,i}\) & Random numbers i.i.d. from [0.1]. \\ \end{tabular}   
In this modification dubbed \"Idle Jaya\", two other FP are randomly selected and the closer one is taken as \"worst\" and the distant one \"best\". ```
1:Initialize each FP position
2:Initialize each Tree position
3:while termination condition not satisfied:
4:\(FP_{current}\) choose two another random FP; \(FP_{1}\) and \(FP_{2}\). 5: Repeat until \(FP_{1}\
eq FP_{2}\). 6: Get position of FP;
7:\(X_{current}=FP_{current}\) position, \(X_{1}=FP_{1}\) position, \(X_{2}=FP_{2}\) position. 8: Calculate distance FP; \(d_{1}=d(X_{current}-X_{1})\), \(d_{2}=d(X_{current}-X_{2})\)
9:if\(d_{1}>d_{2}\):
10:\(X_{far}=X_{1}\); \(X_{near}=X_{2}\). 11:else
12:\(X_{far}=X_{2}\); \(X_{near}=X_{1}\). 13:endif
14:if\(r\) > 0.5 (chance to move to new position):
15: Normalized vector; \(X_{towards}=X_{far}-X_{current}\). 16: Normalized vector; \(X_{away}=X_{near}-X_{current}\). 17: Calculate new position using; \(X_{new}=X_{current}+(r*X_{towards})-(r*X_{away})\). 18: Update new position. 19:endif
20: Calculate distance between FP and nearest Tree; \(d_{tree}=d(X_{new}-X_{tree})\). 21:if\(d_{tree}\leq 3\) (\(T_{nearest}\) found):
22:if FP carry poll of \(T_{poll}\
eq T_{nearest}\):
23: Pollination. 24:endif
25: FP carry poll of \(T_{nearest}\); \(T_{poll}=T_{nearest}\)
26:endif
27:endwhile
```  
**Algorithm 1** The Idle-Jaya. **Method 2:** Idle-CSA  
Crow Search Algorithm (CSA) is a SI algorithm derived from the crow method to store food in a hiding place and to retrieve it when needed. The crow is considered an intelligent bird and [PERSON] [20] has Stated that a foraging crow resembles an optimization process.