## 4 PUPSO Approach with the Objective Function of LCOE  
### Updated Partial Swarm Optimization (UPSO) Approach  
With the development of intelligent optimization algorithms, solving engineering computing problems by simulating biological behavior is becoming increasingly popular in a series of practical applications [42]. In this paper, the geometry optimization problem of PCSH wind turbine towers can be expressed as the following equations:  
\[\left\{ \begin{array}{c}Z_{target}=\min f(\mathbf{x})=\min f(\left(x_{1},x_{2}, \cdots,x_{n}\right)^{T})\\ c(\mathbf{x})=\left[h_{1}(\mathbf{x}),h_{2}(\mathbf{x}),\cdots,h_{n}(\mathbf{x})\right]^{T} \leq 0\end{array} \right. \tag{33}\]where \(\mathbf{x}\) is an N-dimensional vector to represent the particle, \(Z_{target}\) is the optimal target, \(f(\mathbf{x})\) is a function to calculate the total cost of the tower and has been described above, and \(c(\mathbf{x})\) is the vector of constraints functions. Both \(f(\mathbf{x})\) and \(c(\mathbf{x})\) are nonlinear functions. The particles are operated by the following equations:  
\[\left\{ \begin{array}{c}v_{q}^{k+1}=w\times v_{q}^{k}+c_{1}\times\xi\times \left(x_{q(best)}-x_{q}^{k}\right)\\ \hskip 14.226378 pt+c_{2}\times\xi\times\left(x_{g(best)}-x_{q}^{k}\right)\\ \hskip 14.226378 ptx_{q}^{k+1}=x_{q}^{k}+v_{q}^{k+1}\end{array} \right. \tag{34}\]  
in which \(v_{q}^{k}\) and \(x_{q}^{k}\) are the speed and position, respectively, of the \(q\)th particle in the \(k\)th loop, \(w\) is the inertia weight, \(c_{1}\) and \(c_{2}\) are the learning factors of the algorithm, \(x_{q(pbest)}\) is the position of the optimal point of the \(q\)th particle in the cycles from 1 st to \(k\)th, \(x_{g(best)}\) is the position of the optimal point of all particles in the periods from 1 st to \(k\)th, and \(\xi\) is an uniformly distributed random number within \((0,1)\). A penalty term in the fitness valuation process is added to coordinate the movement of particles within the feasible region and ensure that the wind turbine tower design fulfills the design constraints. Because the basic PSO algorithm usually encounters premature convergence issues, it is first updated in this paper. The updated PSO (UPSO) is carried out as follows. 1. Weight function's learning factor  
The algorithm with a weight function's learning factor [43] is adopted in this paper to speed up the computation. Unlike the traditional PSO algorithm, the learning factor and inertia weight can be calculated as:  
\[\left\{ \begin{array}{c}w=w_{min}+(w_{max}-w_{min})exp(-20(m/M)^{6})\\ c_{1}=0.5w^{2}+w+0.5\\ c_{2}=2.5-c_{1}\end{array} \right. \tag{35}\]  
where \(m\) is the number of iterations, \(M\) is the maximum number of iterations, \(w\) is the inertia weight, \(w_{min}\) is the minimum inertia weight, \(w_{max}\) is the maximum inertia weight, and \(c_{1}\) and \(c_{2}\) are the learning factors. 2. Random perturbation  
To avoid premature convergence, a random operator is introduced to the optimization process in this paper [23]. The fitness variance of particles is defined as the following equation:  
\[\sigma^{2}=\sum_{i=1}^{n}{(\frac{f_{q}-f_{avg}}{f_{N}})}^{2} \tag{36}\]  
where \(f_{q}\) is the fitness of the \(q\)th particle; \(f_{avg}\) is the average value of fitness of particles; and \(f_{N}\) is the normalized scaling factor, which can be calculated by the following equation:  
\[f_{N}=\left\{ \begin{array}{c}max(\left|f_{q}-f_{avg}\right|),max(\left|f_{q }-f_{avg}\right|)>1\\ 1,others\end{array} \right. \tag{37}\]  
The mutation probability \(p_{m}\) can be calculated by the following equation:  
\[p_{m}=\left\{ \begin{array}{c}\zeta,\sigma^{2}<\sigma_{d}^{2}\\ 0,others\end{array} \right. \tag{38}\]  
where \(\zeta\) takes the values within \([0.1,\ 0.3]\) and \(\sigma_{d}^{2}\) is set to be 0.15.