| Algorithm 1: Pseudo-code of the NEDWOA |
|
Input: number of search agents: N, Dim, and Max_Iter Output: optimal fitness value Initialize position of every individual whale Calculate the fitness value for all search agents The search agent with the best fitness was selected as the lead whale While lter < Max_Iter Calculating the nonlinear convergence factor a by the Equation (1) Calculating the dynamic parameter self-adaptation σ2(t) by the Equation (3) Calculating the spiral coefficient b by the Equation (4) Calculating the random search probability p by the Equation (5) Calculating the coefficient vector A by the Equation (7) Calculating the coefficient vector D by the Equation (8) Assign random numbers between [−1, 1] to l and between [0, 1] to rrand, respectively, If (p < 0.5) If (|A| < 1) Update the position of the current search agent by the Equation (6) else if (|A| ≥ 1) Select a random search agent Xrand Update the position of the current search agent by the Equation (12) End if else if (p ≥ 0.5) Update the position of the current search by the Equation (11) End if End for Update the current position of whale populations using elite opposition-based learning by the Equation (2) Update a, σ, l, b, and p Check if the agent is out of the search boundary and correct it Calculate the fitness value for all search agents Sort populations in ascending order according to fitness The search agents are sorted in ascending order according to the fitness value Update X* if there is a better solution Iter = Iter + 1 End while Return X* and optimal fitness value |