# Hybrid Arctic Puffin Algorithm for Solving Design Optimization Problems
## 3 Hybrid Arctic Puffin Optimization (APO) with JADE
### Mathematical Model
#### 3.1.3 Hybrid JADE-APO Loop  
The optimization process alternates between the mechanisms of JADE and APO, iteratively refining the solution. This loop continues for a specified maximum number of iterations (\(Max\_iter\)). JADE Mechanism  
During the initial half of the iterations, the algorithm operates under the JADE mechanism:  
Evaluate the fitness of the current population:  
\[\text{fitnessP}(i)=f_{\text{obj}}(P(i,:))\]  
where fitnessP\((i)\) represents the fitness value of the \(i\)-th individual in the population \(P\), computed using the fitness function \(f_{\text{obj}}\). The notation \(P(i,:)\) denotes the \(i\)-th individual across all dimensions. Dynamically update \(CR\) and \(F\) using normal and Cauchy distributions:  
\[CR(i) =\mathcal{N}(uCR,0.1)\quad\text{(while $CR(i)>1$ or $CR(i)<0$)} \tag{25}\] \[F(i) =\mathcal{C}(uF,0.1)\quad\text{(while $F(i)\leq 0$)} \tag{26}\]  
As outlined in the equations, \(CR(i)\) denotes the crossover probability for the \(i\)-th individual, sampled from a normal distribution \(\mathcal{N}\) with mean \(uCR\) and standard deviation 0.1. Similarly, \(F(i)\) represents the scaling factor for differential mutation, sampled from a Cauchy distribution \(\mathcal{C}\) with location \(uF\) and scale 0.1. Both parameters are dynamically constrained to remain within their valid ranges. Mutant vectors are generated using the current-to-pbest mutation strategy, as described in Equation (27):  
\[V_{i}^{(t+1)}=X_{i}^{t}+F\cdot(X_{pbest}^{t}-X_{i}^{t})+F\cdot(X_{r1}^{t}-X_{r2 }^{t}) \tag{27}\]  
Here, \(V_{i}^{(t+1)}\) represents the mutant vector for the \(i\)-th individual at generation \(t+1\), \(X_{i}^{t}\) is the current position of the \(i\)-th individual, \(X_{pbest}^{t}\) is the position of the \(p\)-best individual, and \(X_{r1}^{t}\) and \(X_{r2}^{t}\) are the positions of two randomly selected individuals. \(F\) serves as the scaling factor for mutation. Crossover is applied to generate trial vectors, as expressed in Equation (28):  
\[U_{i}^{(t+1)}= \begin{cases}V_{i}^{(t+1)}&\text{if rand}_{j}\leq C_{r}\text{ or }j=j_{rand}\\ X_{i}^{t}&\text{if rand}_{j}>C_{r}\text{ and }j\
eq j_{rand}\end{cases}  \tag{28}\]  
In this equation, \(U_{i}^{(t+1)}\) represents the trial vector generated for the \(i\)-th individual. The crossover operation combines the mutant vector \(V_{i}^{(t+1)}\) and the current vector \(X_{i}^{t}\) based on a crossover probability \(C_{r}\). A randomly selected index \(j_{rand}\) ensures that at least one dimension is taken from the mutant vector. The fitness of trial vectors is evaluated, and the population is updated as shown in Equation (29):  
\[X_{i}^{(t+1)}= \begin{cases}U_{i}^{(t+1)}&\text{if }f(U_{i}^{(t+1)})\leq f(X_{i}^{t}) \\ X_{i}^{t}&\text{otherwise}\end{cases}  \tag{29}\]  
Here, \(X_{i}^{(t+1)}\) represents the updated position of the \(i\)-th individual. If the fitness value of the trial vector \(f(U_{i}^{(t+1)})\) is better than or equal to the fitness of the current vector \(f(X_{i}^{t})\), the trial vector replaces the current vector; otherwise, the current vector is retained. APO Mechanism  
During the second half of the iterations, the algorithm employs the APO mechanism. The behavioral conversion factor \(B\) is calculated using Equation (30):  
\[B=2\log\biggl{(}\frac{1}{\text{rand}}\biggr{)}\biggl{(}1-\frac{l}{Max\_iter} \biggr{)} \tag{30}\]  
Here, \(B\) represents the factor that modulates the balance between exploration and exploitation, rand is a uniformly distributed random number, \(l\) is the current iteration, and \(Max\_iter\) denotes the maximum number of iterations. Positions are updated using [PERSON] flight and swooping strategies, as expressed in Equation (31):  
\[Y=X+\text{Levy}(dim)\cdot(X-X_{rand})+\text{round}(0.5\cdot(0.05+\text{rand}) )\cdot\text{randn} \tag{31}\]  
Here, \(Y\) represents the updated position, \(X\) is the current position, \(\text{Levy}(dim)\) represents the [PERSON] flight operator, \(X_{rand}\) is a randomly selected position, and randn is a normally distributed random number.