## 2 Model Establishment  
### Fireworks Algorithm and Improved Fireworks Algorithm  
The FWA is a new swarm intelligent algorithm, which originates from the phenomenon of fireworks explosion [23]. In the solution process, the firework is treated as a feasible solution of the optimization problem. The process of searching for the neighborhood union of the feasible solution is the fireworks explosion, which generates a certain number of sparks. The local search and global search are accomplished by controlling the number of sparks generated from each fireworks explosion. In the feasible solutions, the fireworks with poor fitness have larger explosion radius, which leads to greater exploration abilities. Conversely, the fireworks with better fitness have smaller explosion radius, which leads to more excavation capacity around the position. The Gaussian mutation is applied to the original sparks for increasing the diversity of the population. The specific solution steps of FWA are as follows [24; 25; 26; 27; 28]. (1) For the optimization problem, the initial fireworks are \(N\), which are randomly generated in the feasible solution space \(\Omega\). (2) The fitness of each firework is evaluated. The radius of each firework \(R_{i}\) and the number \(S_{i}\) of sparks generated from the explosion are calculated. \(R_{i}\) and \(S_{i}\) are expressed as follows. \[R_{i}=R_{c}\times\frac{f(x_{i})-y_{\min}+\varepsilon}{\sum\limits_{i=1}^{N}{(f( x_{i})-y_{\min})+\varepsilon}} \tag{1}\]  
\[S_{i}=u\times\frac{y_{\max}-f(x_{i})+\varepsilon}{\sum\limits_{i=1}^{N}{(y_{ \max}-f(x_{i}))+\varepsilon}} \tag{2}\]  
where \(f(x_{i})\) is the fitness function of the optimized problem. \(y_{\min}\) and \(y_{\max}\) are the best and the worst solution of the fitness in the current fireworks population. \(R_{c}\) and \(u\) are the constants, which are used to adjust the size of the explosion radius and the number of explosion sparks. \(\varepsilon\) is the smallest amount for the machine, which is used to avoid zero denominator. (3) To further seek the optimal solution and avoid the coincidence of the explosion spark position, fireworks with better fitness should explode in a small range. The fireworks with worse fitness should explode in a large range to achieve better global search. Equation (3) is used to limit the number of explosion sparks as follows. \[S_{i}=\left\{ \begin{array}{cl}round(a*u)&S_{i}<a*u\\ round(b*u)&S_{i}>b*u\&a<b<1\\ round(S_{i})&other\end{array} \right. \tag{3}\]  
where \(a\) and \(b\) are constants. _round_ is rounding function. (4) If all sparks are generated from fireworks explosion, the spark population is too simple. Thus, the Gaussian mutation is applied to generate new sparks. The generating process of mutation sparks is as follows. A firework \(x_{i}\) is randomly generated from the fireworks population. A certain number of sparks selected randomly are carried out Gaussian mutation operation. The sparks with \(k\) dimensions are chosen from the fireworks \(x_{i}\). Gaussian mutation operation is expressed as follows. \[\hat{x}_{ik}=x_{ik}\times e \tag{4}\]  
where \(e\sim N(1,\ 1)\), \(N(1,\ 1)\) is the Gaussian distribution; \(\hat{x}_{ik}\) is the -dimensional value of the Gaussian spark; \(x_{ik}\) is the \(k\) dimensional value of the explosion; and \(e\) is generated randomly. The range of sparks is expanding in the explosion process as the sparks are generated from the fireworks explosion. It is necessary to limit the spark position, because it may go beyond the boundaries of the viable domain \(\Omega\). Equation (5) is used to map the spark \(x_{i}\), which is beyond the dimension. \[\hat{x}_{ik}=x_{LowB,k}+|x_{i}|(x_{UpB,k}-x_{LowB,k}) \tag{5}\]  
where \(x_{UpB,k}\) and \(x_{LowB,\ k}\) are the upper and lower bounds of the solution space on the dimension \(k\). (5) If the new spark generated from the explosion and mutation cannot meet the termination condition, then \(N\) sparks are selected from the fireworks.