## 4 Description of IDMMFO-GM Design  
### Introduction to the MFO Algorithm  
The MFO algorithm is a swarm intelligence algorithm that was introduced in 2015. This algorithm abstracts the moth's navigation toward a light source by employing lateral positioning strategies to develop an optimization approach. The MFO algorithm has two important elements: the moth and the flame. The moth is the actual individual in the optimization process, which stands for candidate solution, while the flame symbolizes the optimal solution identified by the moth through the last iteration.  
Matrix \(M\) exhibits the location for the moth population:  
\[M=\left[\begin{array}{cccc}M_{11}&M_{12}&\cdots&M_{1d}\\ M_{21}&M_{22}&\cdots&M_{2d}\\ \vdots&\vdots&\vdots&\vdots\\ M_{n1}&M_{n2}&\cdots&M_{nd}\end{array}\right] \tag{11}\]  
where \(n\) denotes the overall count of moth individuals, and \(d\) represents the dimensionality of the solution domain.  
The fitness values for the moth population are encapsulated in the matrix \(OM\):  
\[OM=\left[\begin{array}{c}OM_{1}\\ OM_{2}\\ \vdots\\ OM_{n}\end{array}\right] \tag{12}\]  
During the preliminary phase of the algorithm's iteration process, total flame amount is equivalent to the total number of moth individuals. The initial location of the flame set is denoted through matrix \(F\):  
\[F=\left[\begin{array}{cccc}F_{11}&F_{12}&\cdots&F_{1d}\\ F_{21}&F_{22}&\cdots&F_{2d}\\ \vdots&\vdots&\vdots&\vdots\\ F_{n1}&F_{n2}&\cdots&F_{nd}\end{array}\right] \tag{13}\]  
The fitness value for flame set is denoted through matrix \(OF\):  
\[OF=\left[\begin{array}{c}OF_{1}\\ OF_{2}\\ \vdots\\ OF_{n}\end{array}\right] \tag{14}\]  
The optimization procedure of the MFO algorithm is summarized by a triplet:  
\[MFO=(I,P) \tag{15}\]  
\(I\) denotes the algorithm's initiating operation, which is mainly shown as follows: randomly generating individual moths within the solution domain and subsequently obtaining their respective fitness values.  
The association rule for this process is formulated as described below:  
\[I:\phi\rightarrow\{M,OM\} \tag{16}\]  
\(P\) denotes the principal function that guides the moth's trajectory update once the optimization algorithm initiates its operation. Specifically, the moth adjusts its location according to its own information and that of the flame set, following the logarithmic helical law, and subsequently computes the fitness value of the updated location. If this value surpasses the fitness value of the corresponding flame, the flame's location is updated accordingly.  
The mapping relationship for this process can be described as follows:  
\[P:M\to M \tag{17}\]  
\(T\) represents the logarithmic helical location adjusting behavior of individual moths. The moth is updated by the logarithmic helical rule as follows:  
\[\left\{\begin{array}{l}M_{i}=S(M_{i},F_{j})=D_{ij}\cdot e^{\pi t}\cdot\cos(2 \pi t)+F_{j}\\ D_{ij}=|M_{i}-F_{j}|\end{array}\right. \tag{18}\]  
where \(M_{i}\) denotes the location of the \(i\)-th moth, \(F_{j}\) denotes the location of the \(j\)-th flame, \(D_{ij}\) signifies the Euclidean distance location from the \(i\)-th moth to the \(j\)-th flame, \(\tau\) is the variable of altering the location logarithmic helical waveform, \(t\) is a stochastic value within the range of \(-1\) to \(1\), and \(S(M_{i},F_{j})\) also signifies the logarithmic helical function.  
Furthermore, with the rate of algorithm convergence, the quantity of flames will dynamically diminish as the number of iterations increases. The adaptive adjustment mechanism for the flame count is outlined below:  
\[N_{flame}=round(N_{flame}^{\max}-l\frac{N_{flame}^{\max}-1}{N_{\rm int}^{\max}}) \tag{19}\]  
where \(N_{flame}\) represents the number of flames after updating, \(l\) indicates the present iteration count, \(N_{flame}^{\max}\) denotes the maximum count of flames, and \(N_{\rm int}^{\max}\) signifies the upper limit of iterations allowed.