## 2 Experimental Section
### Quantum Fireworks Algorithm
#### 2.1.3 Quantum Fireworks Algorithm
\right] \tag{19}\]  
where \(\alpha_{id}^{k+1}\) and \(\beta_{id}^{k+1}\) are the probability amplitude of \(j\) th fireworks individual in \(k+1\) th iteration for \(d\) dimension space; \(\theta_{id}^{k+1}\) is the rotating angle, which can be get from equation:  
\[\theta_{id}^{k+1}=s(\alpha_{id}^{k},\beta_{id}^{k})\Delta\theta_{id}^{k+1} \tag{20}\]  
where \(s(\alpha_{id}^{k},\beta_{id}^{k})\) determines the rotating angle direction and is the \(\Delta\theta_{id}^{k+1}\) rotating angle increment. In order to adapt to operation mechanism of fireworks algorithm, we convert the updated \(\alpha_{jid}^{k+\ 1}\) and \(\beta_{jd}^{k+1}\) to a solution space. \[X_{jc}^{d} =\frac{1}{2}[b_{j}(1+\alpha_{jd}^{k+1})+a_{j}(1-\alpha_{jd}^{k+1} )]\;if\;rand()<P_{id} \tag{21}\] \[X_{js}^{d} =\frac{1}{2}[b_{j}(1+\beta_{jd}^{k+1})+a_{j}(1-\beta_{jd}^{k+1} )]\;if\;rand()\geq P_{id}\]  
Then calculate the positional offset amount:  
\[h_{jc}^{d}=R_{i}\times X_{jc}^{d}\;,\;h_{js}^{d}=R_{i}\times X_{js}^{d} \tag{22}\]\[ \begin{split}& if\ rand()<P_{id},\text{ then }d=\ 1\\ & X(j)=X(i)+h_{jc}^{d}=X(i)+R_{i}\times\frac{1}{2}[b_{j}(1+\alpha_{ jd}^{k+1})+a_{j}(1-\alpha_{jd}^{k+1})]\\ & Y(j)=Y(i)+h_{jc}^{d}=Y(i)+R_{i}\times\frac{1}{2}[b_{j}(1+\alpha_ {jd}^{k+1})+a_{i}(1-\alpha_{jd}^{k+1})]\\ & if\ rand()\geq P_{id}:\text{ then }d=\ 2\\ & X(j)=X(i)+h_{js}^{d}=X(i)+R_{i}\times\frac{1}{2}[b_{j}(1+\beta_ {jd}^{k+1})+a_{j}(1-\beta_{jd}^{k+1})]\\ & Y(j)=Y(i)+h_{js}^{d}=Y(i)+R_{i}\times\frac{1}{2}[b_{j}(1+\beta_ {jd}^{k+1})+a_{j}(1-\beta_{jd}^{k+1})]\\ \end{split}  \tag{23}\]  
Detection of cross-border. If the generated explosion sparks exceed the possible domain boundary, the position of sparks can be updated with the following equations:  
\[ \begin{split}& X(j)=X_{LB,k}+|X(j)|\,\%(X_{UB,k}-X_{LB,k})\\ & Y(j)=Y_{LB,k}+|Y(j)|\,\%(Y_{UB,k}-Y_{LB,k})\\ \end{split}  \tag{24}\]  
Individual Mutation Operation  
The main reason for the premature convergence and local optimum of the fireworks group is that the diversity of the population is lost in the process of population search. In the quantum fireworks algorithm, in order to increase the diversity of the population, the Gauss mutation in the original algorithm is replaced by a quantum mutation. Randomly select fireworks \(x_{i}\), and generate \(\hat{M}\) quantum mutation sparks, and its operation formula is shown as follows:  
\[\left[ \begin{array}{c}01\\ 10\end{array} \right]\left[ \begin{array}{c}\cos(\theta_{ij})\\ \sin(\theta_{ij})\end{array} \right]=\left[ \begin{array}{c}\sin(\theta_{ij}) \\ \cos(\theta_{ij})\end{array} \right]=\left[ \begin{array}{c}\cos(\frac{\pi}{2} -\theta_{ij})\\ \sin(\frac{\pi}{2}-\theta_{ij})\end{array} \right] \tag{25}\]  
Let the probability of individual be \(P_{m}\), and \(rand()\) be a random number between \([0,1]\); if \(rand()<P_{m}\), the mutation can be operated with the above formula and the probability amplitude in quantum bit is changed; finally, the mutated individual can be converted into the solution space and save it to the mutation sparks population. \[ \begin{split}& X_{jc}^{d}=\frac{1}{2}[b_{j}(1+\cos(\frac{\pi}{2} -\theta_{ij}))+a_{j}(1-\cos(\frac{\pi}{2}-\theta_{ij}))]\ if\ rand()<P_{id}\\ & X_{js}^{d}=\frac{1}{2}[b_{j}(1+\sin(\frac{\pi}{2}-\theta_{ij}))+a_{j}(1- \sin(\frac{\pi}{2}-\theta_{ij}))]\ if\ rand()\geq P_{id}\\ & if\ rand()<P_{id},\text{ then }d=\ 1\\ &\hat{X}(\hat{M})=X(\hat{M})\times X_{jc}^{d}\ \ \ \ \ \hat{Y}(\hat{M})=Y(\hat{M})\times X_{jc}^{d}\\ & if\ rand()\geq P_{id}:\text{ then }d=\ 2\\ &\hat{X}(\hat{M})=X(\hat{M})\times X_{js}^{d}\ \ \ \ \ \hat{Y}(\hat{M})=Y(\hat{M})\times X_{js}^{d}\\ \end{split}  \tag{26}\]  
Detection of cross-border. If the generated explosion sparks exceed the possible domain boundary, the position of sparks can be updated by the following equations:  
\[ \begin{split}&\hat{X}(\hat{M})=X_{LB,k}+|\hat{X}(\hat{M})|\,\%(X_{ UB,k}-X_{LB,k})\\ &\hat{Y}(\hat{M})=Y_{LB,k}+|\hat{Y}(\hat{M})|\,\%(Y_{UB,k}-Y_{LB,k}) \\ \end{split}