## 3 Multi-Objective Optimization
### Butterfly Optimization Algorithm  
BOA is a novel meta-heuristic optimization technique that was developed by [PERSON] and [PERSON] [15] in 2010 and has gained popularity due to its ability to solve complex optimization problems in various fields. The BOA algorithm is based on the behavior of butterflies in their search for food and mates. The BOA algorithm mimics the biological system and the behavior of butterflies by creating a population of solutions that are updated and improved over time through a series of iterations, and it is based on the following assumptions:  
1. Every butterfly releases a fragrance that draws other butterflies to it.
2. Butterflies either fly randomly or deliberately toward the butterfly that gives off the strongest fragrance.
3. The objective function value of the butterfly under consideration determines the strength of the butterfly stimulus.  
During the optimization process, the BOA algorithm goes through three phases. Firstly, in the initialization stage, all parameters of the algorithm are set, and the initial population is randomly generated within the bounds of solution feasibility. Next, the iteration stage is repeated until the algorithm converges toward the optimal solution, at which point BOA performs the search for the global optimal solution. Finally, at the optimization stage, the optimal solution is obtained and presented. The iteration stage is performed such that the objective function is evaluated for each butterfly in the population, and based on this value, a fragrance is created. Therefore, the stimulus intensity, denoted as \(I\), for the \(i\)th butterfly can be determined as  
\[I=f\Big{(}\mathbf{x}_{i}^{(G)}\Big{)}, \tag{32}\]  
where \(\mathbf{x}_{i}\) is the \(i\)th butterfly in the population and \(f(\cdot)\) denotes the objective function. Each firefly senses the fragrance, and the degree of the fragrance sensed by the butterfly, designated as \(\varphi_{i}\), can be determined as a function of \(I\) as follows:  
\[\varphi_{i}=cl^{a}, \tag{33}\]  
where \(a\) denotes the power exponent and \(c\) is the sensory fragrance parameter such that \(c\in[0,1]\). Regarding the parameter \(a\), when \(a=0\), other butterflies are unable to smell any butterfly's scent, but there is no fragrance absorption when \(a=1\).  
The movement of each butterfly in the population is decided based on the switch probability \(p\); in this regard, either a global or local search is performed. The global search phase is performed according to the expression  
\[\mathbf{x}_{i}^{(G+1)}=\mathbf{x}_{i}^{(G)}+\Big{(}r^{2}\times\mathbf{g}^{*} -\mathbf{x}_{i}^{(G)}\Big{)}\times\varphi_{i}, \tag{34}\]where \(\mathbf{g}^{*}\) denotes the butterfly that emitted the strongest fragrance, i.e., achieved the best objective function value, and \(r\in[0,1]\) is a uniformly generated random number. The local search is performed using the expression  
\[\mathbf{x}_{i}^{(G+1)}=\mathbf{x}_{i}^{(G)}+\left(r^{2}\times\mathbf{x}_{j}^{(G )}-\mathbf{x}_{k}^{(G)}\right)\times\varphi_{i}, \tag{35}\]  
where \(\mathbf{x}_{j}^{(G)}\) and \(\mathbf{x}_{k}^{(G)}\) are the \(j\)th and \(k\)th butterflies chosen randomly from the solution space. Thus, the movement of the \(i\)th butterfly is described as  
\[\mathbf{x}_{i}^{(G+1)}=\begin{cases}\begin{array}{ll}\mathbf{x}_{i}^{(G)}+ \left(r^{2}\times\mathbf{g}^{*}-\mathbf{x}_{i}^{(G)}\right)\times\varphi_{i},&\text{for }r_{p}<p\\ \mathbf{x}_{i}^{(G)}+\left(r^{2}\times\mathbf{x}_{j}^{(G)}-\mathbf{x}_{k}^{(G )}\right)\times\varphi_{i},&\text{otherwise}\end{array}\end{cases} \tag{36}\]  
where we see that the global search is activated if the randomly generated number \(r_{p}\) is less than \(p\); otherwise, a local search is performed. The iteration stage is repeated until the algorithm converges and the solution is displayed.