# A Hybrid Optimization Algorithm for the Synthesis of Sparse Array Pattern Diagrams
## 2 Quantum Hybrid Particle Swarm Optimization Algorithm Combined with Quantum Behavior  
### Classical Particle Swarm Optimization Algorithm  
As a swarm intelligence optimization algorithm, the classical particle swarm optimization (PSO) algorithm, by virtue of information-sharing and collaborative cooperation among individuals within the swarm, is capable of providing the optimal solutions of single-variable or multi-variable problems and has demonstrated unique advantages in a wide range of optimization fields. Within the framework of the PSO algorithm, \(\mathit{pbest}_{i}\) is defined as the individual optimal position of the \(i\)-th particle up to the \(t\)-th iteration, while _gbest_ represents the current global optimal position of the entire swarm. The update of particle velocity and position follows Equations (1) and (2):  
\[v_{i}(t+1)=W\cdot v_{i}(t)+c_{1}\cdot rand\cdot(pbest_{i}-x_{i}(t))+c_{2}\cdot rand \cdot(gbest-x_{i}(t)) \tag{1}\]  
\[x_{i}(t+1)=x_{i}(t)+v_{i}(t+1) \tag{2}\]  
where \(v_{i}(t)\) and \(x_{i}(t)\) denote the velocity and position of the \(i\)-th particle at the \(t\)-th iteration, respectively; \(W\) denotes the inertia weight, which represents the proportion of the velocity inherited from the previous iteration; \(c_{1}\) and \(c_{2}\) are the learning factors that control the learning degree of the particle's optimal position and velocity; \(rand\) is a random number where \(rand\in(0,1)\). In PSO, parameter settings, especially inertia weight and learning factors, significantly affect iterative performance. Improper inertia weight settings can cause the optimization to converge to local optima prematurely. To address this, a nonlinear inertia weight calculation strategy is proposed [19]:  
\[W=W_{\text{min}}+\frac{(W_{\text{max}}-W_{\text{min}})}{\left(1+e^{(5\times(f _{\text{max}}-0.5))}\right)} \tag{3}\]  
Here, \(W_{\text{max}}=0.9\) and \(W_{\text{min}}=0.4\). The definition of w incorporates an enhanced sigmoid function in the denominator to boost the algorithm's early exploration and late exploitation capabilities [20]. \(f_{\text{normalized}}\) is defined as:  
\[f_{\text{normalized}}=\frac{f-f_{\text{min}}}{f_{\text{max}}-f_{\text{min}}}+ eps \tag{4}\]  
Among them, \(f\) is the current particle fitness value, \(f_{\text{min}}\) and \(f_{\text{max}}\) are the minimum and maximum values of the group fitness, respectively, and a minimum point \(eps\) is added among them to prevent division by zero errors. In the classical particle swarm optimization (PSO) algorithm, the cognitive learning factor \(c_{1}\) and the social learning factor \(c_{2}\) are typically set as fixed parameters. However, in high-dimensional nonlinear optimization problems such as sparse linear array pattern synthesis, the fixed parameter strategy is prone to causing the algorithm to fall into local optima, significantly weakening its global exploration ability. To address this issue, this paper proposes a dynamic adaptive learning factor adjustment mechanism. Compared with the traditional fixed parameter method, this strategy can dynamically adjust the balance between local exploitation and global exploration according to the population evolution state in real time, thereby enhancing the exploration ability in the early iteration to avoid premature convergence and strengthening the exploitation ability in the later stage to improve the convergence accuracy. Theoretical analysis and experimental results indicate that this dynamic adjustment strategy not only significantly enhances the algorithm's ability to escape local maxima but also demonstrates superior performance in terms of convergence speed and optimization accuracy, providing a new idea for complex array pattern optimization problems. \[ \begin{cases}c_{1}=2.8\times\left(1-\left(\frac{t}{T}\right)^{2}\right)\times W \\ c_{2}=\cos(\left(1-\frac{t}{T}\right)\times\frac{\pi}{2})+\sqrt{3}\end{cases}  \tag{5}\]  
In the above two equations, \(t\) represents the current iteration number, and \(T\) represents the total number of iterations.