# MAOA: A Swift and Effective Optimization Algorithm for Linear Antenna Array Design
## 2 Related Works
### Original AOA Algorithm  
The AOA was introduced by [PERSON] et al. in 2021 [34], and it is a recently developed metaheuristic algorithm influenced by the dynamic behaviors of four basic arithmetic operations, i.e., addition, subtraction, multiplication, and division. Similar to most metaheuristic procedures, the search mechanisms of AOA consist of three primary phases known as initialization, exploration, and exploitation. These phases work together to strategically guide the population through the solution space, balancing global exploration with local exploitation. In the context of optimization, each AOA solution represents a candidate solution for the given problem. Let \(X_{n}=[X_{n,1},\dots,X_{n,d},\dots,X_{n,D}]\) denote the position vector of the n-th AOA solution, where \(n=1,\dots,N\) represents the population index, \(N\) is the population size, \(d=1,\dots,D\) indicates the dimensionality index, and \(D\) is the total number of dimensions for the problems to be optimized. During the phase of initialization in AOA, a population of solutions is randomly created within predefined search limits to address the optimization problem. For each n-th solution, the initial position value for the d-th dimension is randomly generated from a uniform distribution as follows:  
\[X_{n,d}=X_{d}^{L}+rand\times\Big{(}X_{d}^{U}-X_{d}^{L}\Big{)} \tag{6}\]  
where \(rand\) is a random real-valued number that ranges between 0 and 1, and \(X_{d}^{U}\) and \(X_{d}^{L}\) denote the lower and upper bounds of the search space in the \(d\)-th dimension, respectively. During the iterative search process of AOA, the math optimizer accelerated (MOA) function plays a crucial role in balancing exploration and exploitation. It determines which arithmetic operators are used to update the specific dimension of a solution based on the current stage of the optimization process. The MOA function is mathematically defined as follows:  
\[MOA(\tau)=A^{min}+\tau\times\left(\frac{A^{max}-A^{min}}{\tau^{max}}\right) \tag{7}\]  
where \(\tau\) represents the present iteration count, \(\tau^{max}\) denotes the maximum iteration count, and \(A^{max}\) and \(A^{min}\) denote the upper and lower bounds of the MOA function, respectively. Based on MOA values, AOA offers a dynamic decision-making process throughout the procedure to estimate whether the d-th dimension of each n-th solution should undergo exploration or exploitation. This decision is made by creating a random number \(r_{1}\) and comparing its value with the threshold value of MOA. If \(r_{1}<MOA\), the AOA enters the exploration phase; otherwise, it undergoes for exploitation phase. By taking advantage of their propensity for high dispersion and scattered values, the multiplication and division operators are used to increase solution space coverage and encourage solution diversity during the AOA discovery phase. Let \(X_{n,d}^{New}\) denote the updated position vector for the n-th AOA solution in the d-th dimension. The update is performed during the exploration phase as follows:  
\[X_{n,d}^{New}=\left\{ \begin{aligned} X_{d}^{best}\div(MOP+\chi) \times\big{(}\big{(}X_{d}^{U}-X_{d}^{L}\big{)}\times 0.5+X_{d}^{L}\big{)},& \text{if }r_{2}<0.5\\ X_{d}^{best}\times MOP\times\left(\big{(}X_{d}^{U}-X_{d}^{L} \big{)}\times 0.5+X_{d}^{L}\right),&\text{otherwise}\end{aligned} \right. \tag{8}\]where \(X_{d}^{best}\) represents the d-th dimension of the current best solution in AOA, \(r_{2}\) is a random real-valued number ranging between 0 and 1, \(\chi\) is a parameter to prevent the division by zero, and the math optimizer probability (MOP) is a crucial control parameter governing the dynamics of solution updates throughout the search process. The MOP is defined as follows:  
\[MOP=1-\frac{\tau^{\frac{1}{\alpha}}}{(\tau^{max})^{\frac{1}{\alpha}}} \tag{9}\]  
where \(\alpha=5\) represents a scaling factor that controls exploitation accuracy by modulating the intensity of the search process based on the current iteration numbers.