# An Enhanced Discrete Symbiotic Organism Search Algorithm for Optimal Task Scheduling in the Cloud
## 2 Related Work
### Processes of the Discrete Symbiotic Organism Search  
The standard SOS was intended and used for solving problems that are continuous. Problems that are discrete in nature, such as the scheduling of tasks in a cloud computing environment, are solved by utilising the discrete symbiotic organism search (DSOS), which was proposed by [9]; here, the scheduling of the task optimisation problem was formulated as a discrete problem. The continuous variant of the standard SOS was utilised to addressoptimisation problems for which the optimisation variables \(X_{i}\), \(i=1,2,3,\ldots,n\) are continuous, \(X_{i}\in\ \Re\ i=1,2,3,\ldots,n\), but not optimisation problems for which the the variables \(X_{i}\), \(i=1,2,3,\ldots,n\) are a set of elements that are countable. Moreover, the standard SOS works on optimisation variables that are completely continuous, while DSOS is used for optimisation variables that are discrete. In DSOS, the transverse and location of the organisms in the continuous space are mapped out into formulated discrete functions, as displayed in Equations (3)-(8). As proposed by [9], the DSOS algorithm comprises the following three phases. **Initialisation phase:** In this phase, the initial population of the organisms is generated. Each organism includes \(D\) components denoting candidate solutions and a fitness function to decide the level of optimality of the solutions. Thus, each organism corresponds to a decision for encoded task scheduling in a vector with dimensions of \(1\times n\), as depicted in Table 2, where the number of tasks is \(n\). The range of natural numbers \([1,m]\) represents the vector's elements, where the number of virtual machines (VMs) is \(m\). Moreover, the position of the \(kth\) organism in the solution space is \(X_{k}\), and the VM for which task \(j\) is allotted by the scheduler in the organism is \(X_{k}(j)\). **Iterative phase:** In this phase, the organisms' positions are updated by imitating the three stages of symbiotic relationships (mutualism, commensalism, and parasitism). In the mutualism and commensalism stages, \(X^{best}\) updates some portions of the variables, which proceed to function as the memory of the procedure; \(X^{best}\) is the best point visited up until this point by an organism and its neighbors. Consequently, Equations (1) through (4) are utilised to adjust the positions of the organisms chosen in the mutualism stage. \[S_{1}(p)=X_{i}+r_{1}(X^{best}-((X_{i}+X_{j})/2)f_{1}) \tag{1}\]  
\[S_{2}=X_{j}+r_{2}(X^{best}-((X_{i}+X_{j})/2)f_{2}) \tag{2}\]  
\[X_{i}^{*}(q)=\lceil s_{1}(p)\rceil mod\ m+1 \tag{3}\]  
\[X_{j}^{*}(q)=\lceil s_{2}(p)\rceil mod\ m+1 \tag{4}\]  
\(\forall p\in\{1,2,3,\ldots,n\}\ \forall q\in\{1,2,3,\ldots,m\}\)  
where \(X_{i}^{*}\) and \(X_{j}^{*}\) are the changed positions of the \(i\)th and \(j\)th members of the ecosystem; \(i\
eq j\), and \(X_{j}\) is the organism that was selected randomly in the \(i\)th iteration for \(i\
eq j\). \(f1,f2\in\{1,2\}\) are decided randomly, and they make up the benefit factor from the mutual association; \(r_{1},r_{2}\in rand(0,1)\) are random numbers that are uniformly generated in the specified interval, and \(\lceil\rceil\) indicates a ceiling function. In the commensalism stage, an organism's changed position \(X_{i}^{*}\) is found by applying Equations (5) and (6). \[S_{3}(p)=r_{3}(X^{best}-X_{j}) \tag{5}\]  
\[X_{i}^{*}(q)=\lceil s_{3}(p)\rceil mod\ m+1 \tag{6}\]  
\(\forall p\in\{1,2,3,\ldots,n\}\ \forall q\in\{1,2,3,\ldots,m\}\), and \(j\
eq i\), where \(r_{3}\) is also a random number that is uniformly generated between \(-1\) and \(1\). Furthermore, in the parasitism stage, a vector \(X^{p}\), which is known as a parasite, is produced by applying Equations (7) and (8). \[S_{4}(p)=r_{4}X_{i} \tag{7}\]  
\[X^{p}(q)=\lceil s_{4}(p)\rceil mod\ m+1 \tag{8}\] \begin{table}
\begin{tabular}{c c c c} \hline \hline \(T_{1}\) & \(T_{2}\) & \(T_{3}\) & \(T_{4}\) \\ \hline
1 & 1 & 3 & 2 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: An illustration of task scheduling.