## 2 Basic Theory
### Improved Fireworks Model  
FWA is the simulation of the whole fireworks explosion process [29]. Fireworks exploded to make sparks, the sparks make more new sparks at the same time, so as to constitute rich patterns. Converting the process of fireworks explosion into the calculation process of FWA, fireworks to be seen as feasible solutions of the problem, and the process of spark generation is understood as the process of finding the optimal result. In the process of solving the optimal solution, the influencing factors of FWA include the number of sparks, the blast radius, and a best group of fireworks and sparks which the next explosion selects. FWA has a self-regulation mechanism with good local search and global search capabilities. In FWA, the explosion radius and explosion spark quantity of each firework is dissimilar. Fireworks with a larger explosion radius and a poor fitness value give fireworks more \"ability to explore\"-exploration ability. While the firework with a good fitness value owns a smaller explosion radius, enabling it to have a greater \"ability of excavation\" -exploitability around the location. Furthermore, the introduction of Gaussian mutation sparks can further enrich the diversity of a population. Therefore, it can be seen that the three main components of FWA are explosion operator, mutation operator and selection strategy. (1) Explosion operator. According to fitness value of fireworks, the amount of spark and explosion radius produced by each fireworks explosion can be obtained. The calculation formulas of spark number \(S_{i}\) and explosion radius \(A_{i}\) are as follows towards the fireworks \(x_{i}\) (\(l=1,2,\ldots,N\)). \[S_{i}=M\times\frac{y_{max}-f(x_{i})+\varepsilon}{\sum_{i=1}^{N}(y_{max}-f(x_{ i}))+\varepsilon} \tag{7}\]  
\[R_{i}=\hat{R}\times\frac{f(x_{i})-y_{min}+\varepsilon}{\sum_{i=1}^{N}(f(x_{i}) -y_{min})+\varepsilon} \tag{8}\]  
In Formulas (7) and (8), \(y_{max}\), \(y_{min}\) denote the maximum and minimum fitness value of the current population respectively; the fitness value of the fireworks \(x_{i}\) denotes expressed in \(f(x_{i})\); and \(M\) adjusts the quantity of explosive sparks as a constant; in addition, \(\hat{R}\) indicates that the size of the fireworks explosion radius is set to a constant; moreover, in order to avoid zero operation, \(\varepsilon\) is used as the minimum machine value. (2) Mutation operator. Mutation operator can add the variety of the spark population. The variation spark in FWA is the Gaussian mutation sparks created by the explosion sparks through Gaussian mutation. When selecting fireworks \(x_{i}\), the k-dimensional Gaussian mutation exercise is used as: \(\hat{x}_{ik}=x_{ik}\times e\); thereinto, \(x_{ik}\) represents k-dimensional variation spark, and \(e\) indicates that it conforms to Gaussian distribution. In FWA, when the explosion spark and mutation spark generated by the operator are separated from the search space, it must to map them to a new location, the calculation method is as follows:  
\[\hat{x}_{ik}=x_{LB,k}+|\hat{x}_{ik}|\%(x_{UB,k}-x_{LB,k}) \tag{9}\]  
wherein, \(x_{UB,k}\), \(x_{LB,k}\) denote the upper and lower search spaces on the k-dimension. (3) Selection strategy. A certain number of individuals need to be selected for the next generation of fireworks in explosion fireworks and mutation sparks so as to information for future generations of fireworks. Candidates with the best fitness value will become the next generation of fireworks when \(K\) individuals are selected and \(N\) is population's number. For the remaining \(N-1\) fireworks, the choice is made in a probabilistic way. For fireworks \(x_{i}\), the calculation method is as follows:  
\[p(x_{i})=\frac{R(x_{i})}{\sum_{x_{j}\in K}x_{j}} \tag{10}\]  
\[R(x_{i})=\sum_{x_{j}\in K}d\big{(}x_{i}-x_{j})=\sum_{x_{j}\in K}||x_{i}-x_{j}| \tag{11}\]wherein, \(R(x)\) represents the sum of the distances between all samples in the current individual candidate set.