## 3 Multi-Objective Optimization
### Differential Evolution Algorithm  
DE algorithm is an effective and robust optimization algorithm, initially proposed to solve unconstrained optimization problems in the continuous domain [26]. The optimization process of the DE algorithm consists of the following phases: initialization, mutation, crossover and selection. The DE algorithms begins the optimization process with a population of \(N_{p}\) individuals \(\left\{\mathbf{x}_{i}|x_{ij}^{(G)}\in\left[x_{j}^{Upper},x_{j}^{Lower} \right]\right\}\)\(\forall i\in\{1,2,\ldots,N_{P}\}\), uniformly and randomly deployed over the feasible solution space, where each individual is represented by an \(n\)-dimensional vector \(\mathbf{x}_{i}=\left[x_{i,1},\ldots,x_{i,j},\ldots,x_{i,n}\right]^{T}\). Therefore, each individual \(\mathbf{x}_{i}\) represents a potential solution to the optimization problem. Every component of the \(i\)th individual should be generated within the upper and lower bounds \(x_{i,j}\in\left[x_{j}^{Upper},x_{j}^{Lower}\right]\). In this regard, the component of the \(i\)th vector is generated according to the following expression  
\[ \begin{array}{ll}x_{i,j}^{(G)}=x_{j}^{Lower}+\left(x_{j}^{Upper}-x_{j}^{Lower }\right)\text{rand}(0,1)\\ &i=1,2,\ldots,N_{P}\wedge j=1,2,\ldots,n,\end{array}  \tag{40}\]  
where \(rand(0,1)\) is a uniformly and randomly generated number in the range \((0,1)\). The mutation operator in DE algorithm is considered to be a random disturbance term, which allows the algorithm to explore the search space and escape from local optima, and in this way keeping the diversity of the population. In the literature, exist several different mutation operators, which have different characteristic and can be suitable for certain type of the optimization problem or particular phase of the optimization process. In this way, the most commonly applied mutation operators include [34]:  
\[\text{DE/rand}/1\] \[\mathbf{x}_{i}^{(G)}=\mathbf{x}_{r_{1}}^{(G)}+F\Big{(}\mathbf{x}_{r_{2 }}^{(G)}-\mathbf{x}_{r_{3}}^{(G)}\Big{)}, \tag{41}\]  
\[\mathbf{x}_{i}^{(G)}=\mathbf{x}_{r_{1}}^{(G)}+F\Big{(}\mathbf{x}_{r_{2}}^{(G)} -\mathbf{x}_{r_{3}}^{(G)}\Big{)}+F\Big{(}\mathbf{x}_{r_{4}}^{(G)}-\mathbf{x}_ {r_{5}}^{(G)}\Big{)}, \tag{42}\]  
\[\mathbf{x}_{i}^{(G)}=\mathbf{x}_{best}^{(G)}+F\Big{(}\mathbf{x}_{r_{1}}^{(G)} -\mathbf{x}_{r_{2}}^{(G)}\Big{)}, \tag{43}\]DE/current-to-best/1  
\[\mathbf{x}_{i}^{(G)}=\mathbf{x}_{i}^{(G)}+F\Big{(}\mathbf{x}_{best}^{(G)}- \mathbf{x}_{i}^{(G)}\Big{)}+F\Big{(}\mathbf{x}_{r_{1}}^{(G)}-\mathbf{x}_{r_{2}}^ {(G)}\Big{)}, \tag{44}\]  
where \(r_{1},r_{2},r_{3},r_{4}\) and \(r_{5}\) represent integers from the set \(\{1,2,\ldots,N_{P}\}\backslash i\) for which \(r_{1}\
eq r_{2}\
eq r_{3}\
eq r_{4}\
eq r_{5}\), \(\mathbf{x}_{best}\) denotes the individual with the minimum objective function value, and \(F\) represents the constant scaling factor \(F\in[0,2]\). After the mutation, in the DE algorithm the crossover operator is applied to increase diversity. According to the binomial crossover the trial vector \(\mathbf{u}_{i}^{(G)}=\left[u_{i,1}^{(G)},\ldots,u_{i,n}^{(G)}\right]^{T}\)is generating by mixing the \(j\)th component of the target \(x_{i,j}^{(G)}\)and the corresponding mutant vector \(u_{i,j}^{(G)}\), according to the expression  
\[u_{i,j}^{(G)}= \begin{cases}v_{i,j}^{(G)},&\text{if }rand_{j}\leq CR \lor j=j_{rand}\\ x_{i,j}^{(G)},&\text{otherwise}\end{cases} , \tag{45}\] \[j=1,\ldots,n\quad,\]  
where \(rand_{j}\) is the random number in the range \((0,1)\), index \(j_{rand}\) is a randomly chosen integer from the set \(\{1,2,\ldots,n\}\) and \(CR\) is the crossover probability such that \(CR\in[0,1]\). Finally, after crossover the selection operator is applied to determine whether the individuals generated by the crossover and mutation operators are better than individuals in the previous generation. Therefore, based on the objective function value of the trial vector and objective function value of the target vector the selection is performed according to the expression  
\[\mathbf{x}_{i}^{(G+1)}=