## 2 Crystal Structure Algorithm
### Mathematical Modelling of the CrSA  
The mathematical model of the CrSA is described, incorporating the fundamental principles of crystals with appropriate adjustments. In this approach, every potential solution of the optimization method is regarded as an individual crystal within the space. For the purpose of iteration, a specific quantity of crystals is chosen randomly for initialization. \[Cry= \begin{bmatrix}Cry_{1}\\ Cry_{2}\\ \vdots\\ Cry_{i}\\ \vdots\\ Cry_{n}\end{bmatrix} = \begin{bmatrix}y_{1}^{1}&y_{1}^{2}&\cdots&y_{1}^{j}& \cdots&y_{1}^{4}\\ y_{2}^{1}&y_{2}^{2}&\cdots&y_{2}^{2}&\cdots&y_{2}^{4}\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ y_{1}^{i}&y_{i}^{2}&\cdots&y_{i}^{j}&\cdots&y_{1}^{4}\\ \vdots&\vdots&\vdots&\vdots&\vdots&\vdots\\ y_{n}^{1}&y_{n}^{2}&\cdots&y_{n}^{j}&\cdots&y_{n}^{4}\end{bmatrix} ,\begin{ }\{i=1,\,2,\ldots,n\\ j=1,\,2,\ldots,d \tag{1}\]  
Here, \(n\) represents the quantity of crystals and \(d\) represents the problem's dimension. The beginning placements of these crystals are randomly assigned throughout the search space as follows:  
\[y_{i}^{j}(0)=y_{i,min}^{j}+\zeta\left(y_{i,max}^{j}-y_{i,min}^{j}\right), \quad\left\{ \begin{array}{l}i=1,2,\ldots,n\\ j=1,2,\ldots d\end{array} \right. \tag{2}\]  
The beginning position of the crystals is determined by the value of \(y_{i}^{j}(0)\). The lowest and highest allowable values for the \(j\)th decision variable of the \(i\)th candidate solution are represented as \(y_{i,min}^{j}\) and \(y_{i,max}^{j}\), respectively. \(\zeta\) represents a random number ranging from 0 to 1. According to the definition of \"basis\" in crystallography, all of the crystals at the corners are regarded as the major crystals (\(Cry_{main}\)), which are chosen at random by taking into account the crystals that were first generated. It should be mentioned that the current \(Cry\) is subtracted from each step's random selection procedure. The best-configured crystal is represented by \(Cry_{b}\), and the mean values of crystals chosen at random are represented by \(Cry_{mean}\). Candidate solution positions in the search space are adjusted by employing fundamental lattice principles. This updating process consists of four distinct types:  
1. \"Cubic\" with \(Cry_{main}\): \[Cry_{new}=Cry_{old}+\varepsilon Cry_{main},\] (3)
2. \"Cubic\" with \(Cry_{b}\): \[Cry_{new}=Cry_{old}+\xi_{1}Cry_{main}+\xi_{2}Cry_{b},\] (4)
3. \"Cubic\" with \(Cry_{mean}\): \[Cry_{new}=Cry_{old}+\xi_{1}Cry_{main}+\xi_{2}Cry_{mean},\] (5)
4. \"Cubic\" with \(Cry_{b}\) and \(Cry_{mean}\): \[Cry_{new}=Cry_{old}+\xi_{1}Cry_{main}+\xi_{2}Cry_{b}+\xi_{3}Cry_{mean}\] (6)  
In the given set of four equations, \(Cry_{new}\) represents the new position, \(Cry_{old}\) represents the old position, and \(\xi\), \(\xi_{1}\), \(\xi_{2}\), and \(\xi_{3}\) are random numerical values. This method incorporates exploration and exploitation, two essential components of metaheuristics. This is achieved through Equations (3) to (4), where simultaneous local and global searches are undertaken. To address the issue of solution variables \(y_{i}^{j}\) that do not satisfy the boundary constraints, a mathematical flag is introduced. This flag triggers a modification of the boundary for the variables \(y_{i}^{j}\) that fall beyond the specified range. The termination criterion is determined by the maximum number of iterations at which the optimization process is halted after a predetermined number of iterations. The algorithm's pseudo-code is shown in Table 2.