## 3 Materials and Methods
### Particle Swarm Optimization (PSO)  
PSO is an optimization technique that is used to solve multimodal optimization problems. The technique is based on swarms of birds or schools of fishes, where possible solutions are generated as swarms of particles and each position represents a possible solution. Two values, i.e., velocity and position, are used to represent a particle. Initially, random positions are used for all particles. The particles move in the search space to find the best solutions. Two factors, i.e., pbest, which refers to a particle's best position, and gbest, which refers to the global best position, influence the final solution. The position and velocity are updated in each iteration of the execution [8]. Equation (12) shows the function for calculating the velocity [29].  
\[v_{id}^{t}=wv_{id}^{t-1}+c1r1(pbest_{id}^{t}-x_{id}^{t})+c2r2(gbest_{id}^{t}- x_{id}^{t}) \tag{12}\]  
In Equation (12), \(v_{id}^{t}\) represents the velocity of the dimension \(d\) of the particle \(i\) in time \(t\). Equation (13) is used to update the position of a particle. In Equation (13), \(p_{id}^{t}\) refers to the position of particle \(i\) at time \(t\) in the \(d_{th}\) dimension, and \(v_{id}^{t}\) is the velocity calculated in Equation (12) [13].  
\[p_{id}^{t+1}=p_{id}^{t}+v_{id}^{t} \tag{13}\]  
The fitness of the solution is calculated with the minimum and maximum values of energy consumption, makespan, and load balancing. The weight factor is used for each parameter. In the experiments of this article, an equal weight, i.e., 0.33, was used for all parameters. Equation (14) is used to calculated the fitness value [13].  
\[Fitness=w\frac{max^{cc}-ec}{max^{cc}-min^{cc}}+w\frac{max^{lb}-lb}{max^{lb}-min ^{lb}}+w\frac{max^{ms}-ms}{max^{ms}-min^{ms}} \tag{14}\]  
The scheduling problem can be formulated as a multi-objective optimization problem. The problem is represented with \(m\) decision vectors \(x\) = (\(x_{1}\),..., \(x_{m}\)) \(\in X\) in search space X and \(n\) objectives \(y\) = (\(y_{1}\),..., \(y_{n}\)) \(\in Y\) in objective space Y, as shown in Equation (15) [13].  
\[min(y=f(x)=[f_{1}(x),\ldots,f_{n}(x)]) \tag{15}\]  
As the problem is considers multiple objectives, it is difficult to claim an optimal solution for all objectives. Usually, the Pareto optimal set is taken from many solutions. The Pareto optimal set is a solution that is considered optimal for a set of objectives. For two decision vectors \(x^{1}\) and \(x^{2}\), the dominance of decision vector \(x^{1}\) over \(x^{2}\) is defined as shown in Equation (16). The equation shows that the decision vector \(x^{1}\) is as good as \(x^{2}\) for all objectives, and \(x^{1}\) is strictly superior to \(x^{2}\) in at least one objective [13].  
\[x^{1}\prec x^{2}\iff\forall f_{i}(x^{1})\leq f_{i}(x^{2})\wedge\exists jf_{j}( x^{1})<f_{j}(x^{2}) \tag{16}\]  
If none of the decision vectors in the solution space dominate the decision vector \(x^{1}\), then \(x^{1}\) is said to be Pareto optimal, as shown in Equation (17) [13].  
\[\
exists x^{2}\in X:x^{2}\prec x^{1} \tag{17}\]  
A Pareto optimal set consists of all Pareto optimal decision vectors, as shown in Equation (18), and the Pareto optimal front refers to the image of the Pareto optimal set, as shown in Equation (19) [13].  
\[P_{S}=\{x^{1}\in X,|\
exists x^{2}\in X:x^{2}\prec x^{1}\} \tag{18}\]  
\[P_{F}=\{f(x)=(f_{1}(x),\ldots,f_{n}(x))|x\in P_{S}\} \tag{19}\]